API расчета стоимости почтовых отправлений

Версия 1.3

Документация для программиста

Для интеграции с интернет-магазинами представлен API Почтового калькулятора Postprice.ru, позволяющий получить все расчеты стоимости внутренних и международных отправлений Почты России.

Ответ сервер возвращает в формате JSON.

API расчета внутренних отправлений Почты России

API расчета международных отправлений Почты России

Бесплатный лимит запросов без API-ключа составляет 500 запросов в сутки на один IP-адрес. Один раз в сутки лимиты сбрасываются (в 00:00 по московскому времени). Если суточное число запросов стабильно менее 500 в сутки, то прямой необходимости в оплаченном API-ключе нет.

При большем числе запросов стоимость использования платного API-ключа составляет 0,02 р. / запрос. Если баланс недостаточен, то используется бесплатный суточный лимит запросов.

Получить API-ключ можно в личном кабинете.

Внутренние отправления

Пример GET-запроса:

https://postprice.ru/engine/russia/api.php?from=630000&to=620000&mass=40&valuation=500&vat=1

Параметры запроса:

Параметр Описание
from Почтовый индекс отправителя (6 цифр)
to Почтовый индекс получателя (6 цифр)
mass Масса отправления, в граммах (значения от 0 до 20000)
valuation Объявленная ценность, в рублях
vat НДС 20% (1 — с НДС, 0 — без НДС)
oversized Негабаритная посылка (1 — негабаритная, 0 — обычная)
month Месяц отправки (от 1 до 12)
day День месяца отправки (от 1 до 31)
apikey API-ключ

Обязательные параметры запроса: from, to.

Пример JSON-ответа сервера:

{ "code": 100, "locality_from": "НОВОСИБИРСК ПОЧТАМТ", "locality_to": "ЕКАТЕРИНБУРГ", "city_from": "НОВОСИБИРСК", "city_to": "ЕКАТЕРИНБУРГ", "region_from": "НОВОСИБИРСКАЯ ОБЛАСТЬ", "region_to": "СВЕРДЛОВСКАЯ ОБЛАСТЬ", "simple_letter": 29.4, "reg_letter": 58.2, "val_letter": 149, "simple_parcel": 48, "reg_parcel": 79.2, "val_parcel": 146, "pkg": 260, "letter_reg_1class": 120, "letter_val_1class": 204, "reg_parcel1class": 174, "val_parcel1class": 228, "pkg_1class": 155, "pkg_val_1class": 218, "cod": 605 }

Параметры ответа:

Параметр Описание
code Внутренний код ответа
locality_from Наименование ОПС отправителя
locality_to Наименование ОПС получателя
city_from Город отправителя
city_to Город получателя
region_from Регион отправителя
region_to Регион получателя
simple_letter Стоимость простого письма, в рублях
reg_letter Стоимость заказного письма, в рублях
val_letter Стоимость ценного письма, в рублях
simple_parcel Стоимость простой бандероли, в рублях
reg_parcel Стоимость заказной бандероли, в рублях
val_parcel Стоимость ценной бандероли, в рублях
pkg Стоимость посылки, в рублях
letter_reg_1class Стоимость заказного письма 1 класса, в рублях
letter_val_1class Стоимость ценного письма 1 класса, в рублях
reg_parcel1class Стоимость заказной бандероли 1 класса, в рублях
val_parcel1class Стоимость ценной бандероли 1 класса, в рублях
pkg_1class Стоимость заказной посылки 1 класса, в рублях
pkg_val_1class Стоимость ценной посылки 1 класса, в рублях
cod Сумма наложенного платежа, в рублях

Внутренние коды ответа:

Код Описание
100 Расчет завершен успешно
101 Некорректное значение массы отправления
102 Некорректный индекс отправителя
103 Некорректный индекс получателя
104 Отправка в данное ОПС невозможна
105 Исчерпан лимит запросов

Пример на PHP для разработчиков:

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://postprice.ru/engine/russia/api.php?from=101000&to=190000&mass=450"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); print_r(json_decode($result));

Международные отправления

Пример GET-запроса:

https://postprice.ru/engine/international/api.php?country=6&mass=40

Параметры запроса:

Параметр Описание
country Страна получателя из списка
mass Масса отправления, в граммах (значения от 0 до 20000)
valuation Объявленная ценность, в рублях
vat НДС 20% (1 — с НДС, 0 — без НДС)
apikey API-ключ

Обязательные параметры запроса: country.

Пример JSON-ответа сервера:

{ "code": 100, "locality_to": "БЕЛАРУСЬ", "simple_letter": 85, "reg_letter": 0, "val_letter": 0, "simple_letter_avia": 105, "reg_letter_avia": 255, "val_letter_avia": 342, "simple_parcel": 85, "reg_parcel": 0, "simple_parcel_avia": 105, "reg_parcel_avia": 255, "simple_pocketm": 414, "reg_pocketm": 564, "simple_pocketm_avia": 574, "reg_pocketm_avia": 724, "simple_smallpackage": 100, "reg_smallpackage": 0, "simple_smallpackage_avia": 150, "reg_smallpackage_avia": 300, "pkg": 1030, "pkg_avia": 1040 }

Параметры ответа:

Параметр Описание
code Внутренний код ответа
locality_to Название страны получателя
simple_letter Стоимость простого письма, в рублях
reg_letter Стоимость заказного письма, в рублях
val_letter Стоимость ценного письма, в рублях
simple_letter_avia Стоимость простого письма (авиа), в рублях
reg_letter_avia Стоимость заказного письма (авиа), в рублях
val_letter_avia Стоимость ценного письма (авиа), в рублях
simple_parcel Стоимость простой бандероли, в рублях
reg_parcel Стоимость заказной бандероли, в рублях
simple_parcel_avia Стоимость простой бандероли (авиа), в рублях
reg_parcel_avia Стоимость заказной бандероли (авиа), в рублях
simple_pocketm Стоимость мешка «М», в рублях
reg_pocketm Стоимость заказного мешка «М», в рублях
simple_pocketm_avia Стоимость мешка «М» (авиа), в рублях
reg_pocketm_avia Стоимость заказного мешка «М» (авиа), в рублях
simple_smallpackage Стоимость простого мелкого пакета, в рублях
reg_smallpackage Стоимость заказного мелкого пакета, в рублях
simple_smallpackage_avia Стоимость простого мелкого пакета (авиа), в рублях
reg_smallpackage_avia Стоимость заказного мелкого пакета (авиа), в рублях
pkg Стоимость посылки, в рублях
pkg_avia Стоимость посылки (авиа), в рублях

Внутренние коды ответа:

Код Описание
100 Расчет завершен успешно
101 Некорректное значение массы отправления
103 Некорректная страна-получатель
105 Исчерпан лимит запросов

Пример на PHP для разработчиков:

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://postprice.ru/engine/international/api.php?country=6&mass=450"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); print_r(json_decode($result));