Webhooks
Real-time notifications for verification, rail, and transfer events.
For complete API specification, see the API Reference.
Subscribe to webhook events to react to verification updates, rail status changes, and transfer state transitions in real time.
Configure webhooks
Set the destination URL on your merchant account. Webhooks are scoped per merchant — every event for any customer under that merchant is delivered to the same endpoint.
Payload structure
Every delivery has the same envelope:
createdAt is a Unix epoch in milliseconds.
Customer events
customer.verification_changed
Fired when a customer's KYC (individual) or KYB (business) verification status transitions.
| Field | Type | Description |
|---|---|---|
customerId | string | Customer ID |
customerType | string | individual or business |
verificationStatus | string | Individual: not_started, pending, approved, rejected. Business: pending, approved, rejected. |
previousStatus | string | null | Status before this transition |
reason | string | null | Set when verificationStatus = rejected |
customer.rail.status_changed
Fired when a rail's operational status transitions.
| Field | Values |
|---|---|
rail | ach_pooled, ach_named, fedwire_pooled, fedwire_named, sepa_pooled, sepa_named, swift_pooled, swift_named, pix_pooled, pix_named |
railStatus | requested, ready_to_use, rejected |
customer.rail.documents_requested
Fired when compliance has reviewed a rail and needs additional documents before approval. The railStatus is unchanged — collect the listed documents and re-submit.
reason is optional. requiredDocuments lists Swipelux-defined document type identifiers — provider names are never exposed.
Transfer events
Transfer events cover both pay-ins and pay-outs. The customer is identified via onBehalfOf.
transfer.created
transfer.updated
transfer.completed
transfer.failed
transfer.funded_partial
Fired when a pay-in receives funding below the expected amount.
transfer.amount_adjusted
Fired when the booked amount diverges from the quoted amount (FX drift, fee adjustments, partial settlement).
Event reference
| Event | Description |
|---|---|
customer.verification_changed | KYC / KYB status transition |
customer.rail.status_changed | Rail status transition |
customer.rail.documents_requested | Compliance needs more docs for a rail |
transfer.created | Transfer initiated |
transfer.updated | Transfer state transition (non-terminal) |
transfer.completed | Transfer reached completed |
transfer.failed | Transfer reached failed |
transfer.funded_partial | Pay-in funded below expected amount |
transfer.amount_adjusted | Booked amount diverged from quoted amount |
Security
Webhooks are signed with HMAC-SHA256. Verify the X-Webhook-Signature header before trusting any payload: