neo-pays documentation
neo-pays' collection and payout API: mobile money, dedicated-IBAN transfers and BCEAO instant payment, behind a single integration.
Start here
- Quick start — from account to first collection
- Authentication — keys, test mode, idempotency
- API reference — every operation, generated from the specification
The guides
| Guide | What it covers |
|---|---|
| Collections | Create a payment, read it, follow it |
| Payouts | Send funds, and the balance that governs them |
| Refunds | Give back all or part of a collection |
| Statuses | An operation's life cycle |
| Webhooks | Signature, redelivery, deduplication |
| Errors | The envelope, and what each code asks you to do |
Three things to know before writing code
Amounts are in minor units, as strings. "amount_minor": "500000" on a zero-decimal asset is
500,000. Never a floating-point number, never a JSON integer: both lose cents. Each asset's decimal
count comes from GET /v1/assets — do not hard-code it.
Assets and platforms are identifiers, not symbols. You send asset_id and platform_id, not
"XOF" and "orange_money". GET /v1/corridors says which ones your account may use, in the order
routing would pick them.
There is no currency conversion. Amounts never add up across assets, and no call converts one into another.
One version
The API is /v1, and it is the only one. The haybtech compatibility layer that occupied that path
was deleted on 12/09/2026 — nothing had ever shipped on it — and the neo-pays surface, until then
mounted at /v2, took its place. If you come across a reference to /v2, it is stale.