Payment Docs
Payments by countryAfrica

DR Congo

Mobile money payments in CDF

Before you start

This payment method is not enabled for all merchants. Check availability with your manager.

Overview

CurrencyCountry codePayment methods
CDF / USDCDMobile money: Africel, Airtel, Orange Money, Vodacom, Vodacom (M-Pesa) · card (USD)

Two scenarios are available. Which scenario and which operator are enabled for your account is defined by your terminal settings.

Not sure which option you have? Ask your manager.

What is different from a regular order

The order is created through the standard POST /v1/orders endpoint. The base fields (amount, currency, successUrl, failUrl, callbackUrl, etc.) are the same as for a regular order; on top of them you pass the customer object with payer details.

FieldTypeDescription
customerobjectPayer details. The required set is listed below

The externalUserId field is required for this payment method.

Operators: Africel, Airtel, Orange Money, Vodacom, Vodacom (M-Pesa).

Send the payer to paymentLink: the payment request goes to the operator when the link is opened, and the payer confirms it on their phone (push notification or USSD prompt). The page waits for the result and shows it; the final status also comes to your callbackUrl.

Customer fields

FieldTypeRequiredDescription
phonestring✅ YesPayer phone number in international format 243812345678. It is converted to the operator format (with or without the leading 0) automatically
firstNamestring⚠️ Depends on the operatorFirst name
lastNamestring⚠️ Depends on the operatorLast name
emailstring⚠️ Depends on the operatorPayer email
countrystring❌ NoCountry code CD. Optional: the country is defined by the method

The required set depends on the operator enabled on your terminal. If a field it needs is missing or the phone does not match the country format, the order is rejected with 400 listing the fields. Send firstName, lastName, email and phone whenever you have them.

Request example

{
  "purpose": "Payment for order #1234",
  "amount": "1000",
  "currency": "CDF",
  "externalId": "external_id",
  "externalUserId": "external_user_id",
  "successUrl": "https://example.com/success",
  "failUrl": "https://example.com/fail",
  "callbackUrl": "https://example.com/webhooks/payments",
  "isFeeOnUser": false,
  "customer": {
    "firstName": "John",
    "lastName": "Doe",
    "phone": "243812345678",
    "email": "john.doe@example.com"
  }
}

Card: Mastercard, USD.

The payer is redirected to paymentLink, the provider card page, and pays there.

Customer fields

FieldTypeRequiredDescription
phonestring⚠️ phone or emailPayer phone number in international format 243812345678. It is converted to the operator format (with or without the leading 0) automatically
firstNamestring❌ NoFirst name
lastNamestring❌ NoLast name
emailstring⚠️ phone or emailPayer email
countrystring❌ NoCountry code CD. Optional: the country is defined by the method

The required set depends on the operator enabled on your terminal. If a field it needs is missing or the phone does not match the country format, the order is rejected with 400 listing the fields. Send firstName, lastName, email and phone whenever you have them.

Request example

{
  "purpose": "Payment for order #1234",
  "amount": "10",
  "currency": "USD",
  "externalId": "external_id",
  "externalUserId": "external_user_id",
  "successUrl": "https://example.com/success",
  "failUrl": "https://example.com/fail",
  "callbackUrl": "https://example.com/webhooks/payments",
  "isFeeOnUser": false,
  "customer": {
    "firstName": "John",
    "lastName": "Doe",
    "phone": "243812345678",
    "email": "john.doe@example.com"
  }
}

Some DR Congo methods work in USD instead of CDF; the currency of the order must match the method enabled on your terminal.

Response

The response is a standard order object. The order is created with the CREATED status; redirect the payer to paymentLink to complete the payment.

Order object fields

Next steps

On this page