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

# Regras do processamento

> Tudo que é verificado antes de a remessa ser aceita, e o que acontece quando falha.

Estas regras valem para **qualquer** remessa, entregue pelo portal ou por SFTP. É o
processamento que as aplica, e ele não distingue como o arquivo chegou.

<Warning>
  Uma única violação em qualquer uma delas rejeita a **remessa inteira**. Nenhuma notificação
  é enviada, nem das linhas corretas.
</Warning>

As regras são verificadas em ordem — arquivo, depois linha, depois canal, depois anexo.
A primeira etapa que falha interrompe as seguintes, então corrigir um erro pode revelar
outro na tentativa seguinte.

## 1. O arquivo

| Regra                    | Quando falha                                                                                                                 |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| Codificação              | O arquivo não está em UTF-8. Arquivos em ISO-8859-1 são convertidos automaticamente; outras codificações são recusadas       |
| Separador                | A primeira linha usa vírgula e não tem nenhum ponto e vírgula                                                                |
| Cabeçalho sem duplicatas | O mesmo nome de coluna aparece mais de uma vez                                                                               |
| Colunas obrigatórias     | Falta `ASSUNTO`, `NOME_DESTINATARIO` ou `MODELO` no cabeçalho                                                                |
| Estrutura das linhas     | Alguma linha tem **mais** campos que o cabeçalho. Ponto e vírgula dentro de um texto é a causa mais comum — use aspas duplas |
| Conteúdo                 | O arquivo não tem nenhuma linha de dados                                                                                     |
| Não repetido             | Já existe remessa processada com esse nome, ou o conteúdo é idêntico ao de uma tentativa anterior que falhou                 |

<Note>
  Linha com **menos** campos que o cabeçalho é aceita. As colunas finais chegam vazias — o
  que pode disparar uma regra de campo obrigatório logo adiante.
</Note>

## 2. Cada linha

| Regra                            | Quando falha                                                                                                                                         |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ASSUNTO` preenchido             | Campo vazio ou só com espaços                                                                                                                        |
| `NOME_DESTINATARIO` preenchido   | Campo vazio ou só com espaços                                                                                                                        |
| Modelo existe                    | O nome em `MODELO` não corresponde a nenhum modelo cadastrado na pasta de modelos da conta. O relatório sugere nomes parecidos quando encontra algum |
| Variáveis obrigatórias do modelo | O modelo usa variáveis marcadas como obrigatórias e o CSV não traz as colunas correspondentes                                                        |
| `TEMPLATE_VOZ`                   | `TELEFONE_DESTINATARIO_VOZ` preenchido e `TEMPLATE_VOZ` vazio                                                                                        |
| `TEMPLATE_WHATSAPP`              | A coluna `TEMPLATE_WHATSAPP` existe no arquivo e está vazia em alguma linha                                                                          |

## 3. Permissões da conta

| Regra                | Quando falha                                                                                 |
| -------------------- | -------------------------------------------------------------------------------------------- |
| AR-Cartas habilitado | Alguma linha tem `ENVIA_CARTAS` igual a `SIM` e a conta não está liberada para cartas        |
| AR-Voz habilitado    | Alguma linha tem `TELEFONE_DESTINATARIO_VOZ` preenchido e a conta não está liberada para voz |

Para liberar um canal, fale com o Comercial. A alternativa é remover o uso do canal nas
linhas envolvidas.

<Note>
  O mesmo vale para os modelos: o cadastro de modelos de remessa, e dos templates de
  WhatsApp, voz e cartas, é feito pela AR Online no setup da conta. Para incluir ou alterar
  algum deles, entre em contato pelo e-mail [suporte@ar-online.com.br](mailto:suporte@ar-online.com.br).
</Note>

## 4. Cada canal

Estas só são verificadas quando o canal é usado na remessa.

<AccordionGroup>
  <Accordion title="AR-Whatsapp">
    * O template informado em `TEMPLATE_WHATSAPP` precisa estar cadastrado, ativo, e a
      conta precisa ter permissão de uso
    * Cada parâmetro exigido pelo template precisa vir como coluna no CSV, com o sufixo
      `_WPP` no nome, preenchida em todas as linhas que usam o template

    Exemplo: se o template exige o parâmetro `nome`, o CSV precisa da coluna `NOME_WPP`.
  </Accordion>

  <Accordion title="AR-Cartas">
    * `TEMPLATE_CARTAS` precisa estar preenchido em **todas** as linhas com
      `ENVIA_CARTAS` igual a `SIM` — não pode estar em umas e faltar em outras
    * O template informado precisa estar configurado no AR-Cartas para a sua conta
    * Todos os campos exigidos pelo template precisam estar preenchidos, com uma exceção:
      `ID_CARTA` é opcional
    * Campos de grupo, cujo nome começa com `TAB_`, precisam ter ao menos uma coluna
      correspondente no CSV
  </Accordion>

  <Accordion title="AR-Voz">
    * `TEMPLATE_VOZ` precisa estar preenchido em todas as linhas com
      `TELEFONE_DESTINATARIO_VOZ`
    * O template precisa existir para a sua conta
    * Todos os campos exigidos pelo template de voz precisam estar preenchidos
  </Accordion>
</AccordionGroup>

## 5. Anexos

| Regra            | Quando falha                                                  |
| ---------------- | ------------------------------------------------------------- |
| Anexo existe     | Um arquivo citado em `ANEXO_1` a `ANEXO_5` não foi encontrado |
| Tamanho do anexo | O arquivo passa de 5 MB                                       |

## O que não é verificado

Estas situações **não** rejeitam a remessa. A linha é aceita e o envio segue:

* Linha sem nenhuma coluna de canal preenchida — nenhuma notificação é gerada para ela
* Telefone de SMS sem exatamente 11 dígitos — o SMS não é enviado
* Linha com menos campos que o cabeçalho
* `TIPO_ENVIO_SMS` ausente ou com valor diferente de `1` e `2` — assume `1`

<Note>
  Como não geram falha, essas situações passam despercebidas. Elas aparecem nos alertas da
  remessa. Veja [Depois do envio](/remessas/apos-envio).
</Note>
