Skip to main content
All webhook payloads follow the same envelope:
The data object shape depends on the event type. Every field documented below is present in the data object.

accounts.created

Fired when a new account is created for an entity.
object
The newly created account.
object
Summary of how this account creation affects the entity.

account_details.created

Fired when bank account numbers or wallet details are generated for an account.
object
The newly created account details record.

account_details.updated

Fired when account details are modified — for example, a status change or metadata update.
string
Unique identifier for the account details record.
string
The ID of the entity that owns this account.
string
The ID of the account these details belong to.
string
The account number.
object
The issuing bank or institution.
string
Updated status of the account details record.
number
Original creation timestamp in Unix milliseconds.
number
Timestamp of this update in Unix milliseconds.

inflows.completed

Fired when a payment is received into an account.
string
Unique identifier for the inflow transaction.
number
Amount received in the smallest currency unit.
string
ISO 4217 currency code.
string
Unique reference for the transaction. Use this to deduplicate events.
string
Identifier of the sending counterparty.
string
The ID of the account that received the funds.
string
The ID of the entity that owns the receiving account.
string
Transaction status. successful for completed inflows.
string
Human-readable status description.
string
Payment reference or description from the sender.
string
inflow.
number
Fee applied to this transaction in the smallest currency unit.
object
Key-value metadata.
number
Creation timestamp in Unix milliseconds.
number
Last update timestamp in Unix milliseconds.

outflows.created

Fired when a transfer request is received and queued for processing.
string
Unique identifier for the outflow transaction.
number
Transfer amount in the smallest currency unit.
string
ISO 4217 currency code.
string
The idempotency key passed when initiating the transfer.
string
The ID of the recipient counterparty.
string
The ID of the source account being debited.
string
The ID of the entity initiating the transfer.
string
pending — transfer is queued and awaiting processing.
string
awaiting_processing.
string
Transfer description.
string
outflow.
number
Fee applied to this transfer in the smallest currency unit.
object
Key-value metadata.
number
Creation timestamp in Unix milliseconds.
number
Last update timestamp in Unix milliseconds.

outflows.completed

Fired when a transfer is delivered successfully to the recipient. The payload shape is identical to outflows.created. The status field will be successful and status_reason will be processing_complete.

outflows.failed

Fired when a transfer cannot be completed. Check status_reason for the failure cause. The payload shape is identical to outflows.created. The status field will be failed.
Common status_reason values include insufficient_funds, invalid_account_details, and compliance_hold. Use status_reason to determine whether to retry the transfer or surface an error to your user.

outflows.cancelled

Fired when a transfer is cancelled before it is processed. The payload shape is identical to outflows.created. The status field will be failed and status_reason will be cancelled_by_user.

payment_intent.completed

Fired when a Payment Intent completes successfully. Use this event to fulfil the customer’s order or mark the payment as paid.

payment_intent.failed

Fired when a Payment Intent cannot be completed. Check status_reason when it is present.

payment_intent.cancelled

Fired when a Payment Intent is cancelled before it is confirmed.

payment_refund.completed

Fired when a refund request completes successfully.

payment_refund.failed

Fired when a refund request fails.

funding_sessions_updated

Fired when a funding session is updated, such as when it is settled or failed.
If the funding session failed, then the failure object is included.

Failure Codes

The failure.code field identifies the reason for funding session failures. The codes are as follows: A data.meta field may also be included with additional information if you send any additional data to the field. The contents of this field vary by provider and are not guaranteed to be present. But for momo, a data.meta containing msisdn and channel field will always be present.