Bridge API DocsBridge API Docs
Bridge API Docs
Api reference

Transfer Money / Payout Payment (MTC)

Send payments or transfer money to customers via mobile money or bank accounts

Payout Payment (MTC)

Send money to customers via mobile money, bank transfer, or card (payment_option). Use trans_type MTC. Ideal for refunds, seller payouts, and disbursements.

Endpoint

POST https://api.bridgeagw.com/make_payment

Request Headers

Authorization: Basic <base64_encoded_credentials>
Content-Type: application/json

Request Body

{
  "service_id": 1,
  "reference": "Refund for Order #123",
  "customer_number": "0244000001",
  "transaction_id": "PAYOUT_001",
  "trans_type": "MTC",
  "amount": 25.50,
  "nw": "MTN",
  "nickname": "John Doe",
  "payment_option": "MOM",
  "currency_code": "GHS",
  "currency_val": "1",
  "callback_url": "https://your-site.com/webhook/payout-status",
  "request_time": "2025-01-15 14:30:00"
}

Parameters

ParameterTypeRequiredDescription
service_idintegerYesYour service identifier
referencestringYesPayout reference/description
customer_numberstringYesPhone (mobile money), bank account, or card number
transaction_idstringYesUnique transaction identifier
trans_typestringYesMust be MTC
amountnumberYesPayout amount
nwstringYesNetwork or bank code (see tables below)
nicknamestringYesCustomer display name
payment_optionstringYesMOM (mobile money), BNK (bank), or CRD (card)
currency_codestringNoCurrency code (e.g. GHS)
currency_valstringNoCurrency value
callback_urlstringYesWebhook URL for notifications
request_timestringYesRequest timestamp

Supported Networks

Match payment_option to the route: MOM with mobile codes, BNK with bank codes, CRD with card codes.

Mobile Money

NetworkCode
MTN Mobile MoneyMTN
Telecel CashVOD
AirtelTigo MoneyAIR

Cards

NetworkCode
MastercardMAS
VisaVIS

Banks

BankCode
Access BankACB
ABSA BankABS
ADBADB
Apex BankARB
Bank of GhanaBOG
BOABOA
CAL BankCAL
CBGCBG
Ecobank GhanaECO
FABFAB
FBN BankFBN
Fidelity BankFIB
FNBFNB
GCB BankGCB
GHL BankGHL
GT BankGTB
NIBNIB
Omni BankOMN
PBLPRB
Republic BankRPB
SGSGB
Services Integrity Savings & LoansSIS
Standard CharteredSCB
Stanbic BankSTB
UBAUBA
UMBUMB
Zeepay GhanaZEE
Zenith BankZEB

Response

Success (202)

{
  "response_message": "Request successfully received for processing",
  "response_code": "202"
}

Error Example

{
  "response_message": "You are not allowed to use this service",
  "response_code": "100"
}

Example Usage

curl -X POST "https://api.bridgeagw.com/make_payment" \
  -H "Authorization: Basic <your_credentials>" \
  -H "Content-Type: application/json" \
  -d '{
    "service_id": 1,
    "reference": "Refund for Order #123",
    "customer_number": "0244000001",
    "transaction_id": "PAYOUT_001",
    "trans_type": "MTC",
    "amount": 25.50,
    "nw": "MTN",
    "nickname": "John Doe",
    "payment_option": "MOM",
    "currency_code": "GHS",
    "currency_val": "1",
    "callback_url": "https://your-site.com/webhook/payout-status",
    "request_time": "2025-01-15 14:30:00"
  }'
const response = await fetch('https://api.bridgeagw.com/make_payment', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic <your_credentials>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    service_id: 1,
    reference: "Refund for Order #123",
    customer_number: "0244000001",
    transaction_id: "PAYOUT_001",
    trans_type: "MTC",
    amount: 25.50,
    nw: "MTN",
    nickname: "John Doe",
    payment_option: "MOM",
    currency_code: "GHS",
    currency_val: "1",
    callback_url: "https://your-site.com/webhook/payout-status",
    request_time: "2025-01-15 14:30:00"
  })
});

const result = await response.json();
console.log(result);
import requests

url = "https://api.bridgeagw.com/make_payment"
headers = {
    "Authorization": "Basic <your_credentials>",
    "Content-Type": "application/json"
}
data = {
    "service_id": 1,
    "reference": "Refund for Order #123",
    "customer_number": "0244000001",
    "transaction_id": "PAYOUT_001",
    "trans_type": "MTC",
    "amount": 25.50,
    "nw": "MTN",
    "nickname": "John Doe",
    "payment_option": "MOM",
    "currency_code": "GHS",
    "currency_val": "1",
    "callback_url": "https://your-site.com/webhook/payout-status",
    "request_time": "2025-01-15 14:30:00"
}

response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)

Use "payment_option": "BNK" for bank payouts (set customer_number and nw to the bank code). Use "payment_option": "CRD" for card payouts.

Flow

  1. POST payout with valid customer_number, nw, and payment_option.
  2. Platform verifies your payout balance.
  3. Transfer is processed; the customer gets a network notification where applicable.
  4. Your callback_url receives final status (Callbacks).

Balance

Ensure sufficient payout balance before sending. Check Get Account Balance; fund via Deposit to Wallet if needed.

Sandbox testing

In sandbox mode, mobile money payouts (payment_option: "MOM") use the same MSISDN allowlist as collections. The last-digit outcome rule applies. See the API Reference sandbox overview for the full allowlist.

Bank (BNK) and card (CRD) payouts are not available in sandbox — use MOM for testing.

Scenariocustomer_numbernwExpected response_codeSync body
Success0244000001MTN202Includes "status": "success"
Success (Vodafone)0200000002VOD202Includes "status": "success"
Failure0244000009MTN015No callback
Invalid0240000000MTN019No callback

A successful payout 202 response in sandbox includes a "status": "success" field on the sync response body (in addition to the normal 202 on collections).

Example sandbox request:

{
  "service_id": 12345,
  "reference": "Payout ref",
  "customer_number": "0200000002",
  "transaction_id": "PAYOUT-SANDBOX-001",
  "trans_type": "MTC",
  "amount": 10,
  "nw": "VOD",
  "payment_option": "MOM",
  "callback_url": "https://your-site.com/webhook/payout-status",
  "request_time": "2026-01-15T14:30:00Z"
}