/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: requiremobileandprovider. payment_rail=bank_transfer: require bank transfer enabled for your merchant; optionalaccount_name. Response includesvirtual_account(account number, bank name, expiry). Poll or wait forcollection.succeeded.
Headers
-
Idempotency-Keyrequired string -
Required for money-moving and session/mandate creates; replays must use the same body.
Body parameters
-
amountrequired 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).
-
currencyrequired string -
merchant_referencerequired string -
payment_railoptional string -
mobile_money(default) requiresmobileandprovider.bank_transferissues a temporary (dynamic) virtual account for this order; requires bank transfer enabled for your merchant.One of
mobile_moneybank_transfer -
mobileoptional string -
Required when
payment_railismobile_money(or omitted). -
provideroptional string -
Required when
payment_railismobile_money(or omitted). Use metadata mobile_providers codes. -
account_nameoptional string -
Optional display name for dynamic bank transfer virtual accounts.
-
descriptionoptional string
Webhook events
collection.processing
collection.succeeded
collection.failed
{
"currency": "GHS",
"amount": "200.00",
"merchant_reference": "ORD-2026-001",
"mobile": "233544338841",
"provider": "MTN"
}
{
"method": "POST",
"url": "https://omni.mojo-pay.com/v1/collections",
"note": "Use https://omni.mojo-pay.com/v1 from /doc/samples.json on this host, or your deployment APP_URL/v1.",
"headers": {
"Authorization": "Bearer a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2",
"Content-Type": "application/json",
"Idempotency-Key": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
},
"body": {
"currency": "GHS",
"amount": "200.00",
"merchant_reference": "ORD-2026-001",
"description": "Invoice 42",
"mobile": "233544338841",
"provider": "MTN"
}
}
{
"currency": "GHS",
"amount": "25.00",
"merchant_reference": "ORD-BT-001",
"payment_rail": "bank_transfer",
"account_name": "Kofi Mensah",
"description": "Invoice bank transfer"
}
curl -X POST "https://omni.mojo-pay.com/v1/collections" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"currency": "GHS",
"amount": "200.00",
"merchant_reference": "ORD-2026-001",
"mobile": "233544338841",
"provider": "MTN"
}'
{
"id": "CL_9K2ML0ABCDEF",
"object": "collection",
"status": "processing",
"currency": "GHS",
"amount": "200.00",
"merchant_reference": "ORD-2026-001"
}
{
"id": "CL_BT0ML0ABCDEF",
"object": "collection",
"status": "processing",
"currency": "GHS",
"amount": "25.00",
"merchant_reference": "ORD-BT-001",
"payment_rail": "bank_transfer",
"virtual_account": {
"account_number": "6200112233",
"account_name": "Kofi Mensah",
"account_type": "DYNAMIC",
"bank_code": "300325",
"bank_name": "UNITED BANK FOR AFRICA (GH) LTD",
"status": "ACTIVE",
"expires_at": "2026-04-15T11:00:00+00:00",
"single_deposit_limit": "25.00"
}
}