# Webhook

Необходимо сообщить менеджеру адрес вашего сервера, который будет принимать статусы сообщений

Спецификации для отправки JSON и XML

{% tabs %}
{% tab title="XML" %}
Метод отправки XML-документа: **`POST`**

К примеру, в **phpXML**-документ будет доступен через переменную **`$GLOBALS['HTTP_RAW_POST_DATA']`**

Система отправляет XML-документ серверу клиента следующего содержания:

```xml
<?xml version="1.0" encoding="utf-8" ?>
<response>
     <state id_sms="IDSMS в системе для проверки статуса" time="2011-01-01 12:57:46" sms="Статус">Статус</state>
     <state id_sms="IDSMS в системе для проверки статуса" time="2011-01-01 12:57:46" sms="Статус" viber="Статус">Статус</state>
     <state id_sms="IDSMS в системе для проверки статуса" time="2011-01-01 12:57:46" viber="Статус">Статус</state>
</response>
```

### &#x20;Расшифровка параметров

<table><thead><tr><th width="190.66666666666666">Параметр</th><th width="124">Тип</th><th>Описание</th></tr></thead><tbody><tr><td><p>response</p><p><mark style="color:blue;">.state</mark></p><p><mark style="color:green;">[id_sms]</mark></p></td><td>Int</td><td>Номер сообщения, полученный в ответном XML-документа в процессе отправки сообщения</td></tr><tr><td><p>response</p><p><mark style="color:blue;">.state</mark></p><p><mark style="color:green;">[time]</mark></p></td><td>Date</td><td>Время изменения статуса</td></tr><tr><td><p>response</p><p><mark style="color:blue;">.state</mark></p></td><td>String</td><td><p>Последний статус сообщения:</p><ul><li>«send» - статус сообщения не получен. В этом случае передается пустой time (time="")</li><li>«not_deliver» - сообщение не было доставлено. Конечный статус (не меняется со временем)</li><li>«expired» - абонент находился не в сети в те моменты, когда делалась попытка доставки. Конечный статус (не меняется со временем)</li><li>«deliver» - сообщение доставлено.</li><li>«read» - сообщение прочитано. Конечный статус (не меняется со временем) <em>для viber сообщения</em></li><li>«partly_deliver» - сообщение было отправлено, но статус так и не был получен</li></ul></td></tr><tr><td><p>response</p><p><mark style="color:blue;">.state</mark></p><p><mark style="color:green;">[sms]</mark></p></td><td>String</td><td>Статус SMS сообщения. </td></tr><tr><td><p>response</p><p><mark style="color:blue;">.state</mark></p><p><mark style="color:green;">[viber]</mark></p></td><td>String</td><td>Статус Viber сообщения. </td></tr></tbody></table>

### &#x20;Возвращаемый ответ сервера клиента в XML-документе

{% hint style="warning" %}
Если сервер клиента не передаст **id\_sms**, то статус будет считаться не полученным клиентом. При этом будет сделано 5 попыток доставить статус.
{% endhint %}

```xml
<?xml version="1.0" encoding="utf-8" ?>
<response>
     <id_sms>3234</id_sms>
     <id_sms>3235</id_sms>
</response>
```

{% endtab %}

{% tab title="JSON" %}
Метод отправки JSON-документа: **`POST`**

К примеру, в php JSON-документ будет доступен через функцию **`file_get_contents("php://input")`** или переменную **`$GLOBALS['HTTP_RAW_POST_DATA']`**

Система отправляет JSON-документ серверу клиента следующего содержания:

```json
[
    {
        "id_sms": "ID SMS в системе для проверки статуса",
        "time": "2011-01-01 12:57:46",
        "state": "Статус"
        },
    {
        "id_sms": "ID SMS в системе для проверки статуса",
        "time": "2011-01-01 12:57:46",
        "state": "Статус"
    }
]
```

### &#x20;Расшифровка параметров

<table><thead><tr><th width="151.66666666666666">Параметр</th><th width="115">Тип</th><th>Описание</th></tr></thead><tbody><tr><td>id_sms</td><td>Int</td><td>Номер сообщения, полученный в ответном JSON-документа в процессе отправки сообщения</td></tr><tr><td>time</td><td>Date</td><td>Время изменения статуса</td></tr><tr><td>state</td><td>String</td><td><p>Последний статус сообщения:</p><ul><li>«send» - статус сообщения не получен. В этом случае передается пустой time (time="")</li><li>«not_deliver» - сообщение не было доставлено. Конечный статус (не меняется со временем)</li><li>«expired» - абонент находился не в сети в те моменты, когда делалась попытка доставки. Конечный статус (не меняется со временем)</li><li>«deliver» - сообщение доставлено.</li><li>«read» - сообщение прочитано. Конечный статус (не меняется со временем) для viber сообщения</li><li>«partly_deliver» - сообщение было отправлено, но статус так и не был получен</li></ul></td></tr></tbody></table>

### &#x20;Возвращаемый ответ сервера клиента в JSON-документе

{% hint style="warning" %}
Если сервер клиента не передаст **id\_sms**, то статус будет считаться не полученным клиентом. При этом будет сделано 5 попыток доставить статус.
{% endhint %}

```json
[
    {
        "id_sms":3234
    },
    {
        "id_sms":3235
    }
]
```

{% endtab %}
{% endtabs %}


---

# 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://apidocs.webcom.mobi/ru/proverka-statusa-soobsheniya/webhook.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.
