841
правка
Изменения
API
,→Установка статуса согласования заказа
|[[Файл:prestashop.png|center|x60px]]
|style="text-align: center;"|[https://courierexe.ru/download/api/prestashop.zip Скачать]
|Поддерживает версии 1.5.2.0 и выше. Инструкция в архивеПодробнее см. [[PrestaShop|описание]].
|-
|[[Файл:OpencartOCStore.png|center|x60px]]
|-
|[[Файл:Amocrm.png|center|x44px]]
|style="text-align: center;"|[https://www.amocrm.ru/extensions/courier2008 Установитьmeasoft Описание на сайте amoCRM]|Подробнее см. Подробное описание настроек читайте [[amoCRM|описаниетут]].
|-
|rowspan="2"|[[Файл:MoySclad.jpg|center|x30px]]
|style="height:50px; text-align: center;"|[https://home.courierexe.ru/moysklad/step1 Настроить интеграцию с MeaSoft]
|[[МойСклад|Инструкция]]
|-
|style="text-align: center;"|Читайте описание [[Webhook|на этой странице]]
|Передача информации о статусах и заказах в вашу систему
|-
|[[Файл:Logo_tilda_black.png|center|x100px]]
|style="text-align: center;"|Читайте описание [[Tilda|на этой странице]]
|Работает только на платных тарифах
|-
|}
* при запросе измененных статусов ОБЯЗАТЕЛЬНО нужно подтверждать успешное получение запросом [[#Передача только изменившихся статусов|commitlaststatus]].
* вы должны знать номера заказов, которые вы отправили. Не нужно перебирать номера всех заказов или брутфорсом перебирать все возможные номера.
* нужно проверять с каким ответом возвращаются ваши АПИ-запросы. Если мы отвечаем ошибкой, то даже запрос на создание нового заказа учитывается в количестве запросов.
Мы абсолютно уверены, что данные ограничения на порядки превосходят необходимые объемы предоставления сервиса для решения любых задач. Если у вас возникают проблемы, вы не знаете, как уложиться в эти рамки — спросите у нас, мы обязательно поможем!
</advprice>
</advprices>
<extrafields>
<extrafield>
<name>courier_car</name>
<value>ВАЗ 2106, бежевый</value>
</extrafield>
</extrafields>
<overall_volume>81</overall_volume>
<userid>user123</userid>
* '''order''' — Контейнер для описания одного заказа, обязательный элемент. В одном контейнере '''neworder''' может быть много контейнеров '''order''' для создания нескольких заказов одним запросом.
:* '''''orderno''''' — Номер заказа. Если присваивается клиентом — указывается здесь. Если не присваивается — можно оставить пустым, система сгенерирует свой номер, и вернет его в ответе. Система проверяет '''у клиента''' наличие заказов с указанным номером в '''пределах текущего календарного года''', которые '''не являются недоставленными''', и в случае их существования — заказ создан не будет, а в ответе вернется ошибка 17 «Such number exists». Если не указан штрихкод (поле barcode), и значение поля подходит для использования его в качестве штрихкода, данное значение будет скопировано в поле «Штрихкод». Это накладывает ограничения в частности, на длину указанного поля (25 знаков, чтобы работали стандартные печатные формы).
* '''barcode''' — Штрихкод заказа. Если клиент штрихкодирует свои отправления и штрихкод отличается от номера заказа, в этом поле указывается штрихкод. Если ШК содержит кириллицу или малое количество символов, то формируется ШК в формате EAN13.
:* код ПВЗ в нашей системе
:* код ПВЗ в системе подрядчика
:* наименование ПВЗ в виде строки "ПВЗ " + «Наименование ПВЗ». При указании ПВЗ в поле адреса необходимо проверять значение поля город получателя (он должен соответствовать данным ПВЗ) либо не передавать его вообще.
Для тега города '''town''' можно указать код региона в атрибуте '''''regioncode''''' из [[#Справочник регионов|справочника регионов]]. Поиск будет производиться в указанном регионе.
* '''weight''' — Общий вес заказа в килограммах.
* '''quantity''' — Количество мест.
* '''service''' — Режим доставки (тип услуги) передается код из справочника «[[#Справочник Видов Виды срочности|Виды срочности]]».
* '''type''' — Тип корреспонденции (отправления) передается код из справочника «Типы корреспонденции».
* '''return''' — Признак необходимости возврата. Принимает значения:
:: 2 — ГИИС ДМДК.
:: 3 — Серийный номер.
:* '''''message''''' — Строка сообщения.
:* '''''extraTags''''' — Строка в формате JSON для отправки в ОФД.
"tag1212": "1"
</source>
Для клиентов из '''Узбекистана''' необходимо указывать код ИКПУ и код упаковки в следующем формате:
<source lang="json">
"ikpu":"123123123","packageCode":"123456"
</source>
:* '''''code''''' — код услуги.
:* '''''value''''' — значение услуги. Если тип услуги bool, то в значении передаем true.
* '''extrafields''' — Контейнер для описания расширенных полей. Необязательный элемент. Может содержать несколько элементов extrafield
* '''extrafield''' — Контейнер для описания расширенного поля.
:* '''''name''''' — наименование переменной. Может содержать только латинские буквы, цифры и знак подчеркивания "_", но начинаться может только с буквы. Максимальная длина - 20 символов.
:* '''''value''''' — значение переменной. Максимальная длина - 250 символов.
* '''overall_volume''' — Общий объем, м3. Виртуальное поле. Необязательное. Из этого поля рассчитывается длина/высота/ширина места. Расчет срабатывает только если в каждом месте есть нулевые значения длины или высоты или ширины.
|-
|141||Duplicate additional service in the order.||Дублирование кода дополнительной услуги в заказе
|-
|144||Incorrect extrafields.||Некорректные расширенные поля.
|-
|}
<namestarts/>
</conditions>
<limit>500</limit>
</statusreq>
</source>
:* '''namestarts''' — Поиск по номеру заказа(шифр), который начинается с «orderno».
* '''limit''' — Необязательный параметр. Дает возможность получить не все измененные заказы, а только какое-то определенное количество. Помогает на случай, если у вас скопилось очень много измененных заказов и нужно их грузить лимитировано. После каждой итерации нужно вызывать commitlaststatus с контейнером списка обработанных кодов, [[#Лимитирование запросов|читать подробнее]]
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">
<receipt fdNum="124555" fnSn="9289000100295555" kktNum="0001611984048555" inn="7722756555" fdValue="2899551555" summ="387.5" ofdUrl="gate.ofd.ru">https://ofd.ru/rec/7722756555/0001611984048555/9289000100295555/124555/2899551555</receipt>
<items>
<item code="34533" extcode="abc123" quantity="1" mass="0.2" retprice="37.5" VATrate="0" barcode="2345625213125" article="1" returns="0" origincountry="040" GTD="" excise="0.00" governmentCode="11223311" govType="1" suppcompany="Поставщик" suppINN="1112223334" suppphone="79161234567">Мяч</item> <item code="34456" extcode="abc124" quantity="2" mass="2" retprice="100" VATrate="10" barcode="4645625213138" article="2" returns="0" governmentCode="" govType="1">Обруч</item> <item code="34421" extcode="abc125" quantity="3" mass="0.3" retprice="50" VATrate="18" barcode="2345625213126" itemcode="44123" article="3" returns="0" governmentCode="" govType="1">Погремушка желтая</item>
</items>
<packages>
<package code="33332" strbarcode="ORD0000002" mass="2.5" message="" got="NO"></package>
</packages>
<extrafields>
<extrafield>
<name>courier_car</name>
<value>ВАЗ 2106, бежевый</value>
</extrafield>
</extrafields>
</order>
</statusreq>
# Контейнер '''statushistory''' и '''deliveryprice''' заполняется для тарифов [[Личный кабинет курьерской службы#Функции личного кабинета|Премиум и Максимум]].
# Контейнер '''packages''' не возвращает более 1000 элементов.
# Система никогда не гарантирует последовательность прохождения заказом набора статусов. То есть Вы можете получить статус «COMPLETE», а следующим запросом — «NEW» — такое может произойти, например, если оператор ошибочно отметил заказ выполненным, а затем исправил ошибку.
</div>
<br>
=== Лимитирование запросов ===Дает возможность получить не все измененные заказы, а только какое-то определенное количество. Помогает на случай, если у вас скопилось очень много измененных заказов и нужно их грузить лимитировано. После успешной обработки получнных заказов, '''обязательно''' нужно вызвать commitlaststatus с кодами обработанных заказов. '''Пример запроса:''' Для получения ограниченного числа изменившихся заказов отправьте запрос:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?><trackingstatusreq> <auth extra="8" login="login" pass="pass"></auth> <changes>8ONLY_LAST</extrachanges> <ordernolimit>12345</ordernolimit></trackingstatusreq>
</source>
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?><commitlaststatus> <auth extra="8" login="login" pass="pass"></auth> <acs> <ac>11111</ac> <ac>22222</ac> <ac>33333</ac> <ac>44444</ac> <ac>55555</ac> </acs></commitlaststatus></source> * '''acs''' — контейнер. Обязательный элемент.* '''ac''' — атрибут''' ordercode''' контейнера '''order''' полученного на этапе запроса '''statusreq'''. Помимо приведенных в примере параметров, вы также можете передавать и остальные, описанные ранее, например '''streamid'''. == Трекинг заказа по номеру ==Запрос трекинга по номеру предназначен для выдачи минимальной обезличенной информации о конкретном заказе не авторизованному пользователю. Наша система имеет для этого интерфейс по адресу «home.courierexe.ru/{код экстра}/tracking». Вы можете либо сделать ссылку на такую страницу на своем сайте, либо разместить ее [[#Размещение страниц на своем сайте (iframe)|iframe’ом]] у себя, либо сделать свою и пользоваться нашим API. Этот интерфейс создан специально для выдачи информации живому пользователю сайта. Для получения статусов заказов в свою информационную систему нужно использовать запрос «statusreq», желательно с параметром changes=ONLY_LAST! '''Пример запроса:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><tracking> <extra>8</extra> <orderno>1234</orderno></tracking></source> '''Пример ответа:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><tracking> <order orderno="111111" ordercode="12345">
<barcode>111111</barcode>
<AWB>111111</AWB>
<item code="34421" extcode="abc125" quantity="3" mass="0.3" retprice="50" VATrate="18" barcode="2345625213126" article="3" returns="0" governmentCode="">Погремушка желтая</item>
</items>
<acquirers>
<acquirer code="2" name="Ibox"/>
<acquirer code="5" name="Payme"/>
<acquirer code="6" name="Click"/>
</acquirers>
</order>
</tracking>
</source>
где,
* '''acquirers''' / '''acquirer''' - эквайринг, доступный для получения ссылки на оплату заказа
** '''acquirers''' / '''acquirer''' / ''code'' - внутренний код эквайринга
** '''acquirers''' / '''acquirer''' / ''name'' - наименование эквайринга
"time":"2016-06-02 17:22:00",
"location":"RU",
"town":"Москва",
"store":"Москва Главный",
"content":"Complete"
},
"time":"2016-06-02 17:22:00",
"location":"RU",
"town":"Москва",
"store":"Москва Главный",
"content":"Courierdelivered"
},
"time":"2016-06-02 09:17:00",
"location":"RU",
"town":"Москва",
"store":"Москва Главный",
"content":"Delivery"
},
"time":"2016-06-02 07:41:00",
"location":"RU",
"town":"Москва",
"store":"Москва Главный",
"content":"Accepted"
},
"time":"2016-06-01 19:53:00",
"location":"RU",
"town":"Горький",
"store":"Горький Автозавод",
"content":"Departure"
},
"time":"2016-06-01 17:38:00",
"location":"RU",
"town":"Горький",
"store":"Горький Автозавод",
"content":"Departuring"
},
"time":"2016-05-30 10:20:00",
"location":"RU",
"town":"Горький",
"store":"Горький Автозавод",
"content":"New"
}
Описание контейнеров ответа аналогично описанию [[API#.D0.97.D0.B0.D0.BF.D1.80.D0.BE.D1.81 .D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.B0 .D0.B7.D0.B0.D0.BA.D0.B0.D0.B7.D0.BE.D0.B2|Запроса статусов заказов]].
== Изменение = Получение ссылки для оплаты заказа ==Запрос предназначен для изменения заказов. Изменять заказы могут курьерские службы с тарифами «Премиум» и «Максимум». Чтобы разрешить изменение заказов, в личном кабинете курьерской службы перейдите в '''Настройки''' > '''Заказы''' и в разделе '''Отмена и редактирование''' установите флажок '''Разрешить отмену и изменение заказов'''. Вы также можете пометить в списке '''Статусы для отмены и редактирования заказов''' галками статусы корреспонденции, для которых возможны отмена и изменение заказов. По умолчанию (когда в этом списке ничего не выбрано) редактирование и отмена разрешены для статуса «Новый»=
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">
'''Обратите внимание!'''
</div>
Заказ доступен для оплаты, если:* тип оплаты заказа не наличными, а например картой или по договору, альтернативой может стать установка параметра "Спрашивать тип оплаты" в карточке клиента.* заказ имеет наложенный платеж* не оплачен* активен (не доставлен, не возвращен в т.ч. курьером) '''Пример запроса:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><acqlink> <extra>8</extra> <acq> <code>2</code> </acq> <order> <code>12345</code> </order></acqlink></source> где*'''extra''' - код экстраклиента в системе Measoft.*acq.'''code''' - внутренний код платформы эквайринга в системе Measoft. (известен в МП из [https://wiki.courierexe.ru/index.php/API#.D0.A2.D1.80.D0.B5.D0.BA.D0.B8.D0.BD.D0.B3_.D0.B7.D0.B0.D0.BA.D0.B0.D0.B7.D0.B0_.D0.BF.D0.BE_.D0.BD.D0.BE.D0.BC.D0.B5.D1.80.D1.83 Трекинга]) *order.'''ordercode''' - внутренний код заказа, типа ''int'', уникальный в пределах экстраклиента '''Пример ответа:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><acqlink error="0" amount="2000" extid="161083231">https://qr.nspk.ru/AD10001A7GLVGA9YDO2I0789SIOPV3?type=02&bank=1000011&sum=2000&cur=RUB&crc=7E9C</acqlink></source> где*'''acqlink''' - ссылка на оплату заказа*acqlink.'''amount''' - тип integer сумма платежа в копейках в общем случае, в других случаях в соответствии с типом валюты*acqlink.'''extid''' - идентификатор счета на стороне платежной системы*acqlink.'''error'' - код ошибки, если отличается от 0, означает невозможность получения ссылки на оплату, в этом случае ссылки на оплату не будет и ответ будет выглядеть так:<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><acqlink error="2" message="Ошибка авторизации: Invalid token" amount="2000" extid=""/></source> где*acqlink.'''message''' - текст ошибки возвращаемой эквайрингом Возможные типы ошибок получения ссылки:* '''1''' - не настроен эквайринг, либо не найден заказ* '''2''' - ошибка на стороне эквайринга* '''3''' - запрещающий статус курьера (заказ доставлен, частично доставлен)* '''4''' - оплата заказа не разрешена == Изменение заказа ==Запрос предназначен для изменения заказов. Изменять заказы могут курьерские службы с тарифами «Премиум» и «Максимум». Чтобы разрешить изменение заказов, в личном кабинете курьерской службы перейдите в '''Настройки''' > '''Заказы''' и в разделе '''Отмена и редактирование''' установите флажок '''Разрешить отмену и изменение заказов'''. Вы также можете пометить в списке '''Статусы для отмены и редактирования заказов''' галками статусы корреспонденции, для которых возможны отмена и изменение заказов. По умолчанию (когда в этом списке ничего не выбрано) редактирование и отмена разрешены для статуса «Новый» <div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">'''Обратите внимание!'''# Данные запроса изменения указываются '''полностью''', как если бы заказ создавался впервые.# При отсутствии вложения в запросе изменения данное вложение '''не удаляется''' из заказа, но его количество становится равным 0.# При одновременном изменении заказа в API и системе курьерской службы приоритет отдается данным системы курьерской службы. То есть изменения в API приняты не будут.</div> При редактировании заказа может быть отменен запланированный курьер. Это зависит от значения переменной '''Справочники''' > '''Переменные''' > '''Корреспонденция''' > '''Автоматически устанавливать заплан. курьера по району''':
* '''Нет''' — при редактировании заказа по АПИ курьер не изменяется;
* '''Район''' — если изменен адрес доставки, курьер сбрасывается;
<?xml version="1.0" encoding="UTF-8"?>
<attachments>
<item name="doc1.docx" timestamp="2025-01-01 12:00:00" size="35654">JVBERi0xLjMNJVBERixLjMN JUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSAUwLJdLwIDKxTn+AScMjKqor7Xm3sp1yj1k6BzlPdX2Qsiit6yg3g1fCI4YVAgclUOIY5tDra2LvAcIS U3VidHlwZSAvSW1hZ2UNL1d pZHRoIDE4MDgNL0hlaWdodCA5/+8PsL/sXb0+aoper/9kL/4Ov/YE9QsHwyg7YZTtKICy0YVIYb4Nt7L1tPUMfaX9NpuTsvFCtBAvYG ggNCAwIFINL0JpdHNQZXJDb 21wb25lbnQgMQ0vRGVjb2RlUeJVZoZ2tm6+fZVqAavZpeLizVLtct1a+xvG0+bTSkw3Ac8PhdNfL4smrT2hSgPJLfyaVGyA2ndyW22t ENL0NvbHVtbnMgMTgwOA0sFtTP5knktPNumSZ56QsFRPJkaU8ExDxAcMYMDIoBiIoR4/dDjHMbMW/EW4fiB1pvWmV2ONWIl1Xdub Xg1ob0qWX9W4qagsqzGhjRLsEGeJGVXg9oVC+XkJa9esrhGUmC0tuKEla+AplVO/OtHwXcW0FWui1z7 6KHrtobuWV0xa9sCEiSvb91w3ePHOvfcveo5xt9o4ZevHF7ZOeKxV5qmVx2MI44a1L+Mhk5YuGT12xd Ibsb7r+j9bff/unQlv0al6HBnoD5G89q4+tkjgDtvwwARmqm2aa2Jgvmth8mrXquTNtl2u467vbF/5r vnMt9uesu21Me1bjeNJGlVfAaCtw+/jfenJ/fWjqa7ygExx+P g0vSW1hZ2VNYXNrIHRydWUNLL0BcTGroxrKexQXIQ1ImfEW7ZRJZa+O XhEZWNvZGUNPj4Nc3RyZWFt DQ<ip7xJmmNESMxrgu/item>dquBbGypjJpFDJVRH1rVPR1Ifl4aFS5IEdDWZFSdyBBWKWhVSVu517ZgzOCFAwp wwbFph29g4fTaxnvn/3X78x+Tt56ZNffArgULt+HByvy7+yz6U6XWMawCi3+6gJXN0S+jf4t+HT34wg <item name="photo2.jpg" size="74861">VBERi0xLjMN km7/HDp55YTSWMoCMgZsvZkBrXtIv4WA7xgkT4YpYpxjwLvnsWKkGE+pDbxER0UUWlpVFRY4oilTfM4 JUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSAMIzgCPgxjOlZ87ceA7ceRJrgpipFGyugPQ4OTI2S8lWJoqTpHJlJbNOeYM7zTcoVxSNyJXiYWSAMklT vWE9iamVjdA0vU3VidHlwZS AvSW1hZ2UNL1dpZHRoIDEzNj q/xd+3fd3/USq2V1rJ7RyBLHsuDSiLwgaOFc5LUCRGI+QWuBAsIwPlZrgRpSMseJyTzD15PKiIRE7bc gNL0hlaWdodCAxMzMzDS9MZ W5ndGggNCAwIFINL0JpdHNQZ Rggk5ijXAPpqISetD4wVm0AD2LHuBZdaxmK3HOKIZoG0QLmiZdVqspXnFIJwVyCKhWiDCI4bzH8Y76w XJDb21wb25lbnQgMQ0vRGVj b2RlUGFybXMgPDwNL0sgLTEN TAnwM67HIqMISOkmJXY8mlYhpiNa7g2oTBkKxo4wgnvETQIUUrlFOn9KdOreDiKQx071rN4N61yRAi1 L0NvbHVtbnMgMTM2OA07EGRhSOgoeLYv+k41+KZ1SVBXAuDjB+xuxnQmm8wJDcP5IRn+Pg0 vSW5penzbR/ivm7qleHK5o790w8ejXchI vOHIPWtWwYhtAO34LdDXqFqWxZEBLNstMCwwITBTWirxk12zuUppp</item>
</attachments>
</source>
<item code="34421" quantity="2" reason="0" />
</items>
<image attachments> <attachment filename="filename1.jpg"> /9j/4AAQSkZJRgA BAQAAAQABAAD/2wBDAA0JCg sKCA0LCgsODg0PEyAVExISEy ccHhcgLikxMC4pLSwzOko+M zZGNywtQFdBRkxOUlNSMj5aY VpQYEpRUk//2wBDAQ4ODhMR EyYVFSZPNS01T09PT09PT09P T09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09 PT09PT0//wAARCAYACAADAS IA</attachment> <attachment filename="filename2.jpg"> /9j/4AAQSkZJRgA BAQAAAQABAAD/2wBDAA0JCg sKCA0LCgsODg0PEyAVExISEy ccHhcgLikxMC4pLSwzOko+M zZGNywtQFdBRkxOUlNSMj5aY VpQYEpRUk//2wBDAQ4ODhMR EyYVFSZPNS01T09PT09PT09P T09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09 PT09PT0//wAARCAYACAADAS IA</imageattachment> </attachments>
</order>
</setorderinfo>
:* '''''reason''''' — Причина недоставки, выбирается из соответствующего списка статусов.
:* '''''governmentCode''''' — Указание кода ТН для вложения при необходимости.
* '''imageattachments''' — Контейнер прикрепляемого изображенияприкрепляемых изображений. Содержит текст файла изображения, закодированный по стандарту Может содержать несколько контейнеров ''base64'attachment'. Контейнер '':* 'order''attachment' может содержать более одного контейнера '' — Контейнер изображения. Содержит текст файла изображения, закодированный по стандарту 'image'base64''. Атрибут:::* '''''filename''''' — Имя файла.
<waybill>
<auth extra="8" login="login" pass="pass" />
<client>CLIENT</client>
<orders>
<order orderno="1234567" ordercode="33331" />
<form>1</form>
<start>5</start>
<integration>21</integration>
</waybill>
</source>
'''waybill''' — Корневой контейнер. Обязательный элемент
* '''auth''' — Авторизация. Обязательный элемент
* '''client''' — Признак клиента или агента. Необязательный элемент.
:* CLIENT — Признак клиента, значение по умолчанию
:* AGENT — Признак агента. В ответ отдается информация по заказам, переданным агенту на доставку
* '''orders''' — Список заказов для получения печатных форм. Содержит тэги '''order''' с атрибутами:
:* '''''orderno''''' — шифр заказа
:* 4 — Акты приема-передачи
* '''start''' — Имеет смысл только для form = 3. Начальная позиция первой наклейки. Используется для пропуска наклеек на листе для их экономии.
* '''integration''' - Получение наклеек от подрядчика. Не обязательный элемент, имеет смысл при наличии кода подрядчика в карточке заказа. Принимает значение:
:* 21 - подрядчик GTD
<?xml version="1.0" encoding="UTF-8"?>
<waybill>
<integration code="21">
<order code="33331">
<content>JVBERi0xLjYNJeLjz9MNC...</content>
</order>
<order code="33332">
<content>JVBERi0xLjYNJeLjz9MNC...</content>
</order>
</integration>
<content>EODIcaI8KSBlwQ 4MnEOR7Px8U8EBAyGICBnwpw
IZhQgz0ZxuPs8EBM/GcbjzB AwhBl8hwQYIO00GmEwg1CeEG
В тэге content возвращаются бинарные данные (файл pdf), закодированные в base64.
При записи в файл необходимо использовать двоичный формат записи!
Блок integration содержит отдельные наклейки для заказов, предоставленные подрядчиком, так же закодированные в base64.
:* '''serial''' — серийный номер единицы номенклатуры, участвующей в движении
== Серийные номера =='''Пример запроса справочника тарифов по городамдвижения номенклатуры с серийным номером:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?><tariffsserialmovements> <auth extra="8" login="login" pass="pass" /> <townfrom>Москва</townfrom> <service>1</serviceauth> <mainonlyserial>1123456789</mainonlyserial> </tariffsserialmovements>
</source>
* '''authserial''' — атрибут '''extra''' обязателен, по нему определяется курьерская служба.* '''townfrom''' — город-отправитель. Если не передан, то городом будет «Москва».* '''service''' — режим доставки. Обязательный элемент.* '''mainonly''' — необязательный элемент. Если передан, то в ответе будут данные только по городам из справочника '''Межгород''' > '''Зоны'''серийный номер единицы номенклатуры.
'''Пример ответа справочника тарифов по городамдвижения номенклатуры с серийным номером:'''<source lang="jsonxml">{ <?xml version="townfrom1.0": encoding="0c5b2444-70a0-4932-980cUTF-b4dc0d3f02b58",?> <serialmovements count="service16": 1,> <serialmovement> "tariffs": [<code>151500</code> { <serial>123456789</serial> "towntofias": "0c5b2444 <date>2017-70a005-4932-980c-b4dc0d3f02b5",26</date> "towntocode": 1, "towntoname": "Москва город", "townregion": "Город Москва", "distance": <delivered>0,</delivered> "pricedistance": 0, <item> "pricesnew": { <code>4259</code> "before": [ <name>Настольная игра Дженга</name> { </item> "price": 100, <status> "every": 0, <code>5</code> "mass": 1 <name>Возврат от покупателя</name> }, </status> { <order> "price": 150, <ordercode>3374830</ordercode> "every": <number>123660-0,</number> "mass": 5 <date>2017-05-24</date> } <orderno>14123</orderno> ], <barcode>0000000670</barcode> "after": [ <company>ТОВАР</company> { "price": 0 <address>Кравченко ул., "every": 1,</address> "mass": 38.01 <delivereddate>2017-05-29</delivereddate> }, { "price" <deliveredtime>12: 15, "every"00: 1,00</deliveredtime> "mass": 51.01 <deliveredto /> } </order> ] <document> }, <code>21991</code> "deliveryPeriodMin": 1, <number>318</number> "deliveryPeriodMax": 2 <date>2017-05-26</date> } <message></message> ]</document> </serialmovement>}</serialmovements>
</source>
''' Описание полей ответа '''
<?xml version="1.0" encoding="UTF-8" ?>
<itemdocorderserials> <auth extra="8" login="login" pass="pass"></auth> <codeordercode>21991123456789</codeordercode> <orderno>123456789</orderno> <barcode>123456789</barcode></itemdocorderserials>
</source>
* '''codeordercode''' — внутренний код документа приходной накладной (смзаказа. предыдущий запрос)* '''orderno''' — шифр заказа.* '''barcode''' — штрих-код заказа.Указывать необходимо один из идентификаторов заказа.
'''Пример ответа движения номенклатурысерийных номеров заказа:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<itemdocorderserials> <order> <code>219913374830</code> <orderno>14123</orderno> <numberbarcode>3180000000670</numberbarcode> <datedelivereddate>20172024-0507-2620</datedelivereddate> <deliveredtime>10:04:00</deliveredtime> <assemblydate>2024-07-19 07:05:34<message/assemblydate> </messageorder>
<items>
<item > <code=">4259" quantity="1" barcode="200300" article="123555"</code> <name>Настольная игра Дженга</name> <article>123000</article> <state>Delivered</state> <serials> <serial>123456789</serial> </serials> </item>
</items>
</itemdocorderserials>
</source>
''' Описание полей ответа '''
* '''itemorder''' — контейнер товараблок заказа::* '''code''' — внутренний код товара:* '''orderno''' — шифр:* '''barcode''' — штрихкод товараштрих-код:* '''delivereddate''' — дата доставки факт:* '''articledeliveredtime''' — артикул товаравремя доставки факт:* '''quantityassemblydate''' — количество поступившего товарадата сборки
'''Пример ответа:запроса справочника тарифов по городам'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?><storelist counttariffs> <auth extra="8" login="2login" pass="pass"> <store> <code>123</code> <name>ABC </nametownfrom> Москва</storetownfrom> <storeservice> <code>4561</codeservice> <namemainonly>Филиал 21</name> </storemainonly> </storelisttariffs>
</source>
* '''codeauth''' — Код филиалаатрибут '''extra''' обязателен, по нему определяется курьерская служба.* '''townfrom''' — город-отправитель. Если не передан, то городом будет «Москва».* '''service''' — режим доставки. Обязательный элемент.* '''namemainonly''' — Наименование филиаланеобязательный элемент.Если передан, то в ответе будут данные только по городам из справочника '''Межгород''' > '''Зоны'''.
'''Пример запроса пунктов самовывоза:ответа справочника тарифов по городам'''<source lang="xmljson"><?xml version={ "townfrom": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5", "service": 1.0, "tariffs": [ { "towntofias" encoding=: "UTF0c5b2444-870a0-4932-980c-b4dc0d3f02b5", "towntocode": 1, "towntoname": "Москва город", "townregion": "Город Москва" ?>,<pvzlist> "distance": 0, <auth extra= "8pricedistance" login=: 0, "loginpricesnew" pass=: { "passbefore"></auth>: [ <code>1234</code> { <client_code>7890</client_code> "price": 100, <city>Свердловская область</city> "every": 0, <town regioncode= "66mass" country=: 1 }, { "RUprice">Нижний Тагил</town>: 150, <address>Щёлковское шоссе</address> "every": 0, <house>77</house> "mass": 5 <parentcode>6</parentcode> } <acceptcash>YES</acceptcash> ], <acceptcard>YES</acceptcard> "after": [ <acceptfitting>YES</acceptfitting> { <maxweight>30</maxweight> "price": 0, <acceptindividuals>YES</acceptindividuals> "every": 1, <lt>57 "mass": 38.924737</lt>01 }, { <lg>59.940019</lg> "price": 15, <rt>57.905682</rt> "every": 1, <rg>59 "mass": 51.984669</rg>01 <json>YES</json> } <with_coords>YES</with_coords> ] <limit> }, <limitfrom>30</limitfrom> "deliveryPeriodMin": 1, <limitcount> "deliveryPeriodMax": 2</limitcount> } <countall>YES</countall>] </limit></pvzlist>}
</source>
''' Описание полей ответа '''* '''townfrom''' — код ФИАС города-отправителя.* '''authservice''' — Атрибут режим доставки.* '''extratariffs''' — обязателен, cписок тарифов по нему определяется курьерская служба, городу.:* '''logintownregion''' и — регион города-получателя.:* '''passtowntofias''' позволяют авторизоваться под клиентом — код ФИАС города-получателя.: для отдельного клиента могут быть ограничения по доступности некоторых ПВЗ, и в этом случае они будут учтены* '''towntocode''' — внутренний код города-получателя.:* '''codetowntoname''' — Внутренний коднаименование города-получателя.:* '''client_codedistance''' — Код клиента курьерской службыдистанция в км до города от МКАД, если в запросе townfrom — Москва.:* '''citypricedistance''' — Регион получателясумма за километраж до города от МКАД, если в запросе townfrom — Москва. Можно указать код региона или полное наименование региона :* '''pricesnew''' — ваши настройки тарифов из [[#Справочник регионов|справочника регионов]]'''Межгород''' > '''Тарифы по зонам'''.::* '''townbefore/after''' — Город получателяконтейнеры ДО/ОТ.Для тега города :::* '''townprice''' можно указать код региона — цена. Если ответ идет по «before», то в атрибуте цену также плюсуется сумма pricedistance:::* '''every''' — за каждые.:::* '''mass''' — масса.:* '''prices''' — устаревший элемент, не используется.:* '''deliveryPeriodMin''' — минимальный срок доставки.:* '''deliveryPeriodMax''' — максимальный срок доставки. == Номенклатура приходной накладной =='regioncode''Пример запроса номенклатуры приходной накладной:''' из [[#Справочник регионов|справочника регионов]]<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><itemdoc> <auth extra="8" login="login" pass="pass"></auth> <code>21991</code></itemdoc></source> * '''code''' — внутренний код документа приходной накладной (см. Поиск будет производиться в указанном регионепредыдущий запрос).
''' Описание полей ответа '''
* '''code''' — внутренний код приходной накладной
* '''number''' — номер документа
* '''date''' — дата документа
* '''message''' — комментарий
* '''item''' — контейнер товара:* '''code''' — внутренний код товара:* '''barcode''' — штрихкод товара:* '''article''' — артикул товара:* '''quantity''' — количество поступившего товара == Справочник филиалов =='''Пример ответа справочника пунктов самовывозазапроса списка филиалов:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><pvzlist count="2" totalcount="40465"> <pvz> <code>126</code> <clientcode>3</clientcode> <name>Нижний Тагил</name> <parentcode>6</parentcodestorelist> <parentname>Интеграция</parentname> <town codeauth extra="124267" regioncode="66" regionname="Свердловская область8">Нижний Тагил город</townauth> <addressjson>622036, г. Нижний Тагил, ул. Циолковского, д. 17YES</addressjson> <phoneclient_code>+73435417709, +734352549897890</phoneclient_code> <comment>Новый пункт доставки</commentstorelist> <worktime>Вс 10:00-16:00, Сб 10:00-16:00, Пн-Пт 10:00-20:00</worktimesource> <traveldescription>Жилое 5-ти этажное здание* '''auth''' — Атрибут '''extra''' — обязателен, торцом к дороге, второе здание от перекрестка Пархоменко-Циолковского</traveldescription>по нему определяется курьерская служба <maxweight>10</maxweight> <acceptcash>* '''json''' — Признак вывода ответа в виде JSON YES</acceptcash>NO <acceptcard>YES</acceptcard>* '''client_code''' — Код клиента курьерской службы <acceptfitting>YES</acceptfitting> <acceptindividuals>YES</acceptindividuals>'''Пример ответа:''' <latitude>57.93457</latitudesource lang="xml"> <longitude>59?xml version="1.95131</longitude> <uid>40606d000" encoding="UTF-9c51-11eb-b2c9-cfd6c1111392</uid8" ?> </pvzstorelist count="2"> <pvzstore> <code>245123</code> <clientcode>NTG1</clientcode> <name>На КрасноармейскойABC</name> <parentcode>6 </parentcodestore> <parentname>Интеграция</parentnamestore> <town code="124267" regioncode="66" regionname="Свердловская область">Нижний Тагил город456</towncode> <addressname>КРАСНОАРМЕЙСКАЯ, д.79Филиал 2</addressname> <phone>+7(3435)379-044 </phonestore> <comment>Возможность примерки отсутствует</commentstorelist> <worktime>Вс 10:00-16:00, Сб 10:00-16:00, Пн-Пт 10:00-20:00</worktimesource> <traveldescription>Напротив ТЦ Пирамида</traveldescription> <maxweight>20</maxweight>* '''code''' — Код филиала.* '''name''' — Наименование филиала. <acceptcash>YES</acceptcash> <acceptcard>YES</acceptcard>== Справочник пунктов самовывоза == <acceptfitting>NO<Для отображения списка пунктов выдачи (ПВЗ) есть '''готовый JavaScript модуль''': https:/acceptfitting> <acceptindividuals>YES</acceptindividuals> <latitude>57home.93468</latitude> <longitude>60courierexe.55476<ru/longitude> <uid>41116853-9c51-11eb-b2c9-cfd6c1451392<js/uid> <measoft_map.js Инструкция по использованию — внутри. Посмотреть пример работы можно [https:/pvz></pvzlist><home.courierexe.ru/source>pvz_test.html Здесь]
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?><receipts countpvzlist> <auth extra="18" login="login" pass="pass"></auth> <code>1234<receipt/code> <ordernoclient_code>1234567890</ordernoclient_code> <fdDatetimecity>2020-06-07 12:14:00Свердловская область</fdDatetimecity> <fdValuetown regioncode="66" country="RU">123Нижний Тагил</fdValuetown> <fdNumaddress>456Щёлковское шоссе</fdNumaddress> <fnSnhouse>78977</fnSnhouse> <kktNumparentcode>1006</kktNumparentcode> <innacceptcash>222YES</innacceptcash> <ofdUrlacceptcard>gate.ofd.ruYES</ofdUrlacceptcard> <fullUrlacceptfitting>https:YES<//check.ofd.ru/123acceptfitting> <maxweight>30</fullUrlmaxweight> <priceacceptindividuals>12345YES</priceacceptindividuals> <lines count="1"respstores> YES<line/respstores> <itemlt>111176457.924737</itemlt> <namelg>Сапоги59.940019</namelg> <qtyrt>157.905682</qtyrt> <pricerg>100059.984669</pricerg> <vatRatejson>20YES</vatRatejson> <governmentCodewith_coords>Z16513LK2YES</governmentCodewith_coords> <limit> <itemTypelimitfrom>130</itemTypelimitfrom> <limitcount>2</linelimitcount> <countall>YES</linescountall> </receiptlimit></receiptspvzlist>
</source>
* '''address''' — Фильтр по адресу, работает только в связке с фильтром по городу* '''house''' — Фильтр по номеру дома, работает только в связке с фильтрами по адресу и городу* '''parentcode''' — Фильтр по родительскому [[#Справочник филиалов|филиалу]]* '''acceptcash''' — Фильтр по приему наличных YES/NO* '''acceptcard''' — Фильтр по приему банковских карт YES/NO* '''acceptfitting''' — Фильтр по наличию примерки YES/NO* '''maxweight''' — Фильтр по максимальному весу, с которым работает ПВЗ* '''acceptindividuals''' — Фильтр по доступности физическим лицам YES/NO* '''respstores''' - Признак вывода ответственных филиалов при значении YES* '''lt''' — Широта левого верхнего угла* '''lg''' — Долгота левого верхнего угла* '''rt''' — Широта правого нижнего угла* '''rg''' — Долгота правого нижнего угла* '''json''' — Признак вывода ответа в виде JSON YES/NO* '''with_coords''' — Признак вывода ПВЗ только с наличием координат YES/NO* '''limit''' — Ограничивает вывод результата.:* '''limitfrom''' — Задает номер записи результата, начиная с которой выдавать ответ. По-умолчанию — 0.:* '''limitcount'''- Задает количество записей результата, которые нужно вернуть. По-умолчанию — 100.:* '''countall''' — YES указывает на необходимость подсчета общего количества найденных совпадений. Это может замедлять выполнение запроса. Если отключено — в ответе не указываeтся totalcount. '''Пример ответа справочника видов срочностипунктов самовывоза:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<services pvzlist count="2" totalcount="40465"> <servicepvz> <code>1126</code> <clientcode>3</clientcode> <name>ЭкономНижний Тагил</name> <parentcode>6</serviceparentcode> <parentname>Интеграция<service/parentname> <town code="124267" regioncode="66" regionname="Свердловская область">Нижний Тагил город</town> <address>2622036, г. Нижний Тагил, ул. Циолковского, д. 17</address> <phone>+73435417709, +73435254989</codephone> <namecomment>СрочноНовый пункт доставки</namecomment> <worktime>Вс 10:00-16:00, Сб 10:00-16:00, Пн-Пт 10:00-20:00</serviceworktime> <traveldescription>Жилое 5-ти этажное здание, торцом к дороге, второе здание от перекрестка Пархоменко-Циолковского</servicestraveldescription> <maxweight>10</sourcemaxweight> <acceptcash>YES</acceptcash> <acceptcard>YES</acceptcard>== Справочник дополнительных услуг == <acceptfitting>YES</acceptfitting>'''Пример запроса дополнительных услуг:''' <acceptindividuals>YES</acceptindividuals> <latitude>57.93457<source lang="xml"/latitude> <?xml version="1longitude>59.0" encoding="UTF95131</longitude> <uid>40606d00-9c51-11eb-b2c9-8"?cfd6c1111392</uid> </pvz> <pvz> <code>245</code> <clientcode>NTG1</clientcode> <name>На Красноармейской</name> <parentcode>6</parentcode> <parentname>Интеграция<advprices/parentname> <auth extratown code="8124267" loginregioncode="login66" passregionname="passСвердловская область" >Нижний Тагил город</town> <address>КРАСНОАРМЕЙСКАЯ, д.79</address> <phone>+7(3435)379-044</phone> <comment>Возможность примерки отсутствует</comment> <worktime>Вс 10:00-16:00, Сб 10:00-16:00, Пн-Пт 10:00-20:00</worktime> <traveldescription>Напротив ТЦ Пирамида</traveldescription> <maxweight>20</maxweight> <acceptcash>YES</acceptcash> <acceptcard>YES</advpricesacceptcard> <acceptfitting>NO</sourceacceptfitting> <acceptindividuals>YES</acceptindividuals>'''advprices''' — Корневой контейнер <latitude>57. Обязательный элемент93468</latitude> <longitude>60.55476</longitude> <uid>41116853-9c51-11eb-b2c9-cfd6c1451392</uid> </pvz></pvzlist></source>
* '''Пример ответа справочника дополнительных услуг:code''' — Код ПВЗ в системе. Используется в запросе [[API#Оформление заказа|оформления заказов]]<source lang="xml">* '''clientcode''' — Код ПВЗ используемый компанией-подрядчиком.<?xml version="1* '''name''' — Наименование ПВЗ.0" encoding="UTF-8" ?><advprices>* '''parentcode''' — Код родительского элемента. <advprice>* '''parentname''' — Наименование родительского элемента. <code>1</code>* '''town''' — Населенный пункт с кодом из [[#Справочник городов|справочника городов]], а также с кодом и наименованием региона. <name>Этажей в доме</name>* '''address''' — Адрес ПВЗ. <type>int</type>* '''phone''' — Телефоны ПВЗ. </advprice>* '''comment''' — Дополнительная информация. <advprice>* '''worktime''' — Режим работы ПВЗ. <code>2</code>* '''traveldescription''' — Описание местонахождения ПВЗ или пути к нему. <name>Коэффициент надбавки</name>* '''maxweight''' — Максимальный вес, с которым работает ПВЗ. <type>float</type>* '''acceptcash''' — Признак приема наличных </advprice>* '''acceptcard''' — Признак приема банковских карт <advprice>* '''acceptfitting''' — Наличие примерки <code>3</code>* '''latitude''' — Широта <name>Расписаться на упаковке</name>* '''longitude''' — Долгота <type>bool</type>* '''uid''' — Уникальный идентификатор ПВЗ в системе Measoft. Создается автоматически при получении данных о ПВЗ от агентов. </advprice>* '''count''' — Количество записей в ответе</advprices></source>* '''totalcount''' — Общее количество записей, отвечающее параметрам запроса
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?><calculator> <auth extrareceipts count="8" login="login" pass="pass1" /> <orderreceipt> <pricetypeorderno>CUSTOMER123456</pricetypeorderno> <fdDatetime>2020-06-07 12:14:00<sender/fdDatetime> <townfdValue>Санкт-Петербург123</townfdValue> <addressfdNum>Петровка 38 офис 35456</addressfdNum> <coords lat="55.680327" lon="37.604456"fnSn>789</coordsfnSn> </senderkktNum> 100<receiver/kktNum> <zipcodeinn>125480222</zipcodeinn> <town regioncode="78" country="RU"ofdUrl>Санкт-Петербургgate.ofd.ru</townofdUrl> <addressfullUrl>Петровка 38 офис 35https://check.ofd.ru/123</addressfullUrl> <pvzprice>12412345</pvzprice> <coords latlines count="55.6803271" lon="37.604456"></coords> </receiverline> <weightitem>5.11111764</weightitem> <servicename>2Сапоги</servicename> <paytypeqty>CASH1</paytypeqty> <price>387.51000</price> <deliverypricevatRate>15020</deliverypricevatRate> <inshpricegovernmentCode>387.5Z16513LK2</inshpricegovernmentCode> <packagesitemType> <package mass="1" quantity="5"></packageitemType> <package mass="2.5" length="10" width="20" height="30"> </packageline> </packageslines> <userid>user123</userid> <groupid>customer</groupid> </orderreceipt></calculatorreceipts>
</source>
Параметры ответа:
* '''orderno''' — Номер заказа
* '''fdDatetime''' — Дата и время пробития фискального чека
* '''fdValue''' — ФПД (фискальный признак документа)
* '''fdNum''' — ФИСКАЛЬНЫЙ ДОКУМЕНТ (фискальный номер чека)
* '''fnSn''' — ФН (номер фискального накопителя)
* '''kktNum''' — РН (регистрационный номер кассы)
* '''inn''' — ИНН
* '''ofdUrl''' — URL адрес (доменное имя) ОФД
* '''price''' — Сумма чека
* '''fullUrl''' — URL чека для просмотра онлайн
* '''lines''' — Позиции чека
:* '''item''' — код товара
:* '''name''' — наименование товара
:* '''qty''' — количество товара
:* '''price''' — цена товара
:* '''governmentCode''' — считанная последовательность, которая в дальнейшем преобразуется по алгоритму тега 1162
:* '''vatRate''' — НДС товара
:* '''itemType''' — тип товара (товар, доставка и т. д.)
'''Пример ответа стоимости доставкисправочника дополнительных услуг:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?><calculatoradvprices> <calcadvprice> <townfrom code=">1">Москва город</townfrom> <townto code="56603">Иркутск город</townto> <massname>3.7Этажей в доме</mass> <service name="Экспресс">1</service> <zonetype>2int</zonetype> <price>1113 </priceadvprice> <mindeliverydays>1</mindeliverydaysadvprice> <maxdeliverydayscode>32</maxdeliverydayscode> <mindeliverydatename>2020-05-13Коэффициент надбавки</mindeliverydate> <intervals> <workdaysname> <intervaltype>10:00-16:00float</intervaltype> <interval>16:00-22:00 </intervaladvprice> </workdaysadvprice> <holidayscode> <interval>12:00-16:00</interval> </holidays> 3</intervals> <deliveryprice> <advprice code="1" price="1000">База</advprice> <advprice code="4" price="100"name>Процент от суммы рубРасписаться на упаковке</advpricename> <advprice code="5" price="63"type>Процент от объявленной стоимостиbool</advpricetype> <advprice code="6" price="-50">Скидка при доставке </advprice> </deliveryprice> </calc></calculatoradvprices></source>
Параметры:
* '''townfrom''' — Город-отправитель так, как система его распознала и привязала к справочнику. Атрибут '''code''' — внутренний код из справочника городов системы.услуги* '''towntoname''' — Город-получатель так, как система его распознала и привязала к справочникунаименование услуги. Атрибут '''code''' — код из справочника городов системы.* '''mass''' — Масса Если поле «название в ЛК» в килограммах* '''service''' — Режим доставки — числонастройках услуги не пусто, указывающее на запись то возвращает значение поля «название в справочнике видов срочности (см описание на этой странице)ЛК».* '''zonehine''' — номер тарифной зоны, подсказка по которой рассчиталась стоимость. В зависимости от зоны выбирается тарифная сетка. Так же к цене могут применяться повышающие или понижающие коэффициенты при доставке не из/в региональный центр.доп услуге для пользователя* '''pricetype''' — рассчитанная стоимость доставки в валюте прайс-листа курьерской службы. Рекомендуется к использованию в отличие от одноименного атрибута родительского контейнератип услуги.Может иметь значения::* '''maxdeliverydaysbool''' — максимальный срок доставки в рабочих днях.для услуг вида «чекбокс», «Да»:* '''mindeliverydatefloat''' — минимальная дата доставки в учетом выходных дней.для числа с плавающей точкой:* '''intervalsint''' — список интервалов доставки для соответствующей зоны и режима срочности.* '''deliveryprice''' — Данные по составляющим ценам доставкицелого числа
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<calculator> <auth extra="8" login="login" pass="pass" /> <order> <pricetype>CUSTOMER</pricetype> <sender> <town>Санкт-Петербург</town> <address>Петровка 38 офис 35</address> <coords lat="55.680327" lon="37.604456"></coords> </sender> <receiver> <zipcode>125480</zipcode> <town regioncode="78" country="RU">Санкт-Петербург</town> <address>Петровка 38 офис 35</address> <pvz>124</pvz> <coords lat="55.680327" lon="37.604456"></coords> </receiver> <weight>5.1</weight> <service>2</service> <paytype>CASH</paytype> <price>387.5</price> <deliveryprice>150</deliveryprice> <inshprice>387.5</inshprice> <packages> <package mass="1" quantity="5"></package> <package mass="2.5" length="10" width="20" height="30"></package> </packages> <userid>user123</userid> <groupid>customer</groupid> </order></calculator></source> Параметры:Структура данных и заполнение полей аналогичны и совместимы с [[#Оформление заказа]]. Дополнительные поля:* '''pricetype''' — тип требуемой цены. Возможные значения: «CUSTOMER» (по-умолчанию) — [[Личный кабинет клиента#Цена доставки для получателя|цена для конечного получателя]], «CLIENT» — цена курьерской службы для клиента.* '''userid''' — Идентификатор пользователя, строковый или числовой тип. Виртуальное поле. Необязательное. Данное поле используется совместно с настройками «Цена доставки для получателя», определяя приоритет правила. Можно использовать в различных CMS/CRM системах, настраивая цены для определенного покупателя.* '''groupid''' — Идентификатор группы пользователя, строковый или числовой тип. Виртуальное поле. Необязательное. Данное поле используется совместно с настройками «Цена доставки для получателя», определяя приоритет правила. Можно использовать в различных CMS/CRM системах, настраивая цены для определенной группы покупателей. Суммы НП и ОЦ, а также тип оплаты CARD имеют значение при настроенных в тарифе на вкладке Прочее долях (в процентах) от данных сумм. В авторизации можно опустить параметры login и pass, тогда расчет будет производиться по стандартному тарифу курьерской службы, без учета возможных отличий для конкретного клиента.<br>Объемный вес будет учитываться только при условии указания всех габаритов: длины, ширины и высоты.<br>В полях город-отправитель и город-получатель можно указывать название города (не рекомендуется!), либо код города из нашего справочника, либо 13-ти значный код КЛАДР, либо 36-ти значный код адресной системы ФИАС (AOID). '''Пример ответа стоимости доставки:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><calculator> <calc> <townfrom code="1">Москва город</townfrom> <townto code="56603">Иркутск город</townto> <mass>3.7</mass> <service name="Экспресс">1</service> <zone>2</zone> <price>1113</price> <mindeliverydays>1</mindeliverydays> <maxdeliverydays>3</maxdeliverydays> <mindeliverydate>2020-05-13</mindeliverydate> <intervals> <workdays> <interval>10:00-16:00</interval> <interval>16:00-22:00</interval> </workdays> <holidays> <interval>12:00-16:00</interval> </holidays> </intervals> <deliveryprice> <advprice code="1" price="1000">База</advprice> <advprice code="4" price="100">Процент от суммы руб</advprice> <advprice code="5" price="63">Процент от объявленной стоимости</advprice> <advprice code="6" price="-50">Скидка при доставке</advprice> </deliveryprice> </calc></calculator></source> Параметры:* '''townfrom''' — Город-отправитель так, как система его распознала и привязала к справочнику. Атрибут '''code''' — код из справочника городов системы.* '''townto''' — Город-получатель так, как система его распознала и привязала к справочнику. Атрибут '''code''' — код из справочника городов системы.* '''mass''' — Масса в килограммах* '''service''' — Режим доставки — число, указывающее на запись в справочнике видов срочности (см описание на этой странице).* '''zone''' — номер тарифной зоны, по которой рассчиталась стоимость. В зависимости от зоны выбирается тарифная сетка. Так же к цене могут применяться повышающие или понижающие коэффициенты при доставке не из/в региональный центр.* '''price''' — рассчитанная стоимость доставки в валюте прайс-листа курьерской службы. Рекомендуется к использованию в отличие от одноименного атрибута родительского контейнера.* '''maxdeliverydays''' — максимальный срок доставки в рабочих днях.* '''mindeliverydate''' — минимальная дата доставки в учетом выходных дней.* '''intervals''' — список интервалов доставки для соответствующей зоны и режима срочности.* '''deliveryprice''' — Данные по составляющим ценам доставки '''''Обратите внимание:''''' В реальном ответе сервера в теге calc присутствует атрибут «price». Он оставлен для обратной совместимости, не используйте его. Пользуйтесь вложенным тегом price. === Коды и описание ошибок ==={|class=wikitable!Код ошибки!Английское описание!Русское описание!Примечание|-|15||tarif not found||Тариф не найден||Ошибка получения тарифов: для клиента не указан тариф|-|19||field [town to] cannot be empty||Поле [город получателя] не может быть пустым||Необходимо указать город получателя или ПВЗ|-|20||field [weight] is incorrect||Некорректное значение [масса]||Значение массы некорректное, например, не является числом. Его необходимо исправить|-|21||town from not found||Город отправителя не найден||Системе не удалось найти указанный населенный пункт отправителя|-|22||town to not found||Город получателя не найден||Системе не удалось найти указанный населенный пункт отправителя|-|23||field [weight] cannot be empty||Поле [масса] не может быть пустым||Необходимо указать значение массы отправления, поле [weight]|-|36||subtown not found||Город в регионе не найден||Не настроено направление доставки до города в регионе: не добавлен регион или указанный город отсутствует в списке региона|-|37||zoneprice not found||Тариф зоны не найден||Отсутствуют зоны тарификации или для них не указаны стоимости|-|38||tarif not found - 1||Тариф не найден 1||Результаты расчета отсутствуют: общая ошибка в случае, если других ошибок нет, но результат пустой |-|39||tarif not found - 2||Тариф не найден 2||Ошибка получения тарифов: для клиента не настроен тариф или тарификация от количества заказов|-|82||field [weight] exceeded limit PVZ||Значение [weight] превышает ограничение ПВЗ||Указанное значение массы больше, чем максимально допустимое для указанного ПВЗ|-|83||attribute [paytype] not allowed PVZ||Значение [paytype] не допустимо для ПВЗ||В ПВЗ не допустим указанный тип оплаты|-|} == Получение информации о клиенте =='''Пример запроса получения информации о клиенте:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><client> <auth extra="8" login="login" pass="pass" /> </client></source> '''client''' — Корневой контейнер. Обязательный элемент.* '''auth''' — Авторизация. Обязательный элемент. '''Пример ответа на запрос получения информации о клиенте:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><client> <code>1082</code></client></source> * '''code''' — Код клиента == Список актов передачи денег =='''Пример запроса списка актов передачи денег:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><smalist> <auth extra="8" login="login" pass="pass" /> <datefrom>2016-02-10</datefrom> <dateto>2016-03-10</dateto></smalist></source> '''smalist''' — Корневой контейнер. Обязательный элемент.* '''auth''' — Авторизация. Обязательный элемент.* '''datefrom''' — Дата «с». Необязательный элемент.* '''dateto''' — Дата «по». Необязательный элемент.Если интервал дат не указан, то возвращаются акты передачи денег за последний месяц. '''Пример ответа на запрос списка актов передачи денег:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><smalist count="1"> <sma> <code>6278</code> <number>3992</number> <actdate>2016-02-12</actdate> <datepay></datepay> <dateto>2016-02-12</dateto> <promiseddatepay></promiseddatepay> <price>637.00</price> <pricecorr>113.00</pricecorr> <rur>13430.00</rur> <pricekur>570.00</pricekur> <priceag>67.00</priceag> <payno>42423</payno> <paytype>1</paytype> <paytypename>Безнал</paytypename> <signedcopyreceived>NO</signedcopyreceived> </sma></smalist></source> * '''code''' — Код акта* '''number''' — Номер акта в системе* '''actdate''' — Дата акта* '''datepay''' — Дата оплаты по акту* '''dateto''' — Дата конечного периода для формирования АПД* '''promiseddatepay''' — Плановая дата оплаты* '''price''' — Стоимость услуг* '''pricecorr''' — Сумма корректировки* '''rur''' — Сумма заказа* '''pricekur''' — Стоимость курьерской доставки* '''priceag''' — Агентское вознаграждение* '''payno''' — Номер платежного поручения* '''paytype''' — Тип оплаты: 1 — безнал, 2 — наличными курьером, 3 — наличными в офисе, 4 — перевод на карту* '''paytypename''' — Строковое представление типа оплаты* '''signedcopyreceived''' — Признак факта возврата акта YES/NO
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<clientsmadetail> <auth extra="8" login="login" pass="pass" /> <code>10826278</code></clientsmadetail>
</source>
'''smadetail''' — Корневой контейнер. Обязательный элемент.* '''auth''' — Авторизация. Обязательный элемент.* '''code''' — Код клиентаакта передачи денег (см. запрос списка АПД). Обязательный элемент.
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?><smalistsmadetail count="2"> <auth extra="8" login="login" pass="pass" specialsma> <code>42494</code> <ordercode>14424</ordercode> <orderno>11111</orderno> <datefromorderdate>20162018-0201-1001</datefromorderdate> <datetodelivereddate>20162018-0310-1001</delivereddate> <company>Компания</company> <price>314.00</price> <rur>8800.00</rur> <inshprice>314.00</inshprice> <pricekur>270.00</pricekur> <priceag>44.00</priceag> <pricecalc>8486.00</pricecalc> <paytype>2</paytype> <paytypename>наличными курьером</paytypename> <weight>0.400</weight> <distance>0.0</distance> <status>Доставлено</status> </datetospecialsma></smalistsmadetail>
</source>
* '''smalistcode''' — Корневой контейнерКод записи. Обязательный элемент* '''ordercode''' — Код заказа.* '''authorderno''' — АвторизацияШифр заказа. Обязательный элемент* '''orderdate''' — Дата заказа.* '''datefromdelivereddate''' — Дата «с»доставки.* '''company''' — Получатель.* '''price''' — Стоимость услуг. Необязательный элемент* '''rur''' — Сумма заказа.* '''inshprice''' — Стоимость заказа.* '''pricekur''' — Стоимость курьерской доставки.* '''datetopriceag''' — Дата «по»Агентское вознаграждение. Необязательный элемент* '''pricecalc''' — Сумма для передачи агенту.Если интервал дат не указан* '''paytype''' — Тип оплаты: 1 — безнал, 2 — наличными курьером, 3 — наличными в офисе, то возвращаются акты передачи денег за последний месяц4 — перевод на карту.* '''paytypename''' — Строковое представление типа оплаты* '''weight''' — Вес заказа.* '''distance''' — Дистанция по заказу* '''status''' — Статус заказа. == Установка статуса согласования заказа ==Для возможности клиентом установки статуса согласования заказа необходимо включить переменную [[Личный кабинет курьерской службы#Заказы|Разрешить менять статус согласования]]
'''Пример ответа на запрос списка актов передачи денег:запроса установки статуса согласования заказа'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<smalist countsetapprovalstatus> <auth extra="18" login="login" pass="pass"/> <smaorder ordercode="1234561"> <codeconfirmstate>62781</codeconfirmstate> <numbermessage>3992Сообщение статуса</numbermessage> <actdate>2016-02-12</actdateorder> <datepay></datepayorder ordercode="1234562"> <datetoconfirmstate>2016-02-122</datetoconfirmstate> <promiseddatepaymessage>Согласовано</promiseddatepaymessage> <price>637.00</priceorder> <pricecorr>113.00</pricecorrorder ordercode="1234563"> <rurconfirmstate>13430.003</rurconfirmstate> <pricekurmessage>570.00Не согласовано</pricekurmessage> <priceag>67.00</priceagorder> <payno>42423</paynosetapprovalstatus> <paytype>1</paytypesource> * '''order''' — Контейнер заказа. Обязателен как минимум один элемент.:* '''ordercode''' — Внутренний код заказа.* '''confirmstate''' — Код статуса заказа. Все статусы с кодами можно получить запросом [[#Получение списка статусов согласования заказа|Получение списка статусов согласования заказа]]* '''message''' — Дополнительный комментарий, который отобразится в поле ''Инфо о доставке''. == Получение списка статусов согласования заказа =='''Пример запроса списка статусов согласования заказа'''<paytypenamesource lang="xml">Безнал</paytypename?xml version="1.0" encoding="UTF-8"?> <signedcopyreceived>NO</signedcopyreceivedapprovalstatuses> <auth extra="8" login="login" pass="pass" /sma></smalistapprovalstatuses>
</source>
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<smadetailapprovalstatuses count="6"> <auth extra="8" login="login" pass="pass" /status> <code>62781</code> </smadetailname>Неизвестно</sourcename> '''smadetail''' — Корневой контейнер. Обязательный элемент.* '''auth''' — Авторизация. Обязательный элемент.* '''code''' — Код акта передачи денег (см. запрос списка АПД). Обязательный элемент. '''Пример ответа на запрос детализации актов передачи денег:''' <source lang="xml"><?xml version="1.0" encoding="UTF-8"?><smadetail count="2"/status> <specialsmastatus> <code>424942</code> <ordercodename>14424Согласование запрошено</ordercodename> <orderno/status>11111 </ordernostatus> <orderdatecode>2018-01-013</orderdatecode> <delivereddatename>2018-10-01Доставка полностью согласована</delivereddatename> <company>Компания </companystatus> <price>314.00</pricestatus> <rurcode>8800.004</rurcode> <inshpricename>314.00Согласовано с изменением времени</inshpricename> <pricekur>270.00 </pricekurstatus> <priceag>44.00</priceagstatus> <pricecalccode>8486.005</pricecalccode> <paytypename>2Перенос на другую дату</paytypename> <paytypename>наличными курьером </paytypenamestatus> <weight>0.400</weightstatus> <distancecode>0.06</distancecode> <statusname>ДоставленоОтказ</statusname> </specialsmastatus></smadetailapprovalstatuses></source> * '''code''' — Код записи.* '''ordercode''' — Код заказа.* '''orderno''' — Шифр заказа.* '''orderdate''' — Дата заказа.* '''delivereddate''' — Дата доставки.* '''company''' — Получатель.* '''price''' — Стоимость услуг.* '''rur''' — Сумма заказа.* '''inshprice''' — Стоимость заказа.* '''pricekur''' — Стоимость курьерской доставки.* '''priceag''' — Агентское вознаграждение.* '''pricecalc''' — Сумма для передачи агенту.* '''paytype''' — Тип оплаты: 1 — безнал, 2 — наличными курьером, 3 — наличными в офисе, 4 — перевод на карту.* '''paytypename''' — Строковое представление типа оплаты* '''weight''' — Вес заказа.* '''distance''' — Дистанция по заказу* '''status''' — Статус заказа.
== Генерация коротких ссылок ==
</source>
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">'''Обратите внимание! '''# При использовании iFrame могут не работать некоторые функции, например, подписка на push-уведомления на странице трекинга или отслеживания.# Если язык не указать, то на страницах калькулятора и трекинга отображается свой переключатель языка. Если язык указан, то переключатель не отоборажаетсяотображается.
Поддерживаемые языки и их коды:
:'''2''' — английский
:'''4''' — узбекский
</div>
== Оформление манифеста ==
<store_to>2</store_to>
<trn_code>3</trn_code>
<sentdate>2024-11-07</sentdate>
<places>
<place>
<number>1</number>
<seal>7890AABBB</seal>
</place>
<place>
<number>2</number>
<seal>123456ABC</seal>
</place>
</places>
<addresses>
<address>
<code>45612345</code> <place>1</place> </address> <address> <code>67890</code> <place>2</place>
</address>
</addresses>
*'''store_to''' - код филиала получателя. Обязательный элемент.
*'''trn_code''' - код перевозчика. Обязательный элемент.
*'''sentdate''' - дата отправки манифеста. Не обязательный элемент.
*'''addresses''' - корневой элемент для списка заказов.
*:'''address''' - корневой элемент для заказа.
*::'''code''' - наш внутренний номер заказа. Обязательный элемент.
*::'''place''' - номер места заказа. Обязательный элемент, если переданы места.
*'''places''' - корневой элемент для списка мест.
*::'''place''' - корневой элемент для места.
*::'''number''' - номер места. Обязательный элемент.
*::'''seal''' - номер пломбы. Необязательный элемент.