Webhooks
This document provides a guide to Fuse webhooks.
Configuring a webhook endpoint
A single URL for all webhooks can configured in organisation settings in the Portal.
![](https://files.readme.io/723b185-image.png)
IP Addresses
Fuse webhooks are sent from the following IP addresses. These can be added to an allow list if required.
Sandbox | Production |
---|---|
15.185.183.112 | 16.62.35.28 |
157.241.63.92 | 16.63.177.47 |
157.241.38.195 | 16.63.180.53 |
Fuse webhook structure
Headers
Fuse will send the following headers:
Field | Type | Description |
---|---|---|
X-Fuse-Timestamp | ISO-8601 Timestamp | Time that the webhook was sent to you. This will be in the following format: 2023-06-19T12:44:47Z. |
Webhook body
Webhook bodies are encoded in JSON format with the following fields:
Field | Type | Description |
---|---|---|
type | string | Type of event |
event_id | string | Id of the event in UUID format |
version | integer | The webhook schema version |
payload | Type representing the event type | Payload of the event |
Webhook events
The following section provides payload schemas for the various webook events.
Account opened
Sent when a new account has been opened.
Schema
Field | Title | Description |
---|---|---|
account_id | uuid | The account identifier in the Fuse system. |
account_type | OneOf | The type of account. Possible values are primary, payment or virtual. |
account_name | string | The name set on the account. |
customer_id | uuid | The ID of the customer |
external_id | string | External ID set when the account request is made. |
currency | string | ISO currency code showing the currency of the account. |
Example
{
"type": "account_opened",
"event_id": "018c35aa-4279-83e7-a90f-4b2901246c51",
"event_version": 1,
"account_opened": {
"account_id": "018c35aa-4279-83e7-a90f-4b2901246c51",
"account_name": "Contractors Inc.",
"customer_id": null,
"external_id": "01H2ZZV055MFPM8FD9RCJWM6R0",
"currency": "AED",
"account_type": "payment"
}
}
Account updated
Sent when a account has been updated.
Schema
Field | Title | Description |
---|---|---|
account_id | uuid | The account identifier in the Fuse system. |
account_name | string | The name set on the account. |
external_id | string | External ID set when the account request is made |
Example
{
"type": "account_updated",
"event_id": "018c35ab-98bf-4390-bd51-858e61a87859",
"event_version": 3,
"account_updated": {
"account_id": "018c35aa-4279-83e7-a90f-4b2901246c51",
"account_name": "Contractors Ltd.",
"external_id": "01H2ZZV055MFPM8FD9RCJWM6R0"
}
}
Outbound local payment created
A local payment has been initiated.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier from where the outbound payment has been made. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
amount_with_fee | integer | The amount of the transaction in minor currency including the fee. E.g. 100 = 1.00. |
instructed_amount | integer | The amount of the transaction as instructed without the fee in minor currency. |
fee_amount | integer | The amount of fee incurred for the transaction in minor currency. |
remitter | RemitterDetails | The details of the remitter of the payment. |
beneficiary | BeneficiaryDetails | The details of the beneficiary of the payment. |
purpose | PurposeCode | The purpose of the transaction. If this is unknown it is set to none. |
currency | string | ISO currency code showing the currency of the payment. |
external_reference | string | The reference as set by the customer when initiating the payment. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
Example
{
"type": "outbound_local_payment_created",
"event_id": "018c35b3-def3-a3bb-792d-f79534562555",
"event_version": 4,
"outbound_local_payment_created": {
"account_id": "018c355c-2413-16df-509f-40e71b142eb3",
"transaction_id": "018c35b3-def2-e645-1d5b-86be6746537b",
"instructed_amount": 51239,
"amount_with_fee": 51239,
"fee_amount": 0,
"remitter": {
"name": "Monday Inc.",
"identifier": {
"iban": "AE220910000000808720471"
}
},
"beneficiary": {
"name": "Fulan AlFulani",
"identifier": {
"iban": "AE120266712486572167372"
}
},
"external_reference": "local*1701708016",
"timestamp": "2023-12-04T16:40:29.683099191Z",
"purpose": "goods_bought",
"currency": "AED"
}
}
Outbound local payment submitted
A local payment has been submitted for processing.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier from where the outbound payment has been made. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
Example
{
"type": "outbound_local_payment_submitted",
"event_id": "018c35b3-e005-fd7b-ea42-aec8c20e521f",
"event_version": 6,
"outbound_local_payment_submitted": {
"account_id": "018c355c-2413-16df-509f-40e71b142eb3",
"transaction_id": "018c35b3-def2-e645-1d5b-86be6746537b",
"timestamp": "2023-12-04T16:40:29.957851510Z"
}
}
Outbound local payment executed
The local payment has been successfully processed.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier from where the outbound payment has been made. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
Example
{
"type": "outbound_local_payment_executed",
"event_id": "018c35b4-030f-a403-dfe2-7c757e94f00b",
"event_version": 7,
"outbound_local_payment_executed": {
"account_id": "018c355c-2413-16df-509f-40e71b142eb3",
"transaction_id": "018c35b3-def2-e645-1d5b-86be6746537b",
"timestamp": "2023-12-04T16:40:38.927642874Z"
}
}
Outbound local payment failed
The local payment attempt was unsuccessful.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier from where the outbound payment has been made. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
failure_reason | OneOf (FailureReason) | Cause of failure while processing payment. |
Example
{
"type": "outbound_local_payment_failed",
"event_id": "018c35b9-fbdc-8081-969a-bc591888d2e6",
"event_version": 12,
"outbound_local_payment_failed": {
"account_id": "018c0027-a9b0-1f65-54ea-fe723844940f",
"transaction_id": "018c35b9-8f58-9b36-370d-b5e3f00705ff",
"failure_reason": {
"bank_error": "Manual failure in Portal"
},
"timestamp": "2023-12-04T16:47:10.300679370Z"
}
}
Inbound local payment settled
An inbound local payment has settled into the account.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier from where the outbound payment has been made. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
amount_with_fee | integer | The amount of the transaction in minor currency including the fee. E.g. 100 = 1.00. |
instructed_amount | integer | The amount of the transaction as instructed without the fee in minor currency. |
fee_amount | integer | The amount of fee incurred for the transaction in minor currency. |
remitter | RemitterDetails | The details of the remitter of the payment. |
beneficiary | BeneficiaryDetails | The details of the beneficiary of the payment. |
purpose | PurposeCode | The purpose of the transaction. If this is unknown it is set to none. |
currency | string | ISO currency code showing the currency of the payment. |
external_reference | string | The reference as set by the customer when initiating the payment. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
Example
{
"type": "inbound_local_payment_settled",
"event_id": "018c35bc-9019-34b2-5210-ff9900d349bd",
"event_version": 40,
"inbound_local_payment_settled": {
"account_id": "018bfd91-ea86-a787-9d72-754cddfbc294",
"transaction_id": "018c35bc-9086-638d-0e9a-f1f46ea6146a",
"instructed_amount": 100000000,
"amount_with_fee": 100000000,
"fee_amount": 0,
"remitter": {
"name": "Topup",
"identifier": {
"iban": "AE080070000000785666509"
}
},
"beneficiary": {
"name": "AED Merchant Account",
"identifier": {
"iban": "AE460266386228195554412"
}
},
"external_reference": "funding*1701708590",
"timestamp": "2023-12-04T16:49:59.325104057Z",
"purpose": "none",
"currency": "AED"
}
}
Internal transfer created
An internal transfer between two accounts has been initiated.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier from where the transfer will be made from. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
amount | integer | The amount of the transaction in minor currency. E.g. 100 = 1.00. |
to_account_id | uuid | The account identifier for the transfer destination. |
reference | string | The reference as set by the customer when initiating the payment. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
Example
{
"type": "internal_transfer_created",
"event_id": "018c35ad-e939-11e1-b8ac-0896580ef2f6",
"event_version": 38,
"internal_transfer_created": {
"account_id": "018bfd91-ea86-a787-9d72-754cddfbc294",
"transaction_id": "018c35ad-e939-eea5-d179-495d3fe1a783",
"amount": 1000000,
"to_account_id": "018c355c-2413-16df-509f-40e71b142eb3",
"reference": "transfer-1701707629",
"timestamp": "2023-12-04T16:33:59.155913761Z"
}
}
Inbound internal transfer settled
An internal transfer to the account has been completed and settled.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier of where the inbound transfer is settling into. |
from_account_id | uuid | The account identifier for the transfer source. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
amount | integer | The amount of the transaction in minor currency. E.g. 100 = 1.00. |
reference | string | The reference as set by the customer when initiating the payment. |
Example
{
"type": "inbound_internal_transfer_settled",
"event_id": "018c35ad-e9ab-ae02-28a0-ebc9d3b70a89",
"event_version": 3,
"inbound_internal_transfer_settled": {
"account_id": "018c355c-2413-16df-509f-40e71b142eb3",
"from_account_id": "018bfd91-ea86-a787-9d72-754cddfbc294",
"transaction_id": "018c35ad-e9ab-ae02-28a0-ebc9d3b70a89",
"amount": 1000000,
"timestamp": "2023-12-04T16:33:59.211640Z",
"reference": "transfer-1701707629"
}
}
Internal transfer settled
A transfer from the account has been completed.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier of where the transfer is settling from. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
Example
{
"type": "internal_transfer_settled",
"event_id": "018c35ad-ea8e-031c-55ec-86af02893c79",
"event_version": 39,
"internal_transfer_settled": {
"account_id": "018bfd91-ea86-a787-9d72-754cddfbc294",
"transaction_id": "018c35ad-e939-eea5-d179-495d3fe1a783",
"timestamp": "2023-12-04T16:33:59.211640Z"
}
}
Internal transfer failed
An attempted internal transfer between two accounts was unsuccessful.
Schema
Field | Type | Description |
---|---|---|
account_id | uuid | The account identifier of where the transfer is settling from. |
transaction_id | uuid | The fuse transaction identifier for the outbound transaction. |
timestamp | ISO8601 date time | The timestamp of when the event took place. |
failure_reason | OneOf (FailureReason) | Cause of failure while processing transfer. |
Example
{
"type": "internal_transfer_failed",
"event_id": "697cc542-aa22-4ee3-a278-949d59f24b15",
"event_version": 44,
"internal_transfer_failed": {
"account_id": "018bfd91-ea86-a787-9d72-754cddfbc294",
"transaction_id": "018c35ad-e939-eea5-d179-495d3fe1a783",
"timestamp": "2023-12-04T16:33:59.211640Z",
"failure_reason": {
"bank_error": "Manual failure in Portal"
},
}
}
Updated 25 days ago