Paginación y filtros
Casi todos los list endpoints aceptan los mismos tres query params y devuelven la misma forma de PagedResult<T>. Aprendes una vez e integras en todos los recursos paginados; las dos excepciones (units y payment-terms) están descritas abajo.
Resumen
La paginación es offset-based: pageNumber y pageSize. La respuesta incluye totalCount y totalPages precomputado. Filtros adicionales (isActive en clientes, proveedores y productos) están documentados en cada página de recurso si aplica. GET /api/v1/units devuelve la lista completa sin PagedResult; GET /api/v1/payment-terms extiende la forma con lastModification.
Query params
| Param | Tipo | Default | Descripción |
|---|---|---|---|
search | string | — | Texto de búsqueda libre. Cada recurso define los campos sobre los que matchea. |
pageNumber | int | 1 | 1-indexado. |
pageSize | int | 10 | Tamaño de página. Sin máximo publicado. |
Forma de respuesta
La forma PagedResult<T> es la misma en facturas, notas, compras, gastos, contactos, productos, impuestos, retenciones y monedas. totalCount es el conteo total sin filtro de paginación y totalPages ya viene calculado por la API.
{ "items": [ { "customerId": "5f0c3a8e-2b7d-4c1e-9a6f-3d8b2e1c7a40", "legalName": "Empresa Receptora SRL", "taxIdentification": "131000001" } ], "totalCount": 87, "pageNumber": 2, "pageSize": 50, "totalPages": 2}Ejemplo
Listar la segunda página de clientes con tamaño 50, filtrando por la palabra industrial.
GET /api/v1/customers
curl "https://tuempresa.factura.com.do/api/v1/customers?pageNumber=2&pageSize=50&search=industrial" \ -H "X-Api-Key: $FACTURA_API_KEY"const params = new URLSearchParams({ pageNumber: "2", pageSize: "50", search: "industrial",});
const res = await fetch( `https://tuempresa.factura.com.do/api/v1/customers?${params}`, { headers: { "X-Api-Key": process.env.FACTURA_API_KEY! } },);if (!res.ok) throw new Error(`factura.com.do: ${res.status}`);const { items, totalCount, pageNumber, pageSize, totalPages } = await res.json();