Skip to main content
Beta. Collections are being rolled out in production. You can already prepare your integration with this guide.
A collection asks your customer to pay from their mobile money account. They receive a prompt on their phone and confirm with their PIN. You get the result by webhook.

Request a payment

Response (201)

Fields

Statuses

Wait for the webhook, not for the response: your customer can take a minute to type their PIN.

Failure codes

In every failure case, no money was taken.

Safe retries

reference makes the request idempotent. If your server times out, send the exact same request again:
  • same reference, same service, amount and number → 200 with the same payment. Your customer is never charged twice;
  • same reference with another service, amount or number → 422 VALIDATION_ERROR.
Use a reference that identifies the order in your system, like order-1234.

Common pitfalls

Whole amounts only for most XAF and XOF operators. 1000.50 is refused when decimals is 0.
With fee_bearer: "customer", the customer pays more than the value: check within_limits with POST /quote.
503 OPERATION_FAILED with failure_code: operator_unavailable: offer another operator of the country.
The prompt is sent by the operator and shows the name of our payment processor, not your brand. Tell your customers to expect it.