Изменения

Перейти к: навигация, поиск

API Documentation

43 753 байта добавлено, 23 апрель
Response Examples
“Delivery Service 2008” system MeaSoft has an option of integration by means of XML API under through HTTP POST protocol. The given API is designed for integrating customers (online shops and other companies ordering delivery) with delivery services working under the control of “Delivery Service 2008” system. If you are an aggregator transferring customer data, you will probably have to log in using different user accounts in case a delivery service has to keep separate accounts for reciprocal payments for each customer. If you are a “contractor”, the integration should be done in the opposite direction – orders will be transferred to you from a delivery service. For that purpose we have a platform for external integration but contractors can be added to it only on our side. Please, send us your quote, the description of your service and we will gladly consider them. When writing the given documentation we`ve been assuming that a person reading it has the required level of expertise in programming sufficient for the understanding of the contents of this documentation, has a knowledge of XML and development environment which he is integrating. If you are not qualified as a programmer you will have to hire a professional programmer for the implementation of your project.If you still have questions after reading the given documentation, feel free to ask them via e-mail [mailto:support@courierexe.ru support@courierexe.ru]. In your e-mail message you should introduce yourself, leave your contact information (your phone number, Skype login) and the name of the company that you want to integrate with.
== Complete integrations ==The API is designed for integrating customers (online shops and other companies ordering delivery) with courier services working under MeaSoft.
You can download integration modules If you are an '''aggregator''' who transfers customer data and a courier service keeps separate accounts for settlements with each client, you will probably have to integrate with popular CMSlog in using different user accounts.
If you are a '''service partner''' and orders will be transferred to you from a delivery service, you can take the orders using <code>clients=AGENTS</code> in the [[#Order Status Query Example|statusreq]] query. For that purpose we have a platform for external integration but service partners can be added only on our side. Please, send us your commercial purpose, description of your service and we will gladly consider them.  When writing the given documentation we assume that a person reading it has the level of expertise in coding sufficient for understanding the contents of this documentation, has a knowledge of XML and integration development environment. If you are not qualified as a developer you will have to hire a professional developer to implement your project. If you still have questions after reading the given documentation, feel free to ask them via e-mail [mailto:support@courierexe.ru support@courierexe.ru]. In your email message, please introduce yourself, leave your contact information (your phone number, Skype login) and the name of the company you want to integrate with.  == CMS Integrations == You can download the modules presented in the table to integrate with popular CMS. '''The given modules are shared for free without any guarantee on the part of the developer'''. The online store bears full responsibility for correct data transfer. They modules are not intended for complete automation of your interaction with the courier service. They help online shop developers build integration with courier services. However, we will appreciate if you inform us about your needs or discrepancies found in our modules – this allows us to consider your demands when developing new versions of our modules. {| class="wikitable" align="center" style="width: 80%; margin: auto; background-color: black#ffffff; borederborder: 1px solid #999999;" cellpadding="10" cellspacing="0"!style="width: 35%;"| Content Management System (CMS)!style="width: 15%;"|Module version !style="width: 15%;"|LinkDownload!style="width: 35%;"|NoteComment
|-
|[[FileФайл:bitrix.png|center|x44px]]|style="text-align: center;"|1.5.8 от 13.11.2017|style="text-align: center;"|[httphttps://courierexemarketplace.ru/download/api/1c-bitrix.zip Download Unicode]<br>[http:ru/solutions/courierexemeasoft.ru/download/apicourier/bitrix_ansi.zip Download ANSIInstall]|Supports version 14.5 and newer oneshigher.
|-
|[[FileФайл:prestashop.png|center|x44pxx60px]]|style="text-align: center;"|1.4.2 dated from September 6, 2017|style="text-align: center;"|[httphttps://courierexe.ru/download/api/prestashop.zip Download]|Supports version 1.5.2.0 and newer ones higher (including 2.x!)
|-
|[[File:opencart.png|center|x44px]] [[Файл:ocstoreOpencartOCStore.png|center|x30pxx60px]]|style="text-align: center;"|[https://courierexe.ru/download/api/opencart.zip For version 1.75.5.1]<br>[https://courierexe.ru/download/api/measoft_oc2.ocmod.zip For version 2 от 06.090]<br>[https://courierexe.2017|style="text-align: center;"|ru/download/api/measoft_oc2.3.ocmod.zip For version 2.3]<br>[httphttps://courierexe.ru/download/api/opencartmeasoft_ос3.ocmod.zip DownloadFor version 3.0]| Supports versions from version 1.5.5.1 till 2and higher.2<br>Select a module for your OpenCart version.<br>[https://opencartforum.com/files/file/2906-avtomatizaciya-otpravki-i-otslezhivanie-dostavok-courierexe-dlya-opencart-15x/ ThirdAlternative third-party alternative module]
|-
|[[FileФайл:webasyst-shopscript.png|center|x44px]]|style="text-align: center;"|1[http://www.3webasyst.2 от 15.08.2017|style="text-align: center;"|ru/store/plugin/shop/measoftcourier/ Install module]<br>[httphttps://www.webasyst.ru/store/plugin/shopshipping/measoftcourier/ Installplugin]|The module is designed for sending orders to delivery service, while the plugin calculates delivery cost on creating an order.
|-
<!--|[[FileФайл:insalesadvantshop.png|center|x44px]]|style="text-align: center;"|1[https://promo-z.2ru/ PROMO company site]|The PROMO company has developed the module.1 от 06Contact PROMO to set up integration between MeaSoft and ADVANTSHOP.09|- -->|[[Файл:insales.2017png|center|x80px]]|style="text-align: center;"|Configure using MeaSoft [http://www.insales.ru/collection/all/product/kurierskaya-sluzhba-2008 Install[Личный кабинет клиента|client account]]|[[Integration_with_other_systemsИнтеграция с другими системами#InsalesInSales|is set upGuide]] in user area in the system
|-
|[[FileФайл:Leadvertex.png|center|x44px]]|style="text-align: center;"|1.0 dated from November 15, 2016
|style="text-align: center;"|[[Файл:Leadvertex-howto.png|center|x44px]]
|[http://blog.leadvertex.ru/news/2110-integraciya-s-kurerkami-na-platforme-measoft/ is set upConfigure] in user area in the system using [https://Leadvertex.ru Leadvertex]account
|-
|[[FileФайл:Retailcrm.png|center|x44pxx30px]]|style="text-align: center;"|1.0 dated from January 1, 2018
|style="text-align: center;"|[https://www.retailcrm.ru/ RetailCRM]
|[[Integration_with_other_systemshttp://wiki.courierexe.ru/index.php?title=Интеграция_с_другими_системами#RetailCRMConfigure] using MeaSoft [[Личный кабинет клиента|client account]]|-|[[Файл:1C.jpg|center|x44px]]|style="text-align: center;"|-|[https://infostart.ru/public/692790/ Alternative third-party module]|-|[[Файл:Joomla2.jpg|center|x60px]]|style="text-align: center;"|[https://courierexe.ru/download/api/com_measoft.zip Download]|Integration with Virtuemart is set upavailable only.|-|[[Файл:Amocrm.png|center|x44px]]|style="text-align: center;"|[https://www.amocrm.ru/extensions/courier2008 Download]||-|rowspan="2"|[[Файл:MoySclad.jpg|center|x30px]]|style="height:50px; text-align: center;"|[https://home.courierexe.ru/moysklad/step1 Integrate with MeaSoft]||-|style="height:50px; text-align: center;"|[https://itmdev.ru/ms/shipping/ Alternative third-party module]|Alternative third-party module|-|[[Файл:wordpress.jpg|center|x80px]]|style="text-align: center;"|[https://courierexe.ru/download/api/wordpress.zip Download]||-|[[Файл:Cscart.png|center|x60px]]|style="text-align: center;"|[https://marketplace.cs-cart.com/measoft-en.html Download] in user area in the |Supports versions 4.10 and higher.|-|style="height:100px; text-align: center;"|'''Webhook'''|style="text-align: center;"|See [[Webhook|here]]|Transfer of status and order info to your system
|-
|}
The given modules are shared for free without any guarantee on the part of the developer. Their availability should be considered not as a means of complete automation of your interaction with the delivery service but more as an aid for online shop developers in building integration with delivery services. However, we will appreciate if you inform us about your needs and/or discrepancies found in our modules – this allows us to consider your demands when developing new versions of our modules. == Test Account ==
== Test For debugging, you can access your test client account ==at https://home.courierexe.ru/8 login login password pass
For debugging you can access your test personal account following In the link: [https://home.courierexe.ru/8 https://home.courierexe.ru/8]'''Integration''' > '''Debug''', your login will be: test, your password will be: testm. There you will be able to can execute API requests for debugging purposes and see all your sent requests with the “eyes” of our system by using “Automation” tab. You will also find a query execution interface there. You will see all created orders on “Tracking” the '''Placed Orders''' tab.
In order to To simplify the process of integration, you can download [httphttps://courierexe.ru/download/api/php_sample.zip the example of addressing the service using PHP].
== Work account Account for the connection to your customer`s platform Integration ==
It is necessary to have 3 parameters in order to connect to your customer`s platform: 1. '''Parameter extra''' (this is a digital code, company`s unique identifier. Request this parameter from a company that you are integrating with.) You can look this code up in “Delivery Service 2008” software interface by using its main menu '''"Reference – Additional Options"'''. Digital value will be given access your client account at the second hyperlink (it is marked with an “asterisk” in the screenshot below):
[[File:extra1.png|750px]]<source lang=xml><auth extra="8" login="login" pass="pass"></auth></source>
2. Description: * '''Loginextra''' is — extra code, a user account parameter for customer`s member area and API that is entered in user card on unique identifier of the courier service. * '''"Miscellaneous"login''' in — user name for the client account and API.* '''"User Name"pass''' field. You will probably have to create a new user card (shown in — password for the screenshot below) in “Delivery Service 2008” softwareclient account and API.
3. '''Password''' is a user account parameter for customer`s member area and API that is entered in user card on '''"Miscellaneous"''' in '''" Password"''' field (shown in Request the credentials from the screenshot below). [[File:33_clientcourier service you are integrating with.png|500px]]
== General terms ==The courier service gives you a temporary password. For security purposes, change it using your client account.
There is a web service on the side of the delivery service located at the following URL: https://home.courierexe.ru/api/. Test authorization data are: user login: test, user password: testm, “extra” parameter value: 8. Please, note that the test platform is common for everyone. You shouldn`t pass on orders containing confidential data through it as they might be seen by other users of the service. Ask the company that you are integrating with for user “login”, “password” and “extra” parameter value in order to use the integration in the work mode. You can send test queries to our service in the member area using “Automation” tab. You can also check the history of all queries sent by you in the member area. == Courier Service Access ==
To access API with courier service credentials, use the following connection string: <source lang=xml><auth extra="8" login="login" pass="pass" clientcode="123"></auth></source> Description: * '''extra''' — extra code, a unique identifier of the courier service. * '''login''' — couerier service user name.* '''pass''' — couerier service password.* '''clientcode''' — internal client code (see the office application, the '''Clients''' tab, the "Internal code" column). To see the extra code, login and password, in the office application go to the '''Additional Features''' reference. For more information, see [[Courier_Service_Account#Registering Courier Service Account|Registering Courier Service Account]]. == General Terms == Courier service provides access to a web service at https://home.courierexe.ru/api/. "/" (slash) on the end of the link is required. Use the following credentials for test access: login: login password: pass extra client code: 8 Note that the test platform is open for everyone. Do not submit orders containing confidential information as any authorized user can see them. To set up a working integration, request [[#Account for Integration|credentials]] from the courier service you are integrating with.  In the client account, use the '''Integration''' menu item for debugging purposes and see sent requests.  A customer is sending queries client sends requests to the service by using HTTP POST, the service is processing processes these queries requests and sending sends the execution result back. All queries requests and responses are transferred submitted in the XML format. The encoding used is UTF-8. Dot sign is used as a decimal symbol. Dates are presented in formatted as YYYY-MM-DD format , and time is presented in formatted as HH:MM format. Due to [https://ruen.wikipedia.org/wiki/XML#.D0.A0.D0.B5.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC.D1.8B_.D0.BD.D0.B5.D0.BE.D0.B4.D0.BD.D0.BE.D0.B7.D0.BD.D0.B0.D1.87.D0.BD.D0.BE.D1.81.D1.82.D0.B8_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.82.D0.BA.D0.B8 the peculiarities of Escaping some XML extensible markup languagefeatures], some symbols the following characters in the text should be replaced: * <code>& from amp;lt;</code> represents "&lt;"* <code>&amp;ampgt;</code> represents "&gt; "* < to code>&amp;ltamp; </code> from represents "&amp;gt; " to * <code>&amp;quot;</code> represents ". Our API uses only HTTPS because it is a secure way to send sensible data. However, in some systems it may lead to a failure. If your system cannot process encryption correctly, we recommend that you deploy a local HTTP server and set up [https://courierexe.ru/download/api/proxy.zip a PHP proxy]. <spoiler text="How to use">To test the feature, run it on the server using command php -S <IP>:8080 proxy.phpwhere<br><IP> — your server IP address.<br>8080 — request receiving port.<br><br>To exchange data with our API use <IP>:8080. </spoiler>The features described below are available according to your [[Courier Service Account#Personal Account Functions|personal account plan]].
== Fair Usage Policy ==
* 3000 queries from a single account per 1 hour.
* 200 MB text data downloaded per 3 hours.
* Number of non-existing order status queries must not exceed the number of queries of existing order statuses.
If a limit is exceeded, the IP address is blocked for up to 3 hours.
Actions that result in blocking your IP address or account:
* Attacking our API with status queries with numbers of all you orders. Mind that the <code>tracking</code> queries are not intended for that, see its information[[API documentation#Order tracking by number|description]]. These queries are especially bad at the top of the hour.
* Sending queries like "Show statuses of all orders for the last 3 months" every 5 minutes.
* Sending a large amount of order numbers trying to guess which one is valid.
Correct actions:
* Queries are created for existing orders only.
* To check order statuses, use <code>statusreq</code> queries with parameter <code>changes=ONLY_LAST</code>.
* When requesting for changed statuses, you must confirm that the statuses were sucessfully received by query <code>commitlaststatus</code>.
== Ordering Creating Order ===== Example of ordering New Order ===
<source lang=xml>
<phone>123-45-67</phone>
<town>Saint-Petersburg</town>
<address>Room 35, 38 Petrovka Str., 38, room 35</address> <date>20142021-03-22</date>
<time_min>09:00</time_min>
<time_max>14:00</time_max>
<receiver>
<company>Ministry of Internal Affairs</company>
<person>Cheap &amp; DaleTom Wale</person>
<phone>123-45-67</phone>
<zipcode>125480</zipcode>
<townregioncode="78" country="RU">Saint-Petersburg</town> <address>Room 35, 38 Petrovka Str., 38, room 35</address> <pvz>124</pvz> <inn>1112223335</inn> <date>20142021-03-22</date>
<time_min>09:00</time_min>
<time_max>14:00</time_max>
<deliveryPIN>1234</deliveryPIN>
<coords lat="55.680327" lon="37.604456"></coords>
</receiver>
<return>NO</return>
<return_service>1</return_service>
<weight>5.1</weight>
<return_weight>5.1</return_weight>
<quantity>2</quantity>
<paytype>CASH</paytype>
<service>2</service>
<return_service>1</return_service>
<type>3</type>
<return_type>3</return_type>
<courier>22</courier>
<price>387.5</price>
<deliverypriceVATrate="20">150</deliveryprice> <discountinshprice>387.5</inshprice> <receiverpays>0NO</discountreceiverpays> <inshpricediscount>387.5120</inshpricediscount> <enclosure>Children`s Kids toys</enclosure> <instruction>Check in the presence of the buyer, sign acceptance actcertificate</instruction> <pvz>124</pvz> <department>DepartmentAccounting</department>
<pickup>NO</pickup>
<acceptpartially>NO</acceptpartially>
<costcode>cc12345</costcode>
<items>
<item extcode="abc123" quantity="1" mass="0.2" retprice="37.5" VATrate="0" barcode="2345625213125" textArticle="1" article="1" volume="3" origincountry="AUT" GTD="321546654" excise="15.20" suppcompany="LLC &quot;Miller and Partners&quot;" suppphone="79161234567" suppINN="1112223334" governmentCode="11223311">BallRace car</item> <item extcode="abc124" quantity="2" mass="2" retprice="100" inshprice="100" VATrate="10" barcode="4645625213138" article="2" length="10" width="20" height="30" origincountry="004">Hula hoopPrincess castle</item> <item extcode="abc125" quantity="3" mass="0.3" retprice="50" inshprice="50" barcode="2345625213126" itemcode="44123" article="3" type="1">Yellow rattleClay mass</item>
</items>
<packages>
<package strbarcode="ORD0000001" mass="1" message="" quantity="3"></package>
<package strbarcode="ORD0000002" mass="2.5" message="" length="10" width="20" height="30"></package>
</packages>
<deliveryset above_price="100" return_price="1000" VATrate="10">
<below below_sum="500" price="500" />
<below below_sum="2000" price="300" />
</deliveryset>
<advprices>
<advprice>
<code>1</code>
<value>123</value>
</advprice>
<advprice>
<code>2</code>
<value>10.5</value>
</advprice>
<advprice>
<code>3</code>
<value>true</value>
</advprice>
</advprices>
<overall_volume>81</overall_volume>
<userid>user123</userid>
<groupid>customer</groupid>
</order>
</neworder>
</source>
=== Order elements description Elements ==='''Required Elements'''
For MeaSoft, only three fields are required:* either receiver->company or receiver->person*'''neworder''' is a root container, the mandatory element. receiver->address :* '''''newfolder''''' is an attribute of a new order – YES/NO. If there is YES, then a new order will be created for the given correspondence in the delivery service system. It is an optional elementreceiver->phone.
*'''order''' is a container used for Courier service company can add required fields in the description of one order, the mandatory elementsystem settings. There may be a number of '''order''' containers in one '''neworder''' container for If you do not specify the creation of several orders by using one queryrequired field values, an error message returns.
<spoiler text="Example of order with minimum data"><source lang="xml"><?xml version="1.0" encoding="UTF-8"?><neworder> <auth extra="8" login="login" pass="pass" /> <order> <receiver> <company>Company</company> <phone>(495)123-45-67</phone> <address>Petrovka, 38</address> </receiver> </order></neworder></source></spoiler>'''Fields Description'''*'''neworder''' — root container, required. :* '''''ordernonewfolder''''' is an — attribute of a new order number. It should be entered here if it is assigned by the customer. In case it is not assigned, this field can be left empty; the system will generate its own number and send it back in the responsepossible values: '''YES''', '''NO'''. The system checks the presence of orders with the entered number within the current calendar year and in case they already exist in the systemIf '''YES''', the a new order won`t be is created and error 17 "Such number exists" will be send back for the specified shipment in the responsecourier service system. It is an optional element.
*'''barcodeorder''' is an order barcode. In case the customer uses barcodes — container used for his dispatches and the barcode is different from the description of one order number, the barcode is entered into this fieldrequired. In case there are A single '''neworder''' container can have a number of '''order''' containers to create several pieces packages present that are individually marked, masks in the form of underscore characters indicating barcode items, varying for different pieces packages within orders by using one order can be usedquery. <br />:*'''''orderno'''For example'': There are 20 product units in order nonumber. 123 packed in 3 pieces packagesSpecify it if it is assigned by the client. The customer has to prepare 3 barcodes for each piece: CLNT0012301, CLNT0012302, CLNT0012303, where CLNT – In case it is a customer`s prefixnot assigned, 00123 is an order this field can be left empty. The system will generate its own number, 01-03 is the number for each piece package and send it back in the orderresponse. CLNT00123__ should be entered into The system checks whether the “barcode” field (specified number has been used within the system will understand that there may be any last 2 symbols current calendar year. If it already exists in the field and will display barcodes for system, the same order)is not created, error 17 "Such number exists" returns.
*'''barcode''' — order barcode. In case the customer uses barcodes for his dispatches and the barcode is different from the order number, the barcode is entered into this field. In case there are several packages and they are individually marked, underscore character can be used as a mask to indicate barcoded item number varying for different packages within one order. ''For example'': There are 20 items in order No. 123 packed in 3 packages. The client generates 3 barcodes for each package: CLNT0012301, CLNT0012302, CLNT0012303, where CLNT is a client prefix, 00123 is an order number, 01-03 is the number for each package in the order. In this case CLNT00123__ should be entered into the '''barcode''' field. Thus, MeaSoft knows the last 2 characters can be any values and will display barcodes for the same order. If it is not you who will print packing slips with the specified barcode, the barcode must not exceed 25 characters, otherwise it cannot be fully seen on the standard printing forms. *'''sender''' presents the information about order sender. It is an optional container.
<source lang="xml">
<sender>
<company>Name of the sender company</company>
<person>Sender company contact person</person>
<phone>Sender`s phone number, E-mailemail</phone> <town>Sender`s location in “Moscow city” the "[name] city" format</town> <address>Sender`s address</address> <date>Pick-up Pickup date in the "YYYY-MM-DD" format</date> <time_min>Desired pick-up pickup time in the "HH:MM" format</time_min> <time_max>Desired pick-up pickup time in the "HH:MM" format</time_max>
</sender>
</source>
*'''receiver''' is the information about the receiverrecipient. It is a mandatory containerRequired.
<source lang="xml">
<receiver>
<company>Name of the receiving recipient company</company> <person>Receiving Recipient company contact person</person> <phone>Receiver`s Recipient phone number, E-mailemail</phone> <townregioncode="Region code">Receiver`s Recipient location in “Moscow city” the "[name] city" format</town> <address>Receiver`s Recipient address</address> <date>Delivery date in the "YYYY-MM-DD" format</date> <time_min>Desired delivery time in the "HH:MM" format</time_min> <time_max>Desired delivery time in the "HH:MM" format</time_max>
</receiver>
</source>
*'''company''' is a receiving recipient company. *'''person''' is a contact person's name. ''At least one field should be filled in – either company or person!.''*'''phone''' is a phone number. Several You can specify several phone numbers and emails can be entered into this field.
*'''town''' is the name of the town.
*'''pvz''' is the pickup point code from the '''Branches''' reference. Besides, you can specify the pickup point in the <code>address</code> parameter by one of the following:
** Pickup point code in our system.
** Pickup point code in service partner's system.
For the '''town''' tag, you can speify the value from the '''Regions''' reference in the '''regioncode''' attribute. The town is searched for in the specified region. In the '''country''' attribute, you can specify the recipient country according to the [https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes ISO 3166-1] standard. For example: "AT", "AUT" or "040" for Austria. Besides, the '''zipcode''' attribute value is considered when searching for a town. You can use one of the following ways to fill in the '''Town''' field of the '''sender''' and '''receiver''' containers can be filled in by using: :* locality dialing code [[#Dialing codes guide|dialing codes guidelocation code]]
:* 13-digit code from All-Russian Classifier of Addresses (Address Classifier used in Russia)
:* 36-digit code from the address system <rspoiler text="Federal Information Address System">Federal Information Address System (Address system used in Russia)</rspoiler> (AOID)
:* the name of the town (not recommended!)
* '''coords''' — recipient coordinates. If not specified, they are determined automatically.
*'''paytype''' is a type of order payment. Possible values:
:* CASH — cash on delivery (by default).
:* CARD — by card on delivery.
:* NO — no payment expected, the order is already paid. API adds an advance payment item with negative price value to the list of items, so that the order total is 0. The order receipt lists all items, their prices and the advance payment amount accourding to the Federal Law.
:* OTHER means other types of payment. It is designed for making payments directly to the delivery service by using other types of payment: Webmoney, Yandex Money, online payment by card, other payment systems.
:* OPTION — recepient selects the payment type. This type of payment is not transferred in the order. It is set automatically client settings.
*'''paytypezipcode''' — postal code. *'''weight''' — total order weight in kilograms.*'''return_weight''' — total order return weight in kilograms.*'''quantity''' — number of packages. *'''service''' — delivery mode (service type). It is transferred as a code from the '''Urgency Kinds''' reference. *'''type of payment used for checking out ''' – shipment type. It is transferred as a code from the order by the receiver'''Shipment Types''' reference.*'''return_type''' - return shipment type. It can take on is transferred as a code from the following values: '''Shipment Types''' reference.:* CASH '''price''' — order amount. If the '''items''' container is present, this parameter is paying with cash on delivery (by default) ignored and calculated automatically. :* CARD '''deliveryprice'''— delivery fee. If the '''items''' container is paying with a credit card on deliverypresent, the "Delivery" item is added to it.:* NO which means that there won`t be any payment'''VATrate''' — value-added tax rate, integer. “Price” field value will be ignored*'''return''' — indicates whether return trip is required. *'''return_service''' — return mode (This type of payment service). It is transferred in case as a code from the '''Urgency Kinds''' reference. *'''discount''' — order discount amount. The discount amount distributes between the order has already been paid for and doesn`t require item prices, the cash collection; API will add goods from on delivery amount decreases by the the discount amount. The "Discount" item is not created. Note that using this tag might lead to discrepancies in order with a null price total due to rounding errors. Avoid using this tag, specify the systemitem prices already decreased by the discount amount.*'''enclosure''' — task description.*'''inshprice''' — declared value. If it not specified explicitly, the value is necessary to transfer calcuated automatically as order items prices total cost. *'''instruction''' — instruction text for courier.*'''courier''' — planned courier. It is transferred as a MeaSoft courier code.*'''receiverpays''' — indicates whether recipient pays the delivery fee. If '''YES''', the recipient pays, if '''NO''', the sender pays.*'''department''' — the order creator's department.*'''pickup''' — indicates whether it can is a pickup order. If '''YES''', the entire order is considered to be done by using <inshprice> fieldthe assignment for pickup, not for delivery. It is used for calling a courier to the sender's place to pick up shipments. '''Note'''. If warehouse goods are added to the order, indicating their type must be '''[7]Goods pickup'''. Any other type is automatically changed to type 7 on submitting the order .* '''acceptpartially''' — indicates whether the recepient can partially accept order items.*'''items` declared ''' — a container describing order items. It is an optional container. It has the following attributes: :* '''''item''''' — item name.:* '''''quantity''''' — number of articles. :* '''''mass''''' — item weight in kg.:* '''''volume''''' — dimensional weight of an item in kilograms. If specified, the value substitutes the '''mass''' value).:* '''''length''''' — item length in cm.:* '''''width''''' — item width in cm.:* OTHER means other types '''''retprice''''' — price of payment (an article. Rounds to the hundredths. It must include all markups and discounts. It is designated cannot be negative for making payments directly item types 1, 2, 3.:*'''''inshprice''''' — declareed value of an article. Rounds to the delivery service by using other types of payment hundredths. If not specified, considered equal to '''retprice'''.:* '''''VATrate''''' — VAT rate which is specified asinteger percentage. If a value is not indicated, then “18” value is entered. : “Webmoney”* '''''barcode''''' — item barcode.:* '''''article''''' — supplier SKU ID. ''Attention!'' Supplier SKU ID is required only for the items stored at the courier service warehouse and if cross-docking is required for them. In this case the system tries to associate the item with a corresponding item in [[API#Nomenclature list|nomenclature list]]. If the item is not found in the nomenclature list, “Yandex Money”the error message is displayed. If several items are found with the same supplier SKU ID, online payment one of the IDs is selected randomly. It might result in incorrect cross-docking.:*'''''itemcode''''' — internal SKU ID/ You can use instead of supplier SKU ID. ''Attention!'' SKU ID is required only for the items stored at the courier service warehouse and if cross-docking is required for them. The system uses SKU ID to associate the item with a credit card other payment systemscorresponding item in [[API#Nomenclature list|nomenclature list]]. If the item is not found, etcthe error message is displayed.) :* OPTION means choosing '''''type ''''' — item type. Possible values:::1 — Goods. The default value.::2 — Delivery. The item is added automatically if '''order''' > '''deliveryprice''' is specified.::3 — Service::4 — Advance payment. The amount is specified. '''quantity''' is ignored, always "1". The amount in the order is displayed with the negative sign irrespective of the sign in the request. The item is added automatically if '''order''' > '''paytype=NO''' is specified.::6 - Credit payment by . The amount is specified. '''quantity''' is ignored, always "1". The amount in the order is displayed with the negative sign irrespective of the sign in the request.::7 - Pickup. Use it if you have to pick up the items from the receiverrecipient. This type The amount in the order is displayed with the negative sign irrespective of payment can’t be transferred with the sign in the request.:* '''''extcode''''' — external line code. It is used to identify the orderlines when obtaining statuses. It is automatically set depending on customer`s data setupan optional field.:* '''''origincountry''''' - origin country code according to [https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes ISO 3166-1].:* '''''GTD''''' — GTD number.:* '''''excise''''' — excise tax amount.:* '''''suppcompany''''' — supplier name if it is different from the sender.:* '''''suppphone''''' — supplier phone number if it is different from the sender.:* '''''suppINN''''' — supplier taxpayer ID if supplier is not the sender.:* '''''governmentCode''''' — [https://chestnyznak.ru/en/ Chestnyi ZNAK code]. It is used to digitally mark goods. Specify all characters of the QR code excepting ASCII 29 character. If the code is unknown, specify "?". The courier will scan it when giving the item to recepient. Some processes may require using "!". In this case, the courier scans the item serial number, but it is not considered to be the digital mark code. If the field is filled in, '''quantity''' must be "1", otherwise an error returns.
*'''zipcodepackages''' — a container describing order packages. It is a zip codean optional container. It has the following attributes::*'''weight''' is a total weight of the order in kilograms. *package'''quantity''' is the number of pieces packages— package name. :*'''service''' - delivery mode (service type) is transferred in the form of a code from “Delivery priority types” guide. *'''type''' – correspondence (dispatch) type is transferred in the form of a — internal line code from “Types of correspondence” guide. :*'''price''strbarcode' is an order amount. In case “items” container is present, the value of the given parameter will be ignored and calculated automatically'''' — package barcode. :*'''deliveryprice''mass''''' is the cost of delivery. In case “items” container is present, “Delivery” enclosure will be added to it— package weight in kg. :*'''discount''message''''' is a discount for the order amount. As a result the order amount will be decreased by the discount amount— message line. :*'''return''' is an attribute indicating the necessity of return. *'length''return_service''' is a return mode (type of service) which is transferred — package length in the form of a code from “Delivery priority types” guidecm. :*'''enclosure''width' is an enclosure.*'''inshprice''' is a declared value— package width in cm. :*'''instruction''height' is an instruction – a note. *'''pvz''' is an order points of issue code. You can find out the codes [[#The list of order points of issue|by the API requset]] or — package height in user`s member area on “pvz” tabcm. :*'''department''' is the name of the department which the order is raised in. *quantity'''pickup''' is YES/NO attribute — number of pickup arrangementpackages with the specified dimensions and mass. If there is YES, then Total number of packages in the entire order will cannot be considered to be the assignment for cargo pickup but not for cargo delivery! It is applied for calling a courier to the receiver for the pickup of other packaging unitsmore than 1000.
*'''itemsdeliveryset''' is a container used for the description of goods enclosed. It is an optional container— custom delivery rate setup. It has the following attributes: :* '''''itemabove_price''''' is — delivery fee if all order items are accepted by the name of a productrecipient. :* '''''quantity''''' It is the "amount of product units. :* '''''mass''''' is from" for the weight of a product unit limit set in kilograms. :* '''''retprice''''' is the price of a product unit. :* '''below_sum''VATrate''''' is a VAT rate which is specified as integer percentage. If a value is not indicated, then “18” value is entered. :* '''''barcode''''' is a product unit barcodetag. [[File:Article.png|thumb|100px|right]]:* '''''article'''return_price'' is product unit article number. ''Attention!'' Product unit article is displayed only in case when a product unit is stored at the delivery service in safe custody and order batching is required. In this case the system will try to assign a product unit to a corresponding item in [[API#Nomenclature list|nomenclature list]]. If the product unit is not found in the nomenclature list, fee if the appropriate error message will be displayed by the system. If there are several product units found within one article number, the system will randomly select one of them what can result in incorrect order batching! If a product unit is NOT in safe custody – you DON`T have to specify its article number. Product item will be entered into the system by a plain textreturned. :* '''''extcodeVATrate''''' is an external code of a string. It is used for the identification of strings of orders when obtaining statuses. It is an optional field. IT IS NOT SUPPORTED YET— value-added tax rate, integer.
In case it is necessary to specify them besides product units, additional services (for example, DELIVERY, order batching, lifting * '''below''' — amount limit of the order up to the floor, etcsettings.:* '''''below_sum''''' — purchase amount limit.) – they should be specified in :* '''''price''''' — purchase amount within the same “items” container as product units but without article numberslimit.
* '''advprices''' — a container describing value-added services. It is an optional container. It has the following attributes: <span style="color: red;>To use it in the API, in the [[Courier Service Account#Setting Up Client Account|client account settings]], enable the '''Value-added services''' field for new order and pickup request.</span>:* '''''code''''' — service code.:* '''''value''''' — service value. If service type is Boolean, set the value to '''True'''. If you want to apply value-added services (for example, delivery, cross-docking, lifting upstairs, etc.), specify them in the same '''items''' container as items without a SKU ID. *'''costcode''' — employee cost code. *'''overall_volume''' — total volume, m3. An optional virtual field. It is used to calculate the package dimensions. The calculation works only if every package contains zero values of length, heigth, or width. *'''userid''' — user ID, either string or integer type. Virual field, optional. The field is used in the custom delivery rate settings. It defines the rule priority. You can use the field for CMS and CRM to set delivery fee for each customer individually. *'''groupid''' — user group ID, either string or integer type. Virual field, optional. The field is used in the custom delivery rate settings. It defines the rule priority. You can use the field for CMS and CRM to set delivery fee for each customer group individually. <div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">When submitting orders with scheduled delivery or pickup date earlier than the nearest possible date, the delivery or pickup date changes automatically to the [[Courier Service Account#Calculating the Nearest Possible Delivery Date|nearest possible date]].</div> === Response Examples of responses === If a request is executed successfully and an order is created, the order amount in the <code>orderprice</code> attribute and the 0 error returns. Otherwise, an error number and its description in the <code>errormsg</code> attribute returns. The <code>orderno</code> attribute contains order number, <code>barcode</code> — order barcode. '''The example of a successful responseSuccess'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<neworder>
<createorder orderno="AB23541" barcode="67567#114" error="0" errormsg="successSuccess" orderprice="5000"></createorder> <createorder orderno="55_6542AB23542" barcode="67567#115" error="0" errormsg="successSuccess" orderprice="6000"></createorder> <createorder orderno="AB23542AB23543" barcode="67567#116" error="0" errormsg="successSuccess" orderprice="0"></createorder>
</neworder>
</source>
'''The example of a response with an errorError'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<neworder>
<createorder orderno="AB23541" barcode="67567#114" error="1767" errormsg="Such number Order barcode already existsin the database."></createorder> <createorder orderno="AB23542" barcode="67567#115" error="1317" errormsg="empty companyOrder number already exists in the database."></createorder> <createorder orderno="AB23543" barcode="67567#116" error="1467" errormsg="empty personOrder barcode already exists in the database."></createorder>
</neworder>
</source>
'''The example of a response in case of the authorization errorAuthorization Error'''
<source lang="xml">
</source>
'''The example of a response in case of a syntax error'''Syntax Error'''
<source lang="xml">
</source>
=== Error codes in case of ordering =Order Status == 0 – No errors.  1 - Authorization error. (<auth login="" pass=""></auth> tags are missing, incorrect login or password).  2 - Empty response is sent (<neworder></neworder> container is missing in a XML document).  3 - Order amount is set incorrectly.  4 - Order weight is set incorrectly.
5 - Receiver`s town is not found.  6 - Sender`s town is not found.  7 - Receiver`s address is not filled in.  8 - Receiver`s phone number is not filled in.  9 - Receiver`s contact name is not filled in.  10 - Receiver`s company name is not filled in.  11 - The amount of declared value is incorrect.  12 - Article number is not found.  13 - Sender`s company name is not filled in.  14 - Sender`s contact name is not filled in.  15 - Sender`s phone number is not filled in.  16 - Sender`s address is not filled in.  17 - Order with this number already exists.  == Order status query ==  === The example of order status query Request Example ===
<source lang="xml">
<client>CLIENT</client>
<orderno>1234</orderno>
<orderno2>5678</orderno2>
<ordercode>34234</ordercode>
<givencode>234534</givencode>
<datefrom>20162021-0706-21</datefrom> <dateto>20162021-0706-21</dateto> <target>Car-making factoryCompany</target>
<done>ONLY_NOT_DONE</done>
<changes>ONLY_LAST</changes>
<conditions>
<namecontains>1234</namecontains>
<namestarts>1234</namestarts>
</conditions>
</statusreq>
</source>
=== The description of status query fields Fields Description === '''statusreq''' is a root container. It is a mandatory elementRequired. *'''auth''' is  — authorization. It is a mandatory elementRequired. *'''client'''  — indicates whether it is an attribute of a customer client or an agenta delivery service partner. It is an optional element. Possible values::* CLIENT is an attribute of a customer, CLIENT — the default value .:* AGENT is an attribute of an agentAGENT — delivery service partner. In response the Response contains information on the orders passed on to the agent tendered for their delivery is returned .*'''orderno'''  — order number. It is an optional element.* '''ordercode''' — internal order numbercode. It is an optional element. *'''orderno2''' is an  — urgent order number from the list of urgent orders. It is an optional element. *'''datefrom''' is a  — order creation date “from”"from". It is a mandatory an optional element. *'''dateto''' is a  — order creation date “to”'to". It is a mandatory an optional element. *'''target''' is  — a find stringsearch text. It allows indicating the text that You can specify a part of recipient company name or receiver`s recipient address contains.*'''done''' can have the following  — possible values: :* ONLY_NOT_DONE - for ONLY_DONE — delivered only. Success stauses like '''Delivered''', '''Partially delivered'''.:* ONLY_NOT_DONE — undelivered only . Statuses like '''Not delivered''', '''Lost'''.:* ONLY_DONE - for delivered ONLY_NEW — new only .:* ONLY_NEW - ONLY_DELIVERY — orders in process only. These are orders in any status except for new only final statuses '''Delivered''', '''Not delivered''', '''Canceled''' and the like.:* ''Empty'' -  — for all correspondence shipments.*'''changes'''  — can have take only one ONLY_LAST value - ONLY_LAST. If this parameter is setspecified, all other parameters, except quickstatus, will be are ignored. The description of this mode is given here: For more information, see [[#Newly changed statuses transferGet Latest Changed Statuses|Newly changed statuses transferGet Latest Changed Statuses]] .* '''conditions''' — specify search conditions. The nested elements are joined by the logical AND operator.:* '''namecontains''' — search order numbers (external codes) that contain the specified text.:* '''namestarts''' — search order numbers (external codes) that start with the specified text.
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">
# You can request statuses of orders created no earlier than 2 months before the '''Please, note!to'''# Period of status query date ('''<code>datefrom''' </code> and '''<code>dateto''' </code> containers) is limited to two months &mdash; two months to the date '''"to"'''. # In case both dates are not specified &mdash; '''If no date is provided, <code>dateto''' is accepted equal to </code> equals the current date. # In case '''Omitting <code>dateto''' date is not specified &mdash; it is accepted equal </code> defaults to '''<code>datefrom''' </code> plus two months. # In case '''Omitting <code>datefrom''' date is not specified &mdash; it is accepted equal </code> defaults to <code>dateto</code> minus two months.# You can search using '''datetoconditions''' minus two monthsonly by order numbers (external codes). 4 characters is the minimum search length.
</div>
<br />
=== Response Examples of responses ===
'''The example of a successful responseSuccess'''
<source lang="xml">
<sender>
<company>Ministry of Internal Affairs</company>
<person>I. I. IvanovSam Goe</person>
<phone>123-45-67</phone>
<contacts>
<phone>+74951234567</phone>
</contacts>
<town code="23432">Saint-Petersburgcity</town> <address>Room 35, 38 Petrovka Str., 38, Room 35</address> <date>20142021-03-22</date>
<time_min>09:00</time_min>
<time_max>14:00</time_max>
<receiver>
<company>Ministry of Internal Affairs</company>
<person>I. I. IvanovTom Well</person> <phone>123-45-67 - IvanTom, (916)234.45.21 PyotrSam, mvdmia@mailgmail.rucom</phone>
<contacts>
<phone>+74951234567</phone>
<phone>+79162344521</phone>
<email>mvdmia@mailgmail.rucom</email>
</contacts>
<inn>1112223335</inn>
<zipcode>125480</zipcode>
<town code="23432153361" regioncode="78" regionname="Saint-Petersburg city">Saint-Petersburgcity</town> <address>Room 35, 38 Petrovka Str., 38, Room 35</address> <pvz> <code>126</code> <clientcode>QWERTY</clientcode> </pvz> <date>20142021-03-22</date>
<time_min>09:00</time_min>
<time_max>14:00</time_max>
<coords lat="55.680327" lon="37.604456"></coords>
<deliveryPIN>1234</deliveryPIN>
</receiver>
<pickup>NO</pickup>
<weight>5.1</weight>
<return_weight>5.1</return_weight>
<quantity>2</quantity>
<paytypecode="1">CASH</paytype>
<service>2</service>
<return_service>2</service>
<type>3</type>
<return_type>3</return_type>
<waittime>12</waittime>
<price>387.5</price>
<print_check>YES</print_check>
<inshprice>387.5</inshprice>
<enclosure>Children`s Kids toys</enclosure> <instruction>Check in the buyer's presence of the buyer, sign acceptance actcertificate</instruction> <currcoords lat="55.680327" lon="37.604456" accuracy="50" RequestDateTime="20142021-04-21 18:07:45"></currcoords>
<courier>
<code>26</code>
<name>Vladimir Petrovich IvanovKatie Summerhill</name>
<phone>+79161234567</phone>
</courier>
<deliveryprice total="158.6" delivery="100.00" return="58.6"> <advprice code="1" price="150">..Base</advprice> ( <advprice code="2" price details are not yet supported)="0">% of declared value</advprice> <advprice code="3" price="8..6">Fuel surcharge</advprice> <advprice code="4" price="0">Rounding</advprice>
</deliveryprice>
<receiverpays>NO</receiverpays>
<acceptpartially>NO</acceptpartially> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 17:22:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Delivered">COMPLETE</status>
<statushistory>
<status eventstore="Moscow branchoffice" eventtime="20162021-05-30 10:20:00" createtimegmt="20162021-06-03 16:14:44" message="" title="New">NEW</status> <status eventstore="Moscow branchoffice" eventtime="20162021-06-01 17:38:00" createtimegmt="20162021-06-03 16:14:44" message="Saint-Petersburg branchBranch office" title="Dispatch is Shipment planned">DEPARTURING</status> <status eventstore="Moscow branchoffice" eventtime="20162021-06-01 19:53:00" createtimegmt="20162021-06-03 16:14:44" message="Saint-Petersburg branchBranch office" title="Dispatched from the warehouseShipped">DEPARTURE</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 07:41:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Received by the warehouse">ACCEPTED</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 09:17:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Given to the courier to be delivered Out for delivery">DELIVERY</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 17:22:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Delivered (to be confirmed)as reported by courier">COURIERDELIVERED</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 17:22:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Delivered">COMPLETE</status>
</statushistory>
<customstatecode>2<customstatecode>
<clientstatecode></clientstatecode> <costcode>cc12345</costcode> <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> <deliveredto>IvanovaMary Smith, sec.secretary</deliveredto> <delivereddate>20162021-06-02</delivereddate>
<deliveredtime>17:22</deliveredtime>
<arrival>2021-05-02 23:21</arrival>
<outstrbarcode>EXT123456</outstrbarcode>
<partner>Western Branch</partner>
<return_message>Delivered undamaged</return_message>
<department>Accounting</department>
<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" suppcompany="Miller and Company" suppINN="1112223334" suppphone="79161234567">BallPrincess house</item> <item code="34456" extcode="abc124" quantity="2" mass="2" retprice="100" VATrate="10" barcode="4645625213138" article="2" returns="0" governmentCode="">Hula hoopSword</item> <item code="34421" extcode="abc125" quantity="3" mass="0.3" retprice="50" VATrate="18" barcode="2345625213126" itemcode="44123" article="3" returns="0" governmentCode="">Yellow rattlerJedi lightsaber</item>
</items>
<packages>
<package code="33331" strbarcode="ORD0000001" mass="1" message="" got="YES"></package>
<package code="33332" strbarcode="ORD0000002" mass="2.5" message="" got="NO"></package>
</packages>
</order>
</statusreq>
</source>
'''A response example in the absence of ordersNo Orders'''
<source lang="xml">
</source>
'''A response example in case of the authorization errorAuthorization Error'''
<source lang="xml">
</source>
'''A response example in case of the syntax errorSyntax Error'''
<source lang="xml">
</source>
=== Status response fields description Response Fields ===All the fields of response correspond with order structure when creating an order, with some additions:
* ''order'' container attributes: :* '''''awb''''' is a courier company related waybill number.:* '''''orderno2''''' is an order number from All response fields correspond to the urgent delivery subsystem.:* '''''ordercode''''' is an internal code [[#Example of the New Order|order in creating request]] structure, with the system which is applied for some internal operations. following additions:* '''''givencode''''' is an internal code of the order in the system which is applied for some internal operations.
* The '''order''' container attributes: :* '''code''awb''''' attribute — number of the courier company packing slip.:* '''item''orderno2' container is an internal code '''' — number of order string the packing slip in the system which is applied courier service urgent delivery subsystem.:* '''''ordercode''''' — order internal code, for some internal operationsuse. :* '''''returnsgivencode''''' is the amount of a certain product unit which a receiver has refused. It will have a non-zero value only in case of a partial refusal— order internal code, for internal use.
* The '''''code''''' attribute of the '''item''' container — internal order line code, for interal use.:* '''''returns''''' is the amount of the article rejected by the recipient. It is not 0 only in case of partial refusal. * The '''''got''''' attribute of the '''package''' container — indicates whether a package is accepted. Possible values: YES, NO.:* '''''returns''''' is the amount of the article rejected by the recipient. It is not 0 only in case of partial refusal.* '''''coords''''' in '''receiver''' container — recipient location coordinates.* '''''deliveryPIN''''' in '''receiver''' container — PIN.* '''pickup''' — indicates receiver positionwhether it is a pickup order. Possible values: '''YES''', '''NO'''. If '''YES''', the entire order is considered to be the assignment for pickup, not for delivery. * '''currcoords''' indicates current order positionlocation cordinates. Its attributes are::* '''''lat''''' is latitude :* '''''lon''''' is longitude:* '''''accuracy''''' indicates the degree of — location accuracy in meters :* '''''RequestDateTime''''' is date/and time of the latest position location update. * '''deliverypricecourier''' — information on the courier who carries the order. If the order is the price of not out for delivery in the customer`s settlement currency, plan courier data is shown.* '''waittime''' — courier waiting time. * '''statusdeliveryprice''' is a — cost of delivery status (see denominated in the list of statuses below)customer`s currency. It has the following attributes (they are filled in starting from version 2008.0.0.670 of the system)::* '''''eventstoretotal''''' is a branch which the following status is related to— total delivery cost.:* '''''eventtimedelivery''''' is the time of status change (time of status change depends on the location of a branch)— one-way trip cost.:* '''''createtimegmtreturn'''''— return trip cost (if '' 'order''' > '''return=YES''').The '''deliveryprice''' tag includes value-added services. The option is available for the time of the actual status change (GMT)Premium and Maximum courier service account plans::* '''''messageadvprice''''' is the — value-added service name of a receiving branch in case of a transfer between branches .:* '''''code''''' — value-added service code.:* '''''titleprice''''' is the name of a status in Russian — value-added service amount.
* '''statushistorystatus''' is — delivery status. See the history list of delivery statusesbelow. It contains has the list of following attributes::* '''''eventstore''status''' containers. It is filled in only for “Premium” plan starting from version 2008.0.0.670 of — courier service branch which set the systemcurrent status. :* '''customstatecode''eventtime''''' is an internal — time of latest status code of a delivery service. Please, check with the delivery service for its values. They are assigned by the delivery service change as in “Guides” - “Statuses” - “15 Correspondence statuses” section. The guide is not transferred to the client via API due to a possible presence of delivery service technological statuses in itcurrent branch timezone. :* '''clientstatecode''' is a customer`s status code. It is used in case a customer is transferring his codes of delivery/reasons for non-delivery statuses. * 'createtimegmt''deliveredto''' is — status change entry created in the information on delivery or a reason for non-deliverydatatbase, GMT. Used to arrange the entries in chronological order. :* '''delivereddate''message' is the date of delivery. * '''deliveredtime''' is the time — name of deliverya recipient branch. It can be left empty Used in case of non-deliveryorder transfer between branches. :* '''outstrbarcode''title' is a contractor`s code ('''' — name of the order code within an external system). It is used status in integrations with external systemsRussian.
* '''statushistory''' — history of delivery statuses. It contains the list of '''status''' containers. It is filled in only for Premium and Maximum plans. * '''customstatecode''' — internal status code of a courier service. Please, check with the courier service for its values. They are assigned by the courier service in '''References''' > '''Statuses''' > '''15 Shipment statuses'''. The reference is not transferred to the client via API due to possible presence of delivery service internal statuses in it.* '''clientstatecode''' — client status code. It is used if client submits their own codes of delivery statuses and reasons for non-delivery. * '''deliveredto''' — actual information on delivery or a reason for non-delivery.* '''delivereddate''' — actual delivery date.* '''deliveredtime''' — actual delivery date. It can be empty in case of non-delivery.* '''arrival''' — scheduled delivery date formatted as YYYY-MM-DD HH:MM:SS.* '''outstrbarcode''' — service partner system code (in an external system). It is used for integration with external systems.* '''partner''' — current branch or service partner.* '''return_message''' — return information.* '''department''' — the order creator's department. The '''status''' container can have the following values:: AWAITING_SYNC — Awaiting for sync. Order is not in the courier company database yet.: '''NEW - New ''' — Created, submitted to the courier company.: NEWPICKUP — Pickup created.: PICKUP — Picked up from sender.: WMSASSEMBLED — Order is picked at the fulfillment center.: WMSDISASSEMBLED — Order is unpicked at the fulfillment center.: '''ACCEPTED - ''' — Received by the warehouse .: INVENTORY - Inventory CUSTOMSPROCESS — Customs clearance.: CUSTOMSFINISHED — Customs clearance complete.: CONFIRM — Delivery is scheduled.: UNCONFIRM — Failed to arrange for delivery time.: DEPARTURING - Dispatch is — Warehouse transfer planned .: DEPARTURE - Dispatched from — Warehouse transfer shipped.: INVENTORY — Inventory. Made sure the shipment is in the warehouse .: PICKUPREADY — Available for pickup at the pickup point.: '''DELIVERY - Given to the courier to be delivered ''' — Out for delivery.: COURIERDELIVERED - Delivered (as reported by courier). Confirmation by manager is expected to change status to be confirmed) : COMPLETE - Delivered.: PARTIALLY - COURIERPARTIALLY — Partially delivered (as reported by courier). Confirmation by manager is expected to change status to PARTIALLY.: COURIERCANCELED — Refused (as reported by courier). Confirmation by manager is expected to change status to COURIERRETURN.: COURIERRETURN - Returned to warehouse by the courier. The courier couldn`t failed to deliver the order to the receiver recepient and returned it back to the warehouse. This is an intermediate status after which , the manager is checking to check whether the courier has order is to make another attempt to deliver the order be delivered again (DATECHANGE/DELIVERY) or this is a final non-delivery(CANCELED).: DATECHANGE — Rescheduled.: '''COMPLETE''' — Delivered.: '''PARTIALLY''' — Partially delivered.: '''CANCELED - ''' — Not delivered (ReturnReturned/CancellationCanceled) . The order must be returned to sender.  : RETURNING - Return is to sender planned (after CANCELED).: RETURNED - Returned to sender.: CONFIRM - Dispatch is confirmed : DATECHANGE - Postponement LOST — Lost.: NEWPICKUP - Pickup is created ''Note: UNCONFIRM - Dispatch has not been confirmed : PICKUPREADY - Ready for pickup '' The set of currently used statuses may be expanded and changed in the future.
''Note:'' The set of currently used statuses may be expanded and charged in the future.
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">
# '''statushistory''' and '''deliveryprice''' are filled in for [[Courier Service Account#Personal Account Functions|Premium and Maximum]] courier service account plans only.
# The sequence of statuses is not fixed. For example, you can get the COMPLETE status and then NEW because an operator marked the order completed by mistake and then corrected it.
</div>
'''Please, note!'''=== Get Latest Changed Statuses ===
# '''status''' container attributes should be specified for system version '''2008To see only latest changed statuses, once in a while send the request (see the example below).0.0.670''' API returns all the orders with recently changed statuses and newer onessome other attributes.# '''statushistory''' is filled You save the status information for each order in for tariff. "[[Member_area #.D0.9F.D0.BE.D0.B4.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D0.B5|Premium]]" as well as for your system version '''2008.0.0.670''' and newer ones.confirm the receipt by sending the </divcode>commitlaststatus<br /code>request. MeaSoft marks these statuses as received by you and does not return them again. Thus, no matter how many orders is in process, you can get their actual statuses by using only 2 requests.
=== Newly changed statuses transfer ===Send a query for getting newly Getting latest changed statuses
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<auth extra="8" login="login" pass="pass"></auth>
<changes>ONLY_LAST</changes>
<quickstatusstreamid>NO1234</quickstatusstreamid> </statusreq>
</source>
The system will display all orders that have at least one of the fields changed since the time of the last query in this mode:
Returns all the orders with at least one of the following fields changed since the last status request sent in this mode:
orderno
status
price
After successful If the response processing it is necessary processed successfully, use the following request to mark received the returned statuses as successfully received ones sending the following query :
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<commitlaststatus>
<auth extra="8" login="login" pass="pass"></auth>
<client>CLIENT</client>
<streamid>1234</streamid>
</commitlaststatus>
</source>
'''Query Fields''' * '''auth''' — Authorization. Required.* '''streamid''' - stream ID. If you get order statuses for multiple integrations, pass this parameter to divide getting statuses and sending confirmation. The value must be from 100 up to 10000. It is an optional element.*'''client''' — indicates whether it is a client or a delivery service partner. It is an optional element. Possible values::*'''CLIENT''' — the default value.:*'''AGENT''' — delivery service partner. Response contains information on the orders tendered for delivery. If successful you will get the following response:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<commitlaststatus> <error error="0" errormsg=">OK"></error></commitlaststatus>
</source>
This way of status transfer ensures a complete and correct status transfer even in case if the status has changed in the time period between statuses` query the request and receipt confirmation of their receipt.  If the system hasn`t received the confirmation of a you do not confirm successful status transferreceipt, it the information will consider this information to be not delivered and will display it in case of a requeryreturned again on the next request.
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">
'''Please# When this way of data transfer is used (<changes>ONLY_LAST</changes>), note!'''the system reviews the orders created for the last 3 months. No information on the orders created earlier returns. # The system always returns the current status. It means you can get the NEW status returned for the first request, and the COMPLETE status for your second request. A shipment could have gone through several intermediate statuses in between the request. # The sequence of statuses is not fixed. For example, you can get the COMPLETE status and then NEW because an operator marked the order completed by mistake and then corrected it.</div>
# When this way of data transfer is used (<changes>ONLY_LAST</changes>), the system is reviewing those orders that have been checked out == Tracking Order by Number == Request for the last 3 months. In case there tracking order by number is an order that has been checked out before this period, then status change for this order won`t get into the list of results of this query execution. # The system always returns intended to provide minimal anonymized information about a current status, i. e., you can get "NEW" status for your first query and "COMPLETE" status - for your second query. A dispatch could have gone through several intermediate statuses in between queries. # The system can never guarantee the certain order going through to a set of statuses successively, i. e., you can get "COMPLETE" status after your first query and "NEW" status after your second query non- such things can happen in case when, for example, the operator has mistakenly marked an order as a completed one and then corrected his mistakeauthorized user. </div><br />
== Order MeaSoft allows unauthorized access to tracking by number ==at htttp://home.courierexe.ru/{client extra code}/tracking. This interface is designed to show information to a human user.
Query for order tracking by number is intended to provide minimal anonymized information about a certain order to a non-authorized user. Our system has its own interface for this which is available at the following URL: "home.courierexe.ru/{extra code}/tracking". You can either create a link to such page at your web-site , or put as place an iframe there iFrame, or create your own page and use our API. This interface is specially designed to issue To receive order statuses in your information to a human web-site user. You need to system, use "<code>statusreq" query</code> request, desirably with the <code>changes=ONLY_LAST </code> parameter in order to obtain statuses of orders into your information system! is recommended.
'''A query example:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
</source>
'''A response exampleResponse Example:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<sender>
<town code="1" country="RU">Moscow city</town>
<date>2021-03-22</date> <time_min>09:00</time_min> <time_max>14:00</time_max>
</sender>
<receiver>
<town code="1" country="RU">Moscow city</town>
<zipcode>125480</zipcode> <date>20152021-0403-1822</date> <time_min>09:00</time_min> <time_max>14:00</time_max>
</receiver>
<AWBprice>BarCode387.5</AWBprice> <inshprice>387.5</inshprice> <paytype>CASH</paytype> <weight>05.1</weight> <quantity>12</quantity> <service>2</service> <type>3</type> <return>NO</return> <return_service>2</service> <return_date></return_date> <return_time></return_time> <return_message></return_message> <waittime>12</waittime> <enclosure>Kids toys</enclosure> <instruction>Check in the presence of the buyer, sign acceptance certificate</instruction> <deliveryprice total="158.6" delivery="100.00" return="58.6" /> <courier> <code>26</code> <name>Katie Summerhill</name> <phone>+79161234567</phone> </courier> <currcoords lat="55.680327" lon="37.604456" accuracy="50" RequestDateTime="2021-04-21 18:07:45" /> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 17:22:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Delivered" country="RU">COMPLETE</status> <statushistory> <status eventstore="Moscow office" eventtime="20162021-05-30 10:20:00" createtimegmt="20162021-06-03 16:14:44" message="" title="New" country="RU">NEW</status> <status eventstore="Moscow office" eventtime="20162021-06-01 17:38:00" createtimegmt="20162021-06-03 16:14:44" message="Saint-Petersburg branch" title="Dispatch is planned" country="RUBranch office">DEPARTURING</status> <status eventstore="Moscow office" eventtime="20162021-06-01 19:53:00" createtimegmt="20162021-06-03 16:14:44" message="Saint-Petersburg branch" title="Dispatched from the warehouse" country="RUBranch office">DEPARTURE</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 07:41:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Received by the warehouse" country="RU">ACCEPTED</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 09:17:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Given to the courier to be delivered" country="RU">DELIVERY</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 17:22:00" createtimegmt="20162021-06-03 16:14:44" message="" title="Delivered (to be confirmed)" country="RU">COURIERDELIVERED</status> <status eventstore="Saint-Petersburg branchBranch office" eventtime="20162021-06-02 17:22:00" createtimegmt="20162021-06-03 16:14:44" message="" title>COMPLETE</status> </statushistory> <deliveredto>Mary Smith, secretary</deliveredto> <delivereddate>2021-06-02</delivereddate> <deliveredtime>17:22</deliveredtime> <outstrbarcode>EXT123456</outstrbarcode> <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="Delivered0.00" countrygovernmentCode="RU11223311" suppcompany="Miller and Company" suppINN="1112223334" suppphone="79161234567">COMPLETEPrincess house</item> <item code="34456" extcode="abc124" quantity="2" mass="2" retprice="100" VATrate="10" barcode="4645625213138" article="2" returns="0" governmentCode="">Sword</item> <item code="34421" extcode="abc125" quantity="3" mass="0.3" retprice="50" VATrate="18" barcode="2345625213126" article="3" returns="0" governmentCode="">Jedi lightsaber</statusitem> </statushistoryitems>
</order>
</tracking>
</source>
'''Get Info in 17 TRACK Format''' '''Request Example''' <?xml version="1.0" encoding="UTF-8"?><tracking17> <extra>8</extra> <orderno>1234</orderno></tracking17> '''Request Example'''  { "number":"ExtNumber", "oriNumber":"1234", "oriCountry":"RU", "destCountry":"RU", "status":"Complete", "events":[ { "time":"2021-06-02 17:22:00", "location":"RU", "content":"Complete" }, { "time":"2021-06-02 17:22:00", "location":"RU", "content":"Courierdelivered" }, { "time":"2021-06-02 09:17:00", "location":"RU", "content":"Delivery" }, { "time":"2021-06-02 07:41:00", "location":"RU", "content":"Accepted" }, { "time":"2021-06-01 19:53:00", "location":"RU", "content":"Departure" }, { "time":"2021-06-01 17:38:00", "location":"RU", "content":"Departuring" }, { "time":"2021-05-30 10:20:00", "location":"RU", "content":"New" } ] } The function searches for the last latest order among the orders of all customers clients by its number (AWB or orderno). It provides anonymized information on a the current state of the order. <br />The description of response Response containers is are similar to the description of [[API#Order Status|Order Status Request]].D0 == Changing Order ==The request is intended to edit the orders that are not in process yet — there was no changes of shipment or delivery status or delivery time, etc.97 You can only edit orders if the courier service uses the Premium or Maximum [[Courier Service Account#Personal Account Functions|personal account plan]].D0To enable order editing, in the courier service account go to '''Settings''' > '''Parameters''' > '''Advanced''' and select the '''Allow canceling and editing orders''' check box.B0 <div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;"># The edit request must contain all order data as if the order is being created for the first time.D0# If the edit request is missing an item, the item is not removed from the order, but its quantity becomes 0.BF# If an order is being edited via API and in MeaSoft desktop application at the same time, only the changes made in the desktop applications are applied.D1</div> Planned courier might be canceled utomatically once an order is edited.80It depends on the value set in '''References''' > '''Variables''' > '''Shipments''' > '''Automatically assign courier by area''':* '''No''' — courier is not changed on editing orders via API.D0* '''Area''' — courier is canceled on changing delivery address.BE* '''Area or delivery date''' — courier is canceled on changing delivery address or delivery date.D1 === Edit Request Fields ===All request fields correspond to the [[#Creating Order|order creating request structure]], except for:* specify the <code>editorder</code> instead of the <code>neworder</code> root tag.81_* do not specify the <code>barcode</code> tag as it is assigned when creating an order.D1* for <code>item</code> items, specify the item internal code in the <code>code</code> attribute.81To receive the internal code, use the [[#Order Status|order status]] request.D1 You cannot change the '''orderno''' value using this method.82 === Edit Response Fields ===All response fields correspond to the [[#Creating Order|order creating response structure]], except for:*the <code>editorder</code> tag is returned instead of <code>neworder</code>.D0 == Canceling Order == The request is intended to cancel the orders that are not in process yet — there was no changes of shipment or delivery status or delivery time, etc.B0 You can only cancel orders if the courier service uses the Premium or Maximum [[Courier Service Account#Personal Account Functions|personal account plan]].D1To enable order canceling, in the courier service account go to '''Settings''' > '''Parameters''' > '''Advanced''' and select the '''Allow canceling and editing orders''' check box.82 Once an order is canceled, the '''Delivery info''' field is filled in with '''Canceled by client''', the '''Delivery date''' is filed in with the current date, the '''Delivered by''' is filled in with system entry CANCEL.D1.83.D1.81.D0.B0_.D0.B7.D0.B0.D0.BA.D0.B0.D0.B7.D0.BE.D0.B2| '''Order status query]]Cancelation Example''' <source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><cancelorder> <auth extra="8" login="login" pass="pass" /> <order orderno="" ordercode="123456" /> <order orderno="123aaa" ordercode="" /></cancelorder></source>
== Status change by agent =='''Order Cancelation Fields'''
Order change status query allows finding out '''cancelorder''' — root container. Required.* '''auth''' — authorization. Required.* '''order''' — container of the final status of order being canceled. Required. The request can contain more than one '''order'''. It has the following attributes::* '''''orderno''''' — external order - "Delivered" code. :* '''''ordercode''''' — internal order code.Either '''''orderno''''' or "Not delivered (Return/Cancellation)'''''ordercode''''' is required."
Besides that, date and time (in necessary) of status change as well as a type of message in '''Response Example'''<source lang="Information on deliveryxml" field are set><?xml version="1. 0" encoding="UTF-8" ?><cancelorder> <order orderno="123test" ordercode="123456" error="0" errormsg="OK" /> <order orderno="123aaa" ordercode="" error="52" errormsg="order not found" /></cancelorder></source>
If necessary, images can be attached == Adding Files to the order information. Order ==
'''The example of a status change request:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<setorderinfoaddattachments>
<auth extra="8" login="login" pass="pass" />
<order ordercode="123456" date="2018-03-01" time="10:00" message="The customer has refused from the purchase"orderno>1234567</orderno> <order ordercode="234567" date="2018-03-01" time="10:00" messageattachments> <item name="photo1.jpg">JVBERi0xLjMN1wb25lbnQgMQ JUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSA U3VidHlwZSAvSW1hZ2UNL1d pZHRoIDE4MDgNL0hlaWdodCA ggNCAwIFINL0JpdHNQZXJDb 21wb25lbnQgMQ0vRGVjb2RlU ENL0NvbHVtbnMgMTgwOA0+P g0vSW1hZ2VNYXNrIHRydWUNL XhEZWNvZGUNPj4Nc3RyZWFt DQ</item> <image filenameitem name="filename1photo2.jpg">/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyVBERi0xLjMNAwIG9iag0HRoJ JUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSA vWE9iamVjdA0vU3VidHlwZS AvSW1hZ2UNL1dpZHRoIDEzNj gNL0hlaWdodCAxMzMzDS9MZ W5ndGggNCAwIFINL0JpdHNQZ ccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PXJDb21wb25lbnQgMQ0vRGVj b2RlUGFybXMgPDwNL0sgLTEN T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAYACAADASIAL0NvbHVtbnMgMTM2OA0+Pg0 vSW</imageitem> </orderattachments></setorderinfoaddattachments>
</source>
'''The description of status response fields:Fields Description'''
'''setorderinfoaddattachments''' is a root container. It is a mandatory elementRequired. *'''auth''' is authorization. It is a mandatory elementRequired. *'''orderorderno''' is order containernumber. It is a mandatory elementRequired. A query may contain more than one '''You can use tag <code>ordercode</code> to specify order''' containerinternal code. It has the following attributes: :* '''attachments''ordercode''''' is an internal code of an order— file data. Required.:** '''item''date''''' is status change date— base64 encoded binary file data. Required. :*** '''''timename'''— an '' is status change time. :* 'item''''message''''' is message textattribute that contains the file name. Required.
*'''image''' is an attached image container. It contains image file text coded according to ''base64'' standard. '''order''' container may contain more than one '''image''' container. It has the following attribute: :* '''''filename''''' is a file name.'''The example of a response:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<setorderinfoaddattachments> <order ordercodeattachments> <item name="123456photo1.jpg" error="0" errormsg="OK" errormsgru="Successfully" /> <order ordercodeitem name="234567photo2.jpg" error="590" errormsg="value [date_put] is already set" errormsgru="The value [Date of delivery] is already setOK" /> </attachments></setorderinfoaddattachments>
</source>
== Obtaining the pdf waybill Getting Order Files ==
'''Request example:Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<waybillattachments>
<auth extra="8" login="login" pass="pass" />
<orderno>1234567</orderno>
<form>1</form></waybillattachments>
</source>
'''The fields description:Fileds Description'''
'''waybillattachments''' - is a root — Root container. It is a mandatory elementRequired. *'''auth''' - is authorization. It is a mandatory elementRequired. *'''orderno''' - Order — order numberor code. It is a mandatory elementRequired. *'''form''' - Form type. Is not mandatory. Can be::* 1 - A detailed waybill:* 2 - Sticker (Zebra)
'''Response example:Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<waybillattachments> <contentitem name="doc1.docx" size="35654">EODIcaI8KSBlwQ 4MnEOR7Px8U8EBAyGICBnwpw JVBERi0xLjMN IZhQgz0ZxuPs8EBMJUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSA U3VidHlwZSAvSW1hZ2UNL1d pZHRoIDE4MDgNL0hlaWdodCA ggNCAwIFINL0JpdHNQZXJDb 21wb25lbnQgMQ0vRGVjb2RlU ENL0NvbHVtbnMgMTgwOA0+P g0vSW1hZ2VNYXNrIHRydWUNL XhEZWNvZGUNPj4Nc3RyZWFt DQ</GcbjzB AwhBl8hwQYIO00GmEwg1CeEG item> <item name="photo2.jpg" size="74861">VBERi0xLjMN mqYTChNU0wqf8l8nz4zgc+K fCno+zwU5GjOZmzXGcbEQYIM JUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSA vWE9iamVjdA0vU3VidHlwZS AvSW1hZ2UNL1dpZHRoIDEzNj 4zkegRE40zWzONyoNNMIOIa cWnp6aDCGEGE9NQmoQd2mg00 gNL0hlaWdodCAxMzMzDS9MZ W5ndGggNCAwIFINL0JpdHNQZ 79U4f3hPTwnfp6Sdrafeqpa JDpFw/1aYT077VNNNdO00G3q XJDb21wb25lbnQgMQ0vRGVj b2RlUGFybXMgPDwNL0sgLTEN mqqvp9p2E7T0/wiFemv8uG6 OML0NvbHVtbnMgMTM2OA0+Pg0 vSW</contentitem></waybillattachments>
</source>
The <code>item</code> tag contains base 64 encoded binary data (files).
The '''''content''''' tag contains pdf binary, base64 encoded.== Changing Status by Service Partner ==
== Cancellation Order status change request allows to get the final status of the order ==— either '''Delivered''' or '''Not delivered (Returned/Canceled)'''.
Cancel Besides, the request is intended to be used for cancellation gets date and time of those orders about which no changes have been made - like delivery statuschange, if necessary, correspondence status and delivery time - in other words, those orders which are not being processedthe '''Delivery info''' field message.
In case of You can attach images to the order cancellation “Delivery information” field gets the value “Cancelled by the customer” and “Delivery date” field gets a current date.
 '''The example of a query for order cancellationRequest Example:'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<cancelordersetorderinfo>
<auth extra="8" login="login" pass="pass" />
<order ordernoordercode="123456" > <message>Accepted by Tailor</message> <outstrbarcode>7654312</outstrbarcode> </order> <order ordercode="123456234567" > <status>PICKUPREADY</status> <eventtime>2021-05-30 10:20:00</eventtime> <message>Client refused the order orderno</message> <paytype>CASH</paytype> <items> <item code="34533" quantity="1" reason="123aaa0" /> <item code=" ordercode34456" quantity="0" reason="0" /> <item code="34421" quantity="2" reason="0" /> </items> <image filename="filename1.jpg" > /9j/4AAQSkZJRgA BAQAAAQABAAD/2wBDAA0JCg sKCA0LCgsODg0PEyAVExISEy ccHhcgLikxMC4pLSwzOko+M zZGNywtQFdBRkxOUlNSMj5aY VpQYEpRUk//2wBDAQ4ODhMR EyYVFSZPNS01T09PT09PT09P T09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09 PT09PT0//wAARCAYACAADAS IA</image> </order></cancelordersetorderinfo>
</source>
'''The description Fields Description''' '''setorderinfo''' — root container. Required. *'''auth''' — authorization. Required. *'''order''' — order container. Required. A request can contain more than one '''order''' container. It has the following attribute: :* '''''ordercode''''' — an internal order code.*'''status''' — new order status. It can be any [[#Response Fields|status]] excepting AWAITING_SYNC and NEW.*'''eventtime''' — status change date and time. Required if status is specified. *'''message''' — delivery info text. *'''outstrbarcode''' — code in service partner system (order code in external system). It is used in integrations with external systems.*'''paytype''' — order payment type. Possible values are '''CASH''' and '''CARD'''.*'''items''' — container that describes order items. It has the following attributes::* '''''code''''' — item code.:* '''''quantity''''' — quantity of delivered articles.:* '''''reason''''' — reason for non-delivery. It is selected from the status query fieldslist.*'''image''' — container for the image being attached. It contains base 64 encoded image file text. The '''order''' container can contain more than one '''image''' container. It has the following attribute::* '''''filename'''''— file name.
'''cancelorderResponse Example''' is a root container<source lang="xml"><?xml version="1. It is a mandatory element. 0" encoding="UTF-8"?>*'''auth''' is authorization. It is a mandatory element.<setorderinfo>*''' <order''' is a cancelled order container. It is a mandatory element. A query may contain more than one '''order''' container. It has the following attributes:ordercode="123456" error="0" errormsg="OK" />:* '''''orderno''''' is <order`s cipher. :* '''''ordercode''''' ="234567" error="59" errormsg="value [date_put] is an internal code of the order. already set" /></setorderinfo>Please, note that at least one of ''orderno'' or ''ordercode'' attributes should be specified! </source>
== Getting Documents for Printing ==
'''The example of a response:Get Print Forms Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<cancelorderwaybill> <order ordernoauth extra="123test8" ordercodelogin="123456login" errorpass="0pass" errormsg/> <orders> <order orderno="OK1234567" errormsgruordercode="Successfully33331" /> <order orderno="123aaa1234568" ordercode="33332" error/> </orders> <form>1</form></waybill></source> '''Fields Description''' '''waybill''' — is a root container. Required.*'''auth''' — is authorization. Required.*'''orders''' — list of orders to get print forms for. It contains tags '''order''' with the following attributes:** '''''orderno''''' — external order code.** '''''ordercode''''' — internal order code.*: Specify either of the attributes for all the orders. The '''''ordercode''''' attribute is recommended.*'''form''' — packing slip format. Optional. Possible values::* '''1''' — detailed packing slip. Default value.:* '''2''' — Zebra label.:* '''3''' — A4 size label.:* '''4''' — delivery and acceptance certificate.  '''Response Example'''<source lang="52xml" errormsg><?xml version="order not found1.0" errormsgruencoding="The order is not foundUTF-8" ?><waybill> <content>EODIcaI8KSBlwQ 4MnEOR7Px8U8EBAyGICBnwpw IZhQgz0ZxuPs8EBM/GcbjzB AwhBl8hwQYIO00GmEwg1CeEG mqYTChNU0wqf8l8nz4zgc+K fCno+zwU5GjOZmzXGcbEQYIM 4zkegRE40zWzONyoNNMIOIa cWnp6aDCGEGE9NQmoQd2mg00 79U4f3hPTwnfp6Sdrafeqpa JDpFw/1aYT077VNNNdO00G3q mqqvp9p2E7T0/wiFemv8uG6 OM</content></cancelorderwaybill>
</source>
== City names list ==Note that print forms are not created for pickups. The '''''content''''' tag contains base64 encoded binary data (PDF file).
== City Names List == '''The example of the city names list query:City List Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<name>Moscow</name>
<fullname>Moscow city</fullname>
<country>1RU</country>
</conditions>
<limit>
</source>
All elements inside The <code>townlist </code> container can either be absent empty or combineelements. The search is not case-sensitiveinsensitive. *'''auth''' — authorisation, optional. Use it if the courier service set and enabled some location restrictions. *'''codesearch''' is a search by codes. In case when When it is used, the <code>conditions </code> and <code>limit </code> containers will be are ignored. :* '''zipcode''' is a search by zip postal codes. Please, note Note that one zip postal code can be applicable to several more than one localities. In this case the system will return MeaSoft returns several records.:* '''kladrcode''' is a search by 13-digit codes code of All-Russian Classifier of Addresses.:* '''fiascode''' is a search by codes the code of Federal Information Address System (Address address system used in Russia) (AOIDAOGUID).:* '''code''' is a search by codes of the systemcode.
*'''conditions''' specifies search criteria. All enclose nested elements simultaneously impose “AND” the AND condition. :* '''city''' is a search by for all the localities of a region. :* '''namecontains''' is a search of for the localities which with names contain a specified including the search text. :* '''namestarts''' is a search of for the localities which with names start from a specified starting with the search text.:* '''name''' is a search of for the localities which with names match a specified matching the search text.:* '''fullname''' is a search of for the localities which with names and type match a specified matching the search text. :* '''country''' is a search of in the country with a the specified zip codeonly.
*'''limit''' limits result output. :* '''limitfrom''' specifies — defines the search result record number of a search result starting to start output with which a response should be given. It equals The default value is '''0 by default'''. :* '''limitcount''' specifies — defines the number quantity of search result records which should be returnedto show. It equals The default value is '''10000 by default'''.:* '''countall''' - — if '''YES indicates ''', the necessity of counting the amount total quantity of found matches foundis counted. It may might slow down the process of query request execution. In case it is If disabled, <code>totalcount </code> and <code>totalpages values won`t be indicated </code> are missing in the response.
'''The example of a response:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<city>
<code>23</code>
<name>Krasnodar TerritoryKrai</name>
</city>
<name>Sochi city</name>
<shortnamefiascode>79da737a-603b-4c19-9b54-9114c96fb912</fiascode> <kladrcode>Sochi2300000700000</kladrcode> <shortname/> (not yet supported) <typename>city</typename> (not yet supported) <coords lat="43.5855" lon="39.7231" />
</town>
<town>
<city>
<code>32</code>
<name>Bryanskaya oblastBryansk District</name>
</city>
<name>Sochilov farmsteadkhutor</name> <shortnamefiascode>c9c96c67-2cc9-4f10-afde-fd32417ea216</fiascode> <kladrcode>Sochilov3201900011100</kladrcode> <shortname/> <typename/>farmstead <coords lat="52.6407" lon="33.1724" /typename>
</town>
<town>
<city>
<code>60</code>
<name>Pskov oblastDistrict</name>
</city>
<name>Sochikhino village</name>
<shortnamefiascode>10df7588-19c1-49d1-a387-9de1cf3eb26f</fiascode> <kladrcode>Sochikhino6001900015400</kladrcode> <shortname/> <typename/>village <coords lat="56.6003" lon="29.3542" /typename>
</town>
</townlist>
</source>
In a the response , the cities and towns are sorted arranged by their popularity, importance (district centers, etc.) and only after that - alphabeticallythen by alphabet.
== Region names list Names List ==
'''The example of the region names list query:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
</codesearch>
<conditions>
<namecontains>TerritoryKrai</namecontains>
<namestarts>Mosc</namestarts>
<fullname>Moscow regionOblast</fullname>
<country>1</country>
</conditions>
</source>
'''The example of a response:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<ShortName2>RUS</ShortName2>
</country>
<name>Agin-Buryat Autonomous AreaOkrug</name>
</city>
<city>
</source>
== Street names guide Names List ==
'''The example of the city names list query:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<streetlist>
<conditions>
<town>Moscow city</town> // MANDATORY REQUIRED FIELD!
<namecontains>Khokhlo</namecontains>
<namestarts>Academician K</namestarts>
</source>
*'''conditions''' specifies search criteria. All enclose nested elements simultaneously impose “AND” the AND condition.:* '''town''' is a mandatory — required field. It`s is the name or the code of a locality.:* '''namecontains''' is a search of for the localities which streets with names contain a specified including the search text.:* '''namestarts''' is a search of for the localities which streets with names start from a specified starting with the search text.:* '''name''' is a search of for the localities which streets with names match a specified matching the search text.:* '''fullname''' is a search of for the localities which streets with names and type match a specified matching the search text.
*'''limit''' limits result output.
:* '''limitfrom''' specifies — defines the search result record number of a search result starting to start output with which a response should be given. It equals The default value is '''0 by default'''. :* '''limitcount''' specifies — defines the number quantity of search result records which should be returnedto show. It equals The default value is '''10000 by default'''.:* '''countall''' - — if '''YES indicates ''', the necessity of counting the amount total quantity of found matches foundis counted. It may might slow down the process of query request execution. In case it is If disabled, <code>totalcount </code> and <code>totalpages values won`t be indicated </code> are missing in the response.
'''The example of a response:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
</source>
In a the response , the street names of the streets are sorted in alphabetical orderarranged alphabetically.
== Nomenclature list List of Goods ==
'''The example of the nomenclature list query:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<namecontains>TV set</namecontains>
<namestarts>sony</namestarts>
<name>Sony KDL-55W905 LCD televisionTV</name>
<quantity>EXISTING_ONLY</quantity>
</conditions>
<except>
<code>123478</code>
</except>
<limit>
<limitfrom>30</limitfrom>
</source>
All elements inside itemlist The <code>townlist</code> container can either be absent empty or combineelements. The search is not case-sensitiveinsensitive. *'''codesearch''' is a search by codes. In case when When it is used, the <code>conditions </code> and <code>limit </code> containers will be are ignored.:* '''code''' is a search by codes of the internal systemcode.:* '''article''' is a search by article numbersSKU ID. :* '''barcode''' is a search by barcodesbarcode.
*'''conditions''' specifies search criteria. All enclose nested elements simultaneously impose “AND” the AND condition.:* '''namecontains''' is a search of for the goods which with names contain a specified containing the search text.:* '''namestarts''' is a search of for the goods which with names start starting from a specified the search text.:* '''name''' is a search of for the goods which with names match a specified matching the search text.:* '''quantity''' is the availability of goods at in the warehouse. It can have Sometimes, the following field may be unavailable. Possible values: *** '''EXISTING_ONLY - ''' — only in stock, .*** '''NOT_EXISTING_ONLY - ''' — only out of stock out, .*** '''ALL - ''' — all. :* '''store'In some setups this field may be unavailable.''— search by the specified warehouse.
*'''limitexcept''' limits result output.:* '''limitfrom''' specifies the record number — exception description for correct counting of a search result starting with which a response should be givenreserved items.:* '''limitcountcode''' specifies the number of search result records which should be returned— order code.
*'''The example limit''' — limits result output.:* '''limitfrom''' — defines the search result record number to start output with.:* '''limitcount''' — defines the quantity of a response:search result records to show.  '''Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<article>FD343</article>
<barcode>2345625213125</barcode>
<name>Sony KDL-55W905 LCD televisionTV</name>
<retprice>65000</retprice>
<purchprice>50000</purchprice>
<weight>5.1</weight>
<length>50</length>
<width>30</width>
<height>40</height>
<VATrate>20</VATrate>
<CountInPallet>30</CountInPallet>
<HasSerials>1</HasSerials>
<CountryOfOrigin>Malaysia</CountryOfOrigin> (not yet supported)
<Message>A good TV set</Message> <Message2>Another good TV set</Message2>
<quantity>12</quantity>
<reserved>3</reserved>
</source>
'''The description of fields:Fields Description'''*'''code''' is an internal identifier assigned by the system. *'''article''' — supplier SKU ID. *'''barcode''' — manufacturer barcode. *'''name''' — item name. *'''retprice''' — default retail price. When creating the order, the price specified in the order is an article assigned by used.*'''purchprice''' — purchase price.*'''weight''' — weight in kilograms. *'''length''' — length in centimeters. *'''width''' — width in centimeters. *'''height''' — height in centimeters.*'''VATrate''' — value-added tax rate, integer.*'''CountInPallet''' — number of pieces in a pallet. *'''HasSerials''' — indicates whether serial numbers tracking is used. Possible values: '''1''' — Yes, '''0''' — No. *'''CountryOfOrigin''' — name of the country of origin. *'''Message''' — comment. *'''Message2''' — additional comment. *'''quantity''' — quantity in stock. Goods picked up for orders are not included in this number, they are considered to be shipped. ''This field may be unavailable in some setups.''*'''reserved''' — quantity of goods reserved. It may outnumber the stock balance if customers are waiting for the next delivery. ''This field may be unavailable in some setups.'' == Goods Movement == '''Request Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><itemmovements> <auth extra="8" login="login" pass="pass"></auth> <code>4259</code> <datefrom>2020-10-01</datefrom> <dateto>2020-10-02</dateto></itemmovements></source> *'''code''' — internal item code in the list of goods.*'''datefrom''' — period start date.*'''dateto''' — period end date.You can specify either code or period, or both code and period.  '''Response Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><itemmovements count="16"> <itemmovement> <code>151500</code> <date>2020-10-01</date> <retprice>0</retprice> <quantity>1</quantity> <delivered>0</delivered> <item> <code>4259</code> <name>Jenga Classic Game</name> </item> <status> <code>5</code> <name>Return from customer </name> </status> <store> <code>1</code> <name>Moscow office</name> </store> <order> <ordercode>3374830</ordercode> <number>123660-0</number> <date>2020-10-01</date> <orderno>14123</orderno> <barcode>0000000670</barcode> <company>All Games</company> <address>Thompson str., 88</address> <delivereddate>2020-05-29</delivereddate> <deliveredtime>12:00:00</deliveredtime> <deliveredto /> </order> <document> <code>21991</code> <number>318</number> <date>2020-05-26</date> <message></message> </document> </itemmovements></itemlist></source> '''Fields Description'''*'''code''' — goods movement internal transaction code.*'''date''' — transaction date.*'''retprice''' — item price.*'''quantity''' — item quantity in the movement transaction.*'''delivered''' — quantity of delivered items. *'''item''' — goods item container.:* '''code''' — item internal code.:* '''name''' — item name. *'''status''' — transaction status container.:* '''code''' — status code.:* '''name''' — name. *'''store''' — container for the branch that performs the transaction.:* '''code''' — branch code.:* '''name''' — branch name. *'''order''' — shipment container.:* '''ordercode''' — internal order code.:* '''number''' — order number.:* '''date''' — order date.:* '''orderno''' — external order code.:* '''barcode''' — barcode.:* '''company''' — company.:* '''address''' — address.:* '''delivereddate''' — date delivered.:* '''deliveredtime''' — time delivered.:* '''deliveredto''' — delivery info or reason for non-delivery. *'''document''' — transaction document container.:* '''code''' — internal document code.:* '''number''' — document number.:* '''extnumber''' — external document number.:* '''date''' — document date.:* '''message''' — comment. == Getting Shipping Rates for Towns and Cities == <div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">If the <code>nofederal</code> parameter is missing in the request, Moscow is processed in the following way: the response contains Moscow and Moscow region towns and distance markup.</div> '''Request Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><tariffs> <auth extra="8" login="login" pass="pass" /> <townfrom>Moscow</townfrom> <service>1</service> <mainonly>1</mainonly> </tariffs></source> *'''auth''' — the '''extra''' attribute is required, it is used to determine the courier service company.*'''townfrom''' — sender town or city. If it is not passed, the default value is '''Moscow'''.*'''service''' — delivery mode. Required.*'''mainonly''' — optional. If passed, the response contains data from the '''Inter-city''' > '''Zones''' table only.* '''nofederal''' — optional. If passed, a city of federal importance is processed as an ordinary city.  '''Response Example'''<source lang="json">{ "townfrom": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5", "service": 1, "tariffs": [ { "towntofias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5", "towntocode": 1, "towntoname": "Moscow city", "distance": 0, "pricedistance": 0, "pricesnew": { "before": [ { "price": "100", "every": "0", "mass": "1" }, { "price": "150", "every": "0", "mass": "5" } ], "after": [ { "price": 0, "every": 1, "mass": 38.01 }, { "price": 15, "every": 1, "mass": 51.01 } ] }, "deliveryPeriodMin": 1, "deliveryPeriodMax": 2 } ]}</source> '''Fields Description'''* '''townfrom''' — sender locality [[#City Names List|AOGUID]] (a supplierFederal Information Address System)code. * '''service''' — delivery mode.*'''tariffs''' — shipping rates list for the locality.:* '''towntofias''' — recipient locality AOGUID code.:* '''towntocode''' — recipient locality internal code.:* '''towntoname''' — recipient locality name.:* '''distance''' — distance in km from Moscow to Moscow Ring Road if <code>townfrom</code> is Moscow.:* '''pricedistance''' — Moscow to Moscow Ring Road distance markup if <code>townfrom</code> is Moscow..:* '''pricesnew''' — your shipping rates from the '''Inter-city''' > '''Rates by Zones''' table.::* '''before/after — containers.:::* '''price''' — price. If the response is for the <code>before</code> container, <code>pricedistance</code> is also added to the amount.:::* '''every''' — for every specified number of pieces.:::* '''mass''' — weight.:* '''prices''' — obsolete, do not use.:* '''deliveryPeriodMin''' — minimum number of days in transit.:* '''deliveryPeriodMax''' — maximum number of days in transit. == Receipt Items == '''Request Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><itemdoc> <auth extra="8" login="login" pass="pass"></auth> <code>21991</code></itemdoc></source> *'''barcodecode''' is a manufacturer`s barcode— internal receipt document code.
*'''name''' is an item name.
*'''retpriceResponse Example''' is a retail price value by default. When ordering the price which is mentioned in the order is used<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><itemdoc> <code>21991</code> <number>318</number> <date>2021-05-26</date> <message></message> <items> <item code="4259" quantity="1" barcode="200300" article="123555">Jenga Classic Game</item> </items></itemdoc></source>
'''Fields Description'''* '''code''' — internal receipt code.* '''number''' — document number.*'''weightdate''' is weight in kilograms— document date. *'''lengthmessage''' is length in centimeters— comment.
*'''widthitem''' is width in centimeters— goods item container.:* '''code''' — internal item code.:* '''barcode''' — item barcode.:* '''article''' — item SKU ID.:* '''quantity''' — quantity of received items.
*'''height''' is height in centimeters.== Branches List ==
*'''CountInPalletRequest Example''' is the number of pieces in a pallet<source lang="xml"><?xml version="1. 0" encoding="UTF-8" ?><storelist> <auth extra="8"></auth> <json>YES</json> <client_code>7890</client_code></storelist></source>
*'''HasSerialsauth''' requires serial numbers accounting— the '''extra''' attribute is required, it is used to determine the courier service company. It takes on the following *'''json''' — indicates whether response is in JSON format. Possible values: 1 - yesare '''YES''', 0 - no'''NO'''.*'''client_code''' — courier service client code.
*'''CountryOfOriginResponse Example''' is the <source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><storelist count="2"> <store> <code>123</code> <name>ABC</name> </store> <store> <code>456</code> <name of a country of origin in Russian. >Branch 2</name> </store></storelist>*'''Message''' is a commentary. </source>
*'''Message2code''' is an additional commentary— branch code. *'''name''' — branch name.
*'''quantity''' is the number of goods in stock. Those goods that have already been batched into orders are not included in this number and considered to depart the depository for goods. ''This field may be unavailable in some setups.''== Pickup Points List ==
*'''reserved''' is To show pickup points on the number of goods reservedmap, use the [https://home. It may outnumber stock balance if customers are waiting for courierexe.ru/js/measoft_map.js JavaScript module]. See help info in the next deliveryfile. ''This field may be unavailable in some setupsSee example [https://home.courierexe.ru/pvz_test.html here].''
== The Unique pickup point requests are cached on the client account side and retained till 7 AM GMT+3 of the next day. For example, if a unique request with a mass of 2 kg was submitted today at 10 AM, tommorow at 7 AM it will be deleted. If you submit a mass of 2 kg in the same request today at 6 PM, you will get the same list of order pickup points . If you submit a mass of issue ==3 kg in the same request, you will probably get another list.
'''The example of a points of issue query:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<pvzlist>
<auth extra="8" login="login" pass="pass"></auth>
<code>1234</code> <client_code>7890</client_code> <city>Sverdlovsk Oblast</city> <townregioncode="66" country="RU">Nizhniy Nizhny Tagil</town> <parentcode>6</parentcode> <acceptcash>YES</acceptcash> <acceptcard>YES</acceptcard> <acceptfitting>YES</acceptfitting> <maxweight>30</maxweight> <acceptindividuals>YES</acceptindividuals> <lt>57.924737</lt> <lg>59.940019</lg> <rt>57.905682</rt> <rg>59.984669</rg> <json>YES</json> <limit> <limitfrom>30</limitfrom> <limitcount>2</limitcount> <countall>YES</countall> </limit>
</pvzlist>
</source>
*'''auth''' — the '''extra''' attribute is required, it is used to determine the courier service company. '''login''' and '''pass''' allow to sign in as a client to apply the pickup points availability restrictions if they are set up for the client.*'''code''' — internal code.*'''client_code''' — courier service client code.*'''city''' - recipint region. You can specify a region code or a full region name from the '''Regions''' reference.*'''town''' — recipient location.:For the <code>town</code> tag, you can speify the value from the '''Regions''' reference in the <code>regioncode</code> attribute. The specified region is searched for the town.:In the <code>country</code> attribute, you can specify the recipient country according to the ISO 3166-1 standard. For example: "AT", "AUT" or "040" for Austria.*'''parentcode''' — parent [[#Branches List|branch]].*'''acceptcash''' — indicates whether cash on delivery is accepted. Possible values: '''YES''', '''NO'''.*'''acceptcard''' — indicates whether bank cards are accepted. Possible values: '''YES''', '''NO'''.*'''acceptfitting''' — indicates whether try-on is allowed. Possible values: '''YES''', '''NO'''.*'''maxweight''' — maximum weight allowed for the pickup point.*'''acceptindividuals''' — indicates whether pickup point is available for individuals. Possible values: '''YES''', '''NO'''.*'''lt''' — upper left corner latitude.*'''lg''' — upper left corner longitude.*'''rt''' — lower right corner latitude.*'''rg''' — lower right corner longitude.*'''json''' — indicates whether response is a receiver`s residencein JSON format. Possible values: '''YES''', '''NO'''.*'''limit''' — limits result output.:* '''limitfrom''' — defines the search result record number to start output with. The default value is '''0'''.:* '''limitcount''' — defines the quantity of search result records to show. The default value is '''100'''.:* '''countall''' — if '''YES''', the total quantity of found matches is counted. It might slow down the request execution. If disabled, <code>totalcount</code> is missing in the response.
'''The example of a response from the list of pick-up points:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<pvzlist count="2" totalcount="40465">
<pvz>
<code>126</code>
<clientcode>3</clientcode>
<name>Nizhniy Tagil</name>
<parentcode>6</parentcode>
<parentname>Integration</parentname>
<town code="124267" regioncode="66" regionname="Sverdlovsk Oblast">Nizhniy Tagil city</town>
<address>622036, 17 Tsiolkovsky Str., Nizhniy Tagil city</address>
<phone>+73435417709, +73435254989</phone>
<comment>New pickup point</comment> <worktime>Sun 10:00-16:00, Sat 10:00-16:00, Mon-Fri 10:00-20:00</worktime> <traveldescription>5-storeyed storey apartment building with its end wall beside the highway, the second building from Parkhomenko-Tsiolkovsky street intersection.</commenttraveldescription> <maxweight>10</maxweight> <acceptcash>YES</acceptcash> <acceptcard>YES</acceptcard> <acceptfitting>YES</acceptfitting> <acceptindividuals>YES</acceptindividuals> <latitude>57.93457</latitude> <longitude>59.95131</longitude> <uid>40606d00-9c51-11eb-b2c9-cfd6c1111392</uid>
</pvz>
<pvz>
<code>245</code>
<clientcode>NTG1</clientcode>
<name>At Krasnoarmeyskaya StreetOn Krasnoarmeiskaya</name> <parentcode>6</parentcode> <parentname>Integration</parentname> <town code="124267" regioncode="66" regionname="Sverdlovsk Oblast">>Nizhniy Tagil city</town> <address>Krasnoarmeiskaya, 79 KRASNOARMEYSKAYA STR.</address>
<phone>+7(3435)379-044</phone>
<comment>Working hoursTry-on is not allowed</comment> <worktime>Sun 10:00-16: from Monday through Friday00, from 9 a. m. till 6 p. m.Sat 10:00-16:00, on Saturday Mon- from Fri 10 a:00-20:00</worktime> <traveldescription>Next to McDonalds</traveldescription> <maxweight>20</maxweight> <acceptcash>YES</acceptcash> <acceptcard>YES</acceptcard> <acceptfitting>NO</acceptfitting> <acceptindividuals>YES</acceptindividuals> <latitude>57. m. till 2 p. m93468</latitude> <longitude>60.55476</longitude> <uid>41116853-9c51-11eb-b2c9-cfd6c1451392</commentuid>
</pvz>
</pvzlist>
</source>
*'''code''' is a — pickup point code of a point in the systemMeaSoft. It is used in an [[API#OrderingCreating Order|orderingcreating order request]] query.*'''clientcode''' is a — pickup point code of a in service partner system.*'''name''' — pickup point name.*'''parentcode''' — pickup point used by a contracting companyparent code. *'''parentname''' — pickup point parent name.*'''town' is a '' — locality with code from [[#City Names List|City Names List]] and region code and name of a point. *'''address''' is a — pickup point`s address. *'''phone''' are — pickup point phone numbersnumber. *'''comment''' — additional info.*'''worktime''' — pickup point working hours.*'''traveldescription''' — pickup point location description.*'''maxweight''' — maximum weight allowed for the pickup point.*'''acceptcash''' — indicates whether cash on delivery is accepted. Possible values: '''YES''', '''NO'''.*'''acceptcard''' — indicates whether bank cards are accepted. Possible values: '''YES''', '''NO'''.*'''acceptfitting''' — indicates whether try-on is additional informationallowed. Possible values: '''YES''', '''NO'''.*'''latitude''' — location latitude.*'''longitude''' — location longitude.*'''uid''' — pickup point unique ID in MeaSoft.*'''count''' — number of response records.*'''totalcount''' — total number of relevant records. == Getting Order Fiscal Data == '''Request Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><receiptdata> <auth extra="8" login="login" pass="pass" /> <orders> <order orderno="123456" /> <order orderno="890111C" /> </orders></receiptdata></source> '''Response Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><receipts count="1"> <receipt> <orderno>123456</orderno> <fdDatetime>2020-06-07 12:14:00</fdDatetime> <fdValue>123</fdValue> <fdNum>456</fdNum> <fnSn>789</fnSn> <kktNum>100</kktNum> <inn>222</inn> <ofdUrl>gate.ofd.ru</ofdUrl> <fullUrl>https://check.ofd.ru/123</fullUrl> <price>12345</price> <lines count="1"> <line> <item>1111764</item> <name>Boots</name> <qty>1</qty> <price>1000</price> <vatRate>20</vatRate> <governmentCode>Z16513LK2</governmentCode> <itemType>1</itemType> </line> </lines> </receipt></receipts></source> 
== The list of types of priority =='''Fields Description'''*'''orderno''' — order number.*'''fdDatetime''' — fiscal receipt issued date and time.*'''fdValue''' — fiscal document tag.*'''fdNum''' — fiscal document (receipt fiscal number).*'''fnSn''' — fiscal memory device number.*'''kktNum''' — cash registers number.*'''inn''' — TIN (taxpayer individual number).*'''ofdUrl''' — fiscal data operator URL address (domain name).*'''price''' — receipt amount.*'''fullUrl''' — receipt URL for online access.*'''lines''' — receipt items.:*'''item''' — item code.:*'''name''' — item name.:*'''qty''' — item quantity.:*'''price''' — item price.:*'''governmentCode''' — CHESTNYI Znak code sequence. It is processed by the 1162 tag algorithm.:*'''vatRate''' — item VAT rate.:*'''itemType''' — item type (goods, delivery, etc.)
== Urgency Kinds List == '''The example of a type of priority query:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
</source>
'''The example of a response from the list of types of priority:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<service>
<code>2</code>
<name>UrgentlyUrgent</name>
</service>
</services>
</source>
== Delivery cost calculation Value-Added Services List ==
'''Request Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8"?><advprices> <auth extra="8" login="login" pass="pass" /> <visible>NO</visible></advprices></source> '''advprices''' — root container. Required. *'''visible''' — indicates whether only the value-added services available in client account are returned. Optional. Possible values: '''Yes''', '''No'''. The example default value is '''No'''.  '''Response Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><advprices> <advprice> <code>1</code> <name>Number of a delivery cost queryfloors in the building</name> <type>int</type> </advprice> <advprice> <code>2</code> <name>Markup coefficient </name> <type>float</type> </advprice> <advprice> <code>3</code> <name>Heavy lift</name> <type>bool</type> </advprice></advprices></source> Параметры:*'''code''' — internal service code.*'''name''' — service name. If in the '''Value-Added Services''' list the '''Name in client account''' column is not empty, the column value is returned.<!--*'''hine''' — value-added service hint for user.-->*'''type''' — service type. Possible values::*'''bool''' — for services with the '''Check box''' input type.:*'''float''' — for services with the '''Float''' input type.:*'''int''' — for services with the '''Integer''' input type. == Delivery Fee Calculation == '''Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<calculator>
<auth extra="8" login="login" pass="pass" /> <order> <pricetype>CUSTOMER</pricetype> <calc townfromsender> <town>Moscow</town> <address>Lenin street, 95</address> <coords lat="Moscow55.621048" lon="37.604456"></coords> </sender> <receiver> <zipcode>125480</zipcode> <town regioncode="78" country="RU" townto>Saint Petersburg</town> <address>Petrovka 38 office 35</address> <pvz>124</pvz> <coords lat="380000030000055.680327" masslon="337.7604456" ></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>
Parameters:*'''townfrom''' is a sending town. *'''townto''' is a receiving town. *'''mass''' is weight in kilograms. *'''service''' is a delivery mode - a number indicating are the entry same as described in the list of [The list of types of priority[#Creating Order|types of priorityCreating Order]].
In authorization login and pass parameters can be omitted, then calculation will be made according to a standard tariff rate of a delivery service with no account of possible differences for a certain customer. <br>The name of a town (not recommended!), or its code from our list, or its 13-digit code of All-Russian Classifier of Addresses (Address Classifier used in Russia), or its 36-digit code of the Federal Information Address System (AOID) can be entered into the fields for a sending town and a receiving town. '''Fields Description'''
*'''pricetype''' — price type. Possible values:
** '''CUSTOMER''' — delivery price for end customer. The default value.
** '''CLIENT''' — courier service price for client.
*'''townfrom''' - sender location.
*'''addressfrom''' — sender address.
*'''zipcode''' — recipient postal code.
*'''townto''' — recipient location.
*'''addressto''' — recipient address.
*'''pvz''' — pickup point code in MeaSoft.
*'''l''' — length in cm. Optional.
*'''w''' — width in cm. Optional.
*'''h''' — height in cm. Optional.
*'''mass''' — weight in kg.
*'''service''' — delivery mode which is an integer specifying an '''Urgency Kinds''' list record. If the parameter is not specified, all available urgency kinds are calculated, with a lot of the <calc> containers in response.
*'''price''' — cash on delivery amount.
*'''inshprice''' — declared value amount.
*'''paytype''' — payment type.
*'''userid''' — user ID, either string or integer type. Virual field, optional. The field is used in the custom delivery rate settings. It defines the rule priority. You can use the field for CMS and CRM to set delivery fee for each customer individually.
*'''groupid''' — user group ID, either string or integer type. Virual field, optional. The field is used in the custom delivery rate settings. It defines the rule priority. You can use the field for CMS and CRM to set delivery fee for each customer group individually.
Cash on delivery amount, declared value amount, and CARD payment type are used in service percent calculations set up in the delivery rate card, on the '''Other''' tab.
In authorization, you can omit the '''The example login''' and '''pass'''. In this case, the fee is calculated using courier service standard delivery rate, without taking into account possible differences for a certain client. Dimensional weight is calculated only if all the dimensions are provided: length, width, heigth. Sender and recipient location possible values:* location name (not recommended).* a code from the '''City Names''' list.* a 13-digit code of All-Russian Classifier of Addresses (Address Classifier used in Russia).* a cost 36-digit code of delivery response:the Federal Information Address System (AOGUID).   '''Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<townto code="56603">Irkutsk city</townto>
<mass>3.7</mass>
<servicename="Express">1</service>
<zone>2</zone>
<price>11631113</price> <mindeliverydays>1</mindeliverydays>
<maxdeliverydays>3</maxdeliverydays>
<mindeliverydate>2020-05-13</mindeliverydate>
<deliveryprice>
<advprice code="1" price="1000">Base</advprice>
<advprice code="4" price="100">Amount percent</advprice>
<advprice code="5" price="63">Declared value percent</advprice>
<advprice code="6" price="-50">Discount on delivery</advprice>
</deliveryprice>
</calc>
</calculator>
Parameters:
*'''townfrom''' is a sending town name which has been — sender location as recognized and assigned to the list of towns cities by the system. **'''code''' attribute is a code from the '''City Names''' list of towns in the system.*'''townto''' is a receiving town name which has been — recipient location as recognized and assigned to the list of towns cities by the system. **'''code''' attribute is a code from the '''City Names''' list of towns in the system.*'''mass''' is weight in kilograms. *'''service''' is a delivery mode - a number indicating the entry in the list of [The list of types of priority|types of priority]*which is an integer specifying an '''serviceUrgency Kinds''' list record. If the parameter is not specified, all available urgency kinds are calculated, with a delivery mode - lot of the number indicating a certain entry <calc> containers in the list of types of priority (See the description on this page)response. *'''zone''' is the number of a tariff the rate zone according to which used in the price has been calculatedcalculation. The tariff shipping rate schedule is selected depending on the tariff zone. Multiplying or decreasing coefficients Coefficients can be applied to the price of delivery in case of shipping cost if the order delivery is not delivered from/or to a regional center. *'''price''' is a calculated delivery price — shipping cost in the currency of a the courier service. We recommend that you use this parameter. *'''maxdeliverydays''' — maximum number of busines days in transit.*'''mindeliverydate''' — closest delivery service`s date considering holidays.*'''deliveryprice''' — contains shipping cost details. '''Note''': the actual server response contains the <code>price-list</code> attribute in the <code>calc</code> tag. It is recommended to be used rather than its homonymous attribute of the parent retained for backward compatibility, use nested <code>price</code> tag instead. == Getting Client Info == '''Request Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><client> <auth extra="8" login="login" pass="pass" /> </client></source> '''client''' — root container. Required. *'''maxdeliverydaysauth''' — authorization. Required. '''Response Example'''<source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><client> <code>1082</code></client></source> *'''code''' is the maximum delivery period in business days— client code.
== The list List of money transference certificates Сash Transfer Certificates ==
'''The example of the query for the list of money transference certificates:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<smalist>
<auth extra="8" login="login" pass="pass" />
<datefrom>20162021-02-10</datefrom> <dateto>20162021-03-10</dateto>
</smalist>
</source>
'''smalist''' is a root container. It is a mandatory elementRequired. *'''auth''' is authorization. It is a mandatory elementRequired. *'''datefrom''' is a date “from”from. It is an optional elementOptional. *'''dateto''' is a date “to”to. It is an optional elementOptional.
If the date range is not specified, then money transference cash transfer certificates for the last month are returned.
'''The example of a response to the query for the list of money transference certificates:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<code>6278</code>
<number>3992</number>
<actdate>20162020-02-12</actdate>
<datepay></datepay>
<dateto>2020-02-12</dateto>
<promiseddatepay></promiseddatepay>
<price>637.00</price>
<pricecorr>113.00</pricecorr>
<rur>13430.00</rur>
<pricekur>570.00</pricekur>
<payno>42423</payno>
<paytype>1</paytype>
<paytypename></paytypename> /not supported yet
<signedcopyreceived>NO</signedcopyreceived>
</sma>
</smalist>
</source>
*'''code''' is a — cash transfer certificate code of a money transference certificate. *'''number''' is the — cash transfer certificate number of a money transference certificate in the systemMeaSoft. *'''actdate''' is a date of a money transference cash transfer certificatecreated.*'''datepay''' is a — date cash transfer certificate paid. *'''dateto''' — cash transfer certificate period end date of .*'''promiseddatepay''' — planned payment on a money transference certificatedate. *'''price''' is a price — cost of courier services. *'''pricecorr''' — adjustment amount.*'''rur''' is a price of an orderamount. *'''pricekur''' is a price of courier deliverycost. *'''priceag''' is agent`s commission— service partner fee. *'''payno''' is a number of a payment ordernumber. *'''paytype''' is a type of payment: 1- non-cash payment, 2 - paying a courier in cash, 3 - paying cash at the office, 4 - wire — payment to bank card.*'''paytypename''' — payment type as string.*'''signedcopyreceived''' — indicates whether cash transfercertificate is returned. Possible values: '''YES''', '''NO'''.
== Detailing of money transference certificates Cash Transfer Certificate Breakdown ==
'''The examples of the query for money transference certificates detailing:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
</source>
'''smadetail''' is a root container. It is a mandatory elementRequired. *'''auth''' is authorization. It is a mandatory elementRequired.*'''code''' is a code of a money transference — cash transfer certificate (See the query [[#List of the list of money transference certificates)Сash Transfer Certificates|code]]. It is a mandatory elementRequired.
'''The example of a response to the query of money transference certificates:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<smadetail count="12">
<specialsma>
<code>42494</code>
<addresscodeordercode>14424</addresscodeordercode> <orderno>11111</orderno> <orderdate>2021-01-01</orderdate> <delivereddate>2021-10-01</delivereddate> <company>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>Cash on delivery2</paytype> <statuspaytypename>Deliveredpaying a courier in cash</status> </specialsma> <specialsma> <code>42495</code> <addresscode>14415</addresscode> <price>323.00</price> <rur>4630.00</rurpaytypename> <pricekurweight>3000.00400</pricekurweight> <priceagdistance>230.000</priceag> <pricecalc>4306.00</pricecalc> <paytype>Cash on delivery</paytypedistance>
<status>Delivered</status>
</specialsma>
</source>
*'''code''' is a — record code of the record. *'''addresscodeordercode''' is a — external order code of the .*'''orderno''' — order cipher.*'''orderdate''' — orderdate.*'''delivereddate''' — delivery date.*'''company''' — recipient. *'''price''' is a price — cost of service courier services.*'''rur''' is the — order amount of the .*'''inshprice''' — ordercost. *'''pricekur''' is a price of courier deliverycost. *'''priceag''' is agent`s commission— service partner fee. *'''pricecalc''' is the amount to be transferred pay to the agentservice partner. *'''paytype''' is a type of payment: 1- non-cash payment, 2 - paying a courier in cash, 3 - paying cash at the office, 4 - wire transfer— payment to bank card.*'''paytypename''' — payment type as string.*'''weight''' — order weight.*'''distance''' — order distance. *'''status''' is a — order status of the order.
== Generation of short links URL Shortener ==
In some casesSometimes, for you might want to use short links to client account. For instance, when using them in sending an SMS, the use of short links to member area may be requiredrecipient.
For doing that it is necessary to To get a short URL, send a query containing request with a full link to which a response containing a hash code URL. Hash value for a short link will be sentis returned.
'''The example of a query for short links generation:Request Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
</source>
'''shortlink''' is a root container. It is a mandatory elementRequired. *'''link''' is a full — long link for generation of which a code should be obtainedto shorten. It is a mandatory elementRequired. If '''short''' attribute equals value is '''1''', then a response won`t contain XML but the return contains only a hash code, no XML.
'''The example of a response to the query for short links generation:Response Example'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
</source>
*'''hash''' is a — URL hash code of a short link.
Further on the following link to member area can be usedUse it as client account URL:
<nowiki>https://home.courierexe.ru/35AF350C or curie.ru/35AF350C</nowiki> '''Note'''. URL shortener is only for MeaSoft company sites. == Recipient Rating Check == The check is available only for the Maximum personal account plan. '''Request Example''' <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> '''Response Example''' <source lang="xml"><?xml version="1.0" encoding="UTF-8" ?><mcheck> <phones> <phone rate="90">89161147992</phone> </phones></mcheck></source>
98
правок

Навигация