# Запрос к API

## Получение массива статусов

<mark style="color:green;">`POST`</mark> `https://external-api.i-dgtl.ru/receive`

#### Headers

| Name          | Type   | Description                 |
| ------------- | ------ | --------------------------- |
| Content-Type  | string | application/json            |
| Authorization | string | 'nodeID:password' \| base64 |

#### Request Body

| Name  | Type    | Description                                                                                                                                      |
| ----- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| count | integer | <p>Количество сообщений, статусы которых нужно включить в ответ.<br>Максимальное количество запрашиваемых статусов не должно превышать 1000.</p> |

::::{tab-set}

:::{tab-item} 200 В случае успешного запроса возвращается ответ, в котором указан идентификатор сообщения и время отправки сообщения в формате Unix Timestamp.

```
{
    "timestamp": 1632217053017,
    "code": 200,
    "states": [
    {
         "@type": "state",
         "msid": "MSID сообщения",
         "status": "статус сообщения",
         "creationDate": "время генерации статуса",
         "errorCode": код ошибки,
         "final": true
      },
      {
         "@type": "state",
         "msid": "MSID сообщения",
         "status": "статус сообщения",
         "creationDate": "время генерации статуса",
         "errorCode": код ошибки,
         "final": false
      },
      ...]
}
```
:::


:::{tab-item} 400 Некорректный синтаксис запроса

```
{
    "timestamp": 1632217156341,
    "code": 400,
    "description": "incorrect request body"
}
```
:::

::::


## Получение статуса по id сообщения

<mark style="color:green;">`POST`</mark> `https://external-api.i-dgtl.ru/receivebymsid`

#### Headers

| Name          | Type   | Description                 |
| ------------- | ------ | --------------------------- |
| Content-Type  | string | application/json            |
| Authorization | string | 'nodeID:password' \| base64 |

#### Request Body

| Name  | Type    | Description                                                                                                             |
| ----- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| msids | integer | <p>Перечень id сообщений, по которым необходимо получить статусы.<br>Количество запрашиваемых статусов от 1 до 100.</p> |

::::{tab-set}

:::{tab-item} 200 В случае успешного запроса возвращается ответ, в котором указан идентификатор сообщения и время отправки сообщения в формате Unix Timestamp.

```
{
    "timestamp": 1632215128266,
    "code": 200,
    "states": [
        {
            "@type": "state",
            "msid": "41937aa1-6322-1463-7134-aa0003464415",
            "status": "UNDELIVERED",
            "creationDate": 1632214638388,
            "properties": {},
            "totalParts": 0,
            "sentParts": 0,
            "errorCode": 6969,
            "final": true
        }
    ]
}
```
:::


:::{tab-item} 400 Некорректный синтаксис запроса

```
{
    "timestamp": 1632217316090,
    "code": 400,
    "description": "Cannot receive messages by msid, use receive instead"
}
```
:::

::::


#### **Параметры ответа**

| Параметр      | Тип       | Значение                                                                                                            |
| ------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
| **timestamp** | timestamp | Время отправки сообщения в формате Unix Timestamp                                                                   |
| **code**      | integer   | Код ответа                                                                                                          |
| **responses** | array     | Массив со статусами сообщений. Последовательность сообщений в массиве соответствует их последовательности в запросе |

#### **Параметры сообщения в массиве**

| Параметр         | Тип       | Значение                                                      |
| ---------------- | --------- | ------------------------------------------------------------- |
| **@type**        | string    | Тип ответа (в запросах на получение статусов - state)         |
| **msid**         | string    | UUID сообщения                                                |
| **status**       | string    | [Статус сообщения](/broken/pages/-Mk5vxhSKKI2CysM5bZN#status) |
| **creationDate** | timestamp | Дата формирования статуса                                     |
| **errorCode**    | integer   | [Код ошибки](../spravochniki-1/kody-oshibok.md)               |
| **final**        | boolean   | Указывает, является ли статус сообщения финальным             |

::::::{tip}
* Опция получения статусов подключается по запросу, обратитесь в службу технической поддержки или к вашему менеджеру.
* Срок хранения статусов сообщений составляет 48 часов.
* время получения статуса зависит от доступности абонента, качества сигнала мобильной сети и некоторых других технических параметров;
* временем ожидания статуса считается промежуток времени от отправки до даты, указанной в параметре expirationDate; по истечении этого промежутка возвращается статус EXPIRED;
* если оператор связи по тем или иным причинам не предоставляет код доставки, сообщение будет финализировано как недоставленное с кодом 127.
* статус EXPIRED\_READ по умолчанию не передаётся; если вам нужно получать этот статус, обратитесь в службу технической поддержки или к вашему менеджеру.
::::::

### Примеры запросов

::::{tab-set}

:::{tab-item} Curl

```

curl --location --request POST 'https://external-api.i-dgtl.ru/receive' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic MzE5Mzc6RGFlZ2g3cmk=' \
--data-raw '10'


curl --location --request POST 'https://external-api.i-dgtl.ru/receivebymsid' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic MzE5Mzc6RGFlZ2g3cmk=' \
--data-raw '{"msids":["41937aa1-6322-1463-7134-aa0003464415"]}'
```
:::

::::

