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 tooutflows.created. The status field will be successful and status_reason will be processing_complete.
outflows.failed
Fired when a transfer cannot be completed. Checkstatus_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 tooutflows.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. Checkstatus_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.failure object is included.
Failure Codes
Thefailure.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.