Вебхук — URL, на который Haskimail отправляет события писем канала: доставку, возвраты, жалобы, открытия, клики и изменения стоп-листа. Формат событий описан в разделе «Вебхуки». Серверный ключ работает только с вебхуками каналов своего сервера.
Возвращает вебхуки каналов сервера ключа; с ключом аккаунта — вебхуки всех каналов.
| Accept | обязательный application/json |
|---|---|
| X-Haskimail-Server-Token | обязательный Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи». |
| Webhooks | array |
Вебхуки. |
|---|---|---|
| Webhooks[].ID | integer |
ID вебхука. |
| Webhooks[].Url | string |
URL, на который отправляются события. |
| Webhooks[].MessageStream | string |
ID канала, события которого приходят на вебхук. |
| Webhooks[].Triggers | object |
События, на которые срабатывает вебхук. |
| Webhooks[].Triggers.Delivery.Enabled | boolean |
Включено ли событие «доставка письма». |
| Webhooks[].Triggers.Bounce.Enabled | boolean |
Включено ли событие «возврат». |
| Webhooks[].Triggers.SpamComplaint.Enabled | boolean |
Включено ли событие «жалоба на спам». |
| Webhooks[].Triggers.Open.Enabled | boolean |
Включено ли событие «открытие». |
| Webhooks[].Triggers.Click.Enabled | boolean |
Включено ли событие «клик по ссылке». |
| Webhooks[].Triggers.SubscriptionChange.Enabled | boolean |
Включено ли событие «изменение стоп-листа». |
curl "https://api.haskimail.ru/webhooks" \
-X GET \
-H "Accept: application/json" \
-H "X-Haskimail-Server-Token: server token"
HTTP/1.1 200 OK
Content-Type: application/json
{
"Webhooks": [
{
"ID": 905,
"Url": "https://example.com/haski-events",
"MessageStream": "2081",
"Triggers": {
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true
},
"SpamComplaint": {
"Enabled": true
},
"Open": {
"Enabled": false
},
"Click": {
"Enabled": false
},
"SubscriptionChange": {
"Enabled": false
}
}
},
{
"ID": 906,
"Url": "https://example.com/haski-opens",
"MessageStream": "2082",
"Triggers": {
"Delivery": {
"Enabled": false
},
"Bounce": {
"Enabled": false
},
"SpamComplaint": {
"Enabled": false
},
"Open": {
"Enabled": true
},
"Click": {
"Enabled": true
},
"SubscriptionChange": {
"Enabled": false
}
}
}
]
}
Возвращает один вебхук. Если вебхука нет — ответ 404 с кодом 12.
| Accept | обязательный application/json |
|---|---|
| X-Haskimail-Server-Token | обязательный Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи». |
| webhookid | обязательный ID вебхука. |
|---|
| ID | integer |
ID вебхука. |
|---|---|---|
| Url | string |
URL, на который отправляются события. |
| MessageStream | string |
ID канала, события которого приходят на вебхук. |
| Triggers | object |
События, на которые срабатывает вебхук. |
| Triggers.Delivery.Enabled | boolean |
Включено ли событие «доставка письма». |
| Triggers.Bounce.Enabled | boolean |
Включено ли событие «возврат». |
| Triggers.SpamComplaint.Enabled | boolean |
Включено ли событие «жалоба на спам». |
| Triggers.Open.Enabled | boolean |
Включено ли событие «открытие». |
| Triggers.Click.Enabled | boolean |
Включено ли событие «клик по ссылке». |
| Triggers.SubscriptionChange.Enabled | boolean |
Включено ли событие «изменение стоп-листа». |
curl "https://api.haskimail.ru/webhooks/{webhookid}" \
-X GET \
-H "Accept: application/json" \
-H "X-Haskimail-Server-Token: server token"
HTTP/1.1 200 OK
Content-Type: application/json
{
"ID": 905,
"Url": "https://example.com/haski-events",
"MessageStream": "2081",
"Triggers": {
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true
},
"SpamComplaint": {
"Enabled": true
},
"Open": {
"Enabled": false
},
"Click": {
"Enabled": false
},
"SubscriptionChange": {
"Enabled": false
}
}
}
Создает вебхук для канала. Он срабатывает на события писем, отправленных через этот канал, в том числе писем без MessageStream, если это канал сервера по умолчанию.
| Accept | обязательный application/json |
|---|---|
| Content-Type | обязательный application/json |
| X-Haskimail-Server-Token | обязательный Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи». |
| Url | string | обязательный URL, на который будут приходить POST-запросы с событиями. |
|---|---|---|
| MessageStream | string |
ID канала сервера ключа. Если не указан — транзакционный канал сервера по умолчанию, тот же, через который уходят письма без MessageStream. С ключом аккаунта лучше указывать явно: иначе берется канал по умолчанию одного из серверов. |
| Triggers | object |
События, на которые срабатывает вебхук. Не включенные события выключены. |
| Triggers.Delivery.Enabled | boolean |
Событие «доставка письма». |
| Triggers.Bounce.Enabled | boolean |
Событие «возврат». |
| Triggers.SpamComplaint.Enabled | boolean |
Событие «жалоба на спам». |
| Triggers.Open.Enabled | boolean |
Событие «открытие». |
| Triggers.Click.Enabled | boolean |
Событие «клик по ссылке». |
| Triggers.SubscriptionChange.Enabled | boolean |
Событие «изменение стоп-листа». |
| ID | integer |
ID вебхука. |
|---|---|---|
| Url | string |
URL, на который отправляются события. |
| MessageStream | string |
ID канала, события которого приходят на вебхук. |
| Triggers | object |
События, на которые срабатывает вебхук. |
| Triggers.Delivery.Enabled | boolean |
Включено ли событие «доставка письма». |
| Triggers.Bounce.Enabled | boolean |
Включено ли событие «возврат». |
| Triggers.SpamComplaint.Enabled | boolean |
Включено ли событие «жалоба на спам». |
| Triggers.Open.Enabled | boolean |
Включено ли событие «открытие». |
| Triggers.Click.Enabled | boolean |
Включено ли событие «клик по ссылке». |
| Triggers.SubscriptionChange.Enabled | boolean |
Включено ли событие «изменение стоп-листа». |
curl "https://api.haskimail.ru/webhooks" \
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Haskimail-Server-Token: server token" \
-d '{
"Url": "https://example.com/haski-events",
"MessageStream": "2081",
"Triggers": {
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true
},
"SpamComplaint": {
"Enabled": true
}
}
}'
HTTP/1.1 200 OK
Content-Type: application/json
{
"ID": 905,
"Url": "https://example.com/haski-events",
"MessageStream": "2081",
"Triggers": {
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true
},
"SpamComplaint": {
"Enabled": true
},
"Open": {
"Enabled": false
},
"Click": {
"Enabled": false
},
"SubscriptionChange": {
"Enabled": false
}
}
}
Меняет URL и события вебхука. Передавайте только то, что нужно изменить: события, которых нет в запросе, остаются как были. Канал вебхука не меняется.
| Accept | обязательный application/json |
|---|---|
| Content-Type | обязательный application/json |
| X-Haskimail-Server-Token | обязательный Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи». |
| webhookid | обязательный ID вебхука. |
|---|
| Url | string |
Новый URL. |
|---|---|---|
| Triggers | object |
События, которые нужно включить или выключить. |
| Triggers.Delivery.Enabled | boolean |
Событие «доставка письма». |
| Triggers.Bounce.Enabled | boolean |
Событие «возврат». |
| Triggers.SpamComplaint.Enabled | boolean |
Событие «жалоба на спам». |
| Triggers.Open.Enabled | boolean |
Событие «открытие». |
| Triggers.Click.Enabled | boolean |
Событие «клик по ссылке». |
| Triggers.SubscriptionChange.Enabled | boolean |
Событие «изменение стоп-листа». |
| ID | integer |
ID вебхука. |
|---|---|---|
| Url | string |
URL, на который отправляются события. |
| MessageStream | string |
ID канала, события которого приходят на вебхук. |
| Triggers | object |
События, на которые срабатывает вебхук. |
| Triggers.Delivery.Enabled | boolean |
Включено ли событие «доставка письма». |
| Triggers.Bounce.Enabled | boolean |
Включено ли событие «возврат». |
| Triggers.SpamComplaint.Enabled | boolean |
Включено ли событие «жалоба на спам». |
| Triggers.Open.Enabled | boolean |
Включено ли событие «открытие». |
| Triggers.Click.Enabled | boolean |
Включено ли событие «клик по ссылке». |
| Triggers.SubscriptionChange.Enabled | boolean |
Включено ли событие «изменение стоп-листа». |
curl "https://api.haskimail.ru/webhooks/{webhookid}" \
-X PUT \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Haskimail-Server-Token: server token" \
-d '{
"Triggers": {
"Open": {
"Enabled": true
},
"Click": {
"Enabled": true
}
}
}'
HTTP/1.1 200 OK
Content-Type: application/json
{
"ID": 905,
"Url": "https://example.com/haski-events",
"MessageStream": "2081",
"Triggers": {
"Delivery": {
"Enabled": true
},
"Bounce": {
"Enabled": true
},
"SpamComplaint": {
"Enabled": true
},
"Open": {
"Enabled": true
},
"Click": {
"Enabled": true
},
"SubscriptionChange": {
"Enabled": false
}
}
}
Удаляет вебхук.
| Accept | обязательный application/json |
|---|---|
| X-Haskimail-Server-Token | обязательный Серверный API-ключ. Он есть в настройках сервера на вкладке «API-ключи». |
| webhookid | обязательный ID вебхука. |
|---|
| ErrorCode | integer |
0 — вебхук удален. |
|---|---|---|
| Message | string |
Описание результата. |
curl "https://api.haskimail.ru/webhooks/{webhookid}" \
-X DELETE \
-H "Accept: application/json" \
-H "X-Haskimail-Server-Token: server token"
HTTP/1.1 200 OK
Content-Type: application/json
{
"ErrorCode": 0,
"Message": "Webhook 905 removed."
}