Webhooks

Avisos firmados a tu sistema cuando ocurre algo en tu empresa.

Crear un destino de webhooks

POSThttps://api.drometra.com/v1/webhooks/endpoints

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.
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.

petición
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": []
  }'
respuesta · 201
{
  "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

GEThttps://api.drometra.com/v1/webhooks/endpoints

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.

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.

petición
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"
respuesta · 200
{
  "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

GEThttps://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.

petición
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"
respuesta · 200
{
  "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

PATCHhttps://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.

petición
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
  }'
respuesta · 200
{
  "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

POSThttps://api.drometra.com/v1/webhooks/endpoints/{id}/secrets

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.
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.

petición
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
  }'
respuesta · 201
{
  "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

POSThttps://api.drometra.com/v1/webhooks/endpoints/{id}/test

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.
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.

petición
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"
respuesta · 202
{
  "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

GEThttps://api.drometra.com/v1/webhooks/endpoints/{id}/deliveries

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

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.

petición
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"
respuesta · 200
{
  "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

GEThttps://api.drometra.com/v1/webhooks/deliveries

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 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.

petición
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"
respuesta · 200
{
  "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

GEThttps://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.

petición
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"
respuesta · 200
{
  "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

POSThttps://api.drometra.com/v1/webhooks/deliveries/{id}/retry

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.
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.

petición
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"
respuesta · 202
{
  "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"
}