# RiskRecon Error Structure
source: https://developer.mastercard.com/riskrecon-api/documentation/code-and-formats/rrecon-err-structure/index.md

## Overview {#overview}

Some common errors can occur while calling the RiskRecon REST APIs.

The HTTP response status codes indicate the success or failure of API requests. Some examples are as follows:

* The request that is successful is indicated by 2xx.
* The request with validation issues or authorization issues is indicated by 4xx.
* The request that has resulted in a server error is indicated by 5xx. These errors are recoverable. If you try after some time, the APIs might respond without any error.

<br />

In case of a request failure, the API returns the appropriate HTTP status code in the response header and the error details in the response body. The error details indicate the cause of the failure.  

### Error Structure {#error-structure}

All Mastercard APIs including RiskRecon APIs return errors in the following structure:

```json
{
  "Errors": {
    "Error": [
      {
        "Description": "<short description of the error, for example, Unauthorized request>",
        "Details": "<Optional detailed description of the issue, for example, Invalid JWT>",
        "ReasonCode": "<unique code, for example, UNAUTHORIZED>",
        "Recoverable": true/false,
        "Source": "<source of the error, for example,  RISKRECON_API>"
      }
    ]
  }
}
```

### Field Overview {#field-overview}

|    Field    |                                                                          Description                                                                           |
|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Description | A human-readable short description of the ReasonCode that can help to resolve the issue.                                                                       |
| Details     | An optional detailed description that provides information about data received and calculated during request processing to help the user diagnose errors.      |
| ReasonCode  | A ReasonCode is a unique constant that identifies the error case encountered during the request processing.                                                    |
| Recoverable | The recoverable flag indicates whether this error would always return for this request, or if retrying could change the outcome. For example, 'true', 'false'. |
| Source      | The application or component that generated this error. For example, RiskRecon API.                                                                            |

