Send to mobile money

POST/payment-api/send/mobilemoney

Debits your wallet for the amount plus the transfer fee and submits the payout to the recipient's mobile money wallet. Transfers settle asynchronously: the response confirms the transfer was accepted, and the final outcome is delivered to your callback URL.

  • Only whitelisted IPs may call this endpoint (403 otherwise).
  • If the provider rejects the transfer outright the debit is refunded immediately and you receive 400.
  • If the transfer fails after acceptance, the webhook reports status failed and the debit (amount plus fee) is refunded to your wallet.

Parameters

  • amountdecimalrequired

    Amount in GHS, minimum 0.50, up to your account transfer limit.

  • account_numberstringrequired

    Recipient mobile money number.

  • account_namestringoptional

    Recipient name shown on the SMS receipt.

  • channelstringrequired

    Recipient network.

    MTNTELECELAIRTELTIGOVDFATL
  • client_referencestringrequired

    Your unique reference, 12 to 36 characters.

  • callback_urlstringoptional

    HTTPS URL that receives the webhook when the transfer reaches success or failed.

  • mtnmomo_account_typestringoptional

    MTN only. Use subscriber for personal wallets; agent is the default.

    subscriberagent

Errors

  • 400Insufficient wallet balance
  • 400Transaction failed. Refund issued.
  • 403Access denied. Your IP address(x.x.x.x) is not whitelisted.
  • 422The client reference has already been taken.

Request

curl -X POST "https://api.bulkclix.com/api/v1/payment-api/send/mobilemoney" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": 120,
  "account_number": "0241234567",
  "account_name": "Ama Mensah",
  "channel": "MTN",
  "client_reference": "ORDER-2026-000123",
  "callback_url": "https://example.com/webhooks/bulkclix"
}'

Response · 200

application/json
{
  "message": "Sent Successfully",
  "data": {
    "client_reference": "ORDER-2026-000123",
    "transaction_id": "839201746512",
    "amount": "120.00",
    "charges": 1.2,
    "channel": "MTN",
    "account_number": "233241234567"
  }
}

Webhook · POST to your callback_url

application/json
{
  "amount": "120.00",
  "charges": "1.20",
  "status": "success",
  "transaction_id": "ORDER-2026-000123",
  "ext_transaction_id": "839201746512"
}