Skip to content

BAD_RAIL

HTTP 400 — Bad rail

rail is not one of mpesa, airtel, tigo, halopesa, azampesa.

What to do

Send one of those. The rail is the payer's mobile money network.

Can I retry?

Not unchanged. Something in the request has to change first — retrying as-is gets the same answer.

The body you received

json
{
  "error": {
    "code": "BAD_RAIL",
    "doc": "https://docs.pamopay.co/errors/BAD_RAIL",
    "request_id": "req_5f3a9c2b1d4e6f7a8b9c0d1e"
  }
}

Quote request_id when you write to us; it finds the call without anybody grepping by timestamp.

All error codes

Every code, scope and route on this site is rendered from the API's own source.