Payables Webhooks
In addition to the TransferMate Payments service, a webhook service system is available. This is how we keep our Partners updated with the status of their beneficiaries and transactions, and complete the round trip of information back to our users.
As webhooks require TransferMate to reach into our partners systems the method of Authentication which we use is very important. The TransferMate webhook system uses a single key pairing sent in a custom header of each request.
The events can be identified using the event_code. Each number corrilates with an event type. In the below examples, you will see the event_code for each type. It is important to use this as the identifier, instead of the status or description (for example), as these are liable to change.
Understanding and implementing the various Error Codes TransferMate expects back from a webhook call. And deciding and agree on a schedule of retry attempts should one of these errors be encountered.
Payment Paid
The payment paid webhook is raised once TransferMate has successfully received funds from the user into our local TransferMate account.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "4dc3934f-0865-43b8-8d34-0a813346f3d1",
"customer_id": "80812345",
"event_code": "1",
"event_details": {
"Unique_Record_id": "T1234567",
"description": "Payment_Paid",
"updated_at": "2019-10-24 10:33:24Z",
"status": "Paid"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Payment Rejected
The payment rejected webhook is raised when the beneficiary bank account rejects the transfer and sends the funds back.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
status_further_info |
Reject Reason Code. See Reject Reason Codes in Codes and Messages for more information | Varchar |
description |
Details about the webhook call | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "1391cc97-45da-40ac-b3f2-e11e5cc05849",
"customer_id": "80894601",
"event_code": "3",
"event_details": {
"Unique_Record_id": "T3614431",
"status_further_info": "R03",
"description": "Payment_Rejected",
"updated_at": "2022-02-23 13:30:53+00",
"status": "Rejected"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Payment Cancelled
The payment cancelled webhook is raised when the user requests to cancel the transfer, before the funds have been sent.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "8252d759-d2b3-4ae4-ad2a-5256b9a81aa4",
"customer_id": "80812345",
"event_code": "4",
"event_details": {
"Unique_Record_id": "T1234567",
"description": "Payment_Cancelled",
"updated_at": "2019-10-24 10:33:24Z",
"status": "Cancelled"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Payment Complete
The payment complete webhook is raised once TransferMate has sent the funds from our TransferMate account to the beneficiary account.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "84588fbe-2036-4edf-be8a-75431eb406e9",
"customer_id": "80812345",
"event_code": "2",
"event_details": {
"Unique_Record_id": "T1234567",
"description": "Payment_PaymentComplete",
"value_date": "2019-10-24",
"updated_at": "2019-10-24 10:33:24Z",
"status": "Payment Complete"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Credit
The credit webhook is raised once funds have been added to a Global Account.
Success response Body Payload Example
The response body includes the following parameters:
rail_type
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
ID of the customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object that holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates' unique Identifier for the record | Varchar |
Global_Account |
The name of the Global Account that is being credited | Varchar |
ga_account_id |
The user_bank_id that is returned in the activate global account | Varchar |
reference |
A transaction reference | Varchar |
currency |
The currency of the Global Account that is being credited | Varchar |
amount |
The amount that is being credited | Varchar |
payer |
Payer to the Global Account | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
Further details about the webhook call | Varchar |
rail_type |
Information on the payment rail used by sender | Varchar |
Example Success Response
"event_id": "019a5403-ebdb-7266-85ee-26e84787e593",
"customer_id": "80816177",
"event_code": "50",
"event_details": {
"Unique_Record_id": "T14942860",
"Global_Account": "",
"currency": "USD",
"amount": "10",
"payer": "",
"ga_account_id": 607985,
"reference": "Ref: Fingal County",
"rail_type": "ACH",
"description": "Credit",
"updated_at": "2025-11-05 10:54:11+00",
"status": "Credit"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Customer AML Complete
The customer AML completed webhook is raised when a user has successfully passed all Anti Money Laundering checks in the TransferMate system.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "3511e175-ab2c-40ec-ba5d-49e466c86328",
"customer_id": "80812345",
"event_code": "6",
"event_details": {
"Unique_Record_id": "80812345",
"description": "CustomerAMLCompleted",
"updated_at": "2019-10-24 10:33:24Z",
"status": "Active"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Customer Bank Account Direct Debit Mandate Success
The customer bank account direct debit mandate success webhook is raised once TransferMate has received a direct debit mandate from the user for one of their bank accounts, and all information is correct and adequate.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "dc213711-092a-469f-95fb-0d818a50ed95",
"customer_id": "80812345",
"event_code": "7",
"event_details": {
"Unique_Record_id": "12345",
"description": "CustomerBankAccount_DirectDebitMandate_Success",
"updated_at": "2019-10-24 10:33:24Z",
"status": "Active"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Beneficiary Active
The beneficiary active webhook is raised when a beneficiary successfully passes all of TransferMates compliance checks. Or a beneficiary which has previously passed these checks is reactivated on the TransferMate system.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "3af0a277-e024-4112-ac12-ce21c5be172e",
"customer_id": "80812345",
"event_code": "17",
"event_details": {
"Unique_Record_id": "12345",
"status": "Bene_Active",
"updated_at": "2019-10-24 10:33:24Z",
"description": "Active"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Beneficiary Deactive
The beneficiary deactivated webhook is raised when the user deactivated a beneficiary on the TransferMate system.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "d20e81d9-2338-433a-bcad-b1aa02438b33",
"customer_id": "80812345",
"event_code": "18",
"event_details": {
"Unique_Record_id": "12345",
"status": "Bene_DeActivated",
"updated_at": "2019-10-24 10:33:24Z",
"description": "Inactive"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Beneficiary Pending (Deprecated)
The beneficiary pending webhook is raised in response to a user calling the add beneficiary API endpoint. This is to indicate that TransfeMate has received the beneficiary details and they are currently undergoing compliance checks.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "92a0450b-151c-48da-8e97-3c10e1873f39",
"customer_id": "80812345",
"event_code": "20",
"event_details": {
"Unique_Record_id": "12345",
"status": "Bene_Pending",
"updated_at": "2019-10-24 10:33:24Z",
"description": "Pending"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |
Beneficiary Rejected
The beneficiary rejected webhook is raised when TransferMate have rejected the beneficiary as it has failed compliance checks. This beneficiary is deactivated and cannot be reactivated.
Success response Body Payload Example
The response body includes the following parameters:
| Field | Description | Type |
event_id |
Unique identifier for this specific webhook call | Varchar |
customer_id |
Id of customer requesting the webhook | Varchar |
event_code |
Identifier for webhook type. | Varchar |
event_details |
object which holds further details about the webhook call | Varchar |
Unique_Record_id |
TransferMates unique Identifier for the record | Varchar |
description |
Details about the webhook call | Varchar |
Value_date |
Date the funds are expected to be with the beneficiary | Varchar |
updated_at |
date field, when the webhook was fired | Varchar |
status |
further details about the webhook call | Varchar |
Example Success Response
"event_id": "d07b8a67-23e6-4451-9c3e-6328dd60d36e",
"customer_id": "80812345",
"event_code": "19",
"event_details": {
"Unique_Record_id": "12345",
"status": "Bene_Rejected",
"updated_at": "2019-10-24 10:33:24Z",
"description": "Rejected"
}
}
Error response Body Payload Example
The error response body includes the following parameters:
| Field | Description | Type |
400 |
Bad Request - will trigger automatic retry attempts | |
401 |
Unauthorised - will NOT trigger automatic retry attempt | |
403 |
Forbidden - will NOT trigger automatic retry attempts | |
404 |
Not Found - will NOT trigger automatic retry attempts | |
500 |
Bad Request - will trigger automatic retry attempts | |
501 |
Bad Request - will NOT trigger automatic retry attempts | |
503 |
Service Unavailable - will trigger automatic retry attempts |