---
description: Ниже представлено описание объектов для отправки сообщений.
---

# Отправка сообщений

Как упоминалось ранее, отправка сообщений возможна двумя способами: по одному или пачкой.&#x20;

### Метод для передачи одиночного сообщения

## Отправка одиночного сообщения

<mark style="color:green;">`POST`</mark> `URL: https://external-api.weasy.pro /message`

#### Headers

| Name                                            | Type   | Description                 |
| ----------------------------------------------- | ------ | --------------------------- |
| Content-Type<mark style="color:red;">\*</mark>  | string | application/json            |
| Authorization<mark style="color:red;">\*</mark> | string | 'nodeID:password' \| base64 |

#### Request Body

| Name                                          | Type    | Description                                                                                                                                                                                   |
| --------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| @type<mark style="color:red;">\*</mark>       | string  | Тип сообщения, имеет постоянное значение оutbound (исходящее).                                                                                                                                |
| content<mark style="color:red;">\*</mark>     | string  | <p>Контент сообщения. <br>Может содержать: </p><p> - Текст;</p><p> - Текст со ссылкой:</p><p> - Изображение с подписью;</p><p> - Геолокцию. </p>                                              |
| bodyType<mark style="color:red;">\*</mark>    | string  | Тип сообщения (whatsapp).                                                                                                                                                                     |
| body<mark style="color:red;">\*</mark>        | object  | Объект, в котором передаётся содержимое сообщения.                                                                                                                                            |
| destination<mark style="color:red;">\*</mark> | string  | Номер телефона получателя.                                                                                                                                                                    |
| source<mark style="color:red;">\*</mark>      | string  | Номер телефона отправителя.                                                                                                                                                                   |
| addresses<mark style="color:red;">\*</mark>   | object  | Объект, содержащий параметры отправителя и получателя.                                                                                                                                        |
| expirationDate                                | integer | <p>Время ожидания получения статуса.<br>Тип значения - <strong>timestamp</strong> в миллисекундах или в формате ISO 8601.<br>По умолчанию составляет 24 часа с момента отправки сообщения</p> |
| requestDelivery                               | boolean | Указывает, cледует ли предоставлять отчёт о доставке после отправки сообщения (true - отчет о доставке требуется, false - отчет о доставке не требуется). По умолчанию - true.                |
| nodeId<mark style="color:red;">\*</mark>      | integer | Номер ноды.                                                                                                                                                                                   |

::::{tab-set}

:::{tab-item} 200: OK Успешная отправка сообщения

```javascript
{
    "id": "10147aa1-6311-0190-4215-aa0000000002",
    "timestamp": 1611057190000,
    "code": 200
}
```
:::


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

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

::::


Пример объекта для передачи текстового Whatsapp-сообщения:

```
{
  "@type": "outbound",
  "addresses": {
    "source": "79210009988",
    "destination": "79215869617"
  },
  "body": {
    "bodyType": "whatsapp",
    "content": "текст сообщения"
  },
  "requestDelivery": false,
  "expirationDate": 1621593696610,
  "nodeId": 199,
  "properties": {
    "property1": "value1",
    "property2": "value2"
  }
}
```

Пример объекта для передачи текстового Whatsapp-сообщения с ссылкой:

```
{
  "@type": "outbound",
  "addresses": {
    "source": "79210009988",
    "destination": "79215869617"
  },
  "body": {
    "bodyType": "whatsapp",
    "content": "Перейдите по ссылке https://url.com"
  },
  "requestDelivery": false,
  "expirationDate": 1621593696610,
  "nodeId": 199,
  "properties": {
    "property1": "value1",
    "property2": "value2"
  }
}
```

Пример объекта для передачи Whatsapp-сообщения с изображением:

```
{
  "@type": "outbound",
  "addresses": {
    "source": "79210009988",
    "destination": "79215869617"
  },
  "body": {
    "bodyType": "whatsapp",
    "content": "{\"content_type\":\"image\",\"imageUrl\":\"http://example.com/my-image.png\",\"imageName\":\"Подпись к изображению\"}"
  },
  "requestDelivery": false,
  "expirationDate": 1621593696610,
  "properties": {
    "property1": "value1",
    "property2": "value2"
  }
}
```

Пример объекта для передачи Whatsapp-сообщения с геолокацией:

```
{
  "@type": "outbound",
  "addresses": {
    "source": "79219998800",
    "destination": "79215869617"
  },
  "body": {
    "bodyType": "whatsapp",
    "content": "{\"content_type\":\"location\",\"longitude\":\"14.151617181920212\",\"latitude\":\"12.345678910111213\", \"caption\":\"Боксерский Клуб Puncher\", \"locationAddress\":\"Фонтанная ул. 5, Санкт-Петербург, Санкт-Петербург\"}"
  },
  "requestDelivery": false,
  "expirationDate": 1621593696610,
  "nodeId": 199
}
```

### Метод для передачи пачки сообщений

## Отправка пачки сообщений в одном запросе

<mark style="color:green;">`POST`</mark> `URL: https://external-api.weasy.pro /pack`

Тело запроса представляет собой массив из одиночных сообщений.\
Описание и предназначение полей эквивалентны полям при отправке одиночного сообщения.

#### Headers

| Name                                            | Type   | Description                 |
| ----------------------------------------------- | ------ | --------------------------- |
| Content-Type<mark style="color:red;">\*</mark>  | string | application/json            |
| Authorization<mark style="color:red;">\*</mark> | string | 'nodeID:password' \| base64 |

#### Request Body

| Name                                          | Type    | Description                                                                                                                                                                                   |
| --------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| @type<mark style="color:red;">\*</mark>       | string  | Тип сообщения, имеет постоянное значение оutbound (исходящее).                                                                                                                                |
| expirationDate                                | integer | <p>Время ожидания получения статуса.<br>Тип значения - <strong>timestamp</strong> в миллисекундах или в формате ISO 8601.<br>По умолчанию составляет 24 часа с момента отправки сообщения</p> |
| requestDelivery                               | boolean | Указывает, cледует ли предоставлять отчёт о доставке после отправки сообщения (true - отчет о доставке требуется, false - отчет о доставке не требуется). По умолчанию - true.                |
| nodeId<mark style="color:red;">\*</mark>      | integer | Номер ноды.                                                                                                                                                                                   |
| content<mark style="color:red;">\*</mark>     | string  | <p>Контент сообщения. <br>Может содержать: </p><p> - Текст;</p><p> - Текст со ссылкой:</p><p> - Изображение с подписью;</p><p> - Геолокцию. </p>                                              |
| bodyType<mark style="color:red;">\*</mark>    | string  | Тип сообщения (whatsapp).                                                                                                                                                                     |
| body<mark style="color:red;">\*</mark>        | object  | Объект, в котором передаётся содержимое сообщения.                                                                                                                                            |
| destination<mark style="color:red;">\*</mark> | string  | Номер телефона получателя.                                                                                                                                                                    |
| source<mark style="color:red;">\*</mark>      | string  | Номер телефона отправителя.                                                                                                                                                                   |
| addresses<mark style="color:red;">\*</mark>   | object  | Объект, содержащий параметры отправителя и получателя.                                                                                                                                        |

::::{tab-set}

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

```javascript
{
    "timestamp": 1632213633318,
    "code": 200,
    "responses": [
        {
            "id": "41937aa1-6322-1363-3298-aa0003434990",
            "timestamp": 1632213633323,
            "code": 200
        },
        {
            "id": "41937aa1-6322-1363-3298-aa0003434991",
            "timestamp": 1632213633328,
            "code": 200
        }
    ]
}
```
:::


:::{tab-item} 413: Payload Too Large Превышено количество сообщений в пачке

```javascript
{
    "timestamp": "unixtime",
    "code": 413,
    "description": "Payload too large, reduce the number of messages in one query by no more than
100"
}
```
:::

::::


Пример передачи пачки сообщений:&#x20;

```
[
  {
    "@type": "outbound",
    "addresses": {
      "source": "79219998800",
      "destination": "79215869617"
    },
    "body": {
      "bodyType": "whatsapp",
      "content": "{\"content_type\":\"location\",\"longitude\":\"14.151617181920212\",\"latitude\":\"12.345678910111213\", \"caption\":\"Боксерский Клуб Puncher\", \"locationAddress\":\"Фонтанная ул. 5, Санкт-Петербург, Санкт-Петербург\"}"
    },
    "requestDelivery": false,
    "expirationDate": 1621593696610,
    "nodeId": 199
  },
  {
    "@type": "outbound",
    "addresses": {
      "source": "79210009988",
      "destination": "79215869617"
    },
    "body": {
      "bodyType": "whatsapp",
      "content": "текст сообщения"
    },
    "requestDelivery": false,
    "expirationDate": 1621593696610,
    "nodeId": 199,
    "properties": {
      "property1": "value1",
      "property2": "value2"
    }
  }
]
```
