Skip to content

API reference / Get paid

POST /v1/collections Bearer Idempotent

Charge a wallet or issue a bank account

Charge a mobile money wallet, or issue a dynamic (temporary) bank virtual account for one order.

  • Default / payment_rail=mobile_money: require mobile and provider.
  • payment_rail=bank_transfer: require bank transfer enabled for your merchant; optional account_name. Response includes virtual_account (account number, bank name, expiry). Poll or wait for collection.succeeded.

Headers

Idempotency-Key required string

Required for money-moving and session/mandate creates; replays must use the same body.

Body parameters

amount required string

Merchant principal to receive. While the merchant is in Testing mode, must be at or below the country testing max amount (see testing mode).

currency required string
merchant_reference required string
payment_rail optional string

mobile_money (default) requires mobile and provider. bank_transfer issues a temporary (dynamic) virtual account for this order; requires bank transfer enabled for your merchant.

One of mobile_money bank_transfer

mobile optional string

Required when payment_rail is mobile_money (or omitted).

provider optional string

Required when payment_rail is mobile_money (or omitted). Use metadata mobile_providers codes.

account_name optional string

Optional display name for dynamic bank transfer virtual accounts.

description optional string

Webhook events

collection.processing collection.succeeded collection.failed

POST https://omni.mojo-pay.com/v1/collections
{
    "currency": "GHS",
    "amount": "200.00",
    "merchant_reference": "ORD-2026-001",
    "mobile": "233544338841",
    "provider": "MTN"
}
Response
{
    "id": "CL_9K2ML0ABCDEF",
    "object": "collection",
    "status": "processing",
    "currency": "GHS",
    "amount": "200.00",
    "merchant_reference": "ORD-2026-001"
}