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.
data.id de la respuesta como WEBHOOK_ID. Abre el portal devuelto por GET /v3/webhooks/portal, obtén el secreto de firma de este endpoint y guárdalo por separado de tu clave de API en un gestor de secretos.
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
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}:
Recupera las entregas
UtilizaGET /v3/webhooks/portal para abrir los registros de entrega, reintentar entregas fallidas o iniciar un replay manual.
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.