Для доступа к API, используется авторизация HTTP Basic. В заголовке Authorization необходимо указывать ваш username, который указывате при авторизации, а в заголовке PHP-Secret - API-ключ (ключ выдается после регистрации). Пожалуйста, никому не сообщайте свой секретный API-ключ, а также не используйте его из JavaScript-кода, выполняемого в браузере. Запрос должен быть в кодировке UTF-8.

1. API для расчета стоимости доставки Почтой России

1.1 Расчет стоимости доставки

Тип запроса - GET
URL: https://api.digi-post.ru/calc

Параметры для запроса: отмеченные * обязательные!

ПараметрВариантыТипОписание
to*varcharИндекс/город/регион отправителя. Рекомендуем рассчитывать доставку по индексу.
from*varcharИндекс/город/регион получателя. Рекомендуем рассчитывать доставку по индексу.
weight*floatВес отправления.
valuefloatОценочная стоимость отправления.
ems1/0intВключить в выдачу расчет доставки EMS. Если включить, выдача работает медленнее! Использовать осмотрительно.
caution1/0intОтметка "Осторожно".
not_standart1/0intНестандартная посылка.

Расшифровка ответа:

ПараметрТипОписание
parcel[type]varcharТип посылки
parcel[cost]varcharСтоимость отправления
parcel[max_weight]varcharМаксимальный вес отправления
parcel[eta]varcharПримерный срок достаки
parcel[description]varcharОписание
bookpost_1class[type]varcharТип посылки
bookpost_1class[cost_nds]varcharСтоимость отправления с НДС
bookpost_1class[cost_no_nds]varcharСтоимость отправления без НДС
bookpost_1class[max_weight]varcharМаксимальный вес отправления
bookpost_1class[eta]varcharПримерный срок достаки
bookpost_1class[description]varcharОписание
valued_bookpost[type]varcharТип посылки
valued_bookpost[cost_nds]varcharСтоимость отправления с НДС
valued_bookpost[cost_no_nds]varcharСтоимость отправления без НДС
valued_bookpost[max_weight]varcharМаксимальный вес отправления
valued_bookpost[eta]varcharПримерный срок достаки
valued_bookpost[description]varcharОписание
bookpost[type]varcharТип посылки
bookpost[cost_simple_bookpost_cost_nds]varcharСтоимость отправления простой бандероли с НДС
bookpost[cost_simple_bookpost_no_nds]varcharСтоимость отправления простой бандероли без НДС
bookpost[cost_reg_bookpost_cost_nds]varcharСтоимость отправления регистрируемой бандероли без НДС
bookpost[cost_reg_bookpost_no_nds]varcharСтоимость отправления регистрируемой бандероли без НДС
bookpost[max_weight]varcharМаксимальный вес отправления
bookpost[eta]varcharПримерный срок достаки
bookpost[description]varcharОписание
notice_of_delivery_1class[cost_no_nds]varcharСтоимость отправления уведомления без НДС
notice_of_delivery_1class[cost_nds]varcharСтоимость отправления уведомления с НДС
notice_of_delivery_1class[cost_registered_no_nds]varcharСтоимость отправления регистрируемого уведомления без НДС
notice_of_delivery_1class[cost_registered_nds]varcharСтоимость отправления регистрируемого уведомления с НДС
notice_of_delivery_1class[description]varcharОписание
info[to_ops_address]varcharАдрес почтового отделения места назначения
info[to_ops_name]varcharНаименование почтового отделения места назначения
info[to_ops_tel]varcharТелефон почтового отделения
info[cod]varcharСтоимость наложенного платежа для клиента
info[route]varcharМаршрут
Пример запроса на PHP для расчета стоимости доставки:
$username='YOURLOGIN';
$password='YOURAPIKEY';

$url ='https://api.digi-post.ru/calc?';
$Request=$url.'from=101000&to=350000&weight=1245&value=2500';

$process = curl_init($Request);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 3);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$status_code = curl_getinfo($process, CURLINFO_HTTP_CODE);   //get status code
$result = curl_exec($process);
curl_close($process);

$Response = json_decode($result);

print_r($Response);
	

1.2 Коды ошибок при расчете стоимости доставки

кодОписание
101Не установлен параметр 'to'
102Не установлен параметр 'from'
103Не установлен параметр 'weight'
104В параметре 'weight' могут быть только цифры
105В параметре 'value' могут быть только цифры
106
107Неверный индекс/город отправителя
108Неверный индекс/город получателя
109Нет расчета
110Нет расчета
111Нет расчета
112Нет расчета
113Нет расчета
114Нет расчета
115Нет расчета
113Нет расчета
113Нет расчета

2. API отслеживания отправлений

2.1 Получить информацию о движении отправления

Тип запроса - GET
URL: https://api.digi-post.ru/tracking?mode=track

Параметры для запроса: отмеченные * обязательные!

ПараметрТипОписание
postcode*varcharПочтовый идентификатор

Расшифровка ответа:

ПараметрТипОписание
idintВнутренний ID операции
typevarcharТип отправления
weightvarcharвес отправления
dstAddressIndexvarcharИндекс места прибытия
dstAddressDscvarcharАдрес места прибытия
operationIndexvarcharИндекс места операции
operationDescriptionvarcharМесто операции
operationTypeNamevarcharТип операции
operationAttrNamevarcharАтрибут операции
operationDatevarcharДата операции
Пример запроса на PHP для отслеживания отправления:

$username='YOURLOGIN';
$password='YOURAPIKEY';

$url ='https://api.digi-post.ru/tracking?mode=track?';
$Request=$url.'&postcode=11951778028467';

$process = curl_init($Request);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 6);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$status_code = curl_getinfo($process, CURLINFO_HTTP_CODE);   //get status code
$result = curl_exec($process);
curl_close($process);

$Response = json_decode($result);

print_r($Response);
	

2.2 Добавление и изменение идентификатора для отслеживания в системе

1.1 Тип запроса - POST
URL для добавления: https://api.digi-post.ru/tracking?mode=addtrack
1.2 Тип запроса - POST
URL для изменения: https://api.digi-post.ru/tracking?mode=edittrack

Параметры для запроса: одинаковые для добавления и изменения!

ПараметрТипОписание
postcode*varcharПочтовый идентификатор
tracking_namevarcharНазвание (например заказ #3)
order_idintНомер заказа, число
client_namevarcharИмя клиента
client_surnamevarcharФамилия клиента
client_phonevarcharСотовый телефон клиента
client_emailvarcharEmail клиента
send_emailintОтсылать email клиенту (1-да,0-нет)
send_smsintОтсылать sms клиенту (1-да,0-нет)

Расшифровка ответа:

ПараметрТипОписание
postcodevarcharДобавляемый идентификатор
messagevarcharСообщение системы
docsvarcharВыдается при ошибке, ссылка на URL с документацией

2.3 Коды ошибок для API отслеживания:

кодОписание
100Не передан параметр 'postcode'
104Параметр 'postcode' неверный
120Сервер Почты России не отвечает
103Идентификатор уже был добавлен

3. API для печати почтовых бланков

Тип запроса - POST
URL: https://api.digi-post.ru/blanks

Параметры для запроса: бланк Ф.116 / Ф.7

ПараметрТипОписание
to_namevarcharФИО адресата
to_address_1varcharСтрока адреса адресата №1
to_address_2varcharСтрока адреса адресата №2
to_zipintПочтовый индекс адресата
from_namevarcharФИО отправителя
from_address_1varcharСтрока адреса отправителя №1
from_address_2varcharСтрока адреса отправителя №2
from_zipintПочтовый индекс отправителя
order_pricefloatСумма наложенного платежа
order_amountfloatСумма оценки
doc_typevarcharТип предъявленного документа
doc_serialvarcharСерия предъявленного документа
doc_numvarcharНомер предъявленного документа
doc_datevarcharДата выдачи предъявленного документа
doc_received_byvarcharКем выдан предъявленный документ

Параметры для запроса: бланк Ф.112 / Ф.113 * только для бланка Ф.112

ПараметрТипОписание
to_namevarcharФИО адресата
to_address_1varcharСтрока адреса адресата №1
to_address_2varcharСтрока адреса адресата №2
to_zipintПочтовый индекс адресата
from_namevarcharФИО отправителя
from_address_1varcharСтрока адреса отправителя №1
from_address_2varcharСтрока адреса отправителя №2
from_zipintПочтовый индекс отправителя
order_pricefloatСумма наложенного платежа
innfloatСумма оценки
correspondent_accountintНомер кор/счета
current_accountintНомер рас/счета
bank_namevarcharНаименование банка
bikintБИК банка
to_phone *int№ мобильного телефона адресата
from_phone *int№ мобильного телефона отправителя
comment1 *varcharКем выдан предъявленный документ
comment2 *varcharКем выдан предъявленный документ
cod *intгалочка 'наложенный платеж'
to_home *intгалочка 'с доставкой на дом'
notification *intгалочка 'с уведомлением'

Параметры для запроса: бланк Ф.107

ПараметрТипОписание
to_namevarcharФИО адресата
to_address_1varcharСтрока адреса адресата №1
to_address_2varcharСтрока адреса адресата №2
to_zipintПочтовый индекс адресата
products[][title]arrayМассив, содержащий наименование вложения
products[][quantity]arrayМассив, содержащий количество наименований вложения
products[][full_total_price]arrayМассив, содержащий цену наименований вложения

Расшифровка ответа:

ПараметрТипОписание
errorintКод ошибки
messagevarcharСообщение системы / ссылка на готовый бланк
Пример запроса на PHP для печати бланка формы 107:
$username='YOURLOGIN';
$password='YOURAPIKEY';

$url ='https://api.digi-post.ru/blanks';

$items = array(
  array(
    "title" => "Кросовки",
    "quantity" => "1",
    "full_total_price" => 1954
  ),
  array(
    "title" => "Джинсы",
    "quantity" => "2",
    "full_total_price" => 1987
  ),
  array(
    "title" => "Майка",
    "quantity" => "1",
    "full_total_price" => 1973
  )
);

$fields = array(
	'blank_type' => "F107",
	'to_name' => "Владимир Медведев",
	'to_address_1' => "Россия, Москва",
	'to_address_2' => "ул. Осенняя д.1",
	'to_zip' => "123022",
	'products' => $items,
);

$field_string = http_build_query($fields);

$process = curl_init();
curl_setopt($process, CURLOPT_URL, $url);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 6);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($process, CURLOPT_POST, true);
curl_setopt($process, CURLOPT_POSTFIELDS, $field_string);
$result = curl_exec($process);
curl_close($process);

$Response = json_decode($result);

print_r($Response);
	

3.2 Коды ошибок для API печати почтовых бланков:

кодОписание
300Исчерпан дневной лимит печатаемых бланков
301Установите параметр 'order_price'
302Редкая ошибка. Попробуйте еще раз
303Установите параметр 'blank_type'
304Установите параметр 'blank_type_id'
305Не передан массив 'products'
306Неверный параметр 'blank_type'
307Параметр 'order_price' должен быть больше нуля

4. API для получения информации об адресах, телефонах и времени работы почтовых отделений

4.1 Запрос к API для получения информации об отделении:

Параметры для запроса: по индексу отделения

ПараметрТипОписание
postindexintПочтовый индекс требуемого отделения

Расшифровка ответа:

ПараметрТипОписание
errorintКод ошибки
post_indexintПочтовый индекс отделения
ops_addressintАдрес отделения
ops_nameintНаименование отделения
ops_telintТелефоны отделения

4.2 Коды ошибок для API печати почтовых бланков:

кодОписание
401Не установлен параметр 'postindex'
Пример запроса на PHP для печати бланка формы 107:
$username='YOURLOGIN';
$password='YOURAPIKEY';

$url ='https://api.digi-post.ru/PostLocations?postindex=101000';

$process = curl_init();
curl_setopt($process, CURLOPT_URL, $url);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 6);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($process);
curl_close($process);

$Response = json_decode($result);

print_r($Response);
	

5. Общесистемные коды ошибок

кодОписание
0Ошибок нет
10Неверно указано имя пользователя или нет такого пользователя
11Неверно указан API ключ или нет такого пользователя
12Количество запросов к API превысило возможности вашего тарифного плана
13Количество отслеживаемых трекинг-кодов превысило возможности вашего тарифного плана