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

# Error Handling

> Error response format and the full list of B2B API error codes.

If a request to B2B REST API fails, the response will contain an five-digit error code with a corresponding error message to indicate the details of the error.

The following code snippet is a sample error response that contains an error code and message pair:

```json theme={null}
{
    "code": 40001,
    "type": "NotAuthenticated",
    "detail": {
        "message": "Authentication credentials were not provided.",
        "code": "not_authenticated"
    },
    "status": 403
}
```

## Error Codes

| Code  | Error Category                                              | Description                                                                                                              | Resolution                                                                                                                                                               |
| :---- | :---------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 20000 | Validation Error                                            | Raised when there is a semantic error in the payload of the request.                                                     | Check the docs for precise information on how to provide correct values for each resource atribute.                                                                      |
| 20001 | Parse Error                                                 | Raised when the API receives a malformed JSON document.                                                                  | Check for syntax errors in the payload of your request. Also look for sample requests in the docs related to the desired operation.                                      |
| 20010 | Expired Quote                                               | Raised when the received quote to execute has expired.                                                                   | Generate a new quote and execute it within the 30 seconds time window.                                                                                                   |
| 20011 | Already Executed Quote                                      | Raised when the received quote to execute has been executed before.                                                      | Try Generating a new quote with the former pair/amounts to replicate a similar trade.                                                                                    |
| 20012 | Not Enough Balance                                          | Raised when the amount to operate (sale/purchase) is larger than the balance amount of the debited currency.             | Check end user's balances in order to inform the discrepancy before quote execution. Please contact our support team for further assistance.                             |
| 20013 | Buy Limit Frequency Exceeded                                | Raised when the "BUY" frequency limit for a given end user has been reached.                                             | Check end user's limits using Limits API in order to inform the discrepancy before performing a quote execution.                                                         |
| 20014 | Sell Limit Frequency Exceeded                               | Raised when the "SELL" frequency limit for a given end user has been reached.                                            | Check end user's limits using Limits API in order to inform the discrepancy before performing a quote execution.                                                         |
| 20015 | Buy Limit Amount Exceeded                                   | Raised when the "BUY" amount limit for a given end user has been reached.                                                | Check end user's limits using Limits API in order to inform the discrepancy before performing a quote execution.                                                         |
| 20016 | Sell Limit Amount Exceeded                                  | Raised when the "SELL" amount limit for a given end user has been reached.                                               | Check end user's limits using Limits API in order to inform the discrepancy before performing a quote execution.                                                         |
| 20017 | Buy Transaction Min Limit Exceeded                          | Raised when the "BUY" amount min limit on a single transaction is exceeded.                                              | Check Ripio's min and max transaction limits.                                                                                                                            |
| 20018 | Buy Transaction Max Limit Exceeded                          | Raised when the "BUY" amount max limit on a single transaction is exceeded.                                              | Check Ripio's min and max transaction limits.                                                                                                                            |
| 20019 | Sell Transaction Min Limit Exceeded                         | Raised when the "SELL" amount min limit on a single transaction is exceeded.                                             | Check Ripio's min and max transaction limits.                                                                                                                            |
| 20020 | Sell Transaction Max Limit Exceeded                         | Raised when the "SELL" amount max limit on a single transaction is exceeded.                                             | Check Ripio's min and max transaction limits.                                                                                                                            |
| 20021 | Banned EndUser                                              | Raised when a request comes from a banned user.                                                                          | Please reach out our support team in order to get full detail on why the end user has been banned.                                                                       |
| 20022 | Swap Transaction Min Limit Exceeded                         | Raised when the "SWAP" amount min limit on a single transaction is exceeded.                                             | Check Ripio's min and max transaction limits.                                                                                                                            |
| 20023 | Swap Transaction Max Limit Exceeded                         | Raised when the "SWAP" amount max limit on a single transaction is exceeded.                                             | Check Ripio's min and max transaction limits.                                                                                                                            |
| 20024 | Swap Limit Frequency Exceeded                               | Raised when the "SWAP" frequency limit for a given end user has been reached.                                            | Check end user's limits using Limits API in order to inform the discrepancy before performing a quote execution.                                                         |
| 20025 | Swap Limit Amount Exceeded                                  | Raised when the "SWAP" amount limit for a given end user has been reached.                                               | Check end user's limits using Limits API in order to inform the discrepancy before performing a quote execution.                                                         |
| 20026 | Quote With No Price                                         | Raised when the received reusable quote to execute has no price.                                                         | Try Generating a new reusable quote with the former pair to replicate a similar trade.                                                                                   |
| 20027 | Expired Withdrawal Fee                                      | Raised when trying to execute a withdrawal fee that has already expired.                                                 | Request another withdrawal Fee.                                                                                                                                          |
| 20029 | Invalid address                                             | Raised when the address provided is not valid on given network.                                                          | Try with a valid addres for that network.                                                                                                                                |
| 20030 | Kyc not approved for end user                               | Raised when the end user doesn't have a kyc process approved.                                                            | Check the status of end user's verification submission                                                                                                                   |
| 20031 | Kyc already approved for end user                           | Raised when the end user already has an approved kyc process.                                                            | -                                                                                                                                                                        |
| 20032 | Invalid or disabled payment method type                     | Raised when the payment\_method\_type does not exist or is disabled for the acccount.                                    | Please reach out our support team.                                                                                                                                       |
| 20033 | Frequency limit exceeded for fiat withdrawals               | Raised when the QTY limit for a given currency in a FIAT\_WITHDRAWAL operation is exceeded.                              | -                                                                                                                                                                        |
| 20034 | Amount limit exceeded for fiat withdrawals                  | Raised when the amount limit for a given currency in a FIAT\_WITHDRAWAL operation is exceeded.                           | -                                                                                                                                                                        |
| 20035 | Fiat account is required                                    | Raised when a fiat account is required.                                                                                  | Create a Fiat account first.                                                                                                                                             |
| 20036 | Withdrawal amount less than network dust limit.             | Raised when the amount of withdrawal request is less to the network dust limit.                                          | Increase Withrawal amount.                                                                                                                                               |
| 20037 | There is no address created for end user and given network. | Raised when there is no address for a given concrete network name.                                                       | Create an AutoSwap address first.                                                                                                                                        |
| 20038 | The end user has no active opt-in                           | Raised when the given end user has no active OptIn, or none for the `asset` sent in an opt-out request.                  | Ensure the end user has an active opt-in for the product being opted out of.                                                                                             |
|       |                                                             |                                                                                                                          |                                                                                                                                                                          |
| 40000 | Authentication Failed                                       | Raised when an incoming request includes incorrect authentication.                                                       | Check for invalid credentials in your request when trying to authenticate.                                                                                               |
| 40001 | Not Authenticated                                           | Raised when an unauthenticated request fails the permission checks.                                                      | Check if your request contains a valid and non-expired `access_token`.                                                                                                   |
| 40003 | Permission Denied                                           | Raised when an authenticated request fails the permission checks.                                                        | Check if you have OAuth scopes to access requested resource. Please contact our support team if you think this is an error.                                              |
| 40004 | Not Found                                                   | Raised when a resource does not exists at the given URL.                                                                 | Check if the resource you're looking for does exist.                                                                                                                     |
| 40005 | Method Not Allowed                                          | Raised when an incoming request has been performed with certain HTTP verb that is not valid for the requested resource.  | Check the resource's docs section to learn the accepted HTTP methods.                                                                                                    |
| 40006 | Bad Request                                                 | Raised when historical market price API endpoint has not been used properly.                                             | Check for syntax errors in the payload of your request. Also look for sample requests in the docs related to the desired operation.                                      |
| 40007 | Bad Request                                                 | Raised when a currency network is not allowed to operate the selected currency.                                          | Check if your request contains a valid network for the selected currency.                                                                                                |
| 40008 | Not Found                                                   | Raised when a currency doesn't have its limits configured.                                                               | Please reach out our support team with the error details and detailed execution flow.                                                                                    |
| 40009 | Bad Request                                                 | Raised when an existing Quote with defined external\_ref has not been executed, thus it can not be excuted idempotently. | Use another external\_ref for the Quote.                                                                                                                                 |
| 40010 | Service Unavailable                                         | Raised when there are no addresses available for networks compatible with a specific network name.                       | Please reach out our support team with the error details and detailed execution flow.                                                                                    |
| 40015 | Unsupported Media Type                                      | Raised when the content type of the request data is not JSON compliant.                                                  | Check if your request data is compliant with JSON format.                                                                                                                |
| 40029 | Throttled                                                   | Raised when an incoming request fails the throttling checks.                                                             | Check if you are exceding the daily/hourly request quota for your account. Please contact our support team if you think you'll need an extended quota for your use-case. |
|       |                                                             |                                                                                                                          |                                                                                                                                                                          |
| 50003 | Service Unavailable                                         | Raised when the service (or requested resource) is not available.                                                        | Please reach out our support team with the error details and detailed execution flow.                                                                                    |
