Skip to main content
Morapay disbursements route merchant treasury liquidity to local mobile money wallets: MTN, Telecel, and other regional carriers. The Merchant API exposes this under /api/v1/merchant/disbursement/*; the SDK namespace is morapay.disbursement.

Business value

Turn stablecoin or fiat treasury balance into instant local payouts without building carrier integrations yourself. Quote fees upfront, schedule one-time or recurring batches, and track ledger entries per business.

Flow

SDK reference

Batch creation

Batches are created via POST /disbursement/batches with:
  • chainId, token: settlement rail (validated per environment)
  • schedule: one_time or recurring
  • recipients[]: name, contact, payer account, amounts
  • usdCharge, payoutTotal, processingAt: must match a prior quote
Deposits and withdrawals on the disbursement account accept an idempotencyKey (8–200 chars) to prevent duplicate ledger movements.

Minimums & balances

Always call morapay.disbursement.account() before large batches.

Webhook

disbursement_batch.created fires when a batch is accepted. Payout status changes may also arrive via payout.status_updated.

FAQ

Platform USD minimums apply at quote time. Individual corridors such as Ghana GHS may enforce additional carrier floors; validate amounts client-side before submitting batches.
Catch payouts.network.carrier_down, enqueue the batch for retry with backoff, and alert operations. Include requestId when contacting support.

Next steps

Disbursement tokens

USDC on Base and Ethereum (LIVE) · Base Sepolia (TEST).

Payout timing

Minimums, batch scheduling, and MoMo vs bank SLAs.

Banks & MoMo

Withdrawal rails and operator catalogs.

Webhooks

disbursement_batch.created and payout.status_updated.