Skip to content

Format · Output

Generate openTRANS 2.1 purchase orders

openTRANS is an open XML standard for business documents from Germany and fits BMEcat catalogues. every-edi generates purchase orders in openTRANS 2.1 format, from PDF, email, CSV, EDIFACT or cXML, for ERP and merchandise management systems that import openTRANS.

At a glance

Standard
openTRANS
Version
2.1
Document
ORDER (purchase order)
every-edi
Write only (output format)
Related to
BMEcat 2005 (catalogue data)

What openTRANS is for

openTRANS describes business documents such as purchase order, order confirmation, delivery note and invoice as XML. Version 2.1 is the widely used release.

The main reason for openTRANS is its close link to BMEcat, the standard for electronic product catalogues: item numbers, descriptions, units and prices use the same elements as the catalogue. An order can therefore refer one to one to the items the supplier published via BMEcat.

Who uses openTRANS

openTRANS is most common among German mid-sized companies: in ERP and merchandise management systems with an openTRANS import, in procurement and shop solutions from German-speaking countries, and at companies that already maintain their catalogue data as BMEcat. Compared with EDIFACT it is easier to read and to validate against a schema.

Why every-edi only writes openTRANS

In practice openTRANS is more often the format an ERP imports orders in than the format customers order in. every-edi therefore uses openTRANS as an output format: orders in any supported input format are handed to your ERP as an openTRANS 2.1 ORDER.

Example

A fictitious openTRANS 2.1 order with two lines.

ORDER_B-26-0815.xml
<?xml version="1.0" encoding="UTF-8"?>
<ORDER xmlns="http://www.opentrans.org/XMLSchema/2.1"
       xmlns:bmecat="http://www.bmecat.org/bmecat/2005"
       version="2.1" type="standard">
  <ORDER_HEADER>
    <CONTROL_INFO>
      <GENERATOR_INFO>every-edi</GENERATOR_INFO>
      <GENERATION_DATE>2026-10-08T09:30:05</GENERATION_DATE>
    </CONTROL_INFO>
    <ORDER_INFO>
      <ORDER_ID>B-26-0815</ORDER_ID>
      <ORDER_DATE>2026-10-08</ORDER_DATE>
      <DELIVERY_DATE type="optional">
        <DELIVERY_START_DATE>2026-10-12</DELIVERY_START_DATE>
        <DELIVERY_END_DATE>2026-10-16</DELIVERY_END_DATE>
      </DELIVERY_DATE>
      <PARTIES>
        <PARTY>
          <bmecat:PARTY_ID type="gln">4012345000009</bmecat:PARTY_ID>
          <PARTY_ROLE>buyer</PARTY_ROLE>
        </PARTY>
        <PARTY>
          <bmecat:PARTY_ID type="gln">4098765000003</bmecat:PARTY_ID>
          <PARTY_ROLE>supplier</PARTY_ROLE>
        </PARTY>
        <PARTY>
          <bmecat:PARTY_ID type="gln">4012345000016</bmecat:PARTY_ID>
          <PARTY_ROLE>delivery</PARTY_ROLE>
          <ADDRESS>
            <bmecat:NAME>Beispiel Haustechnik GmbH</bmecat:NAME>
            <bmecat:NAME2>Lager Nord, Tor 3</bmecat:NAME2>
            <bmecat:STREET>Hafenstraße 40</bmecat:STREET>
            <bmecat:ZIP>28217</bmecat:ZIP>
            <bmecat:CITY>Bremen</bmecat:CITY>
            <bmecat:COUNTRY_CODED>DE</bmecat:COUNTRY_CODED>
          </ADDRESS>
        </PARTY>
      </PARTIES>
      <ORDER_PARTIES_REFERENCE>
        <bmecat:BUYER_IDREF type="gln">4012345000009</bmecat:BUYER_IDREF>
        <bmecat:SUPPLIER_IDREF type="gln">4098765000003</bmecat:SUPPLIER_IDREF>
      </ORDER_PARTIES_REFERENCE>
      <SHIPMENT_PARTIES_REFERENCE>
        <DELIVERY_IDREF type="gln">4012345000016</DELIVERY_IDREF>
      </SHIPMENT_PARTIES_REFERENCE>
      <bmecat:CURRENCY>EUR</bmecat:CURRENCY>
    </ORDER_INFO>
  </ORDER_HEADER>
  <ORDER_ITEM_LIST>
    <ORDER_ITEM>
      <LINE_ITEM_ID>1</LINE_ITEM_ID>
      <PRODUCT_ID>
        <bmecat:SUPPLIER_PID type="supplier_specific">ART-7720</bmecat:SUPPLIER_PID>
        <bmecat:INTERNATIONAL_PID type="gtin">4012345678901</bmecat:INTERNATIONAL_PID>
        <bmecat:DESCRIPTION_SHORT>Hydraulikzylinder HZ-200/100</bmecat:DESCRIPTION_SHORT>
      </PRODUCT_ID>
      <QUANTITY>4</QUANTITY>
      <bmecat:ORDER_UNIT>C62</bmecat:ORDER_UNIT>
      <PRODUCT_PRICE_FIX>
        <bmecat:PRICE_AMOUNT>285.00</bmecat:PRICE_AMOUNT>
      </PRODUCT_PRICE_FIX>
      <PRICE_LINE_AMOUNT>1140.00</PRICE_LINE_AMOUNT>
    </ORDER_ITEM>
    <ORDER_ITEM>
      <LINE_ITEM_ID>2</LINE_ITEM_ID>
      <PRODUCT_ID>
        <bmecat:SUPPLIER_PID type="supplier_specific">ART-3381</bmecat:SUPPLIER_PID>
        <bmecat:INTERNATIONAL_PID type="gtin">4012345678918</bmecat:INTERNATIONAL_PID>
        <bmecat:DESCRIPTION_SHORT>Dichtungsset DS-200</bmecat:DESCRIPTION_SHORT>
      </PRODUCT_ID>
      <QUANTITY>4</QUANTITY>
      <bmecat:ORDER_UNIT>SET</bmecat:ORDER_UNIT>
      <PRODUCT_PRICE_FIX>
        <bmecat:PRICE_AMOUNT>42.50</bmecat:PRICE_AMOUNT>
      </PRODUCT_PRICE_FIX>
      <PRICE_LINE_AMOUNT>170.00</PRICE_LINE_AMOUNT>
    </ORDER_ITEM>
  </ORDER_ITEM_LIST>
  <ORDER_SUMMARY>
    <TOTAL_ITEM_NUM>2</TOTAL_ITEM_NUM>
    <TOTAL_AMOUNT>1310.00</TOTAL_AMOUNT>
  </ORDER_SUMMARY>
</ORDER>

All names, numbers and GLNs in the example are fictitious.

ElementMeaning
<ORDER version="2.1" type="standard">Root element with version and order type (standard, express, release or consignment).
xmlns, xmlns:bmecatNamespaces of openTRANS 2.1 and BMEcat 2005. Many elements come straight from BMEcat and carry the bmecat: prefix.
<CONTROL_INFO>Generating system and time of generation.
<ORDER_ID>, <ORDER_DATE>Order number and order date.
<DELIVERY_DATE type="optional">Delivery period; optional = requested date, fixed = firm date.
<PARTIES> / <PARTY>All parties involved, with role (buyer, supplier, delivery) and ID, here a GLN.
<ORDER_PARTIES_REFERENCE>Refers by ID to the buyer and supplier in PARTIES.
<SHIPMENT_PARTIES_REFERENCE>Refers to the delivery address.
<bmecat:SUPPLIER_PID>Your item number, the same as in the BMEcat catalogue.
<bmecat:INTERNATIONAL_PID type="gtin">The item’s GTIN.
<bmecat:ORDER_UNIT>Order unit as a UN/ECE Recommendation 20 code: C62 = piece, SET = set.
<PRODUCT_PRICE_FIX>, <PRICE_LINE_AMOUNT>Unit price and line amount.
<ORDER_SUMMARY>Number of lines and order total as check values.

Common pitfalls

What every-edi does with it

What is not included (yet)

In every-edi, openTRANS is purely an output format. Incoming openTRANS files and other openTRANS documents such as order confirmation, delivery note or invoice are not currently processed.

Other formats

every-edi also handles GEVIS XML (GEVISEDI01), CSV with header and line records (HDR/POS), free-form CSV tables via learned CSV profiles, and JSON over a REST interface.

Send us a real file.

The quickest way to find out whether every-edi fits your customers is with real examples: three orders and, if you have one, your partner’s specification. You get the result back in the target format.

Request a demo