La API de Datil
Emite facturas, registra compras con retención, sincroniza contactos y productos, y haz firmar documentos desde tu sistema. Un solo host —
https://edge.datil.com
— y respuestas JSON en toda la superficie.
Cada producto tiene su propia llave: la de facturación y contabilidad alcanza un libro contable; la de firma, una organización. Las direcciones anteriores —
https://datil.com/api/v1
y
https://<empresa>.datil.id/api/v1
— siguen respondiendo lo mismo, así que una integración existente no tiene que moverse.
El esquema OpenAPI se sirve en
GET /api/v1/openapi
, con la misma autenticación.
De la llave a tu primera factura#
-
Crea tu cuenta y activa el plan Empresa.
La API requiere la capacidad
accounting_api; sin ella toda llamada responde403. -
Crea tu llave de API.
En Contabilidad → Configuración → API. El secreto (
dtl_…) se muestra una sola vez: guárdalo — el sistema conserva solo su hash. -
Configura el emisor.
RUC, establecimiento y firma electrónica en Contabilidad → Emisor. Sin emisor, la API responde honestamente
422 emisor_not_configureden lugar de fabricar una emisión. -
Emite tu primera factura.
El
POSTde la derecha crea, confirma y emite el comprobante ante la autoridad por el mismo camino que la pantalla Nueva factura. Envía siempreexternal_ref: un reintento devuelve el mismo comprobante en lugar de emitir dos veces. -
Escucha el resultado.
Consulta
GET /api/v1/invoices/:ido suscribe un webhook adocument.authorizedy descarga RIDE y XML con los enlaces de la respuesta.
La superficie completa#
Facturación y contabilidad.
Dos familias bajo la misma llave: los endpoints fiscales (
/invoices
,
/purchases
— JSON simple, motores reales) y los recursos JSON:API (
/contacts
,
/products
,
/documents
,
/withholdings-received
,
/webhook-endpoints
y las lecturas contables) con
filter
/
sort
/
page
.
Firma electrónica. Solicitudes de firma — envías los PDF y cada firmante recibe su enlace — y solicitudes de certificado, la emisión alojada en el portal de tu organización. La navegación de la izquierda recorre recurso por recurso.
curl -X POST https://edge.datil.com/api/v1/invoices \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"external_ref": "orden-1042",
"customer": {
"identification": "0992345678001",
"name": "ACME S.A.",
"email": "pagos@acme.ec"
},
"lines": [
{
"description": "Consultoría mensual",
"quantity": "1",
"unit_price": "100.00",
"iva": "15"
}
]
}'
{
"id": "9f2c6e1a-4b3d-4e9a-8d2f-5a7c1b9e0d43",
"doc_type": "factura",
"numero": "001-002-000000123",
"access_key": "0307202601179001234500110010020000001231234567811",
"status": "authorized",
"environment": "production",
"issue_date": "2026-07-03",
"currency": "USD",
"total": "115.00",
"customer": {
"identification": "0992345678001",
"name": "ACME S.A."
},
"authorization": {
"status": "AUTORIZADO",
"number": "0307202601179001234500110010020000001231234567811",
"date": "2026-07-03T14:07:00Z"
},
"failure_reason": null,
"links": {
"ride": "/api/v1/invoices/9f2c6e1a-4b3d-4e9a-8d2f-5a7c1b9e0d43/ride",
"xml": "/api/v1/invoices/9f2c6e1a-4b3d-4e9a-8d2f-5a7c1b9e0d43/xml"
}
}