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''' — Признак необходимости возврата. Принимает значения:
* '''pickup''' — Признак оформления забора YES/NO. Если стоит YES, то весь заказ считается заданием на забор груза, а не на доставку! Применяется для вызова курьера к отправителю для забора других отправлений. ''Внимание!'' при добавлении в забор складских товаров, их тип '''''type''''' всегда должен быть установлен как [7] Забор товара, если будет указан другой тип, то он будет исправлен в момент добавления заказа на [7] Забор товара
* '''acceptpartially''' — Признак возможности частичного выкупа товаров отправления YES/NO.
* '''uid''' - Универсальный идентификатор заказа на стороне отправителя. Не обязательный параметр, ограниченного по времени действия. Время хранения в системе, - сутки.
* '''items''' — Контейнер для описания вложений. <rspoiler text="Необязательный контейнер">Если для поставщика товара в системе MeaSoft не указаны полное наименование компании и ИНН в карточке клиента, заполните параметры <code>suppcompany</code> и <code>suppINN</code> в этом контейнере. Отсутствие информации о поставщике приведет к [[Настройка модуля печати кассовых чеков#Ошибка фискализации (ошибка программирования реквизита 1226)|ошибке фискализации]].</rspoiler>. Атрибуты:
:: 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. Виртуальное поле. Необязательное. Из этого поля рассчитывается длина/высота/ширина места. Расчет срабатывает только если в каждом месте есть нулевые значения длины или высоты или ширины.
|-
|134||Specify a valid "paytype" for the town.||Укажите тип оплаты для города
|-
|135||Specify the correct SKU ID/code for item.||Укажите артикул/код вложения
|-
|136||Specify warehouse goods in the order.||Укажите вложения в заказе
|-
|137||The order's date of creation is more than 60 days ago.||Заказ создан более 60 дней назад
|-
|138||Specify a valid "Package dimension" field value.||Укажите корректные габариты места
|-
|139||Wrong type of XML query||Ошибка запроса
|-
|140||Duplicate item code in the order.||Дублирование кода вложения в заказе
|-
|141||Duplicate additional service in the order.||Дублирование кода дополнительной услуги в заказе
|-
|144||Incorrect extrafields.||Некорректные расширенные поля.
|-
|}
<namestarts/>
</conditions>
<limit>500</limit>
</statusreq>
</source>
* '''orderno''' — Идентификатор заказа у клиента (шифр). Необязательный элемент.
* '''ordercode''' — Внутренний код заказа. Необязательный элемент.
* '''orderno2''' — Номер заказа из срочных. Необязательный элемент.* '''uid''' — Уникальный идентификатор, если он был добавлен при создании заказа. Необязательный элемент.Запрос информации по uid возможен в течении суток после создания заказа
* '''datefrom''' — Дата заказа «с». Необязательный элемент.
* '''dateto''' — Дата заказа «по». Необязательный элемент.
:* '''namestarts''' — Поиск по номеру заказа(шифр), который начинается с «orderno».
* '''limit''' — Необязательный параметр. Дает возможность получить не все измененные заказы, а только какое-то определенное количество. Помогает на случай, если у вас скопилось очень много измененных заказов и нужно их грузить лимитировано. После каждой итерации нужно вызывать commitlaststatus с контейнером списка обработанных кодов, [[#Лимитирование запросов|читать подробнее]]
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">
<town code="153361" regioncode="78" regionname="Санкт-Петербург город">Санкт-Петербург город</town>
<address>Петровка 38 офис 35</address>
<area>Район 1</area>
<pvz>
<code>126</code>
<price>387.5</price>
<inshprice>387.5</inshprice>
<paytypecode="1">CASH</paytype>
<weight>5.1</weight>
<quantity>2</quantity>
<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>
:* '''''ordercode''''' — внутренний код заказа в системе, применяется для некоторых внутренних операций.
:* '''''givencode''''' — внутренний код заказа в системе, применяется для некоторых внутренних операций.
*'''paytype''' - Тип оплаты заказа получателем. Принимает значения:
:: CASH - Наличными при получении (по-умолчанию)
:: CARD - Картой при получении
:: NO - Без оплаты.
:: OTHER - Прочее (Предусмотрен для того, чтобы оплата поступала непосредственно в курьерскую службу посредством прочих типов оплаты - таких как: вебмани, яденьги, картой на сайте, прочие платежные системы и т.д.)
* Атрибуты контейнера '''paytype''':
** '''''code''''' - (integer) внутренний код типа оплаты заказа в системном справочнике "Типы оплаты корреспонденции". Не обязательный элемент.
* атрибут '''''code''''' контейнера '''item''' — внутренний код строки заказа в системе, применяется для некоторых внутренних операций.
:* '''''returns''''' — количество данного товара, от которого отказался получатель. Не нулевое только в случае частичного отказа.
* '''''area''''' в контейнере '''receiver''' — район/метро получателя.
* '''''coords''''' в контейнере '''receiver''' — координаты получателя.
* '''''deliveryPIN''''' в контейнере '''receiver''' — Пин-код.
# Контейнер '''statushistory''' и '''deliveryprice''' заполняется для тарифов [[Личный кабинет курьерской службы#Функции личного кабинета|Премиум и Максимум]].
# Контейнер '''packages''' не возвращает более 1000 элементов.
# Система никогда не гарантирует последовательность прохождения заказом набора статусов. То есть Вы можете получить статус «COMPLETE», а следующим запросом — «NEW» — такое может произойти, например, если оператор ошибочно отметил заказ выполненным, а затем исправил ошибку.
</div>
<br>
=== Лимитирование запросов ===Дает возможность получить не все измененные заказы, а только какое-то определенное количество. Помогает на случай, если у вас скопилось очень много измененных заказов и нужно их грузить лимитировано. После успешной обработки получнных заказов, '''Пример запроса:обязательно'''<source lang="xml"><?xml version="1нужно вызвать commitlaststatus с кодами обработанных заказов.0" encoding="UTF-8"?><tracking> <extra>8</extra> <orderno>1234</orderno></tracking></source>'''Пример'''
Для получения ограниченного числа изменившихся заказов отправьте запрос:<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><statusreq> <auth extra="8" login="login" pass="pass"></auth> <changes>ONLY_LAST</changes> <limit>5</limit></statusreq></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;">
Запрос предназначен для отмены заказов.
Отменять заказы могут курьерские службы с тарифами «Премиум» и «Максимум». Чтобы разрешить отмену Разрешения для отмены заказов, и статусы в личном кабинете курьерской службы перейдите которых заказы можно отменять описаны в разделе '''Параметры''' > '''Расширенные''' и установите флажок '''Разрешить отмену и изменение Изменение заказов'''.
При отмене заказа поле «Инфо о доставке» получает значение «Отменено заказчиком», поле «Дата доставки» — текущую дату, а «Вручил курьер» — системную запись «ОТМЕНА».
<?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>
<storeprice>123</storeprice>
<items>
<item code="34533" quantity="1" reason="0" governmentCode="11223311" />
<item code="34456" quantity="0" reason="0" />
<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>
:* '''''quantity''''' — Количество доставленных единиц вложения.
:* '''''reason''''' — Причина недоставки, выбирается из соответствующего списка статусов.
:* '''image''governmentCode''''' — Указание кода ТН для вложения при необходимости.* '''attachments''' — Контейнер прикрепляемого изображенияприкрепляемых изображений. Содержит текст файла изображения, закодированный по стандарту Может содержать несколько контейнеров ''base64'attachment'. Контейнер '':* 'order''attachment' может содержать более одного контейнера '' — Контейнер изображения. Содержит текст файла изображения, закодированный по стандарту 'image'base64''. Атрибут:::* '''''filename''''' — Имя файла.
<waybill>
<auth extra="8" login="login" pass="pass" />
<client>CLIENT</client>
<orders>
<order orderno="1234567" ordercode="33331" />
</orders>
<form>1</form>
<start>5</start>
<integration>21</integration>
</waybill>
</source>
'''waybill''' — Корневой контейнер. Обязательный элемент
* '''auth''' — Авторизация. Обязательный элемент
* '''client''' — Признак клиента или агента. Необязательный элемент.
:* CLIENT — Признак клиента, значение по умолчанию
:* AGENT — Признак агента. В ответ отдается информация по заказам, переданным агенту на доставку
* '''orders''' — Список заказов для получения печатных форм. Содержит тэги '''order''' с атрибутами:
:* '''''orderno''''' — шифр заказа
:* 3 — Наклейки на страницу формата А4
:* 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.
<message></message>
</document>
<serials>
<serial>123456789</serial>
</serials>
</itemmovements>
</itemlist>
:* '''message''' — комментарий
== Серийные номера =='''Пример запроса справочника тарифов по городамдвижения номенклатуры с серийным номером:'''
<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>
''' Описание полей ответа '''
</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"> <pvzstorelist> <code>126 </code> <clientcode>3</clientcode> <name>Нижний Тагил</name> <parentcode>6</parentcode> <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.courierexe.93468<ru/js/latitude> <longitude>60measoft_map.js Инструкция по использованию — внутри.55476<Посмотреть пример работы можно [https:/longitude> <uid>41116853-9c51-11eb-b2c9-cfd6c1451392</uid> <home.courierexe.ru/pvz>pvz_test.html Здесь]</pvzlist></source>Уникальные запросы списка ПВЗ кешируются на стороне личного кабинета и хранятся до 7 часов утра по московскому времени следующего дня. Например, если уникальный запрос с массой 2 кг был отправлен сегодня в 10 часов, то завтра в 7 утра он сбросится. Если сегодня в 18 часов в этом же запросе вы укажете массу 2 кг, в ответе вернется тот же список ПВЗ. Если передадите массу 3 кг, список может быть другим.
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?><receiptdatapvzlist> <auth extra="8" login="login" pass="pass" ></auth> <orderscode> 1234<order orderno="123456" /code> <order orderno="890111C" /client_code> 7890</ordersclient_code> </receiptdatacity> Свердловская область</sourcecity> '''Пример ответа получения фискальных данных:''' <source langtown regioncode="xml66"> <?xml versioncountry="1.0RU" encoding="UTF-8"?>Нижний Тагил<receipts count="1"> <receipt/town> <ordernoaddress>123456Щёлковское шоссе</ordernoaddress> <fdDatetimehouse>2020-06-07 12:14:0077</fdDatetimehouse> <fdValueparentcode>1236</fdValueparentcode> <fdNumacceptcash>456YES</fdNumacceptcash> <fnSnacceptcard>789YES</fnSnacceptcard> <kktNumacceptfitting>100YES</kktNumacceptfitting> <innmaxweight>22230</innmaxweight> <ofdUrlacceptindividuals>gate.ofd.ruYES</ofdUrlacceptindividuals> <fullUrlrespstores>https://check.ofd.ru/123YES</fullUrlrespstores> <pricelt>1234557.924737</pricelt> <lines count="1"lg> 59.940019<line/lg> <itemrt>111176457.905682</itemrt> <namerg>Сапоги59.984669</namerg> <qtyjson>1YES</qtyjson> <pricewith_coords>1000YES</pricewith_coords> <vatRate>20</vatRatelimit> <governmentCodelimitfrom>Z16513LK230</governmentCodelimitfrom> <itemTypelimitcount>12</itemTypelimitcount> </linecountall> YES</linescountall> </receiptlimit></receiptspvzlist></source> * '''auth''' — Атрибут '''extra''' — обязателен, по нему определяется курьерская служба, '''login''' и '''pass''' позволяют авторизоваться под клиентом: для отдельного клиента могут быть ограничения по доступности некоторых ПВЗ, и в этом случае они будут учтены.* '''code''' — Внутренний код.* '''client_code''' — Код клиента курьерской службы.* '''city''' — Регион получателя. Можно указать код региона или полное наименование региона из [[#Справочник регионов|справочника регионов]].* '''town''' — Город получателя.Для тега города '''town''' можно указать код региона в атрибуте '''''regioncode''''' из [[#Справочник регионов|справочника регионов]]. Поиск будет производиться в указанном регионе.
'''Пример ответа справочника видов срочностипунктов самовывоза:'''
<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</advpricesaddress> <phone>+7(3435)379-044</phone> <comment>Возможность примерки отсутствует</comment> <worktime>Вс 10:00-16:00, Сб 10:00-16:00, Пн-Пт 10:00-20:00</worktime> <traveldescription>Напротив ТЦ Пирамида</sourcetraveldescription> <maxweight>20</maxweight> <acceptcash>YES</acceptcash> <acceptcard>YES</acceptcard> <acceptfitting>NO</acceptfitting> <acceptindividuals>YES</acceptindividuals>'''advprices''' — Корневой контейнер <latitude>57. Обязательный элемент93468</latitude> <longitude>60.55476</longitude> <uid>41116853-9c51-11eb-b2c9-cfd6c1451392</uid> </pvz></pvzlist></source>
* '''code''' — Код ПВЗ в системе. Используется в запросе [[API#Оформление заказа|оформления заказов]]
* '''clientcode''' — Код ПВЗ используемый компанией-подрядчиком.
* '''name''' — Наименование ПВЗ.
* '''parentcode''' — Код родительского элемента.
* '''parentname''' — Наименование родительского элемента.
* '''town''' — Населенный пункт с кодом из [[#Справочник городов|справочника городов]], а также с кодом и наименованием региона.
* '''address''' — Адрес ПВЗ.
* '''phone''' — Телефоны ПВЗ.
* '''comment''' — Дополнительная информация.
* '''worktime''' — Режим работы ПВЗ.
* '''traveldescription''' — Описание местонахождения ПВЗ или пути к нему.
* '''maxweight''' — Максимальный вес, с которым работает ПВЗ.
* '''acceptcash''' — Признак приема наличных
* '''acceptcard''' — Признак приема банковских карт
* '''acceptfitting''' — Наличие примерки
* '''latitude''' — Широта
* '''longitude''' — Долгота
* '''uid''' — Уникальный идентификатор ПВЗ в системе Measoft. Создается автоматически при получении данных о ПВЗ от агентов.
* '''count''' — Количество записей в ответе
* '''totalcount''' — Общее количество записей, отвечающее параметрам запроса
== Получение фискальных данных заказа =='''Пример ответа справочника дополнительных услугзапроса получения фискальных данных:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><advpricesreceiptdata> <advprice> <code>1<auth extra="8" login="login" pass="pass" /code> <name>Этажей в доме</name> <type>int</type> </advpriceorders> <advprice> <code>2 <order orderno="123456" /code> <name>Коэффициент надбавки</name> <type>float <order orderno="890111C" /type> </advprice> <advprice> <code>3</code> <name>Расписаться на упаковке</nameorders> <type>bool</typereceiptdata> </advprice></advprices></source> Параметры:* '''code''' — внутренний код услуги* '''name''' — наименование услуги. Если поле «название в ЛК» в настройках услуги не пусто, то возвращает значение поля «название в ЛК».* '''hine''' — подсказка по доп услуге для пользователя* '''type''' — тип услуги. Может иметь значения::* '''bool''' — для услуг вида «чекбокс», «Да»:* '''float''' — для числа с плавающей точкой:* '''int''' — для целого числа
<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> <calc> <townfrom codeauth extra="18">Москва город</townfrom> <townto codelogin="56603login">Иркутск город</townto> <mass>3.7</mass> <service namepass="Экспрессpass">1</service> <zone>2</zoneadvprices> <price>1113</pricesource> <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>'''advprices''' — Корневой контейнер. Обязательный элемент. </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>
<?xml version="1.0" encoding="UTF-8" ?>
<clientadvprices> <advprice> <code>1</code> <name>Этажей в доме</name> <type>int</type> </advprice> <advprice> <code>2</code> <name>Коэффициент надбавки</name> <type>float</type> </advprice> <advprice> <code>3</code> <name>Расписаться на упаковке</name> <type>bool</type> <auth extra="8" login="login" pass="pass" /advprice> </clientadvprices>
</source>
Параметры:* '''code''' — внутренний код услуги* '''clientname''' — Корневой контейнернаименование услуги. Обязательный элементЕсли поле «название в ЛК» в настройках услуги не пусто, то возвращает значение поля «название в ЛК».* '''authhine''' — подсказка по доп услуге для пользователя* '''type''' — Авторизация. Обязательный элементтип услуги.Может иметь значения::* '''bool''' — для услуг вида «чекбокс», «Да»:* '''float''' — для числа с плавающей точкой:* '''int''' — для целого числа
== Расчет стоимости доставки =='''Пример ответа на запрос получения информации о клиентезапроса стоимости доставки:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<clientcalculator> <auth extra="8" login="login" pass="pass" /> <order> <codepricetype>1082CUSTOMER</codepricetype> <sender> <town>Санкт-Петербург</clienttown> <address>Петровка 38 офис 35</sourceaddress> <coords lat="55.680327" lon="37.604456"></coords>* '''code''' — Код клиента </sender> <receiver> <zipcode>125480</zipcode> <town regioncode="78" country= Список актов передачи денег =="RU">Санкт-Петербург</town>'''Пример запроса списка актов передачи денег:''' <address>Петровка 38 офис 35</address> <source langpvz>124</pvz> <coords lat="55.680327" lon="xml37.604456"></coords> </receiver> <weight>5.1</weight> <service>2<?xml version/service> <paytype>CASH</paytype> <price>387.5</price> <deliveryprice>150</deliveryprice> <inshprice>387.5</inshprice> <packages> <package mass="1.0" encodingquantity="UTF-85" ?><smalist/package> <auth extrapackage mass="2.5" length="810" loginwidth="login20" passheight="pass30" ></package> </packages> <datefromuserid>2016-02-10user123</datefromuserid> <groupid>customer<dateto/groupid>2016-03-10 </datetoorder></smalistcalculator>
</source>
Параметры:Структура данных и заполнение полей аналогичны и совместимы с [[#Оформление заказа]]. Дополнительные поля:* '''Пример ответа на запрос списка актов передачи денег:pricetype'''<source lang="xml"><?xml version="1 — тип требуемой цены.0" encoding="UTFВозможные значения: «CUSTOMER» (по-8"?>умолчанию) — [[Личный кабинет клиента#Цена доставки для получателя|цена для конечного получателя]], «CLIENT» — цена курьерской службы для клиента.<smalist count="1"> <sma> <code>6278<* '''userid''' — Идентификатор пользователя, строковый или числовой тип. Виртуальное поле. Необязательное. Данное поле используется совместно с настройками «Цена доставки для получателя», определяя приоритет правила. Можно использовать в различных CMS/code>CRM системах, настраивая цены для определенного покупателя. <number>3992</number> <actdate>2016-02-12</actdate> <datepay></datepay> <dateto>2016-02-12</dateto> <promiseddatepay></promiseddatepay> <price>637* '''groupid''' — Идентификатор группы пользователя, строковый или числовой тип.00</price> <pricecorr>113Виртуальное поле.00</pricecorr> <rur>13430Необязательное.00</rur> <pricekur>570Данное поле используется совместно с настройками «Цена доставки для получателя», определяя приоритет правила.00<Можно использовать в различных CMS/pricekur> <priceag>67CRM системах, настраивая цены для определенной группы покупателей.00</priceag> <payno>42423</payno> <paytype>1</paytype>Суммы НП и ОЦ, а также тип оплаты CARD имеют значение при настроенных в тарифе на вкладке Прочее долях (в процентах) от данных сумм. <paytypename>Безнал</paytypename> В авторизации можно опустить параметры login и pass, тогда расчет будет производиться по стандартному тарифу курьерской службы, без учета возможных отличий для конкретного клиента.<signedcopyreceived>NO</signedcopyreceivedbr> Объемный вес будет учитываться только при условии указания всех габаритов: длины, ширины и высоты.</smabr></smalist></source>В полях город-отправитель и город-получатель можно указывать название города (не рекомендуется!), либо код города из нашего справочника, либо 13-ти значный код КЛАДР, либо 36-ти значный код адресной системы ФИАС (AOID).
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<smadetail count="2"calculator> <specialsmacalc> <townfrom code="1">42494Москва город</codetownfrom> <ordercodetownto code="56603">14424Иркутск город</ordercodetownto> <ordernomass>111113.7</ordernomass> <orderdateservice name="Экспресс">2018-01-011</orderdateservice> <delivereddatezone>2018-10-012</delivereddatezone> <companyprice>Компания1113</companyprice> <pricemindeliverydays>314.001</pricemindeliverydays> <rurmaxdeliverydays>8800.003</rurmaxdeliverydays> <inshpricemindeliverydate>314.002020-05-13</inshpricemindeliverydate> <pricekurintervals> <workdays>270. <interval>10:00-16:00</pricekurinterval> <priceaginterval>44.16:00-22:00</priceaginterval> </workdays> <holidays> <pricecalcinterval>8486.12:00-16:00</pricecalcinterval> <paytype/holidays>2 </paytypeintervals> <paytypenamedeliveryprice> <advprice code="1" price="1000">наличными курьеромБаза</paytypenameadvprice> <weightadvprice code="4" price="100">0.400Процент от суммы руб</weightadvprice> <distanceadvprice code="5" price="63">0.0Процент от объявленной стоимости</distanceadvprice> <advprice code="6" price="-50">Скидка при доставке<status/advprice>Доставлено </statusdeliveryprice> </specialsmacalc></smadetailcalculator></source>
Параметры:* '''codetownfrom''' — Код записиГород-отправитель так, как система его распознала и привязала к справочнику.* Атрибут '''ordercodecode''' — Код заказакод из справочника городов системы.* '''ordernotownto''' — Шифр заказаГород-получатель так, как система его распознала и привязала к справочнику.* Атрибут '''orderdatecode''' — Дата заказакод из справочника городов системы.* '''delivereddatemass''' — Дата доставки.Масса в килограммах* '''companyservice''' — ПолучательРежим доставки — число, указывающее на запись в справочнике видов срочности (см описание на этой странице).* '''pricezone''' — Стоимость услугномер тарифной зоны, по которой рассчиталась стоимость.* '''rur''' — Сумма заказаВ зависимости от зоны выбирается тарифная сетка.* '''inshprice''' — Стоимость заказаТак же к цене могут применяться повышающие или понижающие коэффициенты при доставке не из/в региональный центр.* '''pricekurprice''' — Стоимость рассчитанная стоимость доставки в валюте прайс-листа курьерской доставкислужбы.* '''priceag''' — Агентское вознаграждениеРекомендуется к использованию в отличие от одноименного атрибута родительского контейнера.* '''pricecalcmaxdeliverydays''' — Сумма для передачи агентумаксимальный срок доставки в рабочих днях.* '''paytypemindeliverydate''' — Тип оплаты: 1 — безнал, 2 — наличными курьером, 3 — наличными минимальная дата доставки в офисе, 4 — перевод на картуучетом выходных дней.* '''paytypenameintervals''' — Строковое представление типа оплаты* '''weight''' — Вес заказасписок интервалов доставки для соответствующей зоны и режима срочности.* '''distancedeliveryprice''' — Дистанция Данные по заказу* '''status''' — Статус заказа.составляющим ценам доставки
'''''Обратите внимание:''''' В реальном ответе сервера в теге 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" ?>
<shortlinkclient> <link shortauth extra="08" login="login" pass="pass"> https://home.courierexe.ru/8/site/orders </link></shortlinkclient>
</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" ?><smadetail> <auth extra="8" login="login" pass="pass" /> <code>6278</code></smadetail></source> '''smadetail''' — Корневой контейнер. Обязательный элемент.* '''auth''' — Авторизация. Обязательный элемент.* '''code''' — Код акта передачи денег (см. запрос списка АПД). Обязательный элемент. '''Пример ответа на запрос детализации актов передачи денег:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><smadetail count="2"> <specialsma> <code>42494</code> <ordercode>14424</ordercode> <orderno>11111</orderno> <orderdate>2018-01-01</orderdate> <delivereddate>2018-10-01</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> </specialsma></smadetail></source> * '''code''' — Код записи.* '''ordercode''' — Код заказа.* '''orderno''' — Шифр заказа.* '''orderdate''' — Дата заказа.* '''delivereddate''' — Дата доставки.* '''company''' — Получатель.* '''price''' — Стоимость услуг.* '''rur''' — Сумма заказа.* '''inshprice''' — Стоимость заказа.* '''pricekur''' — Стоимость курьерской доставки.* '''priceag''' — Агентское вознаграждение.* '''pricecalc''' — Сумма для передачи агенту.* '''paytype''' — Тип оплаты: 1 — безнал, 2 — наличными курьером, 3 — наличными в офисе, 4 — перевод на карту.* '''paytypename''' — Строковое представление типа оплаты* '''weight''' — Вес заказа.* '''distance''' — Дистанция по заказу* '''status''' — Статус заказа. == Установка статуса согласования заказа ==Для возможности клиентом установки статуса согласования заказа необходимо включить переменную [[Личный кабинет курьерской службы#Заказы|Разрешить менять статус согласования]] '''Пример запроса установки статуса согласования заказа'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><setapprovalstatus> <auth extra="8" login="login" pass="pass" /> <order ordercode="1234561"> <confirmstate>1</confirmstate> <message>Сообщение статуса</message> </order> <order ordercode="1234562"> <confirmstate>2</confirmstate> <message>Согласовано</message> </order> <order ordercode="1234563"> <confirmstate>3</confirmstate> <message>Не согласовано</message> </order></setapprovalstatus></source> * '''order''' — Контейнер заказа. Обязателен как минимум один элемент.:* '''ordercode''' — Внутренний код заказа.* '''confirmstate''' — Код статуса заказа. Все статусы с кодами можно получить запросом [[#Получение списка статусов согласования заказа|Получение списка статусов согласования заказа]]* '''message''' — Дополнительный комментарий, который отобразится в поле ''Инфо о доставке''. == Получение списка статусов согласования заказа =='''Пример запроса списка статусов согласования заказа'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><approvalstatuses> <auth extra="8" login="login" pass="pass" /></approvalstatuses></source> '''Пример ответа списка статусов согласования заказа'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><approvalstatuses count="6"> <status> <code>1</code> <name>Неизвестно</name> </status> <status> <code>2</code> <name>Согласование запрошено</name> </status> <status> <code>3</code> <name>Доставка полностью согласована</name> </status> <status> <code>4</code> <name>Согласовано с изменением времени</name> </status> <status> <code>5</code> <name>Перенос на другую дату</name> </status> <status> <code>6</code> <name>Отказ</name> </status></approvalstatuses></source> == Генерация коротких ссылок ==В некоторых случаях, например, при использовании в СМС, может потребоваться использование коротких ссылок на ЛК.Для этого, необходимо отправить запрос с полной ссылкой, в ответ на который придёт хэш-код для ссылки. '''Пример запроса генерации коротких ссылок:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><shortlink> <link short="0"> https://home.courierexe.ru/8/site/orders </link></shortlink></source> '''shortlink''' — Корневой контейнер. Обязательный элемент.* '''link''' — Полная ссылка, для которой необходимо получить код. Обязательный элемент. Если атрибут '''short''' равен 1, то ответ не будет содержать XML, а только хэш-код.
'''Пример ответа на запрос генерации коротких ссылок:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<shortlink> <hash>35AF350C</hash></shortlink></source> * '''hash''' — Хэш-код ссылки. Далее, можно использовать ссылку на ЛК: <nowiki>https://home.courierexe.ru/35AF350C или curie.ru/35AF350C</nowiki> '''Примечание!''' Сервис коротких ссылок работает только для ресурсов компании MeaSoft. == Проверка надежности покупателя ==Проверка надежности работает только для тарифа «Максимум» личного кабинета. <source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><mcheck> <auth extra="8" login="login" pass="pass" /> <phones> <phone>89161147992</phone> </phones></mcheck></source> Ответ: <source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><mcheck> <phones> <phone rate="90">89161147992</phone> </phones></mcheck></source> == Размещение страниц на своем сайте (iframe) == В некоторых случаях имеет смысл разметить те или иные страницы на своем сайте. Например, чтобы клиенты могли рассчитать стоимость доставки не переходя по внешней ссылке, а там же, на сайте, калькулятор можно разместить прямо на странице такого сайта посредством так называемого фрейма — '''iframe'''. [https://ya.ru/search/?text=iframe Фрейм] — контейнер внутри обычной страницы, который позволяет загружать сторонние страницы. Пример загрузки калькулятора: <source lang="html"><iframe id="frame" src="https://home.courierexe.ru/8/calculator"> Здесь должен отобразиться калькулятор</iframe></source> Для удобства пользователей вашего сайта можно указать язык интерфейса (который переключается непосредственно на сайте) параметром '''lang''': <source lang="html"><iframe id="frame" src="https://home.courierexe.ru/8/calculator?lang=2"> Здесь должен отобразиться калькулятор</iframe></source> <div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">'''Обратите внимание!'''# При использовании iFrame могут не работать некоторые функции, например, подписка на push-уведомления на странице трекинга или отслеживания.# Если язык не указать, то на страницах калькулятора и трекинга отображается свой переключатель языка. Если язык указан, то переключатель не отображается. Поддерживаемые языки и их коды::'''1''' — русский:'''2''' — английский:'''4''' — узбекский</div> == Оформление манифеста == '''Пример запроса на создание манифеста:'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><manifest> <auth extra="8" login="login" pass="pass" /> <store_from>1</store_from> <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>12345</code> <place>1</place> </address> <address> <code>67890</code> <place>2</place> </address> </addresses></manifest></source> '''manifest''' - Корневой контейнер. Обязательный элемент.*'''auth''' - Авторизация. Обязательный элемент.*'''store_from''' - код филиала отправителя. Обязательный элемент.*'''store_to''' - код филиала получателя. Обязательный элемент.*'''trn_code''' - код перевозчика. Обязательный элемент.*'''sentdate''' - дата отправки манифеста. Не обязательный элемент.*'''addresses''' - корневой элемент для списка заказов.*:'''address''' - корневой элемент для заказа.*::'''code''' - наш внутренний номер заказа. Обязательный элемент.*::'''place''' - номер места заказа. Обязательный элемент, если переданы места.*'''places''' - корневой элемент для списка мест.*::'''place''' - корневой элемент для места.*::'''number''' - номер места. Обязательный элемент.*::'''seal''' - номер пломбы. Необязательный элемент. '''Пример успешного ответа'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><manifest> <result>OK</result></manifest></source> '''Пример ответа с ошибкой'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><manifest> <result error="Текст ошибки">ERROR</result></manifest>
</source>