XML format technical specification
For specialists integrating an ERP system with Ordizi
Version 1.0
Document scope: This document describes the export of reference data and operational data from an ERP system to Ordizi. Importing orders and other documents from Ordizi back into the ERP system is not covered in this document.
Contents
- Document purpose
- General export workflow
- Exchange package creation procedure
- General XML requirements
- Data types and empty values
- List of export files
- Detailed file descriptions
1. Document purpose
This document is intended for specialists exporting data from 1C or another ERP system to Ordizi.
The integration task is to generate a set of XML files with the required structure in the exchange folder. The Ordizi exchange service receives these files, processes the data, and transfers it to the sales representatives’ mobile applications.
The exchange service provides synchronization between the ERP system and mobile devices. The Ordizi mobile application is designed for sales representatives and uses the exported reference and operational data.
2. General export workflow
- The ERP system generates XML files containing reference and operational data.
- After all XML files have been completely written, the ERP system creates or overwrites
update.txt. - The Ordizi exchange service receives the signal that the package is complete, reads the prepared files, and updates the data for mobile users.
3. Exchange package creation procedure
3.1. Initial export
During the initial export, a complete package of all required XML files containing the current data must be generated. Optional files are included if the corresponding features are used in the integration.
Each XML file must contain the complete current set of records for its data type.
3.2. Subsequent exports
In subsequent export sessions, only files whose data has changed need to be transferred. However, each transferred file must still contain the complete current set of records, not only newly added or modified records.
If an object was previously present in a file but is missing from its new version, the object will be removed from the current Ordizi dataset. If a file is not transferred, the previously imported data of that type remains unchanged.
3.3. Export completion control: update.txt
The update.txt file is used as an export completion marker. It prevents the exchange service from reading XML files while the ERP system is still generating them. Without this marker, the service could read a partially written file and process incomplete data.
The workflow is as follows: the ERP system generates and fully writes all XML files for the current package, closes them, and only then creates or overwrites update.txt. For the Ordizi service, this indicates that the package is complete and ready for processing.
The contents of update.txt must change with every export. If the value remains unchanged, the new package will not be processed. It is recommended to write the current date and time with second-level precision.
- File name:
update.txt. - The file is created or overwritten last, after all XML files have been fully written.
- The value must differ from the value used in the previous export.
2026-07-13 12:15:01
4. General XML requirements
File names and their contents must comply with this documentation. Files with unknown names or invalid structure will be ignored by the exchange service.
- XML file encoding —
UTF-8. - Root element —
<extdata>. The element name is mandatory and fixed. If the root element has a different name, the file will not be processed. - The
nameattribute should preferably match the file name without the extension, for example<extdata name="product">. It identifies the data type.
4.1.
Internal structure
Inside the root element, there are two functional blocks:
<s>(Schema) — Data schema definition. This block defines the field names and their data types in the order in which the values appear in the data block.<d>(Data) — Data container.<r>(Row) — A single data row inside the<d>block.<f>(Field) — The value of a specific field.
Important: the order of the <f> tags within each <r> row must strictly match the order of the fields specified in the <s> schema block.
4.2. General structure example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="price_type">
<s>
<f name="id" type="string"/>
<f name="name" type="string"/>
</s>
<d>
<r>
<f>00000001</f>
<f>Retail</f>
</r>
<r>
<f>00000002</f>
<f>Wholesale</f>
</r>
</d>
</extdata>
5. Data types and empty values
| Type | Description |
|---|---|
string | Text value. |
integer | Integer value. |
decimal | Numeric value. A period is used as the decimal separator. |
datetime | Date and time in YYYY-MM-DDTHH:MM:SS format, for example 2026-01-08T00:00:00. |
An empty field value is represented as <f/> or <f></f>. The <f> element must remain in the row so that the order of values matches the schema.
6. List of export files
Required files form the basic dataset and must be included in the initial export. Optional files are included if the corresponding Ordizi features are used.
| File | Status | Purpose |
|---|---|---|
agent.xml | Required | List of sales representatives (users) and their authentication settings. |
client_agent.xml | Required | Assignment of customers to specific sales representatives. |
product.xml | Required | List of products. |
product_unit.xml | Required | Product units of measure and conversion factors. |
price_type.xml | Required | Product price types. |
product_price.xml | Required | Product prices. |
product_category.xml | Optional | Hierarchical or flat product category structure. |
stock.xml | Optional | Current product stock levels by warehouse. |
client.xml | Required | List of customers and sales outlets. |
client_category.xml | Optional | Additional classification (segmentation) of the customer base. |
payment_type.xml | Required | List of available payment methods that can be selected when creating an order. |
route.xml | Optional | Schedule of visits to sales outlets. |
debt.xml | Optional | Outstanding balances with details for each unpaid document. |
7. Detailed file descriptions
7.1. agent.xml — Sales representatives
Status: Required
The file contains sales representative authentication data and mobile application settings.
Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier of the sales representative in the ERP system. |
user_login | string | Sales representative login used for synchronization with the exchange server. |
user_pass | string | Sales representative password. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="agent">
<s>
<f name="id" type="string"/>
<f name="user_login" type="string"/>
<f name="user_pass" type="string"/>
</s>
<d>
<r>
<f>00000255</f>
<f>smith</f>
<f>1234</f>
</r>
</d>
</extdata>
7.2. client_agent.xml — Assigning sales representatives to customers
Status: Required
The file defines the assignment of customers to specific sales representatives (agents). Based on this data, the customer list is generated in each agent’s mobile application.
Fields
| Field | Type | Description |
|---|---|---|
client_id | string | Unique customer identifier from the client.xml file. |
agent_id | string | Unique sales representative identifier from the agent.xml file. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="client_agent">
<s>
<f name="client_id" type="string"/>
<f name="agent_id" type="string"/>
</s>
<d>
<r>
<f>00050000</f>
<f>00000255</f>
</r>
</d>
</extdata>
7.3. product.xml — Product catalog
Status: Required
The file contains the list of products used to build the product catalog in the mobile application.
Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique product identifier in the ERP system. |
name | string | Product name. |
category_id | string | Unique product category identifier from the product_category.xml file. |
base_unit_id | string | Unique identifier of the product’s base unit from the product_unit.xml file. |
main_unit_id | string | Unique identifier of the product’s main unit. Used as the default unit when working with the product in documents. |
sort | integer | Product sort priority in lists. This value takes precedence over alphabetical sorting by name. |
sku | string | SKU, internal code, or product item number used for quick search or identification in lists. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="product">
<s>
<f name="id" type="string"/>
<f name="name" type="string"/>
<f name="category_id" type="string"/>
<f name="base_unit_id" type="string"/>
<f name="main_unit_id" type="string"/>
<f name="sort" type="integer"/>
<f name="sku" type="string"/>
</s>
<d>
<r>
<f>00001001</f>
<f>Enchanted Golden Apple 1kg</f>
<f>00000110</f>
<f>00000001</f>
<f>00000002</f>
<f>0</f>
<f>BR-1001</f>
</r>
</d>
</extdata>
7.4. product_unit.xml — Product units of measure
Status: Required
The file contains a list of all units of measure for each product and their conversion factors relative to the base unit.
Fields
| Field | Type | Description |
|---|---|---|
unit_id | string | Unique unit of measure identifier in the ERP system. |
product_id | string | Unique product identifier from the product.xml file. |
name | string | Unit of measure name (for example: pcs., pkg., pallet). |
coefficient | decimal | Conversion factor of the unit relative to the product’s base unit. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="product_unit">
<s>
<f name="unit_id" type="string"/>
<f name="product_id" type="string"/>
<f name="name" type="string"/>
<f name="coefficient" type="decimal"/>
</s>
<d>
<r>
<f>00000001</f>
<f>00001001</f>
<f>pc.</f>
<f>1</f>
</r>
</d>
</extdata>
7.5. price_type.xml — Типы цен товара
Status: Required
List of available product price types. When creating an order, the application uses the price type specified in the customer record by default, with the option to change it manually in the document header.
Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique price type identifier in the ERP system. |
name | string | Price type name. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="price_type">
<s>
<f name="id" type="string"/>
<f name="name" type="string"/>
</s>
<d>
<r>
<f>00000001</f>
<f>Retail</f>
</r>
</d>
</extdata>
7.6. product_price.xml — Product prices
Status: Required
The file contains product prices by price type. The price is specified per base unit of the product.
Fields
| Field | Type | Description |
|---|---|---|
price_id | string | Unique price type identifier from the price_type.xml file. |
product_id | string | Unique product identifier from the product.xml file. |
price | decimal | Product price for this price type per base unit. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="product_price">
<s>
<f name="price_id" type="string"/>
<f name="product_id" type="string"/>
<f name="price" type="decimal"/>
</s>
<d>
<r>
<f>00000001</f>
<f>00001001</f>
<f>50.0000</f>
</r>
</d>
</extdata>
7.7. product_category.xml — Product categories
Status: Optional
The file contains a hierarchical or flat product category structure. The data is used to group products when filtering by category. For a flat structure, the parent_id values in all rows are left empty.
Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique product category identifier in the ERP system. |
name | string | Product group name. |
parent_id | string | Unique identifier of the parent category from the same file. If the field is empty, the category is a root category. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="product_category">
<s>
<f name="id" type="string"/>
<f name="name" type="string"/>
<f name="parent_id" type="string"/>
</s>
<d>
<r>
<f>00000100</f>
<f>Grocery</f>
<f></f>
</r>
<r>
<f>00000110</f>
<f>Bread and Flour</f>
<f>00000100</f>
</r>
</d>
</extdata>
7.8. stock.xml — Stock levels
Status: Optional
The file contains information about current product quantities in warehouses. The data is used to display stock levels in the product catalog. Product quantities are always specified in the base units of measure defined by the base_unit_id field in the product.xml file.
Fields
| Field | Type | Description |
|---|---|---|
product_id | string | Unique product identifier from the product.xml file. |
stock_qty | decimal | Actual product quantity in stock, expressed in base units. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="stock">
<s>
<f name="product_id" type="string"/>
<f name="stock_qty" type="decimal"/>
</s>
<d>
<r>
<f>00001001</f>
<f>25.00</f>
</r>
</d>
</extdata>
7.9. client.xml — Customer list
Status: Required
The file contains a list of customers and sales outlets with all parameters required for servicing them by a sales representative.
Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique customer identifier in the ERP system. |
name | string | Sales outlet name. |
address | string | Customer’s physical address. |
category_id | string | Unique customer category identifier from the client_category.xml file. |
price_id | string | Unique price type identifier from the price_type.xml file. This parameter determines which prices from product_price.xml are displayed for the customer by default. |
payment_id | string | Unique payment type identifier from the payment_type.xml file. This parameter determines which payment type is displayed for the customer by default. |
comment | string | Additional instructions, notes, or comments for the sales representative. Maximum length: 200 characters. |
contact | string | Name or full name of the contact person at the sales outlet. |
phone | string | Phone number for contacting the sales outlet’s contact person. |
gps_lat | string | Latitude coordinate used to display the sales outlet location on the map and verify GPS coordinates during visits. |
gps_lon | string | Longitude coordinate used to display the sales outlet location on the map and verify GPS coordinates during visits. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="client">
<s>
<f name="id" type="string"/>
<f name="name" type="string"/>
<f name="address" type="string"/>
<f name="category_id" type="string"/>
<f name="price_id" type="string"/>
<f name="payment_id" type="string"/>
<f name="comment" type="string"/>
<f name="contact" type="string"/>
<f name="phone" type="string"/>
<f name="gps_lat" type="string"/>
<f name="gps_lon" type="string"/>
</s>
<d>
<r>
<f>00050000</f>
<f>Petrov Store</f>
<f>37 Mira Ave.</f>
<f>00000003</f>
<f>00000002</f>
<f>00000002</f>
<f>Entry pass required</f>
<f>Dmitry</f>
<f>8-924-174-82-73</f>
<f>55,6948</f>
<f>37,3532</f>
</r>
</d>
</extdata>
7.10. client_category.xml — Customer categories
Status: Optional
The file is used to filter the customer list in the mobile application. It allows the sales representative to display only customers belonging to a selected category, for example, a specific area.
Note: The identifier from this file is specified in the category_id field of the client.xml file.
Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique customer category identifier in the ERP system. |
name | string | Category name. |
Example
?xml version="1.0" encoding="UTF-8"?>
<extdata name="client_category">
<s>
<f name="id" type="string"/>
<f name="name" type="string"/>
</s>
<d>
<r>
<f>00000001</f>
<f>Arbat</f>
</r>
</d>
</extdata>
7.11. payment_type.xml — Payment types
Status: Required
The reference file contains a list of available payment methods, such as cash or bank transfer. These values are used when creating an order in the mobile application to specify the payment terms.
Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique payment type identifier in the ERP system. |
name | string | Payment method name displayed in the application interface. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="payment_type">
<s>
<f name="id" type="string"/>
<f name="name" type="string"/>
</s>
<d>
<r>
<f>00000001</f>
<f>Bank transfer</f>
</r>
</d>
</extdata>
7.12. route.xml — Visit schedule
Status: Optional
The file contains data about planned visits to sales outlets. In the mobile application, this data is used to filter the customer list by route for the selected day.
Fields
| Field | Type | Description |
|---|---|---|
agent_id | string | Unique sales representative identifier from the agent.xml file. |
client_id | string | Unique sales outlet identifier from the client.xml file. |
visit_date | datetime | Visit date in YYYY-MM-DDTHH:MM:SS format. |
sort | integer | Determines the order in which customers are displayed in the list when route filtering is enabled. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="route">
<s>
<f name="agent_id" type="string"/>
<f name="client_id" type="string"/>
<f name="visit_date" type="datetime"/>
<f name="sort" type="integer"/>
</s>
<d>
<r>
<f>00000255</f>
<f>00050000</f>
<f>2026-01-08T00:00:00</f>
<f>999</f>
</r>
</d>
</extdata>
7.13. debt.xml — Outstanding debt
Status: Optional
The file contains information about unpaid documents. In addition to document-level details, the data is used to display the customer’s total outstanding balance in the customer record, during a visit, and when creating an order. The mobile application also supports accepting cash payments toward a specific document from this list.
Fields
| Field | Type | Description |
|---|---|---|
client_id | string | Unique customer identifier from the client.xml file. |
doc_number | string | Number of the source document (delivery note, invoice). |
doc_date | datetime | Date and time when the document was issued, in YYYY-MM-DDTHH:MM:SS format. |
doc_name | string | Full document name displayed in the list, for example “Sale of goods…”. |
doc_sum | decimal | Original amount of the document. |
debt_sum | decimal | Current outstanding balance for this document. |
paid_sum | decimal | Amount previously paid for this document. An empty value is allowed and is treated as 0. |
Example
<?xml version="1.0" encoding="UTF-8"?>
<extdata name="debt">
<s>
<f name="client_id" type="string"/>
<f name="doc_number" type="string"/>
<f name="doc_date" type="datetime"/>
<f name="doc_name" type="string"/>
<f name="doc_sum" type="decimal"/>
<f name="debt_sum" type="decimal"/>
<f name="paid_sum" type="decimal"/>
</s>
<d>
<r>
<f>00050000</f>
<f>INV-25-0100</f>
<f>2025-07-27T16:23:00</f>
<f>Sale of goods INV-25-0100 dated 27.07.2025 16:23:00</f>
<f>16376.87</f>
<f>11348.29</f>
<f>5028.58</f>
</r>
</d>
</extdata>