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

# List of Authorization Errors

If an error occurs, the API will notify you using one of the following methods:

* If the error occurs during the [*Authorization*](./authorize-with-a-data-provider) flow, you'll receive a 302 redirect.

* If the error occurs while you're using the [*Token*](./token) or [*Revoke Connection*](./revoke-connection) endpoints, you'll receive a JSON response.

The JSON error response will be in on of the following formats:

```json Json theme={null}
{
  "error": "error",
  "error_description": "error_description"
}
```

```http Http theme={null}

    https://www.example.com/callback?
    error=error
    &error_description=error_description
    &state=state
```

## Supported errors

We recommend that you set up your configuration to expect and handle the following errors.

| **ERROR** | **STATUS CODE** |
| :- | :- |
| access\_denied | 400 |
| invalid\_request | 400 |
| invalid\_client | 400 |
| invalid\_grant | 400 |
| invalid\_scope | 400 |
| unauthorized\_client | 400 |
| unsupported\_grant\_type | 400 |
| unsupported\_response\_type | 400 |
| unsupported\_token\_type | 400 |
| server\_error | 500 |
| temporarily\_unavailable | 503 |

## Common Error Scenarios

Common error scenarios include consent errors and non transient failures

### Consent Errors

This type of error is caused by an issue with the end users consent.

If the end user denies consent during authorization, you'll receive a 302 redirect with an `error`, `error_description`, and the original state.

### Non Transient Failures

This type of error is caused by a specific issue that must be addressed. You will continue to see this error until the error is corrected.

| **SCENERIO** | **ERROR** | **STATUS CODE** | **ACTION** |
| :- | :- | :- | :- |
| Invalid client or client credentials | invalid\_client | 400 | Confirm the `client_id` and `client_secret` are correct. |
| Authorization header is not included | invalid\_scope or invalid\_request | 400 | Include the authorization header in the request. |
| Refresh token is expired or invalid | invalid\_grant | 400 | A new `refresh_token` is generated each time a user logs in, making all previous tokens unusable. Discard the `refresh_token` after each use to avoid receiving this error. |
