> For the complete documentation index, see [llms.txt](https://docs-pt.sinch.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-pt.sinch.com/documentacao-tecnica-sms/documentacao-tecnica-sms/status-de-envio-callback-e-dlr.md).

# Status de envio (Callback e DLR)

Existem duas maneiras de obter os status de envio das mensagens, são elas:

* **Webhook** - Receber os status em um webservice de sua empresa (recomendado)

Assim que entregamos a mensagem na operadora, ou assim que a operadora nos informa se entregou a mensagem no aparelho, a informação é repassada instantaneamente para você.

* **API de consulta** - Fazer requisições de consulta em nossa API sms-status.

Os status ficam disponíveis por 3 dias, e podem ser consultados pelo UUID que a Sinch retornou ao receber a mensagem de sua empresa, ou pelo ID que sua empresa recebeu ao entregar a mensagem para a Sinch.\
A desvantagem desta opção de consulta ao invés de webhook, é que você fará requisições de consulta de um ID que pode ainda não ter sido entregue na operadora ou no aparelho, neste caso, uma série de requisições desnecessárias serão feitas. Por exemplo, se um usuário estava com o aparelho desligado quando você enviou uma mensagem para ele, e ligou 2 horas depois, você ficará consultando este ID inúmeras vezes por duas horas. E no caso da utilização de um webhook, esta informação seria enviada para você assim que fosse entregue no aparelho, sem requisições vazias.

{% hint style="danger" %}
**IMPORTANTE! As consultas de status possuem rate-limit de 1 requisição por segundo por endereço IP. Requisições além deste limite são respondidas com o código de status HTTP 429.**
{% endhint %}

### Status via webhook (entrega em seu webservice) <a href="#status-via-webhook-entrega-em-seu-webservice" id="status-via-webhook-entrega-em-seu-webservice"></a>

Para configurar o envio dos Callbacks e DRs (dúvida sobre os termos consulte a aba [Termos Importantes](https://doc-messaging.wavy.global/pt.html?java#termos-importantes)) primeiramente é necessário logar no [**Sinch Messaging**](https://messaging.sinch.com) nas configurações da API, no formulário de configuração você poderá fornecer as URLs para onde serão enviado os status de envio (Callbacks) e os status de confirmação do aparelho (DRs)

Após a inclusão de seu webhook no portal acima, as configurações serão replicadas para nossa plataforma em até 10 minutos, e chamaremos sua URL quando as seguintes ações ocorrem:

| Ação                                                            | Status de retorno enviado         |
| --------------------------------------------------------------- | --------------------------------- |
| Depois que uma mensagem for entregue ou não, na operadora       | API de status de envio (callback) |
| Quando uma mensagem for entregue ou não, no aparelho do cliente | API de Delivery Report (DRs)      |

### Campos JSON resposta Callbacks (sent status) <a href="#campos-json-resposta-callbacks-sent-status" id="campos-json-resposta-callbacks-sent-status"></a>

<table><thead><tr><th width="209">Campo</th><th>Descrição</th></tr></thead><tbody><tr><td>id</td><td>UUID gerado da mensagem</td></tr><tr><td>correlationId</td><td>Sua identificação desta mensagem</td></tr><tr><td>carrierId</td><td>Identificador da operadora</td></tr><tr><td>carrierName</td><td>Nome da operadora</td></tr><tr><td>destination</td><td>Número de telefone da mensagem enviada</td></tr><tr><td>sentStatusCode</td><td>Código de status gerado pelo Sinch para mensagem indicando o status de envio. Verifique em <a href="https://doc-messaging.wavy.global/pt.html?java#c-digos-de-status-de-envio">códigos de status</a> para mais informações</td></tr><tr><td>sentStatus</td><td>Descrição do status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>sentAt</td><td>Hora do envio, formato utilizado é o Unix_time</td></tr><tr><td>sentDate</td><td>Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td></tr><tr><td>campaignId</td><td>Identificador de campanha caso exista</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra adicionada pelo cliente no envio da mensagem</td></tr><tr><td>multipartCount</td><td>Total de partes que teve o disparo</td></tr><tr><td>partId</td><td>O UUID da parte da mensagem enviada a operadora</td></tr><tr><td>part</td><td>O número da parte enviada a operadora</td></tr></tbody></table>

Exemplo JSON Status de Envio (callback - entrega na operadora)

{% tabs %}
{% tab title="cURL" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="Ruby" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="Python" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="PHP" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}

{% tab title="Java" %}

```
POST https://example.com/callback/
Content-Type: application/json

{
  "id":"f9c100ff-aed0-4456-898c-e57d754c439c",
  "correlationId":"client-id",
  "carrierId":1,
  "carrierName":"VIVO",
  "destination":"5511900009999",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentAt":1266660300000,
  "sentDate":"2010-02-20T10:05:00Z",
  "campaignId":"64",
  "extraInfo":"",
}
```

{% endtab %}
{% endtabs %}

### Campos JSON resposta Delivery Reports (DRs) <a href="#campos-json-resposta-delivery-reports-drs" id="campos-json-resposta-delivery-reports-drs"></a>

<table><thead><tr><th width="220">Campo</th><th>Descrição</th></tr></thead><tbody><tr><td>id</td><td>UUID gerado da mensagem</td></tr><tr><td>correlationId</td><td>Sua identificação desta mensagem</td></tr><tr><td>carrierId</td><td>Identificador da operadora</td></tr><tr><td>carrierName</td><td>Nome da operadora</td></tr><tr><td>destination</td><td>Número de telefone da mensagem enviada</td></tr><tr><td>sentStatusCode</td><td>Código de status gerado pela Sinch para mensagem indicando o status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>sentStatus</td><td>descrição do status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>sentAt</td><td>Hora do envio, formato utilizado é o Unix_time</td></tr><tr><td>sentDate</td><td>Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td></tr><tr><td>deliveredStatusCode</td><td>Código de status gerado pelo Sinch para mensagem indicando o status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>deliveredStatus</td><td>descrição do status de envio. Verifique em códigos de status para mais informações</td></tr><tr><td>deliveredAt</td><td>Hora do envio, formato utilizado é o Unix_time</td></tr><tr><td>deliveredDate</td><td>Data que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ</td></tr><tr><td>campaignId</td><td>Identificador de campanha caso exista</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra adicionada pelo cliente no envio da mensagem</td></tr></tbody></table>

### Consulta Status via requisição HTTP <a href="#consulta-status-via-requisi-o-http" id="consulta-status-via-requisi-o-http"></a>

Para obter uma lista dos status ainda não consultados, você pode fazer uma solicitação GET para o URL abaixo:

`GET https://api-messaging.wavy.global/v1/sms/status/list`

Observe que este endpoint retorna apenas os status ainda não retornados por este endpoint.

#### Resposta <a href="#resposta" id="resposta"></a>

Campos JSON de resposta:

<table><thead><tr><th width="184">Campo</th><th width="421">Detalhes</th><th>Tipo</th></tr></thead><tbody><tr><td>id</td><td>UUID gerado na requisição para a mensagem</td><td>String</td></tr><tr><td>correlationId</td><td>Mesmo correlationId da requisição</td><td>String</td></tr><tr><td>carrierId</td><td>ID da operadora, para mais informações consulte código de erro</td><td>Long</td></tr><tr><td>carrierName</td><td>Nome da operadora</td><td>String</td></tr><tr><td>destination</td><td>Número de telefone da mensagem enviada</td><td>String</td></tr><tr><td>sentStatusCode</td><td>Código de status enviado. Verifique os códigos de status enviados para obter mais informações</td><td>Long</td></tr><tr><td>sentStatus</td><td>Código de status enviado. Verifique os códigos de status enviados para obter mais informações</td><td>String</td></tr><tr><td>sentStatusAt</td><td>Quando a mensagem foi enviada. É uma data de época</td><td>Long</td></tr><tr><td>sentStatusDate</td><td>Quando a mensagem foi enviada. Formato aaaa-MM-dd’T'HH:mm:ssZ. Formato de data com hora e fuso horário (ISO 8601)</td><td>String</td></tr><tr><td>deliveredStatusCode</td><td>Código de status entregue. Verifique os códigos de status entregues para obter mais informações</td><td>Long</td></tr><tr><td>deliveredStatus</td><td>Código de status entregue. Verifique os códigos de status entregues para obter mais informações</td><td>String</td></tr><tr><td>deliveredAt</td><td>Quando a mensagem foi enviada. É uma data de época</td><td>Long</td></tr><tr><td>deliveredDate</td><td>Quando a mensagem foi enviada. Formato aaaa-MM-dd’T'HH:mm:ssZ. Formato de data com hora e fuso horário (ISO 8601)</td><td>String</td></tr><tr><td>campaignId</td><td>Identificador de campanha</td><td>Long</td></tr><tr><td>extraInfo</td><td>Qualquer informação extra definida pelo usuário quando a mensagem foi enviada</td><td>String</td></tr></tbody></table>

Exemplo JSON Delivery Report (DR ou DLR - Entrega no aparelho do usuário)

{% tabs %}
{% tab title="cURL" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="Ruby" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="Python" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="PHP" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}

{% tab title="Java" %}

```
{
  "id":"8f5af680-973e-11e4-ad43-4ee58e9a13a6",
  "correlationId":"myId",
  "carrierId":5,
  "carrierName":"TIM",
  "destination":"5519900001111",
  "sentStatusCode":2,
  "sentStatus":"SENT_SUCCESS",
  "sentStatusAt":1420732929252,
  "sentStatusDate":"2015-01-08T16:02:09Z",
  "deliveredStatusCode":4,
  "deliveredStatus":"DELIVERED_SUCCESS",
  "deliveredAt":1420732954000,
  "deliveredDate":"2015-01-08T16:02:34Z",
  "campaignId":1234
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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-pt.sinch.com/documentacao-tecnica-sms/documentacao-tecnica-sms/status-de-envio-callback-e-dlr.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.
