# Errors

Glomo uses standard HTTP status codes to indicate the success or failure of an API request:

- **2xx Success**: The request was successful.
- **4xx Client Error**: There was an error with the request.
- **5xx Server Error**: An error occurred on our end.


## 4xx Client Errors

| **HTTP Status Code** | **Description** |
|  --- | --- |
| **400** | The request is invalid or missing required parameters. |
| **401** | Authentication failed due to invalid API keys. |
| **402** | The parameters were valid but the request failed. |
| **403** | You do not have permission to perform the requested operation. |
| **404** | The requested resource does not exist. |
| **409** | The request could not be completed due to a conflict with the current state of the resource. |
| **429** | Too many requests have been made in a short period. |


## 5xx Server Errors

| **HTTP Status Code** | **Description** |
|  --- | --- |
| **500** | An internal error occurred on Glomo's servers. |
| **502** | Glomo is temporarily unavailable. |
| **503** | The service is temporarily unavailable. |
| **504** | The request to Glomo timed out. |


### Error Response Format

In case of an error, the response will include an `error` object with details:
It will have two fields:

* code: This will be internal error code for example: "Card not supported" etc.
* message: This will be human readable message about error code.



```json
{
  "error": {
    "code": "invalid_request_error",
    "message": "The provided payment method is invalid."
  }
}
```