Webhook endpoints
Los destinos HTTPS a los que se entregan los eventos de comprobantes (
document.authorized
·
document.rejected
·
document.failed
). El
secret
firma cada entrega (HMAC-SHA256 en
X-Datil-Signature
) y nunca se vuelve a serializar después de crearlo. También se administran en Contabilidad → Configuración → API.
El objeto webhook_endpoint
#
active
boolean
requerido
false
pausa las entregas sin eliminar el endpoint.
events
array
requerido
Eventos suscritos; vacío = todos (
document.authorized
,
document.rejected
,
document.failed
).
tenant_slug
string
requerido
La organización dueña del libro.
url
string
requerido
Destino HTTPS de las entregas.
book_id
uuid
El libro contable dueño del registro — siempre el de tu llave.
last_delivered_at
datetime
Última entrega confirmada (2xx).
last_status
string
Estado HTTP de la última entrega intentada.
Filtrable por: activebook_ididlast_delivered_atlast_statustenant_slugurl
Ordenable por: activebook_ididlast_delivered_atlast_statustenant_slugurl
Crear un endpoint#
/api/v1/webhook-endpoints
Bearer
La URL debe ser HTTPS.
events
vacío suscribe todos los eventos. Guarda el
secret
que envías: no se puede volver a leer.
Content-Type: application/vnd.api+json
secret
string
requerido
El secreto HMAC con el que se firma cada entrega. Solo se escribe: nunca vuelve en una respuesta.
url
string
requerido
Destino HTTPS de las entregas.
active
boolean
false
pausa las entregas sin eliminar el endpoint.
events
array
Eventos suscritos; vacío = todos (
document.authorized
,
document.rejected
,
document.failed
).
Devuelve
·
201
con
data
(sin
secret
) ·
400
/
422
si la URL no es válida.
curl -X POST https://edge.datil.com/api/v1/webhook-endpoints \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Content-Type: application/vnd.api+json" \
-d '{
"data": {
"type": "webhook_endpoint",
"attributes": {
"url": "https://erp.acme.ec/webhooks/datil",
"events": [
"document.authorized",
"document.rejected"
],
"secret": "whsec_una_cadena_larga_y_aleatoria"
}
}
}'
{
"data": {
"type": "webhook_endpoint",
"id": "4d6f8a0c-2e4b-4c6d-9a1b-3d5f7a9c1e3d",
"attributes": {
"active": true,
"events": [
"document.authorized",
"document.rejected"
],
"tenant_slug": "acme",
"url": "https://erp.acme.ec/webhooks/datil",
"book_id": "1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f",
"last_delivered_at": "2026-07-03T14:07:02Z",
"last_status": "200"
}
}
}
Listar endpoints#
/api/v1/webhook-endpoints
Bearer
filter[…]
object
Filtra por atributo:
filter[kind]=customer
, u operadores anidados como
filter[issue_date][greater_than]=2026-07-01
. Combinable con
filter[and]
/
filter[or]
.
sort
string
Atributos separados por coma; prefijo
-
para descendente:
sort=-issue_date
.
page[limit]
integer
Máximo de registros por página.
page[offset]
integer
Desplazamiento desde el inicio del listado.
page[count]
boolean
Con
true
, la respuesta incluye el total en
meta.page.total
.
fields[tipo]
string
Atributos a devolver, separados por coma — el sparse fieldset de JSON:API.
Devuelve
·
200
con
data
— lista de objetos
webhook_endpoint
.
curl "https://edge.datil.com/api/v1/webhook-endpoints" \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"data": [
{
"type": "webhook_endpoint",
"id": "4d6f8a0c-2e4b-4c6d-9a1b-3d5f7a9c1e3d",
"attributes": {
"active": true,
"events": [
"document.authorized",
"document.rejected"
],
"tenant_slug": "acme",
"url": "https://erp.acme.ec/webhooks/datil",
"book_id": "1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f",
"last_delivered_at": "2026-07-03T14:07:02Z",
"last_status": "200"
}
}
]
}
Consultar un endpoint#
/api/v1/webhook-endpoints/:id
Bearer
id
uuid
requerido
Id del endpoint.
Devuelve
·
200
con
data
·
404
.
curl "https://edge.datil.com/api/v1/webhook-endpoints/4d6f8a0c-2e4b-4c6d-9a1b-3d5f7a9c1e3d" \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"data": {
"type": "webhook_endpoint",
"id": "4d6f8a0c-2e4b-4c6d-9a1b-3d5f7a9c1e3d",
"attributes": {
"active": true,
"events": [
"document.authorized",
"document.rejected"
],
"tenant_slug": "acme",
"url": "https://erp.acme.ec/webhooks/datil",
"book_id": "1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f",
"last_delivered_at": "2026-07-03T14:07:02Z",
"last_status": "200"
}
}
}
Eliminar un endpoint#
/api/v1/webhook-endpoints/:id
Bearer
Las entregas a ese destino cesan de inmediato.
id
uuid
requerido
Id del endpoint.
Devuelve
·
200
/
204
·
404
.
curl -X DELETE https://edge.datil.com/api/v1/webhook-endpoints/4d6f8a0c-2e4b-4c6d-9a1b-3d5f7a9c1e3d \
-H "Authorization: Bearer $DATIL_API_KEY"