> ## 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.

# Consultar status por canal

> Consulte o status de entrega e leitura de cada canal — e-mail, SMS, WhatsApp, voz e carta — pelo identificador do envio.

Depois de enviar uma notificação, você acompanha o resultado de cada canal individualmente. Como o envio é **assíncrono**, o `idEmail` devolvido no `POST /gw/email` é a chave para consultar o status a qualquer momento.

Cada canal tem seu próprio endpoint `GET`, com campos de resposta específicos. Se você precisa dos dados de todos os canais de uma só vez (por exemplo, para perícia ou auditoria), use o [status consolidado](/acompanhando/status-consolidado).

<Info>
  Todas as datas retornadas estão no fuso **BRT (Brasília)**.
</Info>

## Endpoints

| Canal    | Endpoint                     |
| -------- | ---------------------------- |
| E-mail   | `GET /gw/email/{idEmail}`    |
| SMS      | `GET /gw/sms/{idEmail}`      |
| WhatsApp | `GET /gw/whatsapp/{idEmail}` |
| Voz      | `GET /gw/voz/{idEmail}`      |
| Carta    | `GET /gw/carta/{idEmail}`    |

## Consultar o status

<Tabs>
  <Tab title="E-mail">
    `GET /gw/email/{idEmail}` — onde `{idEmail}` é o identificador único (UUID) devolvido no envio.

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X GET "https://api.ar-online.com.br/gw/email/f6cb58f2-3e9b-4899-b703-3facd52e17ee" \
        -H "Authorization: SEU_TOKEN_AQUI"
      ```

      ```json Resposta theme={null}
      {
        "dateSend": "21/10/2025 10:29:54",
        "dateDelivery": "21/10/2025 10:29:58",
        "dateReading": "21/10/2025 10:30:06",
        "dateAcceptance": "21/10/2025 10:38:48",
        "error": false,
        "description": "Confirmou o recebimento",
        "failureReason": null,
        "failureReasonDescription": null,
        "customID": null,
        "idEmail": "f6cb58f2-3e9b-4899-b703-3facd52e17ee"
      }
      ```
    </CodeGroup>

    <ResponseField name="dateSend" type="string">Data do envio da mensagem (BRT).</ResponseField>
    <ResponseField name="dateDelivery" type="string">Data da entrega da mensagem (BRT).</ResponseField>
    <ResponseField name="dateReading" type="string">Data da leitura da mensagem (BRT).</ResponseField>
    <ResponseField name="dateAcceptance" type="string">Data da confirmação de recebimento da mensagem (BRT).</ResponseField>
    <ResponseField name="error" type="boolean">Indica se houve erro no processamento.</ResponseField>
    <ResponseField name="description" type="string">Descrição do status atual. Veja os [significados de status](#significados-de-status).</ResponseField>
    <ResponseField name="failureReason" type="string | null">Rótulo curto em português indicando o motivo da falha de **validação prévia** do e-mail (Validity). Preenchido apenas quando o e-mail falhou nessa validação; `null` quando não houve falha de validação. Veja os [motivos de falha de validação](#motivos-de-falha-de-validação-do-e-mail).</ResponseField>
    <ResponseField name="failureReasonDescription" type="string | null">Descrição completa em português do motivo da falha. Preenchido em conjunto com `failureReason`; `null` quando não houve falha de validação.</ResponseField>
    <ResponseField name="customID" type="string | null">Identificador externo informado no envio.</ResponseField>
    <ResponseField name="idEmail" type="string">Identificador do AR-Email.</ResponseField>
  </Tab>

  <Tab title="SMS">
    `GET /gw/sms/{idEmail}`

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X GET "https://api.ar-online.com.br/gw/sms/f6cb58f2-3e9b-4899-b703-3facd52e17ee" \
        -H "Authorization: SEU_TOKEN_AQUI"
      ```

      ```json Resposta theme={null}
      {
        "dateSend": "21/02/2025 21:01:54",
        "dateReading": "21/02/2025 21:02:00",
        "description": "Entregue",
        "dateAnswered": null,
        "answered": []
      }
      ```
    </CodeGroup>

    <ResponseField name="dateSend" type="string">Data do envio da mensagem (BRT).</ResponseField>
    <ResponseField name="dateReading" type="string">Data da leitura da mensagem (BRT).</ResponseField>
    <ResponseField name="description" type="string">Descrição do status atual. Veja os [significados de status](#significados-de-status).</ResponseField>
    <ResponseField name="dateAnswered" type="string | null">Data da resposta da mensagem, quando houver (BRT).</ResponseField>
    <ResponseField name="answered" type="array">Lista de respostas recebidas da mensagem.</ResponseField>
  </Tab>

  <Tab title="WhatsApp">
    `GET /gw/whatsapp/{idEmail}`

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X GET "https://api.ar-online.com.br/gw/whatsapp/f6cb58f2-3e9b-4899-b703-3facd52e17ee" \
        -H "Authorization: SEU_TOKEN_AQUI"
      ```

      ```json Resposta theme={null}
      {
        "description": "Lido (acessou o link)",
        "dateSent": "14/05/2025 17:04:44",
        "dateDelivery": "14/05/2025 17:04:45",
        "dateResponse": "21/05/2025 10:26:19",
        "dateAccessLink": "14/05/2025 17:05:55",
        "error": false,
        "failureReason": null,
        "customID": null,
        "idEmail": "f6cb58f2-3e9b-4899-b703-3facd52e17ee"
      }
      ```
    </CodeGroup>

    <ResponseField name="description" type="string">Descrição do status atual. Veja os [significados de status](#significados-de-status).</ResponseField>
    <ResponseField name="dateSent" type="string">Data do envio da mensagem (BRT).</ResponseField>
    <ResponseField name="dateDelivery" type="string">Data da entrega da mensagem (BRT).</ResponseField>
    <ResponseField name="dateResponse" type="string | null">Data de resposta da mensagem (BRT).</ResponseField>
    <ResponseField name="dateAccessLink" type="string | null">Data de acesso ao link da mensagem enviada (BRT).</ResponseField>
    <ResponseField name="error" type="boolean">Indica se houve erro no processamento.</ResponseField>
    <ResponseField name="failureReason" type="string | null">Detalhamento do erro, quando houver.</ResponseField>
    <ResponseField name="customID" type="string | null">Identificador externo informado no envio.</ResponseField>
    <ResponseField name="idEmail" type="string">Identificador do AR-Email.</ResponseField>
  </Tab>

  <Tab title="Voz">
    `GET /gw/voz/{idEmail}`

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X GET "https://api.ar-online.com.br/gw/voz/f6cb58f2-3e9b-4899-b703-3facd52e17ee" \
        -H "Authorization: SEU_TOKEN_AQUI"
      ```

      ```json Resposta theme={null}
      {
        "dateSent": "05/12/2024 14:19:57",
        "dateSuccessCall": "05/12/2024 14:21:10",
        "description": "Atendimento Confirmado",
        "linkCall": "https://portal.ar-online.com.br/emails/info/public/voz/{idEmail}"
      }
      ```
    </CodeGroup>

    <ResponseField name="dateSent" type="string">Data do envio da mensagem (BRT).</ResponseField>
    <ResponseField name="dateSuccessCall" type="string | null">Data de sucesso (confirmação do atendimento) (BRT).</ResponseField>
    <ResponseField name="description" type="string">Descrição do status atual. Veja os [significados de status](#significados-de-status).</ResponseField>
    <ResponseField name="linkCall" type="string">Link para download da gravação da chamada.</ResponseField>
  </Tab>

  <Tab title="Carta">
    `GET /gw/carta/{idEmail}`

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X GET "https://api.ar-online.com.br/gw/carta/f6cb58f2-3e9b-4899-b703-3facd52e17ee" \
        -H "Authorization: SEU_TOKEN_AQUI"
      ```

      ```json Resposta theme={null}
      {
        "description": "Entregue",
        "error": false,
        "dateProcessing": "19/02/2025 10:45:50",
        "datePreparation": "19/02/2025 20:45:50",
        "dateDelivery": "10/03/2025 14:19:18",
        "sro": "YA000000000BR",
        "linkArCartaComprovante": "https://ar-carta-dev.s3.us-east-1.amazonaws.com/XYZ",
        "linkRastreio": "https://rastreamento.correios.com.br/app/index.php?objetos=YA000000000BR"
      }
      ```
    </CodeGroup>

    <ResponseField name="description" type="string">Descrição do status atual. Veja os [significados de status](#significados-de-status).</ResponseField>
    <ResponseField name="error" type="boolean">Indica se houve erro no processamento.</ResponseField>
    <ResponseField name="dateProcessing" type="string">Data de início do processamento da carta (BRT).</ResponseField>
    <ResponseField name="datePreparation" type="string">Data da preparação da carta — envio + processamento da impressão (BRT).</ResponseField>
    <ResponseField name="dateDelivery" type="string">Data de entrega da carta pelos Correios (BRT).</ResponseField>
    <ResponseField name="sro" type="string">Código de rastreio dos Correios.</ResponseField>
    <ResponseField name="linkArCartaComprovante" type="string">Link para download do comprovante dos Correios. Válido por 1 hora.</ResponseField>
    <ResponseField name="linkRastreio" type="string">Link para a página de rastreamento dos Correios.</ResponseField>
  </Tab>
</Tabs>

## Significados de status

O campo `description` indica o estágio atual da notificação. Os valores possíveis variam por canal:

| Canal        | Valores possíveis de `description`                                                                                                                                 |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **E-mail**   | Processado, Enviado, Entregue, Lido, Lido (Click no Link), Confirmou o recebimento, Falha no Envio/Entrega                                                         |
| **SMS**      | Processado (enfileirado na fila para envio), Enviado, Entregue, Lido (acessou o link), Falha                                                                       |
| **WhatsApp** | Processado (enfileirado na fila para envio), Enviado, Entregue, Visualizado (WhatsApp), Respondido, Lido (acessou o link), Número inválido, Falha no envio/entrega |
| **Voz**      | Enviado, Falha no atendimento, Falha no envio/entrega, Atendimento Confirmado                                                                                      |
| **Carta**    | Processando o envio, Preparado o envio, Pendente de envio, Enviada, Entregue, Falha ao tentar enviar/entrega                                                       |

## Motivos de falha de validação do e-mail

Quando o e-mail falha na **validação prévia** (Validity / Everest), os campos `failureReason` (rótulo curto) e `failureReasonDescription` (descrição completa) do status do AR-Email são preenchidos conforme a tabela:

| `failureReason`              | `failureReasonDescription`                                                                                                                             |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Endereço inválido            | O formato do e-mail está incorreto e não segue o padrão técnico esperado (ex.: falta de "@" ou domínio malformado).                                    |
| Domínio inválido             | O domínio informado não existe ou não está configurado para receber e-mails.                                                                           |
| Conta inexistente            | O domínio existe, mas a caixa de entrada específica não foi encontrada nesse domínio.                                                                  |
| Caixa cheia                  | A conta existe, mas está sem espaço para receber novas mensagens no momento.                                                                           |
| Aceita-tudo (catch-all)      | O servidor aceita qualquer endereço nesse domínio, mas isso não garante que a caixa realmente exista; o e-mail pode ser descartado depois.             |
| Endereço de função           | Caixa genérica (ex.: vendas@, suporte@, financeiro@) usada por equipes, não por uma pessoa específica; tende a ter menor engajamento.                  |
| Temporário/descartável       | Endereço criado para uso rápido ou cadastro momentâneo, geralmente expira ou é abandonado em pouco tempo.                                              |
| Indeterminado                | O formato é válido, mas o servidor não respondeu corretamente às tentativas de verificação, impedindo confirmação definitiva.                          |
| E-mail inválido *(fallback)* | O e-mail do destinatário informado é inválido. Verifique o endereço inserido. *(usado quando a Validity devolve uma categoria nova ainda não mapeada)* |

<Note>
  * E-mails de domínios na **whitelist** do usuário não passam pela validação da Validity, portanto `failureReason` e `failureReasonDescription` ficam `null` mesmo se houver falha posterior no envio/entrega (classificada como `description: "Falha no Envio/Entrega"`).
  * Os dois campos são **exclusivos de falhas de validação**. Falhas posteriores (bounce, erro de SMTP etc.) continuam com ambos `null` e `description: "Falha no Envio/Entrega"`.
  * Toda resposta é em **português**. Códigos técnicos em inglês da Validity são mantidos apenas para uso interno em logs e não aparecem no contrato público da API.
</Note>

<Tip>
  Para evitar consultas recorrentes (polling), prefira receber as atualizações de status em tempo real por [Webhooks](/webhooks/visao-geral).
</Tip>
