Modelo de webhooks

Los dos formatos de webhook de Tonder, qué integración recibe cada uno y cómo leerlos.

Los webhooks son mensajes automáticos que Tonder envía cuando ocurren eventos de una transacción. En lugar de consultar la API una y otra vez por cambios de estado, los webhooks te notifican en tiempo real en el momento en que algo sucede —un pago que se completa, falla o requiere autenticación adicional.

Dos formatos: Short y Long

Tonder envía dos formatos de webhook distintos. El que recibes depende de tu modo de integración:

  • API Direct y Lite SDK 2.0 → formato Short
  • Hosted Checkout / SDKs móviles / Legacy → formato Long
CaracterísticaFormato ShortFormato Long
Estructura raízCampos de nivel superiorTodo dentro de data{}
Campo de estadostatus: Pending / Successtransaction_status: Pending / Success
Indicador de eventoevent_type: payment_Pendingevent: created / confirmed
Referencia de ordenclient_referencemetadata.external_id / order_id
CLABE de SPEINo incluidadata.clabe
Info del remitente (SPEI Success)No incluidasender_name, sender_clabe, sender_bank
_incoming_requestNo incluidometadata._incoming_request (objeto completo)
Modos de integraciónAPI Direct · Lite SDK 2.0 · Frictionless SPEIHosted Checkout · SDKs móviles · Legacy

La misma transacción, dos estructuras

El siguiente ejemplo es un evento de SPEI en ambos formatos:

{
  "id": "78eb98ef-65a8-4038-a2a0",
  "operation_type": "payment",
  "amount": "500",
  "currency": "MXN",
  "client_reference": "ORD-001",
  "status": "Pending",
  "provider": "tonder",
  "transaction_id": "26292298-de5e-4edc",
  "payment_method_type": "SPEI",
  "created": "2026-05-21T19:51:18Z",
  "metadata": {
    "order_id": "ORD-001",
    "external_id": "ORD-001",
    "transaction_type": "deposit"
  },
  "event_type": "payment_Pending",
  "action": "MODIFY"
}
{
  "operation_type": "payment",
  "action": "payment",
  "event": "created",
  "type": "deposit",
  "data": {
    "id": "3195511b-fd2e-4844-bf02",
    "transaction_status": "Pending",
    "amount": 500.0,
    "currency_code": "MXN",
    "payment_id": 5117665,
    "payment_method_name": "spei",
    "clabe": "710969000312511566",
    "concept": "SPEI deposit for payment...",
    "metadata": {
      "external_id": "ORD-001",
      "order_id": "ORD-001",
      "transaction_type": "deposit"
    }
  }
}

Es la misma transacción con dos estructuras completamente distintas. Confirma tu formato con tu gerente de integración de Tonder antes de construir tu handler de webhooks.

Clave de correlación

Los nombres de los campos de referencia difieren entre modos, pero metadata.external_id llega en todos los formatos y eventos. Úsalo como tu clave de correlación.

ModoCampo en la petición (envías)Campo en el webhook (lees)
Hosted Checkoutexternal_idmetadata.external_id
SDK (cualquier plataforma)orderReferencemetadata.external_id o metadata.order_id
API Directclient_referenceclient_reference (nivel raíz) + metadata.external_id
Híbridoambos, por legambos formatos — deduplica por metadata.external_id

Regla universal: incluye metadata.external_id en cada petición — es el único campo garantizado en todos los webhooks de todos los formatos.

Siguientes pasos

¿Te resultó útil esta página?

En esta página