Webhooks
Avisos firmados a tu sistema cuando ocurre algo en tu empresa.
Crear un destino de webhooks
https://api.drometra.com/v1/webhooks/endpointsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Cuerpo
- urlobligatoriostring
- descriptionstring
- eventTypesobligatorioarray de enum: distribution.order.created | distribution.order.cancelled | routing.plan.approved | field.route.assigned | field.route.cancelled | field.route.started | …
Respuesta · 201
- objectsiempre
- object
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/webhooks/endpoints" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"url": "…",
"eventTypes": []
}'{
"endpoint": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"url": "…",
"description": "…",
"eventTypes": [
"distribution.order.created"
],
"state": "active",
"disabledReason": "manual",
"consecutiveFailures": 0,
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"updatedAt": "2026-10-21T14:02:31Z",
"secrets": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"createdAt": "2026-10-21T14:02:31Z",
"expiresAt": "2026-10-21T14:02:31Z"
}
]
},
"secret": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"value": "…",
"createdAt": "2026-10-21T14:02:31Z"
}
}Listar destinos de webhooks
https://api.drometra.com/v1/webhooks/endpointsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Respuesta · 200
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/webhooks/endpoints" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"items": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"url": "…",
"description": "…",
"eventTypes": [
"distribution.order.created"
],
"state": "active",
"disabledReason": "manual",
"consecutiveFailures": 0,
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"updatedAt": "2026-10-21T14:02:31Z",
"secrets": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"createdAt": "2026-10-21T14:02:31Z",
"expiresAt": "2026-10-21T14:02:31Z"
}
]
}
]
}Ver un destino de webhooks
https://api.drometra.com/v1/webhooks/endpoints/{id}Pide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 200
- idstring · uuidsiempre
- urlstringsiempre
- descriptionstring · nullsiempre
- eventTypesarray de enum: distribution.order.created | distribution.order.cancelled | routing.plan.approved | field.route.assigned | field.route.cancelled | field.route.started | …siempre
- stateenum: active | disabledsiempre
- disabledReasonenum: manual | failures | siempre
- consecutiveFailuresintegersiempre
- versionintegersiempre
- createdAtstring · date-timesiempre
- updatedAtstring · date-timesiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/webhooks/endpoints/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"url": "…",
"description": "…",
"eventTypes": [
"distribution.order.created"
],
"state": "active",
"disabledReason": "manual",
"consecutiveFailures": 0,
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"updatedAt": "2026-10-21T14:02:31Z",
"secrets": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"createdAt": "2026-10-21T14:02:31Z",
"expiresAt": "2026-10-21T14:02:31Z"
}
]
}Cambiar un destino de webhooks
https://api.drometra.com/v1/webhooks/endpoints/{id}Pide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Cuerpo
- versionobligatoriointeger
- descriptionstring · null
- eventTypesarray de enum: distribution.order.created | distribution.order.cancelled | routing.plan.approved | field.route.assigned | field.route.cancelled | field.route.started | …
- activeboolean
Respuesta · 200
- idstring · uuidsiempre
- urlstringsiempre
- descriptionstring · nullsiempre
- eventTypesarray de enum: distribution.order.created | distribution.order.cancelled | routing.plan.approved | field.route.assigned | field.route.cancelled | field.route.started | …siempre
- stateenum: active | disabledsiempre
- disabledReasonenum: manual | failures | siempre
- consecutiveFailuresintegersiempre
- versionintegersiempre
- createdAtstring · date-timesiempre
- updatedAtstring · date-timesiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X PATCH "https://api.drometra.com/v1/webhooks/endpoints/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Content-Type: application/json" \
-d '{
"version": 0
}'{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"url": "…",
"description": "…",
"eventTypes": [
"distribution.order.created"
],
"state": "active",
"disabledReason": "manual",
"consecutiveFailures": 0,
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"updatedAt": "2026-10-21T14:02:31Z",
"secrets": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"createdAt": "2026-10-21T14:02:31Z",
"expiresAt": "2026-10-21T14:02:31Z"
}
]
}Rotar el secreto de firma
https://api.drometra.com/v1/webhooks/endpoints/{id}/secretsPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Cuerpo
- versionobligatoriointeger
- graceSecondsobligatoriointeger
Respuesta · 201
- objectsiempre
- object
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/webhooks/endpoints/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/secrets" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"version": 0,
"graceSeconds": 0
}'{
"endpoint": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"url": "…",
"description": "…",
"eventTypes": [
"distribution.order.created"
],
"state": "active",
"disabledReason": "manual",
"consecutiveFailures": 0,
"version": 1,
"createdAt": "2026-10-21T14:02:31Z",
"updatedAt": "2026-10-21T14:02:31Z",
"secrets": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"createdAt": "2026-10-21T14:02:31Z",
"expiresAt": "2026-10-21T14:02:31Z"
}
]
},
"secret": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"value": "…",
"createdAt": "2026-10-21T14:02:31Z"
}
}Enviar un evento de prueba
https://api.drometra.com/v1/webhooks/endpoints/{id}/testPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 202
- idstring · uuidsiempre
- endpointIdstring · uuidsiempre
- eventIdstring · uuidsiempre
- eventTypeenum: distribution.order.created | distribution.order.cancelled | routing.plan.approved | field.route.assigned | field.route.cancelled | field.route.started | …siempre
- stateenum: pending | delivering | succeeded | deadsiempre
- modeenum: auto | manualsiempre
- attemptsintegersiempre
- maxAttemptsintegersiempre
- manualRetriesintegersiempre
- nextAttemptAtstring · null · date-timesiempre
- lastAttemptAtstring · null · date-timesiempre
- lastStatusinteger · nullsiempre
- lastOutcomeenum: success | http_status | timeout | dns_failure | destination_blocked | tls_failure | …siempre
- succeededAtstring · null · date-timesiempre
- deadAtstring · null · date-timesiempre
- createdAtstring · date-timesiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/webhooks/endpoints/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/test" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"endpointId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventType": "distribution.order.created",
"state": "pending",
"mode": "auto",
"attempts": 15,
"maxAttempts": 15.5,
"manualRetries": 5,
"nextAttemptAt": "2026-10-21T14:02:31Z",
"lastAttemptAt": "2026-10-21T14:02:31Z",
"lastStatus": 349.5,
"lastOutcome": "success",
"succeededAt": "2026-10-21T14:02:31Z",
"deadAt": "2026-10-21T14:02:31Z",
"createdAt": "2026-10-21T14:02:31Z"
}Listar entregas de un destino
https://api.drometra.com/v1/webhooks/endpoints/{id}/deliveriesPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Parámetros de consulta
- stateenum: pending | delivering | succeeded | dead
- beforestring · uuid
- limitinteger
Respuesta · 200
- array de objectsiempre
- nextCursorstring · null · uuidsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/webhooks/endpoints/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/deliveries" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"items": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"endpointId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventType": "distribution.order.created",
"state": "pending",
"mode": "auto",
"attempts": 15,
"maxAttempts": 15.5,
"manualRetries": 5,
"nextAttemptAt": "2026-10-21T14:02:31Z",
"lastAttemptAt": "2026-10-21T14:02:31Z",
"lastStatus": 349.5,
"lastOutcome": "success",
"succeededAt": "2026-10-21T14:02:31Z",
"deadAt": "2026-10-21T14:02:31Z",
"createdAt": "2026-10-21T14:02:31Z"
}
],
"nextCursor": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
}Listar entregas de webhooks
https://api.drometra.com/v1/webhooks/deliveriesPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de consulta
- stateenum: pending | delivering | succeeded | dead
- beforestring · uuid
- limitinteger
- endpointIdstring · uuid
Respuesta · 200
- array de objectsiempre
- nextCursorstring · null · uuidsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/webhooks/deliveries" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"items": [
{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"endpointId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventType": "distribution.order.created",
"state": "pending",
"mode": "auto",
"attempts": 15,
"maxAttempts": 15.5,
"manualRetries": 5,
"nextAttemptAt": "2026-10-21T14:02:31Z",
"lastAttemptAt": "2026-10-21T14:02:31Z",
"lastStatus": 349.5,
"lastOutcome": "success",
"succeededAt": "2026-10-21T14:02:31Z",
"deadAt": "2026-10-21T14:02:31Z",
"createdAt": "2026-10-21T14:02:31Z"
}
],
"nextCursor": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d"
}Ver una entrega de webhook
https://api.drometra.com/v1/webhooks/deliveries/{id}Pide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 200
- idstring · uuidsiempre
- endpointIdstring · uuidsiempre
- eventIdstring · uuidsiempre
- eventTypeenum: distribution.order.created | distribution.order.cancelled | routing.plan.approved | field.route.assigned | field.route.cancelled | field.route.started | …siempre
- stateenum: pending | delivering | succeeded | deadsiempre
- modeenum: auto | manualsiempre
- attemptsintegersiempre
- maxAttemptsintegersiempre
- manualRetriesintegersiempre
- nextAttemptAtstring · null · date-timesiempre
- lastAttemptAtstring · null · date-timesiempre
- lastStatusinteger · nullsiempre
- lastOutcomeenum: success | http_status | timeout | dns_failure | destination_blocked | tls_failure | …siempre
- succeededAtstring · null · date-timesiempre
- deadAtstring · null · date-timesiempre
- createdAtstring · date-timesiempre
- objectsiempre
- array de objectsiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X GET "https://api.drometra.com/v1/webhooks/deliveries/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"endpointId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventType": "distribution.order.created",
"state": "pending",
"mode": "auto",
"attempts": 15,
"maxAttempts": 15.5,
"manualRetries": 5,
"nextAttemptAt": "2026-10-21T14:02:31Z",
"lastAttemptAt": "2026-10-21T14:02:31Z",
"lastStatus": 349.5,
"lastOutcome": "success",
"succeededAt": "2026-10-21T14:02:31Z",
"deadAt": "2026-10-21T14:02:31Z",
"createdAt": "2026-10-21T14:02:31Z",
"event": {
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"type": "distribution.order.created",
"occurredAt": "2026-10-21T14:02:31Z",
"data": {}
},
"attemptLog": [
{
"attemptNo": 15.5,
"trigger": "auto",
"startedAt": "2026-10-21T14:02:31Z",
"durationMs": 30000,
"outcome": "success",
"statusCode": 349.5
}
]
}Reintentar una entrega
https://api.drometra.com/v1/webhooks/deliveries/{id}/retryPide el token de acceso de una persona de tu empresa.
Cabeceras
- x-tenant-idobligatoriostring · uuid
- El identificador de tu empresa. El servidor comprueba que sigas siendo miembro activo de ella.
- idempotency-keyobligatoriostring · uuid
- Un UUID nuevo por operación. Si repites la petición con la misma clave, el cambio no se aplica dos veces.
Parámetros de ruta
- idobligatoriostring · uuid
- ej. 0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d
Respuesta · 202
- idstring · uuidsiempre
- endpointIdstring · uuidsiempre
- eventIdstring · uuidsiempre
- eventTypeenum: distribution.order.created | distribution.order.cancelled | routing.plan.approved | field.route.assigned | field.route.cancelled | field.route.started | …siempre
- stateenum: pending | delivering | succeeded | deadsiempre
- modeenum: auto | manualsiempre
- attemptsintegersiempre
- maxAttemptsintegersiempre
- manualRetriesintegersiempre
- nextAttemptAtstring · null · date-timesiempre
- lastAttemptAtstring · null · date-timesiempre
- lastStatusinteger · nullsiempre
- lastOutcomeenum: success | http_status | timeout | dns_failure | destination_blocked | tls_failure | …siempre
- succeededAtstring · null · date-timesiempre
- deadAtstring · null · date-timesiempre
- createdAtstring · date-timesiempre
Puede responder con error 400, 401, 403, 404, 409, 410, 413, 415, 422, 429, 503. El cuerpo de error se explica en Conceptos.
curl -X POST "https://api.drometra.com/v1/webhooks/deliveries/0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d/retry" \
-H "Authorization: Bearer $DROMETRA_TOKEN" \
-H "x-tenant-id: $DROMETRA_TENANT" \
-H "idempotency-key: $(uuidgen)" \
-H "Accept: application/json"{
"id": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"endpointId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventId": "0b6f8c2e-4a1d-4e5b-9c3f-2d7e8a9b1c4d",
"eventType": "distribution.order.created",
"state": "pending",
"mode": "auto",
"attempts": 15,
"maxAttempts": 15.5,
"manualRetries": 5,
"nextAttemptAt": "2026-10-21T14:02:31Z",
"lastAttemptAt": "2026-10-21T14:02:31Z",
"lastStatus": 349.5,
"lastOutcome": "success",
"succeededAt": "2026-10-21T14:02:31Z",
"deadAt": "2026-10-21T14:02:31Z",
"createdAt": "2026-10-21T14:02:31Z"
}