---
title: "Initiate mobile money collection"
method: POST
path: "/api/v1/bila/collections/mobile-money"
tags: ["Collections"]
---

# Initiate mobile money collection

`POST /api/v1/bila/collections/mobile-money`

## Request

- Base URL: `https://api.usebila.com`
- URL: `https://api.usebila.com/api/v1/bila/collections/mobile-money`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/bilasdk/apis/bila-payment-gateway-api/docs/api/v1/bila/collections/mobile-money/post.ts> (a function with typed inputs; its response is checked against the schema)

Initiate a payment collection from a mobile money account. Creates a transaction record in your dashboard.

## Request body

- MobileMoneyCollectionDto
  - `amount` number, required: Collection amount
  - `reference` string, required: Unique client reference
  - `phone` string, required: Customer phone number
  - `operator` 'airtel' | 'mtn' | 'zamtel' | 'vodacom', required: Mobile money operator
  - `country` 'zm' | 'ng', required: Country code
  - `bearer` 'merchant' | 'customer': Who bears the transaction fee
  - `narration` string: Collection narration
  - `walletId` string, uuid, required: Target wallet ID to credit
  - `customerName` string: Customer name for the transaction record

## Response `201`

Collection initiated successfully

- object
  - `status` boolean, required: Request success status
  - `message` string, required: Response message
  - `data` BilaCollectionResponseDto
    - `id` string, required: Collection ID
    - `reference` string, required: Client reference
    - `status` 'pending' | 'successful' | 'failed' | 'otp-required' | 'pay-offline', required: Collection status
    - `amount` number, required: Collection amount
    - `currency` string, required: Currency code
    - `feeBearer` 'merchant' | 'customer': Who bears the collection platform fee
    - `narration` string: Collection narration
    - `customer` BilaCollectionCustomerDto, required
      - `phone` string, required: Customer phone number
      - `name` string, required: Customer name
      - `operator` string, required: Mobile money operator
    - `createdAt` string, date-time, required: Collection creation timestamp
    - `completedAt` string, date-time: Collection completion timestamp

## Other responses

- `400`: Invalid collection details

## Changes

- **2026-10-16** `781041632c91`: 3 info
  - the `bearer` request property default value `merchant` was added
  - added the new `ng` enum value to the request property `country`
  - added the new `vodacom` enum value to the request property `operator`
- **2026-06-05** `60e9d9bed8eb`: 2 breaking, 1 info
  - removed the enum value `ng` of the request property `country`
  - removed the enum value `vodacom` of the request property `operator`
  - the `bearer` request property default value `merchant` was removed

[Operation history](https://skmtc.dev/bilasdk/apis/bila-payment-gateway-api/changes/api/v1/bila/collections/mobile-money/post.md)

---

[API](https://skmtc.dev/bilasdk/apis/bila-payment-gateway-api.md) - [All operations](https://skmtc.dev/bilasdk/apis/bila-payment-gateway-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bilasdk/apis/bila-payment-gateway-api/revisions/781041632c91?raw)
