Orders
These standard formats are available for orders: Workist XML (default), SAP IDoc ORDERS05, openTRANS 2.1, cXML OrderRequest and ANSI X12 850. Workist builds formats such as EDIFACT, EDX, proALPHA or Excel on request, see Custom formats on request.
All examples on this page were generated with the Workist serializers from the same sample data. General rules on file names, date and number formats are in the overview.
Workist XML
File extension: .xml
File name: <ID>.xml
The default format for orders. The file has four sections:
General: order header dataInvoicing: invoice addressShipping: delivery address and delivery datesLine: one element per line item
Which elements appear depends on your channel's header and line item fields. Workist omits empty fields. Dates have the format YYYY-MM-DD. Decimal numbers use a decimal comma without trailing zeros by default (1487,5).
Full example
<?xml version="1.0" encoding="utf-8"?>
<Order_v1>
<General>
<Sell_to_Customer>
<Customer_Number>CUST-12345</Customer_Number>
<Name>Acme Corporation</Name>
<Contact_Number>CP-001</Contact_Number>
<Contact>Max Mustermann</Contact>
<Contact_Email>max@acme.de</Contact_Email>
<Contact_Phone>+49 89 12345678</Contact_Phone>
<Country>DE</Country>
<Country_Subdivision>BY</Country_Subdivision>
<Customer_Type>regular</Customer_Type>
</Sell_to_Customer>
<Dispatch_Contact>
<Contact_Number>CP-007</Contact_Number>
<Contact>Erika Versand</Contact>
<Contact_Email>shipping@acme.de</Contact_Email>
<Contact_Phone>+49 89 12345679</Contact_Phone>
</Dispatch_Contact>
<Order_Date>2025-03-15</Order_Date>
<VAT_Registration_Number>DE123456789</VAT_Registration_Number>
<Customer_Order_Number>PO-2025-0001</Customer_Order_Number>
<Quote_Reference_Number>QT-2025-100</Quote_Reference_Number>
<Project_Number>PRJ-500</Project_Number>
<Distribution_Channel>10</Distribution_Channel>
<Order_Type>standard</Order_Type>
<Delivery_Terms>DDP</Delivery_Terms>
<Shipping_Terms>express</Shipping_Terms>
<Payment_Terms>net 30</Payment_Terms>
<Total_Amount_Net>1250</Total_Amount_Net>
<Total_Amount>1487,5</Total_Amount>
<Framework_Contract_Number>FC-2025-200</Framework_Contract_Number>
<Goods_Receiving_Time>08:00-16:00</Goods_Receiving_Time>
<Info_Text>Please deliver to loading dock B. Handle with care - fragile items, do</Info_Text>
<Info_Text>not stack pallets.</Info_Text>
<Commission_Number>COM-999</Commission_Number>
<Incoterm>DAP</Incoterm>
<Delivery_Unload_Method>forklift</Delivery_Unload_Method>
<External_Document_Link>9f8c2b7e-4d1a-4c3e-9b6f-2a7d5e1c0b34.pdf</External_Document_Link>
<Workist_URL>https://wb.workist.com/orders/3f2b8c1e-5a7d-4e19-8c2f-6b0d9a4e7c15</Workist_URL>
<Received_By>max@acme.de</Received_By>
<ERP_Locked>false</ERP_Locked>
<Additional_Files>
<Additional_File>
<File_Name>9f8c2b7e-4d1a-4c3e-9b6f-2a7d5e1c0b34_file_1.pdf</File_Name>
<Classification>DELIVERY_NOTE</Classification>
<File_Name_Original>delivery-schedule.pdf</File_Name_Original>
</Additional_File>
</Additional_Files>
</General>
<Invoicing>
<Bill_to_Customer>
<Code>BILL-001</Code>
<Name>Accounts Payable</Name>
<Additional_Name_Info>Acme Corporation GmbH</Additional_Name_Info>
<Address>Billing Strasse 10</Address>
<Additional_Address_Info>Building C, 3rd Floor</Additional_Address_Info>
<City>Munich</City>
<Post_Code>80331</Post_Code>
<Country>DE</Country>
<Country_Subdivision>BY</Country_Subdivision>
<Phone>+49 89 11111111</Phone>
<Email>billing@acme.de</Email>
</Bill_to_Customer>
</Invoicing>
<Shipping>
<Ship_to_Customer>
<Code>SHIP-002</Code>
<Name>Warehouse Team</Name>
<Additional_Name_Info>Acme Corporation GmbH</Additional_Name_Info>
<Address>Lager Strasse 5</Address>
<Additional_Address_Info>Gate 3</Additional_Address_Info>
<City>Hamburg</City>
<Post_Code>20095</Post_Code>
<Country>DE</Country>
<Country_Subdivision>HH</Country_Subdivision>
<Phone>+49 40 22222222</Phone>
<Email>warehouse@acme.de</Email>
</Ship_to_Customer>
<Expected_Delivery_Date>2025-04-01</Expected_Delivery_Date>
<Expected_Delivery_End_Date>2025-04-05</Expected_Delivery_End_Date>
<Expected_Delivery_Time_From>08:00</Expected_Delivery_Time_From>
<Expected_Delivery_Time_Until>16:00</Expected_Delivery_Time_Until>
<Goods_Issue_Date>2025-03-28</Goods_Issue_Date>
</Shipping>
<Line>
<Batch_Number>LOT-2025-A</Batch_Number>
<Description>Industrial Sensor Module Type A</Description>
<Unit_of_Measure>PCE</Unit_of_Measure>
<Quantity>100</Quantity>
<Unit_Price>12,5</Unit_Price>
<Price_Unit>1</Price_Unit>
<Total_Price>1250</Total_Price>
<Line_Discount_Percent>5</Line_Discount_Percent>
<Line_Discount_Amount>62,5</Line_Discount_Amount>
<Item_Variant>blue</Item_Variant>
<Common_Item_Number>ART-001-A</Common_Item_Number>
<Common_Item_Number_2>ART-001-A-ALT</Common_Item_Number_2>
<Common_Item_Number_3>4006381333931</Common_Item_Number_3>
<Customer_Item_Number>CUST-ART-555</Customer_Item_Number>
<Item_Number_Confidence>0,95</Item_Number_Confidence>
<Expected_Delivery_Date>2025-04-01</Expected_Delivery_Date>
<Expected_Delivery_Time_From>08:00</Expected_Delivery_Time_From>
<Expected_Delivery_Time_Until>12:00</Expected_Delivery_Time_Until>
<Goods_Issue_Date>2025-03-28</Goods_Issue_Date>
<Commission_Number>COM-LINE-01</Commission_Number>
<Sales_Organisation>1000</Sales_Organisation>
<Pos>10</Pos>
<Framework_Contract_Number>FC-2025-200</Framework_Contract_Number>
<Quote_Reference_Number>QT-2025-100</Quote_Reference_Number>
<Container_Quantity>10</Container_Quantity>
<Container_Type>box</Container_Type>
<Order_Number>SUB-ORD-001</Order_Number>
<Sell_to_Customer>
<Customer_Number>CUST-67890</Customer_Number>
<Name>Acme Branch North</Name>
<Customer_Address>
<Name>Acme Branch North</Name>
<Address>Nordring 7</Address>
<City>Hamburg</City>
<Post_Code>22303</Post_Code>
<Country>DE</Country>
</Customer_Address>
</Sell_to_Customer>
<Currency>EUR</Currency>
<Article_Comments>Pack individually</Article_Comments>
<Article_Markings>A1</Article_Markings>
<Article_Markings>B2</Article_Markings>
</Line>
</Order_v1>
General fields (General)
| Element | Type | Description |
|---|---|---|
Sell_to_Customer | Block | The ordering customer, filled from your customer master data |
Sell_to_Customer/Customer_Number | Text | Customer number |
Sell_to_Customer/Name | Text | Customer name |
Sell_to_Customer/Contact_Number | Text | Number of the customer's contact person |
Sell_to_Customer/Contact | Text | Name of the contact person |
Sell_to_Customer/Contact_Email | Text | Contact person's email address |
Sell_to_Customer/Contact_Phone | Text | Contact person's phone number |
Sell_to_Customer/Country | Text | Country code of the customer address (e.g. DE) |
Sell_to_Customer/Country_Subdivision | Text | State or region code of the customer address (e.g. BY) |
Sell_to_Customer/Customer_Type | Text | Customer type from your master data |
Dispatch_Contact | Block | Shipping contact at the customer. Only present if at least one value is filled |
Dispatch_Contact/Contact_Number | Text | Number of the shipping contact |
Dispatch_Contact/Contact | Text | Name of the shipping contact |
Dispatch_Contact/Contact_Email | Text | Shipping contact's email address |
Dispatch_Contact/Contact_Phone | Text | Shipping contact's phone number |
Order_Date | Date | Order date |
VAT_Registration_Number | Text | Customer's VAT ID |
Customer_Order_Number | Text | Customer's order number |
Quote_Reference_Number | Text | Number of the quote the order refers to |
Project_Number | Text | Project number |
Distribution_Channel | Text | Distribution channel or sales organisation |
Order_Type | Text | Order type |
Delivery_Terms | Text | Delivery terms |
Shipping_Terms | Text | Shipping terms |
Payment_Terms | Text | Payment terms |
Total_Amount_Net | Decimal | Net total amount |
Total_Amount | Decimal | Gross total amount |
Framework_Contract_Number | Text | Framework contract number |
Goods_Receiving_Time | Text | Goods receiving hours as stated on the order |
Info_Text | Text | Free text. Workist splits it into chunks of 70 characters, one element per chunk, at most 5 elements; anything beyond is dropped |
Commission_Number | Text | Commission number |
Incoterm | Text | Incoterm (e.g. DAP) |
Delivery_Unload_Method | Text | Unloading method at the delivery location |
External_Document_Link | Text | File name of the original document Workist delivers next to the XML file (<ID>.pdf). Not a link |
Workist_URL | Text | Link to the document in the Workbench |
Received_By | Text | Sender address (From) of the email in which the document reached Workist |
ERP_Locked | Boolean | true if a user marked the order as locked for downstream processing in the Workbench, otherwise false |
Additional_Files | Block | Further attachments of the same email that Workist delivers with the order. Only present if additional files are enabled and matching attachments exist |
Additional_Files/Additional_File | Block | One element per file |
Additional_Files/Additional_File/File_Name | Text | File name under which Workist delivers the file (<ID>_file_<n>.<extension>) |
Additional_Files/Additional_File/Classification | Text | Document type of the attachment: ORDER, ORDER_CONFIRMATION, REQUEST_FOR_QUOTATION, INVOICE, DELIVERY_NOTE, OFFER or OTHER |
Additional_Files/Additional_File/File_Name_Original | Text | Original file name of the attachment |
Invoice address, delivery address and delivery dates
Invoicing and Shipping only appear if at least one of their fields is filled.
| Element | Type | Description |
|---|---|---|
Invoicing/Bill_to_Customer | Block | Invoice address; fields see Address fields |
Shipping/Ship_to_Customer | Block | Delivery address; fields see Address fields |
Shipping/Expected_Delivery_Date | Date | Requested delivery date |
Shipping/Expected_Delivery_End_Date | Date | End of the delivery period |
Shipping/Expected_Delivery_Time_From | Text | Start of the delivery time window (HH:MM) |
Shipping/Expected_Delivery_Time_Until | Text | End of the delivery time window (HH:MM) |
Shipping/Goods_Issue_Date | Date | Goods issue date |
Address fields
Bill_to_Customer, Ship_to_Customer and Customer_Address (in Line for collective orders) share this structure. An address block only appears if a name, company, street or city is filled.
| Element | Type | Description |
|---|---|---|
Code | Text | Address number from your master data |
Name | Text | Recipient name; the company name if no name is filled |
Additional_Name_Info | Text | Company name; only present if a name is filled as well |
Address | Text | Street and house number. Always present, possibly empty |
Additional_Address_Info | Text | Additional address line (e.g. building, gate) |
City | Text | City. Always present, possibly empty |
Post_Code | Text | Postcode. Always present, possibly empty |
Country | Text | Country code (e.g. DE). Always present, possibly empty |
Country_Subdivision | Text | State or region code (e.g. BY) |
Phone | Text | Phone number |
Email | Text | Email address |
Line item fields (Line)
Workist writes one Line element per line item, provided at least one line item field is configured. The article numbers come from your article master data.
| Element | Type | Description |
|---|---|---|
Batch_Number | Text | Batch number |
Description | Text | Article description |
Unit_of_Measure | Text | Unit of measure |
Quantity | Decimal | Ordered quantity |
Unit_Price | Decimal | Unit price |
Price_Unit | Decimal | Price unit: number of units the unit price refers to (e.g. 1 or 100) |
Total_Price | Decimal | Line total |
Line_Discount_Percent | Text | Discount in percent, as stored in Workist |
Line_Discount_Amount | Text | Discount amount, as stored in Workist |
Item_Variant | Text | Article variant |
Common_Item_Number | Text | Your article number (article_id1 from your article master data) |
Common_Item_Number_2 | Text | Second article number (article_id2) |
Common_Item_Number_3 | Text | Third article number (article_id3, e.g. EAN) |
Customer_Item_Number | Text | The customer's article number |
Item_Number_Confidence | Decimal | Confidence of the automatic article match between 0 and 1, always with a decimal comma (e.g. 0,95) |
Expected_Delivery_Date | Date | Delivery date of the line |
Expected_Delivery_Time_From | Text | Start of the line's delivery time window (HH:MM) |
Expected_Delivery_Time_Until | Text | End of the line's delivery time window (HH:MM) |
Goods_Issue_Date | Date | Goods issue date of the line |
Commission_Number | Text | Commission number of the line |
Sales_Organisation | Text | Sales organisation |
Pos | Text | Line number |
Framework_Contract_Number | Text | Framework contract number of the line |
Quote_Reference_Number | Text | Quote number of the line |
Container_Quantity | Text | Converted quantity (e.g. in containers), as stored in Workist |
Container_Type | Text | Converted unit (e.g. box) |
Order_Number | Text | Order number of the line (e.g. for collective orders) |
Sell_to_Customer | Block | Customer of this line in collective orders |
Sell_to_Customer/Customer_Number | Text | Customer number |
Sell_to_Customer/Name | Text | Customer name |
Sell_to_Customer/Customer_Address | Block | Address of this customer; fields see Address fields |
Currency | Text | Currency of the line (e.g. EUR) |
Article_Comments | Text | Comment on the line |
Article_Markings | Text | Marking of the line; one element per marking |
Optional elements
You switch some elements on in the channel configuration (see Exported processed documents):
External_Document_Link: Include reference to the analyzed file (on by default). The element contains the file name of the original document Workist stores next to the XML file.Workist_URL: Include link to the Workbench.Received_By: Include email sender information. If the document did not arrive by email, the element is missing.ERP_Locked: Entererp_lockedunder Additional header data fields. Users can then flag an order in the Workbench with Mark as locked for downstream processing.Additional_Files: In the upload configuration, turn on Additional Files and pick the document types under Additional File Types. Workist then delivers matching attachments of the same email together with the order and lists them here.
SAP IDoc ORDERS05
File extension: .xml
File name: <IDoc number>.xml
The IDoc format for direct import into SAP. It consists of a control record (EDI_DC40) and data segments for header, dates, partners and line items. The same format exists for requests for quotation with message type REQOTE.
Full example
In this example the delivery and invoice addresses have an address number, so their address fields stay empty.
<?xml version="1.0" encoding="utf-8"?>
<ORDERS05>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<MANDT>050</MANDT>
<DOCNUM>0000000000004711</DOCNUM>
<STATUS>30</STATUS>
<DIRECT>2</DIRECT>
<IDOCTYP>ORDERS05</IDOCTYP>
<MESTYP>ORDERS</MESTYP>
<STD>0</STD>
<STDMES>ORDERS</STDMES>
<SNDPOR>WORKIST</SNDPOR>
<SNDPRT>LS</SNDPRT>
<SNDPRN>WORKIST</SNDPRN>
<RCVPOR>XML_WKI</RCVPOR>
<RCVPRT>LS</RCVPRT>
<RCVPRN>SUPPLIER</RCVPRN>
<CREDAT>20250315</CREDAT>
<CRETIM>143025</CRETIM>
</EDI_DC40>
<E1EDK01 SEGMENT="1">
<ACTION>000</ACTION>
<BELNR>PO-2025-0001</BELNR>
<RECIPNT_NO>SUPPLIER</RECIPNT_NO>
</E1EDK01>
<E1EDK03 SEGMENT="1">
<IDDAT>012</IDDAT>
<DATUM>20250315</DATUM>
</E1EDK03>
<E1EDK03 SEGMENT="1">
<IDDAT>002</IDDAT>
<DATUM>20250401</DATUM>
</E1EDK03>
<E1EDKA1 SEGMENT="1">
<PARVW>AG</PARVW>
<PARTN>CUST-12345</PARTN>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>Z1</PARVW>
<PARTN>CP-001</PARTN>
<NAME1>Max Mustermann</NAME1>
<TELF1>+49 89 12345678</TELF1>
<TELBX>max@acme.de</TELBX>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>WE</PARVW>
<PARTN>SHIP-002</PARTN>
<NAME1 />
<NAME2 />
<STRAS />
<ORT01 />
<PSTLZ />
<LAND1 />
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>RE</PARVW>
<PARTN>BILL-001</PARTN>
<NAME1 />
<NAME2 />
<STRAS />
<ORT01 />
<PSTLZ />
<LAND1 />
</E1EDKA1>
<E1EDK02 SEGMENT="1">
<QUALF>001</QUALF>
<BELNR>PO-2025-0001</BELNR>
<DATUM>20250315</DATUM>
</E1EDK02>
<E1EDP01 SEGMENT="1">
<POSEX>0</POSEX>
<ACTION>001</ACTION>
<MENGE>100</MENGE>
<MENEE>PCE</MENEE>
<E1EDP03 SEGMENT="1">
<IDDAT>002</IDDAT>
<DATUM>20250401</DATUM>
<UZEIT>000000</UZEIT>
</E1EDP03>
<E1EDP19 SEGMENT="1">
<QUALF>002</QUALF>
<IDTNR>ART-001-A</IDTNR>
</E1EDP19>
</E1EDP01>
</IDOC>
</ORDERS05>
Segments
| Element | Content |
|---|---|
EDI_DC40 | Control record. TABNAM, STATUS (30), DIRECT (2), IDOCTYP (ORDERS05), STD (0), MESTYP and STDMES (ORDERS) are fixed. DOCNUM is a sequential 16-digit IDoc number, CREDAT/CRETIM the creation time (UTC). Workist sets MANDT, SNDPOR, SNDPRT, SNDPRN, RCVPOR, RCVPRT and RCVPRN for you (see below). |
E1EDK01 | Document header: ACTION = 000, BELNR = customer's order number (max. 35 characters), RECIPNT_NO = recipient number (configurable, max. 10). |
E1EDK03 (IDDAT = 012) | IDDAT = 012, DATUM = order date (YYYYMMDD). Required. |
E1EDK03 (IDDAT = 002) | IDDAT = 002, DATUM = requested delivery date (YYYYMMDD). Required. |
E1EDKA1 (PARVW = AG) | Sold-to party: PARVW = AG, PARTN = customer number (max. 17 characters). |
E1EDKA1 (PARVW = Z1) | Contact person: PARVW = Z1, PARTN = number (max. 30), NAME1 = name (max. 35), TELF1 = phone (max. 25), TELBX = email address (max. 25, longer addresses are cut off). Only present if at least one value is filled. |
E1EDKA1 (PARVW = WE) | Ship-to party, always present: PARVW = WE, PARTN = address number of the delivery address. NAME1 = company, NAME2 = name, STRAS = street, ORT01 = city (max. 35 characters each), PSTLZ = postcode (max. 9), LAND1 = country code (max. 3). If an address number exists, these fields stay empty. |
E1EDKA1 (PARVW = RE) | Bill-to party: PARVW = RE, PARTN = address number of the invoice address. NAME1 = company, NAME2 = name, STRAS = street, ORT01 = city (max. 35 characters each), PSTLZ = postcode (max. 9), LAND1 = country code (max. 3). If an address number exists, these fields stay empty. Only present if the invoice address is one of your channel's header fields. |
E1EDK02 (QUALF = 001) | QUALF = 001, BELNR = order number, DATUM = order date. |
E1EDP01 | One per line: POSEX = running number starting at 0 (not the order's line number), ACTION = 001, MENGE = quantity (max. 15 characters), MENEE = unit of measure as stored in Workist. |
E1EDP03 (IDDAT = 002) | Delivery date of the line: IDDAT = 002, DATUM (YYYYMMDD), UZEIT = 000000. Only if the line has a delivery date. |
E1EDP19 (QUALF = 002) | QUALF = 002, IDTNR = your article number (max. 35 characters). |
Settings
Workist sets these values during setup to match your SAP system. Longer values are cut off.
| Field | Default | Max. characters |
|---|---|---|
MANDT | 050 | – |
SNDPOR | WORKIST | 10 |
SNDPRT | LS | 2 |
SNDPRN | WORKIST | 10 |
RCVPOR | XML_WKI | 10 |
RCVPRT | LS | 2 |
RCVPRN | SUPPLIER | 10 |
RECIPNT_NO | SUPPLIER | 10 |
Notes
- Order date and delivery date are required. If either is missing, Workist creates no file.
- Per line the IDoc only carries quantity, unit, delivery date and your article number. Prices, article description and the customer's article number are not included.
- Workist sends the unit of measure as stored in Workist, without mapping it to ISO codes.
- Your channel's field selection does not change the structure. The only exception is the bill-to party (
RE).
openTRANS 2.1
File extension: .xml
File name: <UUID>.xml
Order in openTRANS 2.1 format (ORDER). Business partners are listed in the PARTIES section and referenced by their PARTY_ID.
Full example
In this example the line has a converted quantity (10 box), so QUANTITY and ORDER_UNIT carry the converted values.
<?xml version="1.0" encoding="utf-8"?>
<ORDER xmlns:bmecat="http://www.bmecat.org/bmecat/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1" xmlns="http://www.opentrans.org/XMLSchema/2.1" xsi:schemaLocation="http://www.opentrans.org/XMLSchema/2.1 opentrans_2_1.xsd" type="standard">
<ORDER_HEADER>
<CONTROL_INFO>
<GENERATOR_INFO>Workist</GENERATOR_INFO>
<GENERATION_DATE>2025-03-15T14:30:25.123456</GENERATION_DATE>
</CONTROL_INFO>
<SOURCING_INFO>
<QUOTATION_ID>QT-2025-100</QUOTATION_ID>
<AGREEMENT>
<bmecat:AGREEMENT_ID>PRJ-500</bmecat:AGREEMENT_ID>
<bmecat:AGREEMENT_END_DATE>2025-03-15T14:30:25.123456</bmecat:AGREEMENT_END_DATE>
</AGREEMENT>
</SOURCING_INFO>
<ORDER_INFO>
<ORDER_ID>PO-2025-0001</ORDER_ID>
<ORDER_DATE>2025-03-15</ORDER_DATE>
<DELIVERY_DATE>
<DELIVERY_START_DATE>2025-04-01</DELIVERY_START_DATE>
<DELIVERY_END_DATE>2025-04-05</DELIVERY_END_DATE>
</DELIVERY_DATE>
<PARTIES>
<PARTY>
<bmecat:PARTY_ID type="party_specific">workist</bmecat:PARTY_ID>
<PARTY_ROLE>document_creator</PARTY_ROLE>
</PARTY>
<PARTY>
<bmecat:PARTY_ID type="party_specific">supplier</bmecat:PARTY_ID>
<PARTY_ROLE>supplier</PARTY_ROLE>
</PARTY>
<PARTY>
<bmecat:PARTY_ID>CUST-12345</bmecat:PARTY_ID>
<PARTY_ROLE>buyer</PARTY_ROLE>
<ADDRESS>
<bmecat:NAME>Acme Corporation</bmecat:NAME>
<CONTACT_DETAILS>
<bmecat:CONTACT_ID>CP-001</bmecat:CONTACT_ID>
<bmecat:CONTACT_NAME>Mustermann</bmecat:CONTACT_NAME>
<bmecat:FIRST_NAME>Max</bmecat:FIRST_NAME>
<bmecat:PHONE>+49 89 12345678</bmecat:PHONE>
<bmecat:EMAILS>
<bmecat:EMAIL>max@acme.de</bmecat:EMAIL>
</bmecat:EMAILS>
</CONTACT_DETAILS>
<bmecat:STREET>Hauptstrasse 42</bmecat:STREET>
<bmecat:ZIP>80331</bmecat:ZIP>
<bmecat:CITY>Munich</bmecat:CITY>
<bmecat:COUNTRY_CODED>DE</bmecat:COUNTRY_CODED>
<bmecat:COUNTRY_SUBDIVISION>BY</bmecat:COUNTRY_SUBDIVISION>
</ADDRESS>
</PARTY>
<PARTY>
<bmecat:PARTY_ID>SHIP-002</bmecat:PARTY_ID>
<PARTY_ROLE>delivery</PARTY_ROLE>
<ADDRESS>
<bmecat:NAME>Acme Corporation GmbH</bmecat:NAME>
<bmecat:NAME2>Warehouse Team</bmecat:NAME2>
<bmecat:NAME3>Gate 3</bmecat:NAME3>
<bmecat:STREET>Lager Strasse 5</bmecat:STREET>
<bmecat:ZIP>20095</bmecat:ZIP>
<bmecat:CITY>Hamburg</bmecat:CITY>
<bmecat:COUNTRY_CODED>DE</bmecat:COUNTRY_CODED>
<bmecat:COUNTRY_SUBDIVISION>HH</bmecat:COUNTRY_SUBDIVISION>
<bmecat:PHONE>+49 40 22222222</bmecat:PHONE>
</ADDRESS>
</PARTY>
<PARTY>
<bmecat:PARTY_ID>BILL-001</bmecat:PARTY_ID>
<PARTY_ROLE>invoice_recipient</PARTY_ROLE>
<ADDRESS>
<bmecat:NAME>Acme Corporation GmbH</bmecat:NAME>
<bmecat:NAME2>Accounts Payable</bmecat:NAME2>
<bmecat:STREET>Billing Strasse 10</bmecat:STREET>
<bmecat:ZIP>80331</bmecat:ZIP>
<bmecat:CITY>Munich</bmecat:CITY>
<bmecat:COUNTRY_CODED>DE</bmecat:COUNTRY_CODED>
<bmecat:COUNTRY_SUBDIVISION>BY</bmecat:COUNTRY_SUBDIVISION>
<bmecat:PHONE>+49 89 11111111</bmecat:PHONE>
</ADDRESS>
</PARTY>
</PARTIES>
<ORDER_PARTIES_REFERENCE>
<bmecat:BUYER_IDREF>CUST-12345</bmecat:BUYER_IDREF>
<bmecat:SUPPLIER_IDREF>supplier</bmecat:SUPPLIER_IDREF>
<INVOICE_RECIPIENT_IDREF>BILL-001</INVOICE_RECIPIENT_IDREF>
<SHIPMENT_PARTIES_REFERENCE>
<DELIVERY_IDREF>SHIP-002</DELIVERY_IDREF>
</SHIPMENT_PARTIES_REFERENCE>
</ORDER_PARTIES_REFERENCE>
<bmecat:CURRENCY>EUR</bmecat:CURRENCY>
</ORDER_INFO>
</ORDER_HEADER>
<ORDER_ITEM_LIST>
<ORDER_ITEM>
<LINE_ITEM_ID>10</LINE_ITEM_ID>
<PRODUCT_ID>
<bmecat:SUPPLIER_PID type="supplier_specific">ART-001-A</bmecat:SUPPLIER_PID>
<bmecat:BUYER_PID>CUST-ART-555</bmecat:BUYER_PID>
<bmecat:DESCRIPTION_LONG>Industrial Sensor Module Type A</bmecat:DESCRIPTION_LONG>
</PRODUCT_ID>
<QUANTITY>10</QUANTITY>
<bmecat:ORDER_UNIT>BOX</bmecat:ORDER_UNIT>
<DELIVERY_DATE>
<DELIVERY_START_DATE>2025-04-01</DELIVERY_START_DATE>
<DELIVERY_END_DATE>2025-04-01</DELIVERY_END_DATE>
</DELIVERY_DATE>
</ORDER_ITEM>
</ORDER_ITEM_LIST>
<ORDER_SUMMARY>
<TOTAL_ITEM_NUM>1</TOTAL_ITEM_NUM>
</ORDER_SUMMARY>
</ORDER>
Elements
| Element | Content |
|---|---|
CONTROL_INFO | GENERATOR_INFO = Workist, GENERATION_DATE = creation time (UTC). |
SOURCING_INFO | Only if a quote or project number is filled: QUOTATION_ID = quote number, AGREEMENT_ID = project number, AGREEMENT_END_DATE = creation time (required by the standard, no business meaning). |
ORDER_INFO | ORDER_ID = order number, ORDER_DATE = order date, CURRENCY = always EUR. |
DELIVERY_DATE | Only with a delivery date: DELIVERY_START_DATE = delivery date, DELIVERY_END_DATE = end of the delivery period (otherwise the delivery date). |
PARTY document_creator | Workist as creator: PARTY_ID = workist (type = party_specific), PARTY_ROLE = document_creator. |
PARTY supplier | You as the supplier, fixed placeholder: PARTY_ID = supplier (type = party_specific), PARTY_ROLE = supplier. |
PARTY buyer | Ordering customer: PARTY_ID = customer number, PARTY_ROLE = buyer. Address: NAME = name from the customer address, STREET, ZIP, CITY (max. 35 characters), COUNTRY_CODED, COUNTRY_SUBDIVISION. CONTACT_DETAILS if a contact person is filled: CONTACT_ID, FIRST_NAME = first word of the name, CONTACT_NAME = rest of the name, PHONE, EMAIL. |
PARTY delivery | Delivery address, if company, name or address number is filled: PARTY_ID = address number, PARTY_ROLE = delivery; NAME = company, NAME2 = name, NAME3 = additional address line, STREET, ZIP, CITY (max. 35 characters), COUNTRY_CODED, COUNTRY_SUBDIVISION, PHONE. |
PARTY invoice_recipient | Invoice address, if company, name or address number is filled: PARTY_ID = address number, PARTY_ROLE = invoice_recipient; NAME = company, NAME2 = name, STREET, ZIP, CITY (max. 35 characters), COUNTRY_CODED, COUNTRY_SUBDIVISION, PHONE. |
ORDER_PARTIES_REFERENCE | BUYER_IDREF = customer number, SUPPLIER_IDREF = supplier, INVOICE_RECIPIENT_IDREF = address number of the invoice address, DELIVERY_IDREF = address number of the delivery address. |
ORDER_ITEM | One per line: LINE_ITEM_ID = line number (otherwise a running number starting at 1), QUANTITY and ORDER_UNIT = quantity (with a decimal point) and unit (upper case). If a converted quantity and unit are filled, the converted values are used. |
PRODUCT_ID | SUPPLIER_PID = your article number (type = supplier_specific), BUYER_PID = the customer's article number, DESCRIPTION_LONG = article description. |
DELIVERY_DATE (line) | Delivery date of the line in DELIVERY_START_DATE and DELIVERY_END_DATE. |
ORDER_SUMMARY | TOTAL_ITEM_NUM = number of lines. |
Notes
- The format contains no prices, line totals or order totals.
- Your channel's field selection does not change the structure.
cXML OrderRequest
File extension: .xml
File name: <UUID>.xml
Order in cXML format (OrderRequest) with header, delivery address, ordering customer, contact person and line items with prices.
Full example
<?xml version="1.0" encoding="utf-8"?>
<cXML payloadID="3f2b8c1e-5a7d-4e19-8c2f-6b0d9a4e7c15" timestamp="2025-03-15T14:30:25.123456">
<Header>
<From>
<Credential domain="SystemId">CUST-12345</Credential>
</From>
<To>
<Credential domain="SystemId">supplier</Credential>
</To>
<Sender>
<Credential domain="SystemId">workist</Credential>
<UserAgent>Workist Platform</UserAgent>
</Sender>
</Header>
<Request deploymentMode="production">
<OrderRequest deploymentMode="production">
<OrderRequestHeader orderDate="2025-03-15T00:00:00+00:00" orderID="PO-2025-0001" orderType="regular" orderVersion="1" type="new">
<Total>
<Money currency="EUR">1250</Money>
</Total>
<ShipTo>
<Address isoCountryCode="DE" addressID="SHIP-002">
<Name xml:lang="de">Acme Corporation GmbH</Name>
<Email>warehouse@acme.de</Email>
</Address>
<PostalAddress>
<DeliverTo>Warehouse Team</DeliverTo>
<DeliverTo>Gate 3</DeliverTo>
<Street>Lager Strasse 5</Street>
<City>Hamburg</City>
<State>HH</State>
<PostalCode>20095</PostalCode>
<Country isoCountryCode="DE">DE</Country>
</PostalAddress>
</ShipTo>
<BillTo>
<Address isoCountryCode="DE" addressID="CUST-12345">
<Name xml:lang="de">Acme Corp GmbH</Name>
</Address>
<PostalAddress>
<DeliverTo>Acme Corporation</DeliverTo>
<DeliverTo>Finance Department</DeliverTo>
<Street>Hauptstrasse 42</Street>
<City>Munich</City>
<State>BY</State>
<PostalCode>80331</PostalCode>
<Country isoCountryCode="DE">DE</Country>
</PostalAddress>
<IdReference domain="buyerID" identifier="CUST-12345" />
</BillTo>
<Contact role="buyerCorporate">
<Name xml:lang="de">Max Mustermann</Name>
<PostalAddress name="Max Mustermann">
<DeliverTo>CP-001</DeliverTo>
<DeliverTo>Max Mustermann</DeliverTo>
<Street />
<City />
<State />
<PostalCode />
<Country />
</PostalAddress>
</Contact>
</OrderRequestHeader>
</OrderRequest>
</Request>
<ItemOut lineNumber="10" quantity="100.0">
<ItemID>
<SupplierPartID>ART-001-A</SupplierPartID>
</ItemID>
<ItemDetail>
<UnitPrice>
<Money currency="EUR">12.5</Money>
</UnitPrice>
<Description xml:lang="de">Industrial Sensor Module Type A</Description>
<UnitOfMeasure>PCE</UnitOfMeasure>
</ItemDetail>
<ScheduleLine lineNumber="10" quantity="100.0" requestedDeliveryDate="2025-04-01T00:00:00+00:00">
<UnitOfMeasure>PCE</UnitOfMeasure>
</ScheduleLine>
</ItemOut>
</cXML>
Elements
| Element | Content |
|---|---|
cXML | payloadID = ID of the document in Workist, timestamp = creation time. |
From | Credential (domain = SystemId) = customer number. |
To | Credential (domain = SystemId) = recipient ID, supplier by default. |
Sender | Credential (domain = SystemId) = workist, UserAgent = Workist Platform. |
Request, OrderRequest | deploymentMode = production (or test, see below). |
OrderRequestHeader | orderID = order number, orderDate = order date with time (2025-03-15T00:00:00+00:00), orderType = regular, orderVersion = 1, type = new. |
Total | Money = net total (0.0 if none is filled), currency = currency of the order (otherwise EUR). |
ShipTo | Delivery address, if company, name or address number is filled. Address: addressID = address number, isoCountryCode = country code, Name (xml:lang = de) = company, Email. PostalAddress (next to Address): DeliverTo = name, second DeliverTo = additional address line (if any), Street, City, State = state/region, PostalCode, Country with isoCountryCode (default DE). |
BillTo | The ordering customer from your customer master data. Address: addressID = customer number, isoCountryCode, Name (xml:lang = de) = company name of the customer address. PostalAddress: DeliverTo = name, second DeliverTo = additional address line, Street, City, State, PostalCode, Country with isoCountryCode. IdReference with domain = buyerID and identifier = customer number. |
Contact | Contact person, if name or number is filled: role = buyerCorporate, Name (xml:lang = de). PostalAddress (name = name): DeliverTo = number, second DeliverTo = name; Street, City, State, PostalCode and Country stay empty. |
ItemOut | One per line, directly below cXML: lineNumber = line number (otherwise a running number starting at 1), quantity = quantity with a decimal point. SupplierPartID = your article number. UnitPrice: Money = unit price with a decimal point, currency = currency of the order (otherwise EUR). Description (xml:lang = de) = article description, UnitOfMeasure = unit of measure. ScheduleLine repeats lineNumber, quantity and UnitOfMeasure; requestedDeliveryDate = delivery date of the line. |
Settings
Workist sets these values for you during setup:
| Setting | Default | Description |
|---|---|---|
| Recipient ID | supplier | Value of the Credential under To |
| Deployment mode | production | deploymentMode of Request and OrderRequest, e.g. test for test systems |
Notes
BillTocontains the ordering customer. cXML does not carry the order's invoice address.- Every line needs a quantity that can be read as a number, otherwise Workist creates no file.
- Your channel's field selection does not change the structure.
ANSI X12 850
File extension: .edi
File name: <customernumber>_<ordernumber>_<uuid>.edi (see File names)
The EDI format for orders that is common in North America. Data elements are separated by *, every segment ends with ~ and is on its own line.
Full example
ISA*00* *00* *ZZ*CUST-12345 *ZZ*musterlieferant*250315*0000*U*00401*212075055*0*P*>~
GS*PO*CUST-12345* *20250315*0000*2120*X*004010~
ST*850*212075055~
BEG*00**PO-2025-0001**20250315~
PER*BD*Max Mustermann*TE*+49 89 12345678*EM*max@acme.de~
DTM*002*20250401~
MSG*Please deliver to loading dock B. Handle with care - fragile items, do not stack pallets.~
N1*ST*Acme Corporation**CUST-12345~
PO1*10*100*PCE*12.5**VN*ART-001-A~
PID*F****Industrial Sensor Module Type A~
CTT*1~
SE*10*212075055~
GE*1*2120~
IEA*1*212075055~
Segments
| Segment | Content |
|---|---|
ISA | Interchange header: sender ID = customer number, receiver ID = your Workist short name (each padded to 15 characters), date (YYMMDD) = order date, time 0000, version 00401, control number |
GS | Functional group PO, sender = customer number, date = order date, version 004010 |
ST | Transaction 850 and control number |
BEG | 00 (original), order number, order date (YYYYMMDD) |
PER | Contact person (BD): name, phone (TE), email (EM) |
DTM | 002 = delivery date (YYYYMMDD) |
MSG | Free text of the order (only if any) |
N1 | ST, name and number of the ordering customer. No delivery address is sent |
PO1 | Line: line number, quantity, unit, unit price, VN and your article number |
PID | F (free text) and article description |
CTT | Number of lines |
SE | Number of segments in the transaction and control number |
GE | Number of transactions and control number |
IEA | Number of functional groups and control number |
PO1 and PID repeat for every line. Your channel's field selection does not change the structure.