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.