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

# Autenticação

As rotas de **Orders** e **Products** utilizam autenticação por **API Key** do tipo `orders`.

## Headers Obrigatórios

Todas as requisições devem incluir os seguintes headers:

<ParamField header="X-API-Key" type="string" required>
  Sua API key do tipo `orders`
</ParamField>

<ParamField header="X-Store-Id" type="string" required>
  ID da sua loja
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Deve ser `application/json`
</ParamField>

<RequestExample>
  ```bash theme={null}
  curl -X POST https://api.appmartan.com.br/orders \
    -H "X-API-Key: sua-api-key-aqui" \
    -H "X-Store-Id: 123" \
    -H "Content-Type: application/json" \
    -d '{
      "order_id": "ORD-12345",
      "order_date": "2024-01-01T00:00:00.000Z",
      "delivery_date": "2024-01-05T00:00:00.000Z",
      "products": [...],
      "customers": [...]
    }'
  ```
</RequestExample>

## Erros de Autenticação

<ResponseField name="status" type="number">
  Código HTTP do erro
</ResponseField>

<ResponseField name="error_code" type="number">
  Código de erro específico da API
</ResponseField>

<ResponseField name="message" type="string">
  Mensagem de erro em inglês
</ResponseField>

<ResponseField name="user_message" type="object">
  Mensagens de erro traduzidas

  <Expandable title="Ver estrutura">
    <ResponseField name="en_us" type="string">
      Mensagem em inglês
    </ResponseField>

    <ResponseField name="pt_br" type="string">
      Mensagem em português
    </ResponseField>
  </Expandable>
</ResponseField>

### Códigos de Erro

| Status | Código  | Descrição                                      |
| ------ | ------- | ---------------------------------------------- |
| 401    | 8121200 | API key ausente no header X-API-Key            |
| 417    | 8121201 | Store ID ausente no header X-Store-Id          |
| 401    | 8121202 | API key inválida ou inativa                    |
| 401    | 8121203 | Store inativa                                  |
| 401    | 8121204 | API key expirada                               |
| 403    | 8121205 | Store ID não corresponde à API key             |
| 403    | 8121206 | Limite de uso de pedidos excedido para o plano |

### Exemplo de Resposta de Erro

<ResponseExample>
  ```json theme={null}
  {
    "status": 401,
    "error_code": 8121202,
    "message": "Invalid or inactive API key",
    "user_message": {
      "en_us": "Invalid or inactive API key",
      "pt_br": "API key inválida ou inativa"
    },
    "more_info": null
  }
  ```
</ResponseExample>
