# Etiquetas

## Envio de etiquetas customizadas nos pedidos de venda

<mark style="color:green;">`POST`</mark> `{url_base}/labels/{id}`

Permite o envio de etiquetas de frete customizada para um pedido de venda que tem como origem, por exemplo, um marketplace e precisa obrigatoriamente ter uma etiqueta externa.

O tipo do conteúdo dessa requisição deve ser: `multipart/form-data`

#### Headers

| Name                                            | Type   | Description                                                                                       |
| ----------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------- |
| X-Api-Version<mark style="color:red;">\*</mark> | String | <p>Versão da API a ser utilizada, de acordo com a documentação</p><p>Enviar "v1" como default</p> |
| X-Api-Key<mark style="color:red;">\*</mark>     | String | Chave de API criada através da plataforma                                                         |

#### Request Body

| Name                                   | Type | Description                                |
| -------------------------------------- | ---- | ------------------------------------------ |
| file<mark style="color:red;">\*</mark> | File | Arquivo da etiqueta no formato PDF ou .ZPL |

### Limitações

* Tamanho máximo por arquivo é de **1MB**
* Serão aceitos arquivos no formato **PDF** (tipo `application/pdf`) ou no formato **ZPL** (tipo `text/plain` - recomendado, ou `application/octet-stream`)

#### Especificações ZPL

* **Formato**: Texto que comece com `^XA` e termine com `^XZ`
* **Dimensões**: 4x6" (10x15 cm)
* **Validação**: O sistema detecta automaticamente pelo conteúdo `^XA`

{% tabs %}
{% tab title="200: OK Etiqueta enviada com sucesso" %}

```json
{
	"message": "Label integrated successfully"
}
```

{% endtab %}

{% tab title="400: Bad Request Parâmetros obrigatórios inválidos" %}

```json
{
	"message": "No file provided"
}
```

{% endtab %}

{% tab title="400: Bad Request Parâmetros obrigatórios inválidos" %}

```json
{
	"orders": {
		"2": {
			"file": [
				"File can't exceed 1MB."
			]
		}
	}
}
```

{% endtab %}

{% tab title="400: Bad Request ID do pedido inválido" %}

```json
{
	"failures": [
		{
			"order_id": "123456",
			"message": "Order not found"
		}
	]
}
```

{% endtab %}

{% tab title="401: Unauthorized Acesso não autorizado" %}

{% endtab %}
{% endtabs %}

***

## Envio em lote de etiquetas customizadas nos pedidos de venda

<mark style="color:green;">`POST`</mark> `{url_base}/labels`

Permite o envio de múltiplas etiquetas de frete para múltiplos pedidos simultaneamente.

O tipo do conteúdo dessa requisição deve ser: `multipart/form-data`

#### Headers

| Name                                            | Type   | Description                                                                                       |
| ----------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------- |
| X-Api-Version<mark style="color:red;">\*</mark> | String | <p>Versão da API a ser utilizada, de acordo com a documentação</p><p>Enviar "v1" como default</p> |
| X-Api-Key<mark style="color:red;">\*</mark>     | String | Chave de API criada através da plataforma                                                         |

### Parâmetros do Body

| Nome                                                   | Tipo   | Descrição                                              |
| ------------------------------------------------------ | ------ | ------------------------------------------------------ |
| orders\[n].file<mark style="color:red;">\*</mark>      | File   | Arquivo no formato PDF ou ZPL da etiqueta de envio     |
| orders\[n].order\_id<mark style="color:red;">\*</mark> | String | ID externo do pedido ao qual a etiqueta será associada |

### Limitações

* Tamanho máximo por arquivo é de **1MB**
* Tamanho máximo total (soma dos arquivos enviados na requisição): **10MB**
* Serão aceitos arquivos no formato **PDF** (tipo `application/pdf`) ou no formato **ZPL** (tipo `text/plain` - recomendado, ou `application/octet-stream`)

#### Especificações ZPL

* **Formato**: Texto que comece com `^XA` e termine com `^XZ`
* **Dimensões**: 4x6" (10x15 cm)
* **Validação**: O sistema detecta automaticamente pelo conteúdo `^XA`

{% tabs %}
{% tab title="200: OK Etiquetas enviadas com sucesso" %}

```json
{
	"success": [
		{
			"order_id": "6910",
			"message": "Label integrated successfully"
		},
		{
			"order_id": "6456",
			"message": "Label integrated successfully"
		}
	],
	"failures": []
}
```

{% endtab %}

{% tab title="400: Bad Request Tamanho do arquivo excede limite" %}

```json
{
	"orders": {
		"2": {
			"file": [
				"File can't exceed 1MB."
			]
		}
	}
}
```

{% endtab %}

{% tab title="400: Bad Request Tamanho da soma dos arquivos excede o limite" %}

```json
{
	"orders": [
		"Total file size exceeded 10MB."
	]
}
```

{% endtab %}

{% tab title="400: Bad Request Parâmetros obrigatórios inválidos" %}

```json
{
	"failures": [
		{
			"order_id": "123456",
			"message": "Order has missing file"
		}
	]
}
```

{% endtab %}

{% tab title="400: Bad Request ID do pedido inválido" %}

```json
{
	"failures": [
		{
			"order_id": "123456",
			"message": "Order not found"
		}
	]
}
```

{% endtab %}

{% tab title="401: Unauthorized Acesso não autorizado" %}

{% endtab %}
{% endtabs %}
