Registra solo los eventos que necesitas
Crea un endpoint conPOST /v3/webhooks. Suscríbete solo a eventos documentados que impulsen tu integración. Este ejemplo utiliza transfer.state_changed.
Create webhook endpoint
data.id de la respuesta como WEBHOOK_ID. Solicita una URL de portal a GET /v3/webhooks/portal con una clave de API que tenga webhooks:write, obtén el secreto de firma de este endpoint y guárdalo por separado de tu clave de API en un gestor de secretos. La URL del portal concede acceso por sí sola y caduca al cabo de una hora, así que solicita una nueva cada vez y no la guardes ni la compartas.
El portal agrupa los eventos v3 por recurso: Customers, Capabilities, Accounts, Recipients, Transfers y API. Cada evento muestra su esquema de payload y un ejemplo. Los eventos heredados se marcan como obsoletos y se listan en un grupo Legacy independiente. Si tu endpoint ya está suscrito a un evento heredado, lo sigue recibiendo. Elige nombres de eventos v3 para las nuevas suscripciones.
Cambia los eventos de un endpoint
Lee un endpoint conGET /v3/webhooks/{webhookId}. La respuesta tiene la misma forma de events que GET /v3/webhooks. Nunca incluye el secreto de firma. Las lecturas requieren webhooks:read y devuelven 404 not_found para un ID de endpoint desconocido.
Actualiza el endpoint con PATCH /v3/webhooks/{webhookId}. Envía una cabecera Idempotency-Key. Las actualizaciones requieren webhooks:write.
- Envía solo
eventspara conservar la URL actual. - Envía solo
urlpara conservar la selección de eventos actual. eventsreemplaza toda la selección. Lee primero el endpoint e incluye todos los eventos que sigas necesitando.- Las nuevas suscripciones deben usar nombres de eventos v3.
- Puedes conservar un nombre de evento heredado si el endpoint ya está suscrito a él. Añadir un nuevo nombre heredado devuelve
400 validation_error.
Request body
Verifica antes de analizar
Swipelux entrega las nuevas integraciones de webhooks mediante Svix. Verifica el cuerpo bruto de la solicitud con el secreto de firma de tu endpoint y estas cabeceras:svix-idsvix-timestampsvix-signature
Verify signature
Persiste, reconoce y luego procesa
Coloca una restricción de unicidad sobre elid del envelope. Persiste el envelope verificado, devuelve 2xx con prontitud y luego procésalo de forma asíncrona.
Si el ID del evento ya existe, reconoce la entrega sin repetir los efectos secundarios completados. Reanuda el trabajo local pendiente o fallido mediante tu propia cola de reintentos. No utilices el campo attempt del envelope como clave de deduplicación ni como contador de reintentos de transporte.
Vuelve a obtener el estado actual
El orden de los webhooks no es un historial autoritativo del recurso. Utilizaresource.type y resource.id para localizar el objeto y luego obtén su estado actual antes de actualizar tu sistema.
Para un evento de transferencia, llama a GET /v3/transfers/{transferId}:
Refetch transfer
Recupera las entregas
UtilizaGET /v3/webhooks/portal para abrir los registros de entrega. Con webhooks:write, también puedes reintentar entregas fallidas o iniciar un replay manual. Una clave con solo webhooks:read abre un portal que muestra las entregas, pero no puede reintentarlas, repetirlas ni revelar los secretos de firma.
Cada replay debe pasar por la misma verificación de firma y el mismo buzón durable. Para recuperarte tras una caída, replaya la ventana afectada y vuelve a obtener cada recurso referenciado. Los IDs de evento completados siguen siendo no-ops; los registros incompletos se reanudan de forma asíncrona.
A continuación, verifica las entregas duplicadas y fuera de orden en sandbox y completa la lista de comprobación de Go live.