Skip to main content
Markdown

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 data
  • Invoicing: invoice address
  • Shipping: delivery address and delivery dates
  • Line: 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)​

ElementTypeDescription
Sell_to_CustomerBlockThe ordering customer, filled from your customer master data
Sell_to_Customer/Customer_NumberTextCustomer number
Sell_to_Customer/NameTextCustomer name
Sell_to_Customer/Contact_NumberTextNumber of the customer's contact person
Sell_to_Customer/ContactTextName of the contact person
Sell_to_Customer/Contact_EmailTextContact person's email address
Sell_to_Customer/Contact_PhoneTextContact person's phone number
Sell_to_Customer/CountryTextCountry code of the customer address (e.g. DE)
Sell_to_Customer/Country_SubdivisionTextState or region code of the customer address (e.g. BY)
Sell_to_Customer/Customer_TypeTextCustomer type from your master data
Dispatch_ContactBlockShipping contact at the customer. Only present if at least one value is filled
Dispatch_Contact/Contact_NumberTextNumber of the shipping contact
Dispatch_Contact/ContactTextName of the shipping contact
Dispatch_Contact/Contact_EmailTextShipping contact's email address
Dispatch_Contact/Contact_PhoneTextShipping contact's phone number
Order_DateDateOrder date
VAT_Registration_NumberTextCustomer's VAT ID
Customer_Order_NumberTextCustomer's order number
Quote_Reference_NumberTextNumber of the quote the order refers to
Project_NumberTextProject number
Distribution_ChannelTextDistribution channel or sales organisation
Order_TypeTextOrder type
Delivery_TermsTextDelivery terms
Shipping_TermsTextShipping terms
Payment_TermsTextPayment terms
Total_Amount_NetDecimalNet total amount
Total_AmountDecimalGross total amount
Framework_Contract_NumberTextFramework contract number
Goods_Receiving_TimeTextGoods receiving hours as stated on the order
Info_TextTextFree text. Workist splits it into chunks of 70 characters, one element per chunk, at most 5 elements; anything beyond is dropped
Commission_NumberTextCommission number
IncotermTextIncoterm (e.g. DAP)
Delivery_Unload_MethodTextUnloading method at the delivery location
External_Document_LinkTextFile name of the original document Workist delivers next to the XML file (<ID>.pdf). Not a link
Workist_URLTextLink to the document in the Workbench
Received_ByTextSender address (From) of the email in which the document reached Workist
ERP_LockedBooleantrue if a user marked the order as locked for downstream processing in the Workbench, otherwise false
Additional_FilesBlockFurther 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_FileBlockOne element per file
Additional_Files/Additional_File/File_NameTextFile name under which Workist delivers the file (<ID>_file_<n>.<extension>)
Additional_Files/Additional_File/ClassificationTextDocument type of the attachment: ORDER, ORDER_CONFIRMATION, REQUEST_FOR_QUOTATION, INVOICE, DELIVERY_NOTE, OFFER or OTHER
Additional_Files/Additional_File/File_Name_OriginalTextOriginal 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.

ElementTypeDescription
Invoicing/Bill_to_CustomerBlockInvoice address; fields see Address fields
Shipping/Ship_to_CustomerBlockDelivery address; fields see Address fields
Shipping/Expected_Delivery_DateDateRequested delivery date
Shipping/Expected_Delivery_End_DateDateEnd of the delivery period
Shipping/Expected_Delivery_Time_FromTextStart of the delivery time window (HH:MM)
Shipping/Expected_Delivery_Time_UntilTextEnd of the delivery time window (HH:MM)
Shipping/Goods_Issue_DateDateGoods 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.

ElementTypeDescription
CodeTextAddress number from your master data
NameTextRecipient name; the company name if no name is filled
Additional_Name_InfoTextCompany name; only present if a name is filled as well
AddressTextStreet and house number. Always present, possibly empty
Additional_Address_InfoTextAdditional address line (e.g. building, gate)
CityTextCity. Always present, possibly empty
Post_CodeTextPostcode. Always present, possibly empty
CountryTextCountry code (e.g. DE). Always present, possibly empty
Country_SubdivisionTextState or region code (e.g. BY)
PhoneTextPhone number
EmailTextEmail 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.

ElementTypeDescription
Batch_NumberTextBatch number
DescriptionTextArticle description
Unit_of_MeasureTextUnit of measure
QuantityDecimalOrdered quantity
Unit_PriceDecimalUnit price
Price_UnitDecimalPrice unit: number of units the unit price refers to (e.g. 1 or 100)
Total_PriceDecimalLine total
Line_Discount_PercentTextDiscount in percent, as stored in Workist
Line_Discount_AmountTextDiscount amount, as stored in Workist
Item_VariantTextArticle variant
Common_Item_NumberTextYour article number (article_id1 from your article master data)
Common_Item_Number_2TextSecond article number (article_id2)
Common_Item_Number_3TextThird article number (article_id3, e.g. EAN)
Customer_Item_NumberTextThe customer's article number
Item_Number_ConfidenceDecimalConfidence of the automatic article match between 0 and 1, always with a decimal comma (e.g. 0,95)
Expected_Delivery_DateDateDelivery date of the line
Expected_Delivery_Time_FromTextStart of the line's delivery time window (HH:MM)
Expected_Delivery_Time_UntilTextEnd of the line's delivery time window (HH:MM)
Goods_Issue_DateDateGoods issue date of the line
Commission_NumberTextCommission number of the line
Sales_OrganisationTextSales organisation
PosTextLine number
Framework_Contract_NumberTextFramework contract number of the line
Quote_Reference_NumberTextQuote number of the line
Container_QuantityTextConverted quantity (e.g. in containers), as stored in Workist
Container_TypeTextConverted unit (e.g. box)
Order_NumberTextOrder number of the line (e.g. for collective orders)
Sell_to_CustomerBlockCustomer of this line in collective orders
Sell_to_Customer/Customer_NumberTextCustomer number
Sell_to_Customer/NameTextCustomer name
Sell_to_Customer/Customer_AddressBlockAddress of this customer; fields see Address fields
CurrencyTextCurrency of the line (e.g. EUR)
Article_CommentsTextComment on the line
Article_MarkingsTextMarking 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: Enter erp_locked under 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​

ElementContent
EDI_DC40Control 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).
E1EDK01Document 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.
E1EDP01One 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.

FieldDefaultMax. characters
MANDT050–
SNDPORWORKIST10
SNDPRTLS2
SNDPRNWORKIST10
RCVPORXML_WKI10
RCVPRTLS2
RCVPRNSUPPLIER10
RECIPNT_NOSUPPLIER10

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​

ElementContent
CONTROL_INFOGENERATOR_INFO = Workist, GENERATION_DATE = creation time (UTC).
SOURCING_INFOOnly 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_INFOORDER_ID = order number, ORDER_DATE = order date, CURRENCY = always EUR.
DELIVERY_DATEOnly with a delivery date: DELIVERY_START_DATE = delivery date, DELIVERY_END_DATE = end of the delivery period (otherwise the delivery date).
PARTY document_creatorWorkist as creator: PARTY_ID = workist (type = party_specific), PARTY_ROLE = document_creator.
PARTY supplierYou as the supplier, fixed placeholder: PARTY_ID = supplier (type = party_specific), PARTY_ROLE = supplier.
PARTY buyerOrdering 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 deliveryDelivery 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_recipientInvoice 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_REFERENCEBUYER_IDREF = customer number, SUPPLIER_IDREF = supplier, INVOICE_RECIPIENT_IDREF = address number of the invoice address, DELIVERY_IDREF = address number of the delivery address.
ORDER_ITEMOne 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_IDSUPPLIER_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_SUMMARYTOTAL_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​

ElementContent
cXMLpayloadID = ID of the document in Workist, timestamp = creation time.
FromCredential (domain = SystemId) = customer number.
ToCredential (domain = SystemId) = recipient ID, supplier by default.
SenderCredential (domain = SystemId) = workist, UserAgent = Workist Platform.
Request, OrderRequestdeploymentMode = production (or test, see below).
OrderRequestHeaderorderID = order number, orderDate = order date with time (2025-03-15T00:00:00+00:00), orderType = regular, orderVersion = 1, type = new.
TotalMoney = net total (0.0 if none is filled), currency = currency of the order (otherwise EUR).
ShipToDelivery 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).
BillToThe 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.
ContactContact 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.
ItemOutOne 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:

SettingDefaultDescription
Recipient IDsupplierValue of the Credential under To
Deployment modeproductiondeploymentMode of Request and OrderRequest, e.g. test for test systems

Notes​

  • BillTo contains 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​

SegmentContent
ISAInterchange 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
GSFunctional group PO, sender = customer number, date = order date, version 004010
STTransaction 850 and control number
BEG00 (original), order number, order date (YYYYMMDD)
PERContact person (BD): name, phone (TE), email (EM)
DTM002 = delivery date (YYYYMMDD)
MSGFree text of the order (only if any)
N1ST, name and number of the ordering customer. No delivery address is sent
PO1Line: line number, quantity, unit, unit price, VN and your article number
PIDF (free text) and article description
CTTNumber of lines
SENumber of segments in the transaction and control number
GENumber of transactions and control number
IEANumber of functional groups and control number

PO1 and PID repeat for every line. Your channel's field selection does not change the structure.