Редактирование имен отправителей

Редактирование имен отправителей#

Редактирование имени отправителя#

PUT https://direct.i-dgtl.ru/api/v1/sender-names/{sender_name_id}

Метод доступен для SMS-отправителей в статусах AWAITING, REJECTED, APPROVED, а также для VIBER-отправителей в статусе APPROVED.
Файлы могут быть отправлены только для AWAITING и REJECTED.

Path Parameters#

Name

Type

Description

sender_name_id*

integer

Идентификатор имени отправителя

Headers#

Name

Type

Description

Authorization*

string

Basic {TOKEN_2}

Content-Type*

string

multipart/form-data

Request Body#

Name

Type

Description

name*

string

Имя части содержимого

filename

string

Имя прикладываемого файла
Для name=file

senderName

string

Новое значение имени отправителя
Только для SMS-отправителей в статусе AWAITING

commonType

string

Новое значение типа имени отправителя
Только SMS-отправителей в статусе AWAITING

counteragentName

string

Новое значение имени юрлица
Только для SMS-отправителей в статусе AWAITING

counteragentInn

string

Новое значение ИНН юрлица
Только для SMS-отправителей в статусе AWAITING

dateFrom

string

Новое значение желаемой даты начала действия
Только для SMS-отправителей в статусах AWAITING и REJECTED

dateTo

string

Дата окончания действия отправителя
Только для SMS и VIBER-отправителей в статусе APPROVED

Возвращается объект с отредактированным именем отправителя.

{
  "id": 1,
  "senderName": "test",
  "channelType": "SMS",
  "counteragentName": "Контрагент, ООО",
  "counteragentInn": "123451729124",
  "dateFrom": "2020-07-07T21:00:00Z",
  "dateTo": "2020-10-10T00:00:00Z",
  "commonType": "MULTISIGNATURE",
  "brand": "MTS",
  "status": "CLOSED",
  "fee": 0,
  "managerComment": "комментарий менеджера",
  "rejectedAt": "2020-07-09T16:55:01Z"
}

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

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

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

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

Невалидные параметры в теле запроса либо несоответствующий статус имени отправителя; ниже приведены несколько примеров ответа.

{
    "error": {
        "code": 4220,
        "msg": "Changing sender name is not allowed now"
    }
}
-----------------------------------------------------------------------------
{
    "error": {
        "code": 4220,
        "msg": "Date from isn't greater than now"
    }
}

Возможные варианты перечислений:

Параметр

Варианты

commonType

Типы имен отправителей

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

Редактирование наименования юрлица, ИНН и даты начала действия с прикреплением нового файла

PUT https://direct.i-dgtl/ru/api/v1/sender-names/150
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: multipart/form-data; boundary=--part
--part
Content-Disposition: form-data; name="file1"; filename="document1.pdf"
< ./path/new_document.pdf
--part
Content-Disposition: form-data; name="body"
Content-Type: application/json
{
  "dateFrom": "2020-10-07T21:00:00Z",
  "counteragentName": "Новый контрагент, ООО",
  "counteragentInn": "123451729124"
}
curl -X PUT 'https://direct.i-dgtl.ru/api/v1/sender-names/150' \
-H 'Content-Type: multipart/form-data;boundary=--part' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
-F 'body={"dateFrom":"2020-10-07T21:00:00Z","counteragentName":"Новый контрагент, ООО","counteragentInn":"123451729124"}' \
-F 'file1=@path/new_document.pdf'
import requests
import json

url = "https://direct.i-dgtl.ru/api/v1/sender-names/{sender_name_id}"

payload = {'body': '{"dateFrom": "2026-06-01T21:00:00Z", "counteragentName": "Контрагент, ООО", "counteragentInn": "123451729124"}'}
files=[
  ('file1',('file',open('/path/to/file','rb'),'application/octet-stream'))
]
headers = {
  'Content-Type': 'application/json'
}

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

print(response.text)

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

const formdata = new FormData();
formdata.append("body", "{\"dateFrom\": \"2026-06-01T21:00:00Z\", \"counteragentName\": \"Контрагент, ООО\", \"counteragentInn\": \"123451729124\"}");
formdata.append("file1", fileInput.files[0], "file");

const requestOptions = {
  method: "PUT",
  headers: myHeaders,
  body: formdata,
  redirect: "follow"
};

fetch("https://direct.i-dgtl.ru/api/v1/sender-names/{sender_name_id}", 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 = new MultipartBody.Builder().setType(MultipartBody.FORM)
  .addFormDataPart("body", null,
     RequestBody.create(MediaType.parse("application/json"), "{\"dateFrom\": \"2026-06-01T21:00:00Z\", \"counteragentName\": \"Контрагент, ООО\", \"counteragentInn\": \"123451729124\"}".getBytes()))
  .addFormDataPart("file1","file",
    RequestBody.create(MediaType.parse("application/octet-stream"),
    new File("/path/to/file")))
  .build();
Request request = new Request.Builder()
  .url("https://direct.i-dgtl.ru/api/v1/sender-names/{sender_name_id}")
  .method("PUT", body)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
  'Content-Type' => 'application/json'
];
$options = [
  'multipart' => [
    [
      'name' => 'body',
      'contents' => '{"dateFrom": "2026-06-01T21:00:00Z", "counteragentName": "Контрагент, ООО", "counteragentInn": "123451729124"}'
    ],
    [
      'name' => 'file1',
      'contents' => Utils::tryFopen('/path/to/file', 'r'),
      'filename' => '/path/to/file',
      'headers'  => [
        'Content-Type' => '<Content-type header>'
      ]
    ]
]];
$request = new Request('PUT', 'https://direct.i-dgtl.ru/api/v1/sender-names/{sender_name_id}', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();

package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "os"
  "path/filepath"
  "net/http"
  "io"
)

func main() {

  url := "https://direct.i-dgtl.ru/api/v1/sender-names/{sender_name_id}"
  method := "PUT"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)

  mimeHeader1 := make(map[string][]string)
  mimeHeader1["Content-Disposition"] = append(mimeHeader1["Content-Disposition"], "form-data; name=\"body\"")
  mimeHeader1["Content-Type"] = append(mimeHeader1["Content-Type"], "application/json")
  fieldWriter1, _ := writer.CreatePart(mimeHeader1)
  fieldWriter1.Write([]byte("{\"dateFrom\": \"2026-06-01T21:00:00Z\", \"counteragentName\": \"Контрагент, ООО\", \"counteragentInn\": \"123451729124\"}"))

  file, errFile2 := os.Open("/path/to/file")
  defer file.Close()
  part2,
         errFile2 := writer.CreateFormFile("file1",filepath.Base("/path/to/file"))
  _, errFile2 = io.Copy(part2, file)
  if errFile2 != nil {
    fmt.Println(errFile2)
    return
  }
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


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

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

  req.Header.Set("Content-Type", writer.FormDataContentType())
  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))
}