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

# Failure codes

## Technical failure codes

Technical failures should not happen during live operation and are intended to provide clear information during the development of the integration.

| Failure Code                       | HTTP status | Operation                                                                                                                                                                                                                    | Description                                                                                                                                                                         |
| ---------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| NO\_AUTHENTICATION                 | 401         | All                                                                                                                                                                                                                          | We did not find the API token in the request headers.                                                                                                                               |
| AUTHENTICATION\_ERROR              | 403         | All                                                                                                                                                                                                                          | The API token specified for authentication is not valid or missing. Please refer to [Authentication](/v2/docs/how_to_start#how-to-authenticate-calls-to-the-merchant-api).          |
| AUTHORISATION\_ERROR               | 403         | All                                                                                                                                                                                                                          | The API token specified for authentication is now authorized for the API call.                                                                                                      |
| HTTP\_SIGNATURE\_ERROR             | 403         | All                                                                                                                                                                                                                          | You have enabled signatures for financial calls, but we are unable to verify the signature from the request.                                                                        |
| INVALID\_INPUT                     | 400         | All                                                                                                                                                                                                                          | We were unable to parse the payload of the request.                                                                                                                                 |
| MISSING\_PARAMETER                 | 400         | All                                                                                                                                                                                                                          | A mandatory property is missing from the body of the request. The 'failureMessage' contains more information. Consult the API reference.                                            |
| UNSUPPORTED\_PARAMETER             | 400         | All                                                                                                                                                                                                                          | A parameter was found in the body of the request that is not supported by the endpoint. The 'failureMessage' contains more information. Consult the API reference.                  |
| INVALID\_PARAMETER                 | 400         | All                                                                                                                                                                                                                          | The value of a parameter in the body of the request was invalid. The 'failureMessage' contains more information. Consult the API reference.                                         |
| AMOUNT\_OUT\_OF\_BOUNDS            | 200         | All                                                                                                                                                                                                                          | The amount is outside of the transaction limits for this provider and operation. Check [active configuration](/v2/api-reference/toolkit/active-configuration) for effective limits. |
| INVALID\_AMOUNT                    | 200         | All                                                                                                                                                                                                                          | The number of decimal places specified in the amount is not supported by the provider. Check [Providers](/v2/docs/providers) for their support for decimals.                        |
| INVALID\_PHONE\_NUMBER             | 200         | All                                                                                                                                                                                                                          | The phone number specified is not in the MSISDN format.                                                                                                                             |
| INVALID\_CURRENCY                  | 200         | All                                                                                                                                                                                                                          | The currency is not supported by the provider.                                                                                                                                      |
| INVALID\_PROVIDER                  | 200         | All                                                                                                                                                                                                                          | The provider is not valid for the request.                                                                                                                                          |
| DUPLICATE\_METADATA\_FIELD         | 400         | All                                                                                                                                                                                                                          | You have multiple instances of the same metadta included in the request.                                                                                                            |
| DEPOSITS\_NOT\_ALLOWED             | 403         | Deposits                                                                                                                                                                                                                     | Deposits have not been enabled for the specified 'provider' on your PawaPay account.                                                                                                |
| PAYOUTS\_NOT\_ALLOWED              | 403         | Payouts                                                                                                                                                                                                                      | Payouts have not been enabled for the specified 'provider' on your PawaPay account.                                                                                                 |
| REFUNDS\_NOT\_ALLOWED              | 403         | Refunds                                                                                                                                                                                                                      | Refunds have not been enabled for the specified 'provider' on your PawaPay account.                                                                                                 |
| PROVIDER\_TEMPORARILY\_UNAVAILABLE | All         | The provider specified is currently experiencing an outage and processing of payments has been temporarily halted. Please refer to our [Status Page](https://status.pawapay.io) for live information about MMO availability. |                                                                                                                                                                                     |
| UNKNOWN\_ERROR                     | 500         | All                                                                                                                                                                                                                          | An unknown error has occurred while processing this payment. Please check the status of this payment over API before considering failed.                                            |

## Transaction failure codes

Transaction failures are expected to happen during live operation and are intended to provide clear information as to why a particular payment was not successful.

| Failure Code                    | Operation       | Description                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| PAYMENT\_NOT\_APPROVED          | Deposits        | The customer did not authorize the payment. *Example: Customer did not enter their PIN in time.*                                                                                                                                                                                                                                                |
| INSUFFICIENT\_BALANCE           | Deposits        | The customer does not have enough funds to perform the deposit.                                                                                                                                                                                                                                                                                 |
| PAYMENT\_IN\_PROGRESS           | Deposits        | The customer is initiating a transaction while an unfinished transaction is still pending. *Note: Some providers only allow a single transaction to be processed at any given time. When the customer does not enter the PIN to authorize a payment in time, it might take up to 10 minutes for them to be able to initiate a new transaction.* |
| PAYER\_NOT\_FOUND               | Deposits        | The phone number (MSISDN) does not belong to the provider.                                                                                                                                                                                                                                                                                      |
| RECIPIENT\_NOT\_FOUND           | Payouts         | The phone number (MSISDN) does not belong to the provider.                                                                                                                                                                                                                                                                                      |
| MANUALLY\_CANCELLED             | Payouts/Refunds | The payout request was enqueued and subsequently failed manually from the PawaPay Dashboard or through the [Cancel Enqueued Payout](/v2/api-reference/payouts/cancel-enqueued-payout) endpoint.                                                                                                                                                 |
| PAWAPAY\_WALLET\_OUT\_OF\_FUNDS | Payouts/Refunds | The balance of your PawaPay wallet does not have the funds to initiate this payout.                                                                                                                                                                                                                                                             |
| DEPOSIT\_ALREADY\_REFUNDED      | Refunds         | The deposit you are refunding has already been refunded in full.                                                                                                                                                                                                                                                                                |
| AMOUNT\_TOO\_LARGE              | Refunds         | The amount you are attempting to refund is larger than what is left to be refunded for this deposit including previous partial refunds.                                                                                                                                                                                                         |
| REFUND\_IN\_PROGRESS            | Refunds         | There is already a refund being processed for this deposit. Only one refund can be processed for a single deposit at a time.                                                                                                                                                                                                                    |
| WALLET\_LIMIT\_REACHED          | All             | The customer has reached a limit on their wallet. Example: Customer is only allowed to transfer a maximum of 1 000 000 per week.                                                                                                                                                                                                                |
| UNSPECIFIED\_FAILURE            | All             | The provider did not give any information about the reason for this failure.                                                                                                                                                                                                                                                                    |
| UNKNOWN\_ERROR                  | All             | An unknown error has occurred while processing this payment. Please check the status of this payment over API before considering failed.                                                                                                                                                                                                        |
