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.

IP Addresses

Fuse webhooks are sent from the following IP addresses. These can be added to an allow list if required.

SandboxProduction
15.185.183.11216.62.35.28
157.241.63.9216.63.177.47
157.241.38.19516.63.180.53

Fuse webhook structure

Headers

Fuse will send the following headers:

FieldTypeDescription
X-Fuse-TimestampISO-8601 TimestampTime 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:

FieldTypeDescription
typestringType of event
event_idstringId of the event in UUID format
versionintegerThe webhook schema version
payloadType representing the event typePayload 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

FieldTitleDescription
account_iduuidThe account identifier in the Fuse system.
account_typeOneOfThe type of account. Possible values are primary, payment or virtual.
account_namestringThe name set on the account.
customer_iduuidThe ID of the customer
external_idstringExternal ID set when the account request is made.
currencystringISO 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

FieldTitleDescription
account_iduuidThe account identifier in the Fuse system.
account_namestringThe name set on the account.
external_idstringExternal 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

FieldTypeDescription
account_iduuidThe account identifier from where the outbound payment has been made.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
amount_with_feeintegerThe amount of the transaction in minor currency including the fee. E.g. 100 = 1.00.
instructed_amountintegerThe amount of the transaction as instructed without the fee in minor currency.
fee_amountintegerThe amount of fee incurred for the transaction in minor currency.
remitterRemitterDetailsThe details of the remitter of the payment.
beneficiaryBeneficiaryDetailsThe details of the beneficiary of the payment.
purposePurposeCodeThe purpose of the transaction. If this is unknown it is set to none.
currencystringISO currency code showing the currency of the payment.
external_referencestringThe reference as set by the customer when initiating the payment.
external_idstringExternal ID that was set on the create payment request. If nothing was set this will be none.
timestampISO8601 date timeThe 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",
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
    "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

FieldTypeDescription
account_iduuidThe account identifier from where the outbound payment has been made.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
external_idstringExternal ID that was set on the create payment request. If nothing was set this will be none.
timestampISO8601 date timeThe 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",
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
    "timestamp": "2023-12-04T16:40:29.957851510Z"
  }
}

Outbound local payment executed

The local payment has been successfully processed.

Schema

FieldTypeDescription
account_iduuidThe account identifier from where the outbound payment has been made.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
external_idstringExternal ID that was set on the create payment request. If nothing was set this will be none.
timestampISO8601 date timeThe 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",
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
    "timestamp": "2023-12-04T16:40:38.927642874Z"
  }
}

Outbound local payment failed

The local payment attempt was unsuccessful.

Schema

FieldTypeDescription
account_iduuidThe account identifier from where the outbound payment has been made.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
timestampISO8601 date timeThe timestamp of when the event took place.
external_idstringExternal ID that was set on the create payment request. If nothing was set this will be none.
failure_reasonOneOf (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"
    },
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
    "timestamp": "2023-12-04T16:47:10.300679370Z"
  }
}

Inbound local payment settled

An inbound local payment has settled into the account.

Schema

FieldTypeDescription
account_iduuidThe account identifier from where the outbound payment has been made.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
amount_with_feeintegerThe amount of the transaction in minor currency including the fee. E.g. 100 = 1.00.
instructed_amountintegerThe amount of the transaction as instructed without the fee in minor currency.
fee_amountintegerThe amount of fee incurred for the transaction in minor currency.
remitterRemitterDetailsThe details of the remitter of the payment.
beneficiaryBeneficiaryDetailsThe details of the beneficiary of the payment.
purposePurposeCodeThe purpose of the transaction. If this is unknown it is set to none.
currencystringISO currency code showing the currency of the payment.
external_referencestringThe reference as set by the customer when initiating the payment.
timestampISO8601 date timeThe 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

FieldTypeDescription
account_iduuidThe account identifier from where the transfer will be made from.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
amountintegerThe amount of the transaction in minor currency. E.g. 100 = 1.00.
to_account_iduuidThe account identifier for the transfer destination.
referencestringThe reference as set by the customer when initiating the payment.
external_idstringExternal ID that was set on the create internal transfer request. If nothing was set this will be none.
timestampISO8601 date timeThe 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",
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
    "timestamp": "2023-12-04T16:33:59.155913761Z"
  }
}

Inbound internal transfer settled

An internal transfer to the account has been completed and settled.

Schema

FieldTypeDescription
account_iduuidThe account identifier of where the inbound transfer is settling into.
from_account_iduuidThe account identifier for the transfer source.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
timestampISO8601 date timeThe timestamp of when the event took place.
amountintegerThe amount of the transaction in minor currency. E.g. 100 = 1.00.
referencestringThe reference as set by the customer when initiating the payment.
external_idstringExternal ID that was set on the create internal transfer request. If nothing was set this will be none.

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",
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
  }
}

Internal transfer settled

A transfer from the account has been completed.

Schema

FieldTypeDescription
account_iduuidThe account identifier of where the transfer is settling from.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
external_idstringExternal ID that was set on the create internal transfer request. If nothing was set this will be none.
timestampISO8601 date timeThe 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",
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
    "timestamp": "2023-12-04T16:33:59.211640Z"
  }
}

Internal transfer failed

An attempted internal transfer between two accounts was unsuccessful.

Schema

FieldTypeDescription
account_iduuidThe account identifier of where the transfer is settling from.
transaction_iduuidThe fuse transaction identifier for the outbound transaction.
timestampISO8601 date timeThe timestamp of when the event took place.
failure_reasonOneOf (FailureReason)Cause of failure while processing transfer.
external_idstringExternal ID that was set on the create internal transfer request. If nothing was set this will be none.

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"
    },
    "external_id": "01JDHZK7QKF0WWQG43WNFQ3YCX",
  }
}