Skip to main content
A collection is an inbound payment initiated by a payer through a specific market and payment rail (e.g. M-Pesa in Kenya, bank transfer in Nigeria). Collections are the receive-side complement to the off-ramp — money flows in rather than out.

Markets and rails

Before creating a collection you must discover which markets and rails are available to your integrator workspace:
1. GET  /v1/collections/markets              → list available markets
2. GET  /v1/collections/:market/rails        → list rails for a market
3. GET  /v1/collections/:market/rails/:rail  → get rail capability document
The capability document describes what fields are required to initiate a collection on that rail (e.g. phone number, account number, reference format constraints).

Lifecycle

PENDING → RECEIVED → COMPLETED
        ↘ FAILED
        ↘ EXPIRED
StatusMeaning
PENDINGCollection created, awaiting payment from the payer
RECEIVEDPayment received from the payer, being processed
COMPLETEDFunds credited to your integrator balance
FAILEDPayment failed or was rejected
EXPIREDPayer did not complete payment before the rail’s expiry window

Refunds

A completed collection can be refunded via POST /v1/collections/:id/refund. Refunds are subject to rail availability and may take the same processing time as the original payment.

Webhooks

Subscribe to collection events to receive real-time status updates without polling:
EventFired when
collection.completedFunds successfully credited
collection.failedCollection failed or expired