Skip to main content
See Webhooks overview for the delivery model, retries, and signature verification, and the Webhooks API reference for creating and managing webhook endpoints. 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.

entities.created

Fired when a new entity is created via POST /individual-entities or POST /business-entities. data is the entity object directly, not wrapped further.
string
Unique entity identifier.
string
individual or business.
string
Review state. One of incomplete, pending, approved, rejected, or suspended. Always incomplete for a newly created entity.
string
Display name for the entity.
boolean
Whether this entity is the top of its hierarchy, or a child of another entity.
string
The ID of the parent entity, when this entity was created under one.
string
The ID of the associated person record. Present only when type is individual.
string
The ID of the associated business record. Present only when type is business.
string
The ID of the user associated with this entity, when applicable.
string
How the entity was created. e.g. api, user.
string
The compliance risk band assigned to this entity. e.g. medium.
number
Unix timestamp in milliseconds when the entity was created.
number
Unix timestamp in milliseconds when the entity was last updated.

entities.updated

Fired when an entity’s state changes, e.g. status moves from pending to approved, or any other field on the entity object is updated. data is the entity object directly, not wrapped further.
string
Unique entity identifier.
string
individual or business.
string
Review state. One of incomplete, pending, approved, rejected, or suspended.
string
Display name for the entity.
boolean
Whether this entity is the top of its hierarchy, or a child of another entity.
string
The ID of the parent entity, when this entity was created under one.
string
The ID of the associated person record. Present only when type is individual.
string
The ID of the associated business record. Present only when type is business.
string
The ID of the user associated with this entity, when applicable.
string
How the entity was created. e.g. api, user.
string
The compliance risk band assigned to this entity. e.g. medium.
number
Unix timestamp in milliseconds when the entity was created.
number
Unix timestamp in milliseconds when the entity was last updated.

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. 100 = $1.00 USD.
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.
string
The rail or method for this inflow, e.g. bank-transfer, book-transfer.
number
Fee applied to this transaction in the smallest currency unit.
object
Provider-specific metadata. Field set varies by payment_type; commonly includes fx_quote_id and provider_reference when the inflow involved a currency conversion.
object
The account credited.
number
Creation timestamp in Unix milliseconds.
number
Last update timestamp in Unix milliseconds.

funding_sessions.updated

Fired when a funding session is updated, such as when it is settled or failed.
string
Unique identifier for the funding session.
string
Current status of the funding session. e.g. settled, failed, awaiting_user.
string
The status before this update.
number
Funding amount in the smallest currency unit. 100 = $1.00 USD.
string
ISO 4217 currency code.
string
The ID of the account being funded.
string
Unique reference for the funding session. Use this to deduplicate events.
string
Description of the funding session.
object
Present when status is settled.
object
Present when status is failed. See Failure codes below.
object
Optional key-value metadata, present only when additional data was sent to the field. Contents vary by provider. For momo, always includes msisdn and channel.

Failure codes

The failure.code field identifies the reason for funding session failures:

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.
string
Unique identifier for the payment intent.
string
ISO 4217 currency code.
number
Amount in the smallest currency unit. 100 = $1.00 USD.
string
Merchant-supplied reference for the payment.
string
Description of what the payment is for.
string
completed for a successful payment intent.
string
Human-readable status description. Present when status is cancelled. For a failed payment, check status_reason on the nested intent_action instead.
string
The ID of the entity receiving the payment.
string
The ID of the account credited.
number
Unix timestamp in milliseconds when the payment intent was created.
object | null
The confirmation attempt for this payment intent. See The Intent Action object. null after a cancellation.

payment_intent.failed

Fired when a Payment Intent cannot be completed. Check status_reason on the nested intent_action when it is present. The payload shape is identical to payment_intent.completed. The status field will be failed.

payment_intent.cancelled

Fired when a Payment Intent is cancelled before it is confirmed. The payload shape is identical to payment_intent.completed. The status field will be cancelled, and intent_action is null since no confirmation was submitted.

payment_refund.completed

Fired when a refund request completes successfully.
string
Unique identifier for the refund.
string
Merchant-supplied reference for the refund.
string
The ID of the original payment this refund applies to.
number
Refund amount in the smallest currency unit. 100 = $1.00 USD.
string
ISO 4217 currency code.
string
Reason provided for the refund.
string
successful for a completed refund.
string
Human-readable status description. Present when status is failed.
string
The ID of the account the refund was issued from.
string
The ID of the entity that issued the refund.
number
Unix timestamp in milliseconds when the refund was created.

payment_refund.failed

Fired when a refund request fails. The payload shape is identical to payment_refund.completed. The status field will be failed.

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. 100 = $1.00 USD.
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.
string
The rail or method for this transfer, e.g. bank-transfer, book-transfer. For a card transaction, one of card-debit or card-debit-recoup (both debits).
number
Fee applied to this transfer in the smallest currency unit.
object
Provider-specific metadata. Field set varies by payment_type; commonly includes fx_quote_id and provider_reference when the transfer involved a currency conversion.
object
The source account being debited.
string
Present for card transactions. The ID of the card used.
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.

outflows.refunded

Fired when a completed transfer is reversed or refunded back to the paying account. The event name is outflows.refunded, but the payload’s type field is inflow.
string
Unique identifier for this credit record.
number
Amount returned, in the smallest currency unit. 100 = $1.00 USD.
string
ISO 4217 currency code.
string
Unique reference for this record.
string
Synthetic counterparty ID for the card network, in the form acct-{account_id}-card-debit-reversal or acct-{account_id}-card-credit-refund.
string
The ID of the account credited.
string
The ID of the entity that owns the account.
string
successful once the credit is applied.
string
card_payment_reversed for a reversal, card_credit_refunded for a refund.
string
Description of the credit.
string
inflow.
string
card-debit-reversal when funds from a specific prior card debit are reversed, or card-credit-refund when the provider issues a refund without referencing a specific original transaction.
number
Fee applied to this credit, in the smallest currency unit.
object
Provider-specific metadata. Field set varies by payment_type.
object
The account credited.
string
Present on reversals. The ID of the card the original debit was made on.
number
Unix timestamp in milliseconds.
number
Unix timestamp in milliseconds.
A refund (no source_payment_id) doesn’t reference a specific prior transaction; a reversal always does.

cards.created

Fired when a new card is issued via POST /disposable-cards or POST /virtual-cards.
string
Unique card identifier.
string
Display name assigned to the card.
string
Card type. One of disposable or virtual.
string
Card status. One of active, blocked, or fraud.
string
ISO 4217 currency code for the card.
string
The ID of the account the card is funded from.
string
Display name of the account the card is funded from.
string
Date the card was created, as YYYY-MM-DD.

cards.frozen

Fired when a card is frozen via Freeze a card. The payload shape is identical to cards.created. The status field will be blocked.

cards.unfrozen

Fired when a frozen card is restored to active status via Unfreeze a card. The payload shape is identical to cards.created. The status field will be active.

cards.deleted

Fired when a card is soft-deleted via Delete a card. The payload shape is identical to cards.created. The status field will be blocked.

What’s next

Webhooks overview

Delivery model, retries, idempotency, and signature verification.

Webhooks API reference

Create, update, and manage webhook endpoints, plus delivery logs and test events.