Skip to main content
Every failed PeerPesa API request returns an HTTP status code and a JSON body with a machine-readable code and a human-readable message. Branch your error handling on code, not on message, because messages can change. This page lists every error code by category with the fix for each.

Error format

string
required
Stable, machine-readable error code from the tables below.
string
required
Human-readable explanation. Do not parse it.
string
The request field that caused the error, when one applies.
string
Unique ID for the request. Include it when you contact support.

HTTP status codes

Error codes

Authentication and access

Request validation

Rates and quotes

Ramps and transactions

Deposit wallets

Beneficiaries

Webhooks

Rate limits and server errors

Retry guidance

  • Retry 429, 500, and 503 with exponential backoff (for example 1s, 2s, 4s, up to 5 attempts).
  • Do not retry 400, 401, 403, 404, or 422 without changing the request.
  • Send an Idempotency-Key header on POST requests so a retried request never creates a duplicate transaction.
Error handling example