/transformer/utility/webhook{
"webhookUrl": "https://your-domain.com/webhook-endpoint"
}{
"success": true,
"data": {
"message": "Webhook URL updated successfully."
}
}z-webhook-signature: timestamp:signaturez-webhook-signature headereventCategory: The category of the event (e.g., "kyc")eventType: The type of action that occurred (e.g., "transitioned")eventStatus: The status of the event (varies by event category)eventObject: The data object containing event-specific details{
"eventCategory": "kyc",
"eventType": "transitioned",
"eventStatus": "approved",
"eventObject": {
"entityId": "entity_id",
"routingId": "routing_id",
"status": "approved",
"routingEnabled": true
}
}| Event Category | Description |
|---|---|
| kyc | Events related to Know Your Customer verification processes |
| transfer | Events related to money transfers in the system |
| webhook | Events related to webhook configuration changes |
| Event Type | Description |
|---|---|
| transitioned | Triggered when a KYC verification changes status |
{
"eventCategory": "kyc",
"eventType": "transitioned",
"eventStatus": "[status]",
"eventObject": {
"entityId": "entity_id",
"routingId": "routing_id",
"status": "[status]",
"routingEnabled": true
}
}| Status | Description |
|---|---|
| not_started | The KYC process has not been initiated |
| initiated | The KYC process has been started but not yet completed |
| reviewing | KYC information has been submitted and is under review |
| additional_info_required | Additional information is required to complete the KYC process |
| rejected | The KYC verification has been rejected |
| approved | The KYC verification has been approved |
| Event Type | Description |
|---|---|
| transitioned | Triggered when a transfer status changes |
POST /api/v1/transformer/transaction/simulate API is called.stepDetails object at this stage{
"eventCategory": "transfer",
"eventStatus": "pending",
"eventType": "transitioned",
"eventObject": {
"entityId": "entity_7fed923d_68e3_425c_9809_8ccfc390f59d",
"executionId": "exec_5284bb29_9f0c_4480_96af_e771b9df7585",
"transactionId": "partner_transaction_id_26",
"transactionStatus": "pending",
"stepDetails": {}
}
}{
"eventCategory": "transfer",
"eventStatus": "processing",
"eventType": "transitioned",
"eventObject": {
"entityId": "entity_7fed923d_68e3_425c_9809_8ccfc390f59d",
"executionId": "exec_15876c4c_e54c_4a5a_a737_5329b37c48e1",
"transactionId": "partner_transaction_id_28",
"transactionStatus": "processing",
"stepDetails": {}
}
}{
"eventCategory": "transfer",
"eventStatus": "processing",
"eventType": "transitioned",
"eventObject": {
"entityId": "entity_7fed923d_68e3_425c_9809_8ccfc390f59d",
"executionId": "exec_1a880a1a_01c1_4314_8f51_6f06ed51618b",
"transactionId": "partner_transaction_id_21",
"transactionStatus": "processing",
"stepDetails": {
"name": "Awaiting Fiat Deposit",
"status": "completed",
"currentStep": 1,
"totalSteps": 3
}
}
}{
"eventCategory": "transfer",
"eventStatus": "completed",
"eventType": "transitioned",
"eventObject": {
"entityId": "entity_7fed923d_68e3_425c_9809_8ccfc390f59d",
"executionId": "exec_1a880a1a_01c1_4314_8f51_6f06ed51618b",
"transactionId": "partner_transaction_id_21",
"transactionStatus": "completed",
"stepDetails": {
"name": "Making Transfer to Beneficiary",
"status": "completed",
"currentStep": 3,
"totalSteps": 3
}
}
}| Status | Description |
|---|---|
| pending | The transaction has been created via the simulate API but not yet executed |
| processing | The transaction is being executed and steps are in progress |
| completed | The transaction has been successfully completed |
| failed | The transaction has failed due to an error in one of the steps |
| Status | Description |
|---|---|
| completed | The step has been successfully completed |
| failed | The step has failed due to an error |
pending, processing, completed, and failed. However, webhooks will only be triggered for completed and failed statuses.| Event Type | Description |
|---|---|
| updated | Triggered when your webhook URL is updated |
{
"eventCategory": "webhook",
"eventType": "updated",
"eventStatus": "url_updated",
"eventObject": {
"previous": "https://your-domain.com/webhook-endpoint",
"updated": "https://your-domain.com/webhook-endpoint"
}
}eventObject structure may vary according to the event category and type. Your code should be flexible enough to handle these variations.curl --location --request PUT '/api/v1/transformer/utility/webhook' \
--header 'Content-Type: application/json' \
--data-raw '{
"webhookUrl": "https://your-domain.com/webhook-endpoint"
}'{
"success": true,
"data": {
"message": "Webhook URL updated successfully."
}
}