# SMS

## Mensagens com links

Por padrão todas as mensagens enviadas que contenham links serão retidas para análise manual. A análise poderá demorar até **48h úteis** devido ao grande volume de mensagens que possuímos.

Para evitar os bloqueios nós podemos registrar antecipadamente seus links em nosso filtro para a mensagem não ficar retida.

Na situação de links dinâmicos de domínio particular, nós registramos o domínio como *wildcard* e todas as suas variações serão aceitas e em situações de links dinâmicos de domínios públicos como bit.ly - por exemplo - será necessário informa-los individualmente.

## Webhooks

Todos os dados serão enviados ao seu endpoint encodados em JSON via POST. Cada atualização de status irá gerar uma requisição, ou seja, se você enviar 10 mil mensagens é possível que existam 20 mil requisições a sua URL ao considerar *callbacks* e *dlrs*.

{% hint style="info" %}
Logo que recebemos um MO, automaticamente marcamos o MT original como DELIVERED e essa alteração não é notificada via webhook. Portanto o MT relacionado ao MO poderá sempre ser considerado como DELIVERED.
{% endhint %}

Você poderá registrar diferentes endpoints para cada tipo de situação como CALLBACK, DLR e MO. Para registrar seus endpoints acesse o menu **Minha conta > Configurações > Webhooks**

![Tela de configurações de endpoints para Webhooks](/files/-MfDhONXWm76SCqDEcDq)

{% hint style="danger" %}
**TIMEOUT - 2 segundos**\
Este é o tempo de espera máxima que nossos servidores usam para ter uma resposta (positiva ou negativa) do seu endpoint cadastrado nos webhooks. Passado esse tempo, o pacote de dados será descartado, sem possibilidade de reenvio.
{% endhint %}

{% hint style="danger" %}
Os pacotes de dados enviados por webhooks **não são real-time**. Poderá existir uma defasagem de tempo do momento em que recebemos os dados das operadoras até o repasse ao seu endpoint. Portanto, para dados em real-time consulte os  serviços de [Consulta de Status](/apis-v2/sms/consulta-status.md) e [Inbox](/apis-v2/sms/inbox.md)&#x20;
{% endhint %}

### Status SMSC e DLR

Modelo de objeto JSON enviados ao seu endpoint

```javascript
{
  "id": 485489,
  "customId": "fire00001",
  "campaignId": 389,
  "cost": 0.12,
  "parts": 1,
  "country": "55",
  "ip": "127.127.1.1",
  "phone": "551194455667722",
  "carrier": "Claro",
  "statusCode": 2,
  "statusName": "DELIVERED",
  "statusDate": "2021-07-21T17:01:10-0300",
  "sentDate": "2021-07-21T16:58:11-0300"
}
```

> Acesse a seção [Códigos de status](/apis-v2/sms/codigo-de-status.md) para ter informações detalhadas dos códigos e significados de cada um dos possíveis status da mensagem.

### MO (Resposta recebida)

Modelo de objeto JSON enviados ao seu endpoint a cada nova resposta recebida dos seus destinatários.

```typescript
{
  "id": 246,
  "mtId": 485489,
  "customId": "fire00001",
  "campaignId": 389,
  "cost": 0.12,
  "country": "55",
  "phone": "5511944556677",
  "carrier": "Claro",
  "text": "Remarcar para as 10am",
  "receivedDate": "2021-07-21T17:01:10-0300",
  "openDate": "2021-07-21T17:29:06-0300"
}
```

{% hint style="success" %}
Para a ativação do recebimento de respostas, utilite o parâmetro `allowReply` como `true` no momento da requisição do envio do SMS
{% endhint %}

{% content-ref url="/pages/-MfFn9OJQjMoOeO65xfY" %}
[Código de status](/apis-v2/sms/codigo-de-status.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.smsfire.com.br/apis-v2/sms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
