API V1 (legacy)
Collect from a customer (V1)
POST /V1/payment/mobile: request a Mobile Money payment from a customer in DR Congo.
You are reading the legacy V1, maintained for existing integrations. For a new integration, use V2; to migrate, see Versions and migration.
POST /V1/payment/mobile#
Parameters#
| Field | Type | Required | Description |
|---|---|---|---|
token | string | Yes | Your API token. |
phone | string | Yes | Customer number in local format, exactly 10 characters (e.g. 0812345678); the prefix determines the provider. |
amount | number | Yes | Amount, ≥ 0. |
currency | string | Yes | CDF | USD |
country | string | Yes | CD (DR Congo). |
callback | string | Yes | URL that will receive the result (see Callbacks). |
Recognised prefixes:
- Vodacom M-Pesa:
081,082,083 - Orange Money:
080,084,085,089 - Airtel Money:
097,098,099
Example#
Collect 100 USD
curl -X POST "https://api.labyrinthe-rdc.com/api/V1/payment/mobile" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"token":"VOTRE_TOKEN","phone":"0812345678","amount":100,"currency":"USD","country":"CD","callback":"https://boutique.example/callback"}'200 response (example)
{
"status_code": 200,
"success": true,
"orderNumber": "6f1d2c3b-8a7e-4f10-9b2c-3d4e5f607182",
"reference": "6f1d2c3b-8a7e-4f10-9b2c-3d4e5f607182",
"message": "Votre transaction a été initiée avec succès. Veuillez valider le push.",
"results": {
"status": {
"code": "0",
"name": "processed",
"description": "Votre transaction a été initiée avec succès. Veuillez valider le push."
},
"details": {
"amount": 100,
"currency": "USD",
"payment_method": "Mobile Money",
"destinataire": "Labyrinthe",
"fee": 93,
"amountCustomer": 100,
"provider": {
"id": 1,
"name": "mpesa",
"description": "Vodacom RDC",
"enabled": 1
},
"callback": "https://boutique.example/callback"
}
},
"errors": null,
"time": "2026-11-11T10:00:00.000000Z"
}The response confirms the initiation (processed): the customer gets a confirmation prompt on their phone. The final status then arrives on your callback; keep orderNumber to find it.
Amounts#
- The customer is charged the amount plus 7%; your balance in that currency is credited with
amountwhen the payment succeeds. - Caps: 20,000,000 CDF and 10,000 USD per transaction (
403, see Errors).
In the initiation response, details.fee and details.amountCustomer do not reflect the amount actually charged to the customer: do not rely on them. The charged total is the payment's amountCustomer field in get-transactions.
Prerequisites and refusals#
- The token owner's profile must contain a valid DR Congo phone number (e.g.
0891234567), otherwise400with a message asking to complete the profile. - Currency other than
CDF/USD:400"La monnaie renseignée ne correspond pas." - Unrecognised number:
400"Le numéro de téléphone renseigné n'est pas correct." - Token not yet enabled for production: daily transaction limit (
limit exceeded); blocked token:token blocked.