Skip to main content

Posibles eventos

Eventos dosponibles
  • account.pending
  • account.connected
  • account.disconnected
  • account.validated
  • account.uncompleted

Posibles estados de una cuenta.

  • PENDING
  • CONNECTED
  • DISCONNECTED
  • VALIDATED
  • UNCOMPLETED

Seguridad y firmas

  • Todos los eventos incluyen las cabeceras x-onepay-signature y x-onepay-timestamp. Usa la clave secreta del webhook para recalcular un hash HMAC SHA-256 sobre el cuerpo en bruto y compara el resultado.
  • Rechaza mensajes cuyo timestamp difiera más de 5 minutos de tu hora del servidor para evitar ataques de repetición.
  • Si la firma no coincide, responde con 400 para que OnePay marque el intento como fallido y no vuelva a enviarlo.

Reintentos e idempotencia

  • OnePay reintenta hasta 6 veces con backoff exponencial (30s, 1m, 5m, 15m, 1h, 3h) cuando recibe códigos >=500 o timeouts.
  • Cada evento contiene un event.id. Guárdalo en tu base de datos y evita procesar el mismo evento dos veces.
  • Responde 200 OK solo cuando hayas persistido los cambios; de lo contrario envía 500 para forzar un nuevo intento automático.

Ejemplo

{
   "account":{
      "bank_id":"9b90ba74-4a99-4beb-827d-2df3236c2549",
      "subtype":"SAVINGS",
      "authorization":false,
      "id":"9b90ba74-5743-4eb3-a6a8-a1503919c98f",
      "status":"PENDING",
      "title":"Swift Group **** 7890",
      "created_at":"2024-03-14T23:30:57.000000Z",
      "method_type":"account",
      "bank":{
         "id":"9b90ba74-4a99-4beb-827d-2df3236c2549",
         "name":"Swift Group",
         "supported_types":[
            "SAVINGS"
         ],
         "mask":null,
         "transaction_avg":null,
         "available":0,
         "connection_type":"CONFIRMATION",
         "logo":null,
         "instructions":null
      }
   },
   "event":{
      "type":"account.pending",
      "timestamp":1689262934,
      "environment":"live|test"
   }
}