Webhooks

Overview

The Automatic Webhook Retry System ensures that webhook notifications are delivered reliably even when the receiving endpoint experiences temporary failures.

When a webhook delivery fails (for example, due to timeout or non-2xx response), the system automatically retries sending the webhook up to 5 times:

Retry AttemptDelay Before Retry
1st retry5 minutes
2nd retry15 minutes
3rd retry30 minutes
4th retry1 hour

After the 5th attempt fails, no further automatic retries will be performed.

If you need to re-trigger webhook delivery manually, the platform provides a Webhook Retry API, which allows you to request a retry for a specific webhook ID — provided that:

  • The webhook has a failed status
  • The webhook is not in progress
  • The webhook hasn’t already been successfully processed

If the webhook is already successful or in progress, the retry endpoint will respond with an error. You can also retrieve all webhook records using the Webhook List API, supporting pagination and metadata filtering.

Webhook Object Field Definitions:

FieldTypeDescription
idUUIDWebhook id
eventIdUUIDId of the event that triggered the webhook
statusenumWebhook status (processing, successful, failed)
numberOfAttemptsintegerNumber of retries performed so far
requestPayloadobject mapWebhook request payload
eventDateTimedatetimeEvent Creation datetime
lastAttemptDateTimedatetimeLast webhook retry datetime
responseStatusCodeintegerTimestamp of last retry attempt
responsePayloadstringWebhook response payload
responseHeadersobject mapWebhook response headers
lastAttemptErrorMessagestringLast Attempt error message if any error occurred.

Webhook Retry Conditions:

StatusAllowed to Retry?Reason
failed✔ YesWebhook delivery failed
proccessing❌ NoDelivery is already being processed
successful❌ NoAlready delivered successfully

List Webhooks

** GET /webhooks **

Supported query parameters:

parameterdescription
metadata.page.number0-indexed, default=0
metadata.page.sizedefault=20, max=100
data.webhook.statuslist of processing, successful, failed
data.webhook.eventIdUUID of event
data.webhook.eventDateTimeFromminimum event datetime (2025-11-13T10:15:30)
data.webhook.eventDateTimeTomaximum event datetime (2025-11-14T10:15:30)

{
    "workflow": {},
    "data": {
        "webhooks": [
            {
                "id": "00000000-0000-0000-0000-000000000000",
                "status": "successful",
                "subscriptionId": "00000000-0000-0000-0000-000000000000",
                "requestPayload": {
                    "data": {
                        "complianceCheck": null,
                        "outgoingTransfer": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "owner": "organization",
                            "scope": "internal",
                            "amount": 1.18,
                            "scheme": null,
                            "source": {
                                "type": "client-account",
                                "accountId": "00000000-0000-0000-0000-000000000000"
                            },
                            "status": "completed",
                            "clientId": null,
                            "currency": "GBP",
                            "returned": false,
                            "feeAmount": null,
                            "rollCount": 0,
                            "attributes": null,
                            "beneficiary": {
                                "title": "I.F. Technology Limited the second",
                                "account": {
                                    "iban": null,
                                    "alias": "Organization Account",
                                    "country": null,
                                    "bankName": null,
                                    "currency": "GBP",
                                    "ledgerNumber": "44355947",
                                    "routingCodes": null,
                                    "accountNumber": null,
                                    "accountHolderName": null
                                },
                                "address": {
                                    "city": "London",
                                    "street": "Freedom",
                                    "country": "GB",
                                    "postalCode": "34840",
                                    "houseNumber": "123456789"
                                },
                                "fullName": "I.F. Technology Limited the second",
                                "identity": {
                                    "type": "corporate",
                                    "country": null,
                                    "legalName": "I.F. Technology Limited the second",
                                    "corporationType": null,
                                    "identifications": [],
                                    "incorporationDate": null
                                }
                            },
                            "description": "ET Markup Profit of 20251114-48LBG9",
                            "destination": {
                                "type": "transaction-account",
                                "transactionAccountId": "00000000-0000-0000-0000-000000000000"
                            },
                            "feeCurrency": null,
                            "totalAmount": 1.18,
                            "triggerType": "automated",
                            "transferDate": "2025-11-14",
                            "cutOffDateTime": null,
                            "rootTransaction": {
                                "id": "00000000-0000-0000-0000-000000000000",
                                "clientId": "00000000-0000-0000-0000-000000000000",
                                "transactionType": "exchange-transaction",
                                "transactionNumber": "20251114-48LBG9",
                                "operationalRouteCategory": "charge-fee"
                            },
                            "schemeAttributes": null,
                            "transferReasonId": null,
                            "transactionNumber": "20251114-5BY4GQ",
                            "incomingTransferId": null,
                            "relatedTransaction": {
                                "id": null,
                                "nature": null
                            },
                            "originalTransferDate": "2025-11-14",
                            "transferCustomReason": null,
                            "requirementConfiguration": {
                                "balanceCheckStatus": "not-required",
                                "transferDateStatus": "fulfilled",
                                "authorizationStatus": "not-required",
                                "complianceCheckStatus": null
                            }
                        }
                    },
                    "connect": {},
                    "webhook": {
                        "type": "outgoing-transfer-completed",
                        "module": "outgoing-transfers"
                    },
                    "metadata": {}
                },
                "eventId": "00000000-0000-0000-0000-000000000000",
                "eventDateTime": "2025-11-14T08:04:48.205875",
                "numberOfAttempts": 3,
                "lastAttemptDateTime": "2025-11-14T08:24:48.939658",
                "responseStatusCode": 200,
                "responsePayload": "{\"exception\": \"stream is closed\"}",
                "responseHeaders": {
                    "date": [
                        "Fri, 14 Nov 2025 08:24:48 GMT"
                    ],
                    "x-request-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ],
                    "server": [
                        "nginx"
                    ],
                    "transfer-encoding": [
                        "chunked"
                    ],
                    "content-type": [
                        "text/html; charset=UTF-8"
                    ],
                    "cache-control": [
                        "no-cache, private"
                    ],
                    "x-token-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ]
                },
                "lastAttemptErrorMessage": null
            }
        ]
    },
    "connect": {},
    "metadata": {
        "page": {
            "size": 1,
            "number": 1,
            "totalElements": 145,
            "totalPages": 145
        }
    }
}
{
    "workflow": {},
    "data": {
        "webhooks": [
            {
                "id": "00000000-0000-0000-0000-000000000000",
                "status": "processing",
                "subscriptionId": "00000000-0000-0000-0000-000000000000",
                "requestPayload": {
                    "data": {
                        "account": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "iban": "GB16PAYR04034563261532",
                            "alias": "gbp saving account",
                            "status": "active",
                            "country": "GB",
                            "clientId": "00000000-0000-0000-0000-000000000000",
                            "currency": "GBP",
                            "attributes": {},
                            "connection": {
                                "id": "00000000-0000-0000-0000-000000000000",
                                "state": "completed-up-to-date",
                                "method": "built-in",
                                "status": "active",
                                "reference": "00000000-0000-0000-0000-000000000000",
                                "serviceProvider": "railsbank"
                            },
                            "ledgerNumber": "45687210",
                            "routingCodes": {
                                "bic": "PAYRGB2LXXX",
                                "sort-code": "040345"
                            },
                            "accountNumber": "63261532",
                            "mainAccountId": null,
                            "serviceProvider": "railsbank",
                            "availableBalance": 0.0,
                            "accountHolderName": "Foo Bar Inc.",
                            "receivableBalance": 0.0,
                            "accountHolderIdentityType": "corporate"
                        }
                    },
                    "connect": {
                        "connection": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "state": "completed-up-to-date",
                            "method": "built-in",
                            "status": "active",
                            "reference": "00000000-0000-0000-0000-000000000000",
                            "serviceProvider": "railsbank"
                        }
                    },
                    "webhook": {
                        "type": "account-activated",
                        "module": "accounts"
                    },
                    "metadata": {}
                },
                "eventId": "00000000-0000-0000-0000-000000000000",
                "eventDateTime": "2025-11-13T13:32:50.444499",
                "numberOfAttempts": 0,
                "lastAttemptDateTime": null,
                "responseStatusCode": null,
                "responsePayload": null,
                "responseHeaders": null,
                "lastAttemptErrorMessage": null
            }
        ]
    },
    "connect": {},
    "metadata": {
        "page": {
            "size": 1,
            "number": 1,
            "totalElements": 50,
            "totalPages": 50
        }
    }
}
{
    "workflow": {},
    "data": {
        "webhooks": [
            {
                "id": "00000000-0000-0000-0000-000000000000",
                "status": "successful",
                "subscriptionId": "00000000-0000-0000-0000-000000000000",
                "requestPayload": {
                    "data": {
                        "incomingTransfer": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "owner": "organization",
                            "scope": "internal",
                            "amount": 1.18,
                            "scheme": null,
                            "status": "completed",
                            "clientId": null,
                            "currency": "GBP",
                            "accountId": "00000000-0000-0000-0000-000000000000",
                            "feeAmount": null,
                            "senderName": "Joint Account with Amar",
                            "feeCurrency": null,
                            "totalAmount": null,
                            "transferDate": "2025-11-14",
                            "senderAccount": {
                                "iban": null,
                                "alias": null,
                                "country": "GB",
                                "bankName": null,
                                "currency": "GBP",
                                "ledgerNumber": null,
                                "routingCodes": {
                                    "sort-code": "123456"
                                },
                                "accountNumber": "95060008",
                                "accountHolderName": "TEST Rory Powis"
                            },
                            "receiverAccount": {
                                "iban": "",
                                "alias": "Organization Account",
                                "country": "",
                                "bankName": null,
                                "currency": "GBP",
                                "ledgerNumber": "44355947",
                                "routingCodes": {},
                                "accountNumber": "",
                                "accountHolderName": ""
                            },
                            "serviceProvider": "currencycloud",
                            "senderInformation": null,
                            "serviceProviderId": "00000000-0000-0000-0000-000000000000",
                            "transactionNumber": "20251114-DO7RDM",
                            "outgoingTransferId": "00000000-0000-0000-0000-000000000000",
                            "relatedTransaction": {
                                "id": null,
                                "nature": null
                            },
                            "serviceProviderReference": "BT-20251114-ZNSSLR",
                            "provisionedAccountCreditId": "00000000-0000-0000-0000-000000000000"
                        }
                    },
                    "connect": {},
                    "webhook": {
                        "type": "incoming-transfer-completed",
                        "module": "incoming-transfers"
                    },
                    "metadata": {}
                },
                "eventId": "00000000-0000-0000-0000-000000000000",
                "eventDateTime": "2025-11-14T08:04:58.226172",
                "numberOfAttempts": 3,
                "lastAttemptDateTime": "2025-11-14T08:24:59.121783",
                "responseStatusCode": 200,
                "responsePayload": "{\"exception\": \"stream is closed\"}",
                "responseHeaders": {
                    "date": [
                        "Fri, 14 Nov 2025 08:24:59 GMT"
                    ],
                    "x-request-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ],
                    "server": [
                        "nginx"
                    ],
                    "transfer-encoding": [
                        "chunked"
                    ],
                    "content-type": [
                        "text/html; charset=UTF-8"
                    ],
                    "cache-control": [
                        "no-cache, private"
                    ],
                    "x-token-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ]
                },
                "lastAttemptErrorMessage": null
            },
            {
                "id": "00000000-0000-0000-0000-000000000000",
                "status": "successful",
                "subscriptionId": "00000000-0000-0000-0000-000000000000",
                "requestPayload": {
                    "data": {
                        "complianceCheck": null,
                        "outgoingTransfer": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "owner": "organization",
                            "scope": "internal",
                            "amount": 1.18,
                            "scheme": null,
                            "source": {
                                "type": "client-account",
                                "accountId": "00000000-0000-0000-0000-000000000000"
                            },
                            "status": "completed",
                            "clientId": null,
                            "currency": "GBP",
                            "returned": false,
                            "feeAmount": null,
                            "rollCount": 0,
                            "attributes": null,
                            "beneficiary": {
                                "title": "I.F. Technology Limited the second",
                                "account": {
                                    "iban": null,
                                    "alias": "Organization Account",
                                    "country": null,
                                    "bankName": null,
                                    "currency": "GBP",
                                    "ledgerNumber": "44355947",
                                    "routingCodes": null,
                                    "accountNumber": null,
                                    "accountHolderName": null
                                },
                                "address": {
                                    "city": "London",
                                    "street": "Freedom",
                                    "country": "GB",
                                    "postalCode": "34840",
                                    "houseNumber": "123456789"
                                },
                                "fullName": "I.F. Technology Limited the second",
                                "identity": {
                                    "type": "corporate",
                                    "country": null,
                                    "legalName": "I.F. Technology Limited the second",
                                    "corporationType": null,
                                    "identifications": [],
                                    "incorporationDate": null
                                }
                            },
                            "description": "ET Markup Profit of 20251114-48LBG9",
                            "destination": {
                                "type": "transaction-account",
                                "transactionAccountId": "00000000-0000-0000-0000-000000000000"
                            },
                            "feeCurrency": null,
                            "totalAmount": 1.18,
                            "triggerType": "automated",
                            "transferDate": "2025-11-14",
                            "cutOffDateTime": null,
                            "rootTransaction": {
                                "id": "00000000-0000-0000-0000-000000000000",
                                "clientId": "00000000-0000-0000-0000-000000000000",
                                "transactionType": "exchange-transaction",
                                "transactionNumber": "20251114-48LBG9",
                                "operationalRouteCategory": "charge-fee"
                            },
                            "schemeAttributes": null,
                            "transferReasonId": null,
                            "transactionNumber": "20251114-5BY4GQ",
                            "incomingTransferId": null,
                            "relatedTransaction": {
                                "id": null,
                                "nature": null
                            },
                            "originalTransferDate": "2025-11-14",
                            "transferCustomReason": null,
                            "requirementConfiguration": {
                                "balanceCheckStatus": "not-required",
                                "transferDateStatus": "fulfilled",
                                "authorizationStatus": "not-required",
                                "complianceCheckStatus": null
                            }
                        }
                    },
                    "connect": {},
                    "webhook": {
                        "type": "outgoing-transfer-completed",
                        "module": "outgoing-transfers"
                    },
                    "metadata": {}
                },
                "eventId": "00000000-0000-0000-0000-000000000000",
                "eventDateTime": "2025-11-14T08:04:48.205875",
                "numberOfAttempts": 3,
                "lastAttemptDateTime": "2025-11-14T08:24:48.939658",
                "responseStatusCode": 200,
                "responsePayload": "{\"exception\": \"stream is closed\"}",
                "responseHeaders": {
                    "date": [
                        "Fri, 14 Nov 2025 08:24:48 GMT"
                    ],
                    "x-request-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ],
                    "server": [
                        "nginx"
                    ],
                    "transfer-encoding": [
                        "chunked"
                    ],
                    "content-type": [
                        "text/html; charset=UTF-8"
                    ],
                    "cache-control": [
                        "no-cache, private"
                    ],
                    "x-token-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ]
                },
                "lastAttemptErrorMessage": null
            },
            {
                "id": "00000000-0000-0000-0000-000000000000",
                "status": "successful",
                "subscriptionId": "00000000-0000-0000-0000-000000000000",
                "requestPayload": {
                    "data": {
                        "incomingTransfer": {
                            "id": "00000000-0000-0000-0000-000000000000",
                            "owner": "organization",
                            "scope": "internal",
                            "amount": 2.33,
                            "scheme": null,
                            "status": "completed",
                            "clientId": null,
                            "currency": "USD",
                            "accountId": "00000000-0000-0000-0000-000000000000",
                            "feeAmount": null,
                            "senderName": "USD TCC account",
                            "feeCurrency": null,
                            "totalAmount": null,
                            "transferDate": "2025-11-14",
                            "senderAccount": {
                                "iban": "GB43TCCL12345615662130",
                                "alias": null,
                                "country": "GB",
                                "bankName": null,
                                "currency": "USD",
                                "ledgerNumber": null,
                                "routingCodes": {
                                    "bic": "TCCLGB3L"
                                },
                                "accountNumber": null,
                                "accountHolderName": "Osman Gunbasar"
                            },
                            "receiverAccount": {
                                "iban": "",
                                "alias": "Organization Account",
                                "country": "",
                                "bankName": null,
                                "currency": "USD",
                                "ledgerNumber": "44916579",
                                "routingCodes": {},
                                "accountNumber": "",
                                "accountHolderName": ""
                            },
                            "serviceProvider": "currencycloud",
                            "senderInformation": null,
                            "serviceProviderId": "00000000-0000-0000-0000-000000000000",
                            "transactionNumber": "20251114-7QX5EX",
                            "outgoingTransferId": "00000000-0000-0000-0000-000000000000",
                            "relatedTransaction": {
                                "id": null,
                                "nature": null
                            },
                            "serviceProviderReference": "BT-20251114-XGBRYN",
                            "provisionedAccountCreditId": "00000000-0000-0000-0000-000000000000"
                        }
                    },
                    "connect": {},
                    "webhook": {
                        "type": "incoming-transfer-completed",
                        "module": "incoming-transfers"
                    },
                    "metadata": {}
                },
                "eventId": "00000000-0000-0000-0000-000000000000",
                "eventDateTime": "2025-11-14T08:04:26.361605",
                "numberOfAttempts": 3,
                "lastAttemptDateTime": "2025-11-14T08:24:27.140164",
                "responseStatusCode": 200,
                "responsePayload": "{\"exception\": \"stream is closed\"}",
                "responseHeaders": {
                    "date": [
                        "Fri, 14 Nov 2025 08:24:27 GMT"
                    ],
                    "x-request-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ],
                    "server": [
                        "nginx"
                    ],
                    "transfer-encoding": [
                        "chunked"
                    ],
                    "content-type": [
                        "text/html; charset=UTF-8"
                    ],
                    "cache-control": [
                        "no-cache, private"
                    ],
                    "x-token-id": [
                        "00000000-0000-0000-0000-000000000000"
                    ]
                },
                "lastAttemptErrorMessage": null
            }
        ]
    },
    "connect": {},
    "metadata": {
        "page": {
            "size": 3,
            "number": 0,
            "totalElements": 43,
            "totalPages": 15
        }
    }
}

Retry Webhook

** PATCH /webhooks/{webhookId} **

{
    "workflow": {
        "code": "retry"
    },
    "data": {},
    "connect": {},
    "metadata": {}
}

Success Response Example:

{
    "workflow": {
        "code": "retry"
    },
    "data": {
        "webhook": {
            "id": "00000000-0000-0000-0000-000000000000",
            "status": "failed",
            "subscriptionId": "00000000-0000-0000-0000-000000000000",
            "requestPayload": {
                "data": {
                    "complianceCheck": null,
                    "outgoingTransfer": {
                        "id": "00000000-0000-0000-0000-000000000000",
                        "owner": "client",
                        "scope": "external",
                        "amount": 35.0,
                        "scheme": "sepa",
                        "source": {
                            "type": "client-account",
                            "accountId": "00000000-0000-0000-0000-000000000000"
                        },
                        "status": "released",
                        "clientId": "00000000-0000-0000-0000-000000000000",
                        "currency": "EUR",
                        "returned": false,
                        "feeAmount": 0.0,
                        "rollCount": 0,
                        "attributes": null,
                        "beneficiary": {
                            "title": "John Doe",
                            "account": {
                                "iban": "AE070331234567890123456",
                                "alias": "UAE Test Account",
                                "country": "AE",
                                "bankName": null,
                                "currency": "EUR",
                                "ledgerNumber": null,
                                "routingCodes": {
                                    "bic": "ADCBAEAAREM"
                                },
                                "accountNumber": null,
                                "accountHolderName": null
                            },
                            "address": {
                                "city": "Abu Dhabi",
                                "street": "one",
                                "country": "AE",
                                "houseNumber": "1"
                            },
                            "fullName": "John Doe",
                            "identity": {
                                "type": "individual",
                                "country": null,
                                "birthDate": null,
                                "givenName": "John",
                                "familyName": "Doe",
                                "identifications": []
                            }
                        },
                        "description": "webhook test",
                        "destination": {
                            "type": "beneficiary-bank-account",
                            "beneficiaryId": "00000000-0000-0000-0000-000000000000",
                            "beneficiaryBankAccountId": "00000000-0000-0000-0000-000000000000"
                        },
                        "feeCurrency": "EUR",
                        "totalAmount": 35.0,
                        "triggerType": "manual",
                        "transferDate": "2025-11-13",
                        "cutOffDateTime": "2025-11-13T11:00:00",
                        "rootTransaction": null,
                        "schemeAttributes": null,
                        "transferReasonId": "00000000-0000-0000-0000-000000000000",
                        "transactionNumber": "20251113-3Q89A7",
                        "incomingTransferId": null,
                        "relatedTransaction": {
                            "id": null,
                            "nature": null
                        },
                        "originalTransferDate": "2025-11-13",
                        "transferCustomReason": null,
                        "requirementConfiguration": {
                            "balanceCheckStatus": "fulfilled",
                            "transferDateStatus": "fulfilled",
                            "authorizationStatus": "not-required",
                            "complianceCheckStatus": null
                        }
                    }
                },
                "connect": {},
                "webhook": {
                    "type": "outgoing-transfer-released",
                    "module": "outgoing-transfers"
                },
                "metadata": {}
            },
            "eventId": "00000000-0000-0000-0000-000000000000",
            "eventDateTime": "2025-11-13T07:33:28.527119",
            "numberOfAttempts": 6,
            "lastAttemptDateTime": "2025-11-13T10:48:51.709150512",
            "responseStatusCode": 404,
            "responsePayload": "{\"success\":false,\"error\":{\"message\":\"Token \\\"00000000-0000-0000-0000-000000000000\\\" not found\",\"id\":\"\"}}",
            "responseHeaders": {
                "date": [
                    "Thu, 13 Nov 2025 10:48:51 GMT"
                ],
                "server": [
                    "nginx"
                ],
                "transfer-encoding": [
                    "chunked"
                ],
                "content-type": [
                    "application/json"
                ],
                "cache-control": [
                    "no-cache, private"
                ]
            },
            "lastAttemptErrorMessage": null
        }
    },
    "connect": {},
    "metadata": {}
}

Error Response Example:

{
    "timestamp": "2025-11-17T08:15:45.015569228",
    "code": "if.banking.rdm.functional.webhook_invalid_status_update",
    "message": "Webhook status must be FAILED to retry, found Processing.",
    "messageParameters": [
        "failed",
        "Processing"
    ]
}