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

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

POST https://direct.i-dgtl.ru/api/v1/message/stop

Метод позволяет безвозвратно отменить отправку одиночных сообщений с переданными идентификаторами.

Headers#

Name

Type

Description

Authorization*

string

Basic {TOKEN_1}

Content-Type*

string

application/json

Request Body#

Name

Type

Description

uuids*

array

Массив идентификаторов сообщений; допускается не более 10000 значений.

В случае корректного запроса в ответе будут перечислены статусы остановки сообщений.

{
  "errors": true,
  "items": [
    {
      "messageUuid": "2a28d557-22a1-4be6-8908-1481723043dd",
      "code": 201
    },
    {
      "messageUuid": "811c27e3-3bc4-406a-9fcd-44435a8208da",
      "code": 403
    },
    {
      "messageUuid": "cc46e6b6-2d77-4457-aa81-c17a027721d3",
      "code": 404
    }
  ]
}

Использование невалидного токена / отсутствие заголовка авторизации.

{
    "error": {
        "code": 4012,
        "msg": "Bad credentials"
    }
}
{
    "error": {
        "code": 4010,
        "msg": "Not Authenticated"
    }
}

Использование неподходящего токена.

{
    "error": {
        "code": 4030,
        "msg": "Access Denied"
    }
}

Совет

Изменение статуса сообщений выполняется асинхронно: между успешным выполнением запроса и установкой сообщениям статуса unsent может пройти несколько секунд.

Совет

  • Данный запрос может быть выполнен как для одиночных сообщений, так и для сообщений рассылок

  • При выполнении успешной остановки корневого каскадного сообщения, весь каскад от данного сообщения будет остановлен

Описание объекта ответа #

{
  "errors": true,
  "items": [
    {
      "messageUuid": "2a28d557-22a1-4be6-8908-1481723043dd",
      "code": 200
    },
    {
      "messageUuid": "063464ec-a34f-4558-90c5-984395000001",
      "code": 202
    },
    {
      "messageUuid": "811c27e3-3bc4-406a-9fcd-44435a8208da",
      "code": 403
    },
    {
      "messageUuid": "cc46e6b6-2d77-4457-aa81-c17a027721d3",
      "code": 404
    }
  ]
}

Параметр

Тип

Описание

errors

boolean

Наличие фактов неуспешных остановок сообщений (наличие кодов 403, 404 в ответе)

items

array

Массив с объектами результатов остановки сообщений

items.messageUuid

string

Идентификатор сообщения

items.code

integer

Результат остановки сообщения:

  • 200 — сообщение будет остановлено гарантированно
  • 202 — сообщение будет остановлено не гарантированно, т.к. входит в стадию отправки / порождения каскадного сообщения
  • 403 — сообщение не может быть остановлено, т.к. находится в процессе отправки / уже отправлено
  • 404 — сообщение не остановлено, т.к. не найдено

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

POST https://direct.i-dgtl.ru/api/v1/message/stop
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
  "uuids": [
    "2a28d557-22a1-4be6-8908-1481723043dd",
    "811c27e3-3bc4-406a-9fcd-44435a8208da",
    "cc46e6b6-2d77-4457-aa81-c17a027721d3"
  ]
}
curl -X POST 'https://direct.i-dgtl.ru/api/v1/message/stop' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
-d '{"uuids":["2a28d557-22a1-4be6-8908-1481723043dd","811c27e3-3bc4-406a-9fcd-44435a8208da","cc46e6b6-2d77-4457-aa81-c17a027721d3"]}'
import requests
import json

url = "https://direct.i-dgtl.ru/api/v1/message/stop"

payload = json.dumps({
  "uuids": [
    "2a28d557-22a1-4be6-8908-1481723043dd",
    "811c27e3-3bc4-406a-9fcd-44435a8208da",
    "cc46e6b6-2d77-4457-aa81-c17a027721d3"
  ]
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

const raw = JSON.stringify({
  "uuids": [
    "2a28d557-22a1-4be6-8908-1481723043dd",
    "811c27e3-3bc4-406a-9fcd-44435a8208da",
    "cc46e6b6-2d77-4457-aa81-c17a027721d3"
  ]
});

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: raw,
  redirect: "follow"
};

fetch("https://direct.i-dgtl.ru/api/v1/message/stop", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"uuids\": [\n    \"2a28d557-22a1-4be6-8908-1481723043dd\",\n    \"811c27e3-3bc4-406a-9fcd-44435a8208da\",\n    \"cc46e6b6-2d77-4457-aa81-c17a027721d3\"\n  ]\n}");
Request request = new Request.Builder()
  .url("https://direct.i-dgtl.ru/api/v1/message/stop")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
  'Content-Type' => 'application/json'
];
$body = '{
  "uuids": [
    "2a28d557-22a1-4be6-8908-1481723043dd",
    "811c27e3-3bc4-406a-9fcd-44435a8208da",
    "cc46e6b6-2d77-4457-aa81-c17a027721d3"
  ]
}';
$request = new Request('POST', 'https://direct.i-dgtl.ru/api/v1/message/stop', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();

package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "https://direct.i-dgtl.ru/api/v1/message/stop"
  method := "POST"

  payload := strings.NewReader(`{
  "uuids": [
    "2a28d557-22a1-4be6-8908-1481723043dd",
    "811c27e3-3bc4-406a-9fcd-44435a8208da",
    "cc46e6b6-2d77-4457-aa81-c17a027721d3"
  ]
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}