Получение доступа к API Почты России
Здравствуйте, меня зовут Андрей и я по роду деятельности и не только, получаю много посылок с помощью Почты России. Соответственно очень мне нравится отслеживать их перемещение через сеть Интернет с помощью сервиса на сайте Почты России и сторонних сервисов. Те кто когда либо пробивал посылку на сайте Почты России знают насколько это неудобно, а может и не знают, может кому то нравится, мне нет, одну посылку еще можно отслеживать заучив трек номер наизусть, а если несколько то неудобно. У сторонних сервисов все намного лучше, но на бесплатном обслуживании проверка статуса посылки раз в сутки и нет приятных мелочей типа смс уведомления. Если оплатить тариф то становится совсем хорошо, почти все меня устраивало, пока не вспомнил что когда Почта ввела у себя на сервисе отслеживания каптчу, здесь на Хабре проскакивали сообщения о том что у Почты есть api для доступа к сервису трекинга. Статья на Хабре доступна и сейчас, называется «Клиент для SOAP API Почты России на Python». Так вот, я тогда подумал а может попробовать получить доступ и написать свой скрипт, только то что мне нужно и ничего лишнего. На самом сайте Почты России я не нашел никакой информации как к ним подключится, может плохо искал. В статье, о которой писал выше, предлагалось в свободной форме написать на fc@russianpost.ru, что я и сделал. Так просто и написал, что мне нужен доступ к отслеживанию статусов РПО по SOAP протоколу, зачем мне это нужно особо в подробности не вдавался. Каково же было моё удивление когда мне ответили да ещё и так быстро, минут через 15 примерно. Ответ был следующего содержания:
Доступ предоставляется юридическим лицам и ИП. Во вложении заявка на подключение к сервису. Скан-копию оформленной и заверенной заявки направляйте на этот адрес.
Тут следует сказать что я ИП и у меня есть печать. Во вложении действительно был файл в формате doc. Сама заявка очень простенькая нужно указать наименование предприятия, инн, почтовый индекс, ф.и.о., контактный телефон, e-mail. Все это я заполнил, распечатал, подписал, поставил печать, отсканировал и отправил обратно. Все это происходило в пятницу, после отправки, до конца рабочего дня ответа не пришло, и я спокойно отправился на выходные с мыслю что подожду с понедельника дня три и если ответа не будет напишу на этот адрес еще раз. В понедельник пришел ответ следующего содержания:
Во вложении учетные данные для подключения, адрес доступа и механизмы интеграции.
Во вложении было два файла, текстовый, с логином, паролем и url сервиса для отправки запросов. Второй назывался Интеграционные механизмы взаимодействия с сервисом отслеживания РПО, и представлял из себя документ в формате doc на 16 страниц.
Теперь немного о самой реализации доступа. Как уже понятно доступ осуществляется по протоколу SOAP в режиме WSDL, в присланных документах есть вся необходимая информация для формирования запросов. Можно особо не заморачиваться и взять готовый скрипт на python из статьи выше и на его основе что-нибудь сделать, лично я с python не очень дружу. Свой сервис я пишу на php. С soap знаком тоже поверхностно, поэтому сейчас активно его осваиваю. Очень хорошая статья по soap здесь на Хабре, во всяком случае мне помогла понять что к чему. И ещё на github в результатах поиска по ключевому слову russianpost есть готовые классы на php для формирования запросов к soap api Почты России. Вот такая история.
Api почта россии php
Работа с API пакетного трекинга и API отправки возможна только при наличии договора с Почтой России.
Работа с API единичного трекинга возможна как с договором, так и после простой регистрации (но с лимитом — 100 запросов в сутки).
Минимальные требования — PHP 7.1+, ext-soap, ext-json.
Для установки используйте менеджер пакетов Composer:
При использовании фреймворка Laravel SDK автоматически регистрирует доступные сервисы.
Для логирования запросов и ответов можно подключить любой логгер, реализующий стандарт PSR-3, например, Monolog:
В случае использования фреймворка Laravel следует добавить логгер в контейнер под именем appwilio.russianpost.logger :
Конфигурация в Laravel
Добавьте следющие ключи в services.php :
Не забудьте перегенерировать кэш настроек, если они были закэшированы!
Конструктор класса SingleAccessClient принимает два параметра — логин и пароль от личного кабинета на сайте Почты России.
Если информации по ШПИ (трек-комеру) не найдено, то выбрасывается исключение Appwilio\RussianPostSDK\Tracking\Exceptions\SingleAccessException с соответствующим сообщением.
Получение данных по ШПИ (трек-комеру)
Получение информации о наложенном платеже по ШПИ (трек-комеру)
Получение данных по ШПИ (трек-комеру)
Рекомендуется подождать 15 минут перед запросом информации.
Конструктор класса DispatchingClient принимает три обязательных параметра: логин и пароль от личного кабинета на сайте Почты России, а так же токен доступа, который высылается на почту при подключении сервиса «Отправка» и может быть изменён в личном кабинете.
Конфигурация в Laravel
Добавьте следющие ключи в services.php :
Не забудьте перегенерировать кэш настроек, если они были закэшированы!
Расчёт стоимости пересылки
Нормализация и валидация данных
Проверка благонадёжности получателя
Форма Ф7п для заказа
Форма Ф112ЭК для заказа
Пакет документов для заказа (до формирования партии)
Пакет документов для заказа (после формирования партии)
Интеграция Почты России API с интернет магазином

Интеграция и функционал
Недавно я интегрировал с API Почты два сайта, один из которых классический интернет магазин, при чем на самописном движке, а второй сайт совместных покупок(на движке который разрабатываю я). На обоих сайтах был реализован схожий функционал для администратора и менеджера(организатора), так как бизнес процессы на них, по этой части также схожи.
Такой функционал позволил существенно ускорить процесс подготовки посылок к отправке и процесс самой отправки. Курьер отвозит в ЦВПП сразу несколько посылок с готовыми документами, и сдает их по накладной, без ожидания в очередях и оформления каждой посылки отдельно. Также менеджеру(ил организатору совместных покупок) теперь не нужно индивидуально каждому клиенту сообщать трек-номер отправления, все автоматически делает система (отправляется сообщение на емаил или по смс).
Что касается работы API в целом, то все работает весьма стабильно, запросы обрабатываются быстро, замечаний практически нет, за исключением того, что при изменении тарификации иногда, в течении нескольких дней, расчет стоимости доставки производиться некорректно. Возможно это связано с тем, что данные по тарифам доступные по средствам API обновляются не сразу.
Договор с Почтой России
Для подключения к API, мы подписали договор с Почтой России, для заключение которого требуется наличие ИП или ООО, а также расчетный счет. На всё это (с момента подачи заявки на их сайте, до подписание договора) у нас ушло три дня. Оплата отправлений производится авансовым методом, т.е. вы сначала перечисляете Почте некую денежную сумму на их расчетный счет, а затем отправляете посылки до тех пока ваши деньги не закончатся, при этом в любой момент вы можете доплатить еще.
После заключения договора, вам предоставляется личный кабинет на сайте www.pochta.ru, где вы можете вручную создать заявку на отправку посылки, отслеживать текущие отправления, просматривать архив, а также распечатывать необходимую документацию.
Что не удобно, это то, что каждый месяц вам на подписание отправляются бумаги, заказным письмом, которые нужно получить, подписать и отправить обратно. Процедура не сложная, но в современном высокотехнологичном мире где каждая минута на счету, время — деньги, решать этот бюрократический момент можно было бы автоматически или онлайн (разумеется без ЭЦП), как это сделано у того же СДЭК(кстати у них и оплата производиться после, а не до). А пока, менеджеру приходится тратить на это дополнительно время, хоть и небольшое.
Стоимость посылок. Заключая договор с Почтой, к сожалению клиент не получает каких либо скидок на отправку посылок, как это сделано у других служб доставки(СДЭК, Hermes и п.р.) Максимум, что вам будет предложено это специальный тариф «ЕМS РТ», с выгодными тарифами, но на сколько конкурентно-способными не ясно (цена у конкурентов ниже).
Заключение
Интеграция позволяет существенно сократить время на выполнения ряда рутинных задач вашими менеджерами(или организаторами) и перенаправить ресурсы(время и силы) на другие более важные дела. Автоматизация однозначно увеличивает конкурент-способность и прибыль вашего бизнеса(об этом я уже писал не раз).
Интеграция API Почта РФ
Данный документ описывает реализацию обмена информацией между Falcon Space и почтой РФ.
Общие входные данные:
Взаимодействие посредством REST запросов.
Запросы и ответы сервиса используют JSON текстовый формат.
Для интеграции с API Онлайн-сервиса «Отправка» необходимо располагать:
Для работы с данным сервисом и получения токена необходим договор с Почтой России!
Далее это способ не рассматривается.
Почта РФ без авторизации
Если у Вас нет договора и доступа к api используйте эти два сервиса от Почты России.
Автоматический расчет стоимости почтовых отправлений и услуг с помощью сервиса тарификации
Для получения расчета клиент отправляет на сервер REST-запрос методом GET
Входные данные запроса – параметры процедуры PROCEDURE [dbo].[api_ruPostTariff_request]
Переменная
Значение по умолчанию
Описание
Примечание
Формат запрашиваемых данных
Тип (код) объекта почтовой тарификации, см. Приложение 1
Индекс места отправления
ПОКА НЕ ИСПОЛЬЗУЕТСЯ
Индекс места назначения
ПОКА НЕ ИСПОЛЬЗУЕТСЯ
(пока считать в граммах)
ПОКА НЕ ИСПОЛЬЗУЕТСЯ
ПОКА НЕ ИСПОЛЬЗУЕТСЯ
ПОКА НЕ ИСПОЛЬЗУЕТСЯ
Возможные значения см. в Приложении 3
Дата тарификации YYYYMMDD
Если дата не указана, принимается значение текущей даты
Размер отправления (см).
Указывается 3 целочисленных значения, разделенные знаком “x”, например, size=100x50x25.
ПОКА НЕ ИСПОЛЬЗУЕТСЯ
Индексы
Замечание 1. В зависимости от Кода объекта тарификации набор входных параметров может меняться.
Примечание. Фактически в этом запросе передается только URL. Тела запроса body – нет, SELECT2 не используется.
Результат запроса может быть как сообщение с информацией, так и сообщение с ошибкой.
Список возможных сообщение об ошибка.
Пример текста ответа – response – с ошибкой.
Если ошибок в ответе не обнаружено, из ответа выбираться такие данные:
Пример текста – результат: «Операция: Посылка 1 класса Итого сумма без НДС: 144.71 руб. Итого НДС ( Ставка 20% ):28.38 руб. Итого сумма с НДС: 173.00 руб.»
Автоматический расчет нормативных сроков доставки почтовых отправлений.
Для получения расчета клиент отправляет на сервер REST-запрос методом GET
Входные данные запроса – параметры процедуры PROCEDURE [api_ruPostDelivery_request]
Переменная
Значение по умолчанию
Описание
Примечание
Формат запрашиваемых данных
Тип (код) объекта почтовой тарификации, см. Приложение 1
Api почта россии php
Как работает API
Основные аргументы API запроса
| [in] | apikey | API ключ Вашего аккаунта. Обязательный аргумент. |
| [in] | method | вызываемый метод. Обязательный аргумент. |
| [in] | . | набор переменных, зависящих от конкретного метода. |
| [in] | hash | обязательный параметр если метод требует аутентификацию по API паролю. |
Основные аргументы ответа
API. Метод calc. Расчет стоимости отправки Почтового отправления
Доступ с аутентификацией по API ключу + API паролю или доступ по API ключу + IP сервера с которого будет выполнен запрос. Все аргументы запроса обязательны.
Аргументы запроса
| [in] | apikey | API ключ Вашего аккаунта. |
| [in] | method | calc |
| [in] | from_index | Почтовый индекс отправителя |
| [in] | to_index | Почтовый индекс получателя |
| [in] | weight | Вес, в кг. Например, 1.34 |
| [in] | ob_cennost_rub | Объявленная ценность отправления, руб |
| [in] | hash | Обязательный аргумент, если аутентификация по методу API ключ + API пароль |
Аргументы ответа
Будет доступен после регистрации.
API. Метод print_f7p. Печать бланка адресного ярлыка
Доступ с аутентификацией по API ключу + API паролю. Все аргументы запроса обязательны.
Аргументы запроса
Аргументы ответа
В случае успеха, будет возвращена ссылка на сгенерированный PDF файл печати бланка. Все отправления из массива list будут распечатаны в одном PDF файле. Ссылка действительна 24 часа.
Будет доступен после регистрации.
API. Метод print_f116. Печать сопроводительного бланка ф.116
Доступ с аутентификацией по API ключу + API паролю. Все аргументы запроса обязательны.
Аргументы запроса
Аргументы ответа
В случае успеха, будет возвращена ссылка на сгенерированный PDF файл печати бланка. Все отправления из массива list будут распечатаны в одном PDF файле. Ссылка действительна 24 часа.
Будет доступен после регистрации.
API. Метод print_f112. Печать бланка почтового перевода ф.112эн
Доступ с аутентификацией по API ключу + API паролю. Все аргументы запроса обязательны.
Аргументы запроса
Аргументы ответа
В случае успеха, будет возвращена ссылка на сгенерированный PDF файл печати бланка. Все отправления из массива list будут распечатаны в одном PDF файле. Ссылка действительна 24 часа.
Будет доступен после регистрации.
API. Метод print_f113. Печать бланка почтового перевода ф.113эф
Доступ с аутентификацией по API ключу + API паролю. Все аргументы запроса обязательны.
Аргументы запроса
Аргументы ответа
В случае успеха, будет возвращена ссылка на сгенерированный PDF файл печати бланка. Все отправления из массива list будут распечатаны в одном PDF файле. Ссылка действительна 24 часа.
Будет доступен после регистрации.
API. Метод parcel. Отслеживание отправление по коду РПО
Аргументы запроса
Аргументы ответа
Будет доступен после регистрации.
API. Метод print_f103. Печать списка почтовых отправлений ф.103
Доступ с аутентификацией по API ключу + API паролю. Все аргументы запроса обязательны.
Аргументы запроса
Аргументы ответа
В случае успеха, будет возвращена ссылка на сгенерированный PDF файл печати бланка. Все отправления из массива list будут распечатаны в одном PDF файле. Ссылка действительна 24 часа.