Skip to content

Payment API Error Code Lookup

Type a code like 1032 or PAYER_NOT_FOUND, describe the problem in words, or paste a whole API response. 69 codes across MTN MoMo, M-Pesa and Airtel Money.

    Full references by provider

    • MTN MoMo error codes29 codes. MTN MoMo reports problems in two places: HTTP errors when your request is rejected outright, and a failure reason when a payment is accepted but doesn't complete.
    • M-Pesa Daraja (Safaricom) error codes18 codes. Safaricom's Daraja API uses dotted error codes like 404.001.03 for rejected requests, and numeric ResultCodes like 1032 in the STK push callback.
    • Airtel Money error codes22 codes. Airtel Money's Open API returns a transaction status (TS, TF, TIP, TA) plus response codes. Its error codes are less consistently documented than MTN's or Safaricom's, so this page shows how well each one is confirmed.

    Read the outcome, not just the code

    Every code is sorted into one of five outcomes, because the question that matters is "did the customer pay?":

    • Paid: verify the amount, then fulfil the order once.
    • Not paid: mark the order unpaid and offer a retry with a new request.
    • Waiting: the customer hasn't answered yet. Do nothing; a callback or your poller will follow.
    • Not known yet: check the status endpoint before deciding. Never let the customer pay twice.
    • Request error: your request was rejected. Fix the request; no money moved.

    Frequently asked questions

    Does a failed status mean the customer was not charged?

    For clear failures such as a cancelled prompt, a wrong PIN or insufficient funds, yes. But some codes, such as M-Pesa 1037, Airtel TA and HTTP 500 on MoMo, mean the outcome is not known yet. For those, check the status endpoint before marking the payment failed or letting the customer pay again.

    Why are some codes marked "Reported by one source"?

    Not every provider publishes a complete error list. Where a code comes from a single developer source, this tool says so, so you can log the full response and confirm before relying on it.

    Can I paste a full API response?

    Yes. Paste a JSON response, a callback body or a log line, and the tool finds every known code inside it. It runs in your browser; nothing is sent anywhere.

    Related tools

    Need this built for you?

    I integrate MTN MoMo, M-Pesa and Airtel Money into Laravel / PHP, Python / Django, Node.js / Next.js apps: payments, callbacks, payouts and go-live, with tests.