Создание шаблонов#
Отправка шаблона на регистрацию#
POST https://direct.i-dgtl.ru/api/v1/templates/sms
Метод позволяет отправить на регистрацию шаблоны разных типов к разным зарегистрированным именам отправителей.
Headers#
Name |
Type |
Description |
|---|---|---|
Authorization* |
string |
|
Content-Type* |
string |
|
Request Body#
| Name | Type | Description |
|---|---|---|
| toAdd* | string | Способ отправки шаблонов. Варианты значений:
|
| dateFrom* | string | Желаемая дата начала действия шаблона |
| templates* | array | Массив объектов с описанием шаблонов |
| templates.pattern* | string | Текст шаблона |
| templates.templatesByType* | array | Массив объектов с типами шаблонов и именами отправителей |
| templates.templatesByType.templateType* | string | Тип шаблона |
| templates.templatesByType.senderNames* | array | Массив объектов с идентификаторами имен отправителей, на которые нужно зарегистрировать шаблон. Допускается регистрация на имена отправителей операторов Мегафон, Билайн, Теле2 и МТС в статусах, начиная с INTERNAL_REVIEW. |
| templates.templatesByType.senderNames.id* | integer | Уникальный идентификатор имени отправителя в i-Digital Direct. Получить идентификатор можно методом Получение имен отправителей |
| templates.templatesByType.senderNames.externalTemplateId | string | Идентификатор шаблона в вашей внешней системе |
Совет
Создание шаблонов типа SERVICE допускается только для имен отправителей операторов Билайн, Мегафон, МТС
Создание шаблонов типа AUTHORIZE допускается только для имен отправителей операторов Мегафон, Теле2
При отсутствии ошибок в запросе (независимо от валидности шаблонов) вернется HTTP-код 200.
{
"toAdd": "ALL_VALID",
"dateFrom": "2024-07-27T21:00:00Z",
"total":4,
"added":2,
"notAdded":2,
"templates": [
{
"pattern": "текст шаблона 1",
"templatesByType": [
{
"templateType": "SERVICE",
"patternState": "INVALID",
"correctExample": "исправленный текст шаблона",
"senderNames": [
{
"id": 1,
"senderName": "first",
"brand": "BEELINE",
"state": "ERROR"
}
]
},
{
"templateType": "AUTHORIZE",
"patternState": "VALID",
"senderNames": [
{
"id": 2,
"senderName": "second",
"brand": "MEGAFON",
"state": "SUCCESS",
"templateId": 11
}
]
}
]
},
{
"pattern": "текст шаблона 2",
"templatesByType": [
{
"templateType": "SERVICE",
"patternState": "VALID",
"senderNames": [
{
"id": 3,
"senderName": "third",
"brand": "BEELINE",
"state": "ERROR",
"error": {
"type": "COVERED_BY_EXISTING",
"templateId": 124
},
"externalTemplateId": "1a2b3c"
},
{
"id": 4,
"senderName": "fourth",
"brand": "TELE2",
"state": "SUCCESS",
"templateId": 11,
"externalTemplateId": "3d4e5f"
}
]
}
]
}
]
}
Использование невалидного токена / отсутствие заголовка авторизации.
{
"error": {
"code": 4012,
"msg": "Bad credentials"
}
}
{
"error": {
"code": 4010,
"msg": "Not Authenticated"
}
}
Использование неподходящего токена.
{
"error": {
"code": 4030,
"msg": "Access Denied"
}
}
Несуществующее имя отправителя.
{
"error": {
"code": 4220,
"msg": "Client 5 has not sender name 734"
}
}
Описание объекта ответа #
Параметр |
Тип |
Описание |
|---|---|---|
toAdd |
string |
Соответствует |
dateFrom |
string |
Соответствует |
total |
integer |
Общее количество переданных шаблонов |
added |
integer |
Количество добавленных шаблонов |
notAdded |
integer |
Количество не добавленных шаблонов |
templates |
array |
Массив объектов с описанием шаблонов |
templates.pattern |
string |
Текст шаблона |
templates.templatesByType |
array |
Массив объектов с типами шаблонов и именами отправителей |
templates.templatesByType.templateType |
string |
Тип шаблона. Соответствует |
templates.templatesByType.patternState |
string |
Статус валидности текста шаблона
|
templates.templatesByType.correctExample |
string |
Пример текста шаблона с исправленными ошибками |
templates.templatesByType.senderNames |
array |
Массив объектов имен отправителей, на которые регистрировались шаблоны |
templates.templatesByType.senderNames.id |
integer |
Идентификатор имени отправителя |
templates.templatesByType.senderNames.senderName |
string |
Имя отправителя |
templates.templatesByType.senderNames.brand |
string |
Оператор имени отправителя |
templates.templatesByType.senderNames.state |
string |
Статус отправки шаблона на данное имя отправителя:
|
templates.templatesByType.senderNames.templateId |
integer |
Идентификатор созданного шаблона (передается при |
templates.senderNames.error |
object |
Объект с описанием ошибки (передается при |
templates.templatesByType.senderNames.error.type |
string |
Тип ошибки:
|
templates.templatesByType.senderNames.error.templateId |
integer |
Идентификатор шаблона в системе, из-за которого нельзя добавить данный (актуально для ошибок |
Пример запроса #
POST https://direct.i-dgtl.ru/v1/templates/sms
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"toAdd": "ALL_VALID",
"dateFrom": "2024-07-27T21:00:00Z",
"templates": [
{
"pattern": "текст шаблона 1",
"templatesByType": [
{
"templateType": "SERVICE",
"senderNames": [
{
"id": 1
}
]
},
{
"templateType": "AUTHORIZE",
"senderNames": [
{
"id": 2
}
]
}
]
},
{
"pattern": "текст шаблона 2",
"templatesByType": [
{
"templateType": "SERVICE",
"senderNames": [
{
"id": 3,
"externalTemplateId": "1a2b3c"
},
{
"id": 4,
"externalTemplateId": "3d4e5f"
}
]
}
]
}
]
}
curl -X POST 'https://direct.i-dgtl.ru/api/v1/templates/sms' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
-d '{"toAdd":"ALL_VALID","dateFrom":"2024-07-27T21:00:00Z","templates":[{"pattern":"текст шаблона 1","templatesByType":[{"templateType":"SERVICE","senderNames":[{"id":1 }]},{"templateType":"AUTHORIZE","senderNames":[{"id":2 }]}]},{"pattern":"текст шаблона 2","templatesByType":[{"templateType":"SERVICE","senderNames":[{"id":3,"externalTemplateId":"1a2b3c"},{"id":4,"externalTemplateId":"3d4e5f"}]}]}]}'
import requests
import json
url = "https://direct.i-dgtl.ru/api/v1/templates/sms"
payload = json.dumps({
"toAdd": "ALL_OR_NOTHING",
"dateFrom": "2026-06-01T21:00:00Z",
"templates": [
{
"templateType": "SERVICE",
"pattern": "Ваш код: %d",
"senderNames": [
{
"senderNameId": 1234,
"operators": [
"MTS",
"BEELINE"
]
}
]
}
]
})
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({
"toAdd": "ALL_OR_NOTHING",
"dateFrom": "2026-06-01T21:00:00Z",
"templates": [
{
"templateType": "SERVICE",
"pattern": "Ваш код: %d",
"senderNames": [
{
"senderNameId": 1234,
"operators": [
"MTS",
"BEELINE"
]
}
]
}
]
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://direct.i-dgtl.ru/api/v1/templates/sms", 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 \"toAdd\": \"ALL_OR_NOTHING\",\n \"dateFrom\": \"2026-06-01T21:00:00Z\",\n \"templates\": [\n {\n \"templateType\": \"SERVICE\",\n \"pattern\": \"Ваш код: %d\",\n \"senderNames\": [\n {\n \"senderNameId\": 1234,\n \"operators\": [\n \"MTS\",\n \"BEELINE\"\n ]\n }\n ]\n }\n ]\n}");
Request request = new Request.Builder()
.url("https://direct.i-dgtl.ru/api/v1/templates/sms")
.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 = '{
"toAdd": "ALL_OR_NOTHING",
"dateFrom": "2026-06-01T21:00:00Z",
"templates": [
{
"templateType": "SERVICE",
"pattern": "Ваш код: %d",
"senderNames": [
{
"senderNameId": 1234,
"operators": [
"MTS",
"BEELINE"
]
}
]
}
]
}';
$request = new Request('POST', 'https://direct.i-dgtl.ru/api/v1/templates/sms', $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/templates/sms"
method := "POST"
payload := strings.NewReader(`{
"toAdd": "ALL_OR_NOTHING",
"dateFrom": "2026-06-01T21:00:00Z",
"templates": [
{
"templateType": "SERVICE",
"pattern": "Ваш код: %d",
"senderNames": [
{
"senderNameId": 1234,
"operators": [
"MTS",
"BEELINE"
]
}
]
}
]
}`)
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))
}