Paginación y filtros
Los recursos JSON:API (
/documents
,
/contacts
,
/products
,
/purchases
,
/withholdings-received
,
/webhook-endpoints
y las lecturas contables) comparten la misma sintaxis de consulta. Cada página de la referencia lista qué atributos son filtrables y ordenables.
Filtros#
-
filter[status]=authorized— igualdad simple. -
filter[issue_date][greater_than_or_equal]=2026-07-01— operadores anidados:greater_than,less_than,in,contains, entre otros, según el tipo del atributo. -
filter[or][…]/filter[and][…]— composición booleana.
Orden#
sort=-issue_date,doc_number
— atributos separados por coma, prefijo
-
para descendente.
Páginas#
page[limit]
y
page[offset]
paginan;
page[count]=true
agrega el total en
meta.page.total
. La respuesta incluye
links
con la página siguiente cuando existe.
Campos (sparse fieldsets)#
fields[document]=doc_number,status
devuelve solo esos atributos. En
/documents
esto importa de verdad: los campos XML pesan, y una sincronización que no los necesita no debería transferirlos.
Content-Type#
Los cuerpos de escritura JSON:API viajan con
Content-Type: application/vnd.api+json
. Los endpoints fiscales usan
application/json
simple.
curl "https://edge.datil.com/api/v1/documents\
?filter[status]=authorized\
&filter[issue_date][greater_than_or_equal]=2026-07-01\
&sort=-issue_date\
&page[limit]=50&page[count]=true\
&fields[document]=doc_number,access_key,status,grand_total" \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Accept: application/vnd.api+json"
{
"data": [
{
"type": "document",
"id": "8e0b2d4f-6a1c-4e3b-9d5f-1a3c5e7b9d1f",
"attributes": {
"doc_number": "001-002-000000123",
"access_key": "0307202601179001234500110010020000001231234567811",
"status": "authorized",
"grand_total": "115.00"
}
}
],
"meta": { "page": { "total": 1284 } }
}