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

# Errors

> What each status code means, what the error body looks like, and what to do next.

Streamlined uses standard HTTP status codes. A `2xx` means the request worked. A `4xx` means something in the request needs to change. A `5xx` means something went wrong on our side.

## Status codes

| Status | Meaning | What to do |
| - | - | - |
| `200`, `201` | Success. `201` means something was created. | Nothing. |
| `400` | The request is malformed, for example an unknown sort column. | Fix the request using the `message`. |
| `401` | The `X-App-Id` or `X-Api-Key` header is missing or wrong. | See [Authentication](https://docs.streamlinedpayments.com/authentication.md). |
| `404` | The object doesn't exist, or it belongs to another account. | Check the ID and the environment. |
| `409` | The request conflicts with the object's current state. | Read the `message`, then fetch the object to see its state. |
| `422` | The request was understood but refused, usually because a field is invalid. | Fix the fields listed in `errors`. Don't retry unchanged. |
| `429` | You've hit a rate limit. | Wait, then retry. |
| `5xx` | Something went wrong at Streamlined. | Retry with backoff. If it keeps happening, contact us. |

## Error bodies

Most errors return an `error` and a human-readable `message`:

```json theme={null}
{
  "error": "Rate limit exceeded",
  "message": "No more than 100 deposit links per hour."
}
```

Validation errors (`422`) list every problem, so you can fix them all at once:

```json theme={null}
{
  "errors": ["Cannot update an invoiced order"]
}
```

Some endpoints add a stable `code` you can branch on. For example, approving a customer application returns a `code` such as `shopify_location_required`, and `approved: true` when the approval went through but the Shopify export didn't. Each endpoint's codes are listed in its guide and in the [API reference](https://docs.streamlinedpayments.com/api-reference).

> [!TIP]
>
> Branch on `status` and `code`. Show `message` and `errors` to people, but don't parse them: their wording can change.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.