Webhooks
Webhook Field Definitions:
| Field | Type | Description |
|---|---|---|
id | UUID | Webhook id |
eventId | UUID | Unique Id of the event that triggered the webhook. Every webhook has its own unique Id, which can be trusted by the IF system. |
status | enum | Webhook status (processing, successful, failed) |
numberOfAttempts | integer | Number of retries performed so far |
requestPayload | object map | Webhook request payload |
eventDateTime | datetime | Event Creation datetime |
lastAttemptDateTime | datetime | Last webhook retry datetime |
responseStatusCode | integer | Timestamp of last retry attempt |
responsePayload | string | Webhook response payload |
responseHeaders | object map | Webhook response headers |
lastAttemptErrorMessage | string | Last Attempt error message if any error occurred. |
List Webhooks
** GET /webhooks **
Supported query parameters:
| parameter | description |
|---|---|
| metadata.page.number | 0-indexed, default=0 |
| metadata.page.size | default=20, max=100 |
| data.webhook.status | list of processing, successful, failed |
| data.webhook.eventId | UUID of event |
| data.webhook.eventDateTimeFrom | minimum event datetime (2025-11-13T10:15:30) |
| data.webhook.eventDateTimeTo | maximum 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": "Success",
"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": "Webhook Received",
"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": "{\"message\": \"success\"}",
"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": "Ok",
"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"
]
}Updated 18 days ago