Webhooks
Events and payloads
Learn about the events and payloads that are available for webhooks, including detailed examples and best practices.
Available Events
Webhooks provide real-time notifications about important events in your application. You can subscribe to these events to automate workflows, maintain data synchronization, or trigger custom business logic.
Event Structure
Each webhook event follows this structure:
Customer Events
Customer events notify you about changes to customer profiles and information.
Event Name | Description | Available Data | Example Payload |
---|---|---|---|
customer.created | Triggered when a new customer is created | - id : Customer identifier- firstName : Customer's first name- middleName : Customer's middle name- lastName : Customer's last name- birthDate : Customer's date of birth- phone : Customer's phone number- email : Customer's email address- createdAt : Timestamp of creation- status : Customer account status | json<br/>{<br/> "id": "cus_123",<br/> "firstName": "John",<br/> "lastName": "Doe",<br/> "email": "john@example.com",<br/> "status": "active"<br/>} |
customer.updated | Triggered when customer information is modified | - id : Customer identifier- firstName : Customer's first name- middleName : Customer's middle name- lastName : Customer's last name- birthDate : Customer's date of birth- phone : Customer's phone number- email : Customer's email address- updatedAt : Timestamp of update- status : Customer account status- changes : Array of modified fields | json<br/>{<br/> "id": "cus_123",<br/> "changes": ["phone", "email"],<br/> "status": "verified"<br/>} |
Transfer Events
Transfer events provide real-time updates about money movement operations.
Event Name | Description | Available Data | Example Payload |
---|---|---|---|
transfer.created | Triggered when a new transfer is initiated | - id : Transfer identifier- onBehalfOf : Customer the transfer is for- state : Current transfer state- amount : Transfer amount- source : Source details including:• currency : Source currency• paymentRail : Payment rail used• accountId : Source account identifier• routingNumber : Bank routing number (if applicable)- destination : Destination details including:• currency : Destination currency• accountId : Destination account identifier• routingNumber : Bank routing number (if applicable)- metadata : Custom key-value pairs- createdAt : Timestamp of creation | json<br/>{<br/> "id": "tr_123",<br/> "amount": 1000.00,<br/> "source": {<br/> "currency": "USD",<br/> "paymentRail": "ach"<br/> },<br/> "destination": {<br/> "currency": "EUR"<br/> }<br/>} |
transfer.updated | Triggered when transfer status changes | - id : Transfer identifier- onBehalfOf : Customer the transfer is for- state : Updated transfer state- amount : Transfer amount- source : Source details including:• currency : Source currency• paymentRail : Payment rail used• accountId : Source account identifier- destination : Destination details including:• currency : Destination currency• accountId : Destination account identifier- metadata : Custom key-value pairs- updatedAt : Timestamp of update- previousState : Previous transfer state | json<br/>{<br/> "id": "tr_123",<br/> "state": "processing",<br/> "previousState": "pending"<br/>} |
transfer.completed | Triggered when transfer successfully completes | - id : Transfer identifier- onBehalfOf : Customer the transfer is for- state : Final transfer state- amount : Transfer amount- source : Source details including:• currency : Source currency• paymentRail : Payment rail used• accountId : Source account identifier- destination : Destination details including:• currency : Destination currency• accountId : Destination account identifier- metadata : Custom key-value pairs- completedAt : Timestamp of completion- settlementDate : Expected settlement date | json<br/>{<br/> "id": "tr_123",<br/> "state": "completed",<br/> "settlementDate": "2024-03-22"<br/>} |
transfer.failed | Triggered when transfer processing fails | - id : Transfer identifier- onBehalfOf : Customer the transfer is for- state : Failed transfer state- amount : Transfer amount- source : Source details including:• currency : Source currency• paymentRail : Payment rail used• accountId : Source account identifier- destination : Destination details including:• currency : Destination currency• accountId : Destination account identifier- metadata : Custom key-value pairs- failedAt : Timestamp of failure- failureReason : Detailed error message- failureCode : Error code for programmatic handling | json<br/>{<br/> "id": "tr_123",<br/> "state": "failed",<br/> "failureReason": "Insufficient funds",<br/> "failureCode": "INSUFFICIENT_FUNDS"<br/>} |