> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abcmpay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors

> Every error code the API can return, and what to do about it

Every response includes `"success": false` on failure, along with a human-readable `message`. Many also include a machine-readable `error_code` you can branch on in code instead of string-matching `message`.

## Error codes

| Code                      | Meaning                                                          | What to do                                                                           |
| ------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| `MISSING_CREDENTIALS`     | `X-Api-Key` or `X-Api-Secret` wasn't sent                        | Send both headers on every request                                                   |
| `INVALID_CREDENTIALS`     | The key/secret pair doesn't match an active account              | Check for typos, or regenerate your keys in the dashboard                            |
| `IP_NOT_WHITELISTED`      | IP allowlisting is on and this request's IP isn't on it          | Add the IP in **API Keys** settings, or turn allowlisting off                        |
| `SERVICE_NOT_ENABLED`     | This feature area isn't enabled on your account                  | Contact support to request access — a valid key/secret alone isn't enough            |
| `PAYOUT_DISABLED`         | Payouts specifically aren't enabled                              | Contact support                                                                      |
| `LIMIT_EXCEEDED`          | A payout would exceed your min/max/hourly/daily limit            | Check your limits on the [Payouts](/api-reference/payouts) page or in your dashboard |
| `RATE_LIMITED`            | Too many payout attempts from your account this hour             | Wait `retry_after` seconds (included in the response)                                |
| `IP_RATE_LIMITED`         | Too many payout attempts from this IP this hour (cap: 20/hr)     | Wait `retry_after` seconds                                                           |
| `KYC_REQUIRED`            | Your account needs KYC verification before this action           | Complete KYC in the dashboard                                                        |
| `IDENTIFICATION_REQUIRED` | A BVN or NIN was required and none was available                 | Pass `bvn`/`nin` on the request, or complete your own KYC BVN/NIN                    |
| `VALIDATION_ERROR`        | Request body failed validation                                   | Check the `errors` object in the response for field-level detail                     |
| `NOT_FOUND`               | The resource (transaction, card, cardholder, etc.) doesn't exist | Double check the ID/reference, and that it belongs to your account                   |
| `GATEWAY_ERROR`           | The upstream payment gateway returned an error                   | Safe to retry; contact support if it persists                                        |

## Transaction status values

These appear in transaction/payment status responses (not HTTP status codes):

| Status       | Meaning                                                      |
| ------------ | ------------------------------------------------------------ |
| `pending`    | Not yet processed                                            |
| `processing` | Being processed                                              |
| `success`    | Completed successfully                                       |
| `failed`     | Failed — any debited wallet funds are refunded automatically |

<Card title="Still stuck?" icon="life-ring" href="mailto:support@abcmpay.com">
  Email [support@abcmpay.com](mailto:support@abcmpay.com) with the `reference` (not the internal transaction ID) and roughly when the request happened — that's enough for us to find it.
</Card>
