Limits & Quotas
Transaction amount limits, rate limits, batch size limits, and webhook delivery limits across the Wajub platform.
This page documents all enforced limits across the Wajub platform. Limits are applied per transaction, per account, and per time window.
Payment amount limits
Default limits per transaction (contact support to increase):
| Channel | Minimum | Maximum | Notes |
|---|---|---|---|
| MTN MoMo | 100 XAF / XOF | 1,000,000 XAF / XOF | Per operator rules |
| Orange Money | 100 XAF / XOF | 1,000,000 XAF / XOF | Per operator rules |
| Wave | 100 XOF | 500,000 XOF | Per Wave limits |
| M-Pesa (KE) | 1 KES | 300,000 KES | Safaricom M-Pesa Express limits |
| Cards | 100 XAF / XOF | 5,000,000 XAF / XOF | 3DS2 required > 500,000 |
| Bank transfer | 1,000 XAF / XOF | No enforced max | Settlement: 1-3 days |
Operator-side limits
Mobile Money limits are also enforced by the operator at the wallet level. A customer's
wallet may have lower daily or monthly limits than Wajub's API limits. The transaction
will fail with reason: wallet_limit_exceeded in those cases.
Transfer (payout) amount limits
| Channel | Minimum | Maximum |
|---|---|---|
| MTN MoMo | 100 XAF / XOF | 1,000,000 XAF / XOF |
| Orange Money | 100 XAF / XOF | 1,000,000 XAF / XOF |
| Wave | 100 XOF | 500,000 XOF |
| M-Pesa (KE) | 1 KES | 150,000 KES |
Daily and monthly volume limits
Default limits per account:
| Period | Default limit | Enterprise |
|---|---|---|
| Daily (payments) | 50,000,000 XAF equivalent | Custom |
| Monthly (payments) | 500,000,000 XAF equivalent | Custom |
| Daily (transfers) | 10,000,000 XAF equivalent | Custom |
Contact your account manager to request higher limits. Limits are applied in XAF-equivalent using daily exchange rates.
Rate limits (API)
| Endpoint group | Requests per minute | Burst |
|---|---|---|
POST /payments | 300 rpm | 50 concurrent |
GET /payments/* | 1,000 rpm | — |
POST /transfers | 100 rpm | 20 concurrent |
GET * (general reads) | 1,000 rpm | — |
POST /tax/calculate | 500 rpm | — |
| Webhook delivery | — | 6 retries per event |
Rate limit headers are included on every API response:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 245
X-RateLimit-Reset: 1716552120
Retry-After: 15 (only on 429)See Rate Limits for the full reference and retry strategy.
Bulk transfer (Push) limits
| Parameter | Limit |
|---|---|
| Max transfers per batch (CSV) | 10,000 rows |
| Max concurrent batch jobs | 3 per account |
| Min interval between rows | 10ms (enforced by API) |
Webhook limits
| Parameter | Limit |
|---|---|
| Active endpoints per account | 50 |
| Max retry attempts per delivery | 6 |
| Max webhook payload size | 1 MB |
| Max endpoint timeout | 10 seconds |
| Event retention (for replay) | 30 days |
Payment Links limits
| Parameter | Limit |
|---|---|
| Active links per account | 1,000 |
| Max uses per link | Configurable (1 to unlimited) |
| Link expiry | Configurable (1 hour to never) |
File upload limits
| Resource | Max size |
|---|---|
| CSV batch (Bulk Transfers) | 10 MB |
| Logo / branding image | 2 MB |
Refund timelines
The time for a refund to reach the customer depends on the original payment channel:
| Channel | Refund window | Processing time | Notes |
|---|---|---|---|
| Mobile Money (MTN MoMo) | 90 days after payment | 1–5 business days | Funds returned to the wallet |
| Mobile Money (Orange Money) | 90 days after payment | 1–5 business days | Funds returned to the wallet |
| Mobile Money (Wave) | 30 days after payment | 1–3 business days | Funds returned to the wallet |
| Mobile Money (M-Pesa) | 90 days after payment | 1–3 business days | Funds returned to the wallet |
| Visa / Mastercard | 180 days after payment | 5–10 business days | Reversed to the original card |
| Bank transfer | 60 days after payment | 3–7 business days | Re-credited to originating account |
Operator-dependent timelines
Refund timelines are determined by the operator or card network, not by Wajub. The figures
above are typical ranges — actual timing may vary. Track refund status via
GET /refunds/{id} or the refund.succeeded webhook.
Payment expiry
A payment that is not completed within 30 minutes of initialization expires automatically
with status expired. Expired payments cannot be refunded (no funds were captured).
Requesting limit increases
All limits above are defaults. Enterprise accounts can request higher limits by contacting support@wajub.com with your estimated monthly volume.
Was this page helpful?