Skip to main content
POST
/
api
/
v1
/
bila
/
transfers
/
mobile-money
Initiate mobile money transfer
curl --request POST \
  --url https://api.usebila.com/api/v1/bila/transfers/mobile-money \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "amount": 250,
  "reference": "mobile-transfer-001",
  "phone": "0977433571",
  "operator": "airtel",
  "country": "zm",
  "narration": "Mobile money payout",
  "walletId": "68f11209-451f-4a15-bfcd-d916eb8b09f4",
  "recipientName": "Jane Doe"
}
'
{
  "status": true,
  "message": "Operation completed successfully",
  "data": {
    "id": "txn-001",
    "reference": "payout-12345",
    "type": "bank-account",
    "status": "successful",
    "amount": 1000,
    "currency": "ZMW",
    "recipient": {
      "accountName": "JOHN DOE",
      "accountNumber": "1234567890",
      "bankName": "Zambia National Commercial Bank",
      "phone": "0977123456",
      "operator": "airtel"
    },
    "createdAt": "2024-01-15T10:30:00Z",
    "narration": "Salary payment",
    "completedAt": "2024-01-15T10:31:00Z"
  }
}

Authorizations

x-api-key
string
header
required

Merchant API key (e.g., sk_live_xxx or sk_test_xxx)

Body

application/json
amount
number
required

Transfer amount

Required range: x >= 0.01
Example:

250

reference
string
required

Unique client reference

Pattern: ^[a-zA-Z0-9._-]+$
Example:

"mobile-transfer-001"

phone
string
required

Recipient phone number

Example:

"0977433571"

operator
enum<string>
required

Mobile money operator

Available options:
airtel,
mtn,
zamtel,
vodacom
Example:

"airtel"

country
enum<string>
required

Country code

Available options:
zm,
ng
Example:

"zm"

narration
string

Transfer narration

Maximum string length: 100
Example:

"Mobile money payout"

walletId
string<uuid>

Source wallet ID to debit (defaults to main wallet if omitted)

Example:

"68f11209-451f-4a15-bfcd-d916eb8b09f4"

recipientName
string

Recipient name for the transaction record

Maximum string length: 100
Example:

"Jane Doe"

Response

Transfer initiated successfully

status
boolean
required

Request success status

Example:

true

message
string
required

Response message

Example:

"Operation completed successfully"

data
object