openTRANS 2.1 — Ofrex Supplier Integration
Supplier Integration openTRANS 2.1

openTRANS 2.1 — Ofrex supplier integration

This page describes how Ofrex exchanges fulfilment documents with suppliers using openTRANS 2.1. It is written for suppliers who want to receive and confirm our orders electronically instead of by e-mail or PDF.

We use a deliberately small subset of openTRANS 2.1 — only the fields we actually send or read. You do not need to implement the full 233-page standard. Two document types are supported today:

Document Direction Purpose
ORDER Ofrex → you We place a purchase order with you.
DISPATCHNOTIFICATION you → Ofrex You confirm what was dispatched, with tracking and per-line cost.

ORDERRESPONSE and INVOICE are not supported yet.

Before you go live: validate your DISPATCHNOTIFICATION files against this specification and send us a test file. We will run through a joint test cycle with you before switching the integration on. Contact your Ofrex purchasing contact to get started.

1. Conventions

These apply to both document types. Read this section first.

Namespaces

Every document uses two XML namespaces:

Prefix Namespace URI Used for
(default) http://www.opentrans.org/XMLSchema/2.1 openTRANS elements (ORDER, ORDER_INFO, REMARKS, …)
bmecat http://www.bmecat.org/bmecat/2005 BMEcat elements (PARTY_ID, NAME, STREET, SUPPLIER_PID, ORDER_UNIT, …)
The prefix name is not significant — only the namespace URI is. Our own ORDER files happen to use the prefix ns2 for the BMEcat namespace; you may use bmecat, ns2, or anything else. Parsers must match on the namespace URI, not the prefix string. Examples on this page use bmecat: for readability.

Parties

Both documents describe the same three parties. Always identify them the same way:

Role (PARTY_ROLE) Party Primary PARTY_ID type
buyer The buyer party (Ofrex AG). supplier_specific
final_delivery The delivery address (the end customer). buyer_specific
supplier The supplier party (you). gln

A party may carry more than one PARTY_ID (e.g. both gln and supplier_specific).

Identifier echo-back (important)

The ORDER we send carries our Ofrex order ID in ORDER_ID, and a per-line Ofrex line item ID in each item's CUSTOMER_ORDER_REFERENCE/LINE_ITEM_ID.

When you send the DISPATCHNOTIFICATION, you must echo these back in each item's ORDER_REFERENCE (ORDER_ID + LINE_ITEM_ID). That is how we match your delivery back to the originating order line. A dispatch line we cannot match to an order line is dropped.

Data formats

Item Rule
Encoding UTF-8.
Dates ISO 8601, e.g. 2026-07-29T00:00:00.
Decimals Dot as decimal separator, no thousands separator, e.g. 41.06. No currency symbol.
Currency CHF.
Prices Always excluding VAT (net).
Order unit ORDER_UNIT is always C62 (piece, UN/ECE Rec 20).
Language LANGUAGE is the end-customer language for documents you print (ger, fre, ita), default ger.

Remarks

REMARKS is an optional, repeatable (0..*) element that can appear on a document header (…_INFO) and on each item. Each carries a type attribute naming the kind of remark. type values are case-sensitive and consist of letters, digits and underscores (\w{1,250}, no dots or spaces) — use the exact spellings given where each remark type is described. Each remark type is described in the section it belongs to.

2. ORDER — Ofrex → you

An ORDER always consists of a header (ORDER_HEADER), an item list (ORDER_ITEM_LIST) and a summary (ORDER_SUMMARY). The root element carries version="2.1" and type="standard".

2.1 ORDER_HEADER

CONTROL_INFO

Control information for automated processing.

Element Description Status Example
STOP_AUTOMATIC_PROCESSING Present only when the order needs manual handling (see below). Conditional PRICE_MISMATCH: please confirm price before shipping
bmecat:GENERATOR_INFO Identifier of the generating system. Optional OFREX_1.0

STOP_AUTOMATIC_PROCESSING is a plain-text string (max 250 characters). When it is present and not empty on an order you receive, do not process the order automatically — a person must handle it. The value explains why. When it is absent or empty, process the order normally.

ORDER_INFO

The main order information block. Mandatory, always present.

Element Description Status Example
ORDER_ID Unique Ofrex order number. Echo this back in the dispatch note. Mandatory 6038246000
ORDER_DATE Date and time the order was created. Mandatory 2026-07-29T09:51:00
DELIVERY_DATE Requested delivery window (see below). Conditional See DELIVERY_DATE
bmecat:LANGUAGE End-customer language for printed documents. Optional ger
bmecat:CURRENCY Order currency. Mandatory CHF
PARTIAL_SHIPMENT_ALLOWED Whether the order may be shipped in parts. Optional true
bmecat:TRANSPORT Delivery / transport terms (see below). Optional See TRANSPORT
PARTIES All parties involved (see below). Mandatory See PARTIES
CUSTOMER_ORDER_REFERENCE Our order reference and PO number. Optional See below
ORDER_PARTIES_REFERENCE Cross-references between the parties above. Optional See below
REMARKS Reserved for special requests; none sent by default (see below). Optional (0..*)

DELIVERY_DATEtype="fixed". Both dates are usually the same value. DELIVERY_END_DATE is the requested delivery date at the customer.

Element Description Status Example
DELIVERY_START_DATE Requested dispatch date Mandatory 2026-07-30T00:00:00
DELIVERY_END_DATE Requested delivery date Mandatory 2026-07-30T00:00:00

bmecat:TRANSPORT

Element Description Status Example
bmecat:INCOTERM Incoterm for the delivery. Optional DAP
bmecat:LOCATION Where/how to unload. Optional Ablad beim Empfang
bmecat:TRANSPORT_REMARK Free-text transport note. Optional Beim Empfang Frau Meier verlangen

CUSTOMER_ORDER_REFERENCEORDER_ID (our order id) and ORDER_DESCR (the customer PO number, if any).

ORDER_PARTIES_REFERENCEBUYER_IDREF, SUPPLIER_IDREF, and SHIPMENT_PARTIES_REFERENCE/DELIVERY_IDREF, each referencing a PARTY_ID present in PARTIES.

REMARKS — by default we send no remarks on the order. The element stays in the schema so that special requests can be carried here later; if the need arises, we will define the remark types together with you before sending them.

PARTIES

We always transmit three parties: buyer (Ofrex), final_delivery (the delivery location) and supplier (you). See Conventions → Parties.

Element Description Status Example
bmecat:PARTY_ID Party identifier; type attribute gives its origin. Mandatory <bmecat:PARTY_ID type="gln">7640107870002</bmecat:PARTY_ID>
PARTY_ROLE buyer, final_delivery or supplier. Mandatory supplier
ADDRESS Address of the party (see below). Conditional Omitted for the supplier party.

PARTY_ID types

Type Meaning
supplier_specific ID assigned by you (your customer number for Ofrex).
buyer_specific ID assigned by Ofrex.
gln GS1 Global Location Number.

ADDRESS (sub-elements are in the bmecat namespace)

Element Description Status Example
bmecat:NAME Company / recipient name. Mandatory Ofrex AG
bmecat:NAME2, bmecat:NAME3 Additional name lines. Optional Papeterie
bmecat:DEPARTMENT Department. Optional Einkauf
CONTACT_DETAILS Contact person (see below). Optional
bmecat:STREET Street and number. Mandatory Rohrstrasse 44
bmecat:ZIP Postal code. Mandatory 8152
bmecat:BOXNO PO box / loading dock. Optional Postfach 255
bmecat:CITY City. Mandatory Glattbrugg
bmecat:COUNTRY_CODED ISO country code. Mandatory CH
bmecat:EMAIL E-mail. Optional info@ofrex.ch

CONTACT_DETAILSbmecat:CONTACT_NAME (mandatory when present), bmecat:TITLE, bmecat:PHONE.

2.2 ORDER_ITEM_LIST

One ORDER_ITEM per line. At least one line is always present.

Element Description Status Example
LINE_ITEM_ID Sequential line number within this order (1, 2, …). Mandatory 1
PRODUCT_ID Product identifiers (see below). Mandatory See below
QUANTITY Order quantity. Mandatory 10
bmecat:ORDER_UNIT Unit, always C62 (piece). Mandatory C62
PRODUCT_PRICE_FIX Fixed price excl. VAT (see below). Optional See below
PRICE_LINE_AMOUNT Line total excl. VAT (price × quantity). Optional 410.60
CUSTOMER_ORDER_REFERENCE Carries our Ofrex line item ID in LINE_ITEM_ID. Echo this back in the dispatch note. Optional See below
REMARKS Per-line notes (see below). Optional (0..*) <REMARKS type="deliveryNoteText">…</REMARKS>

PRODUCT_ID

Element Description Status Example type
bmecat:SUPPLIER_PID Your article number (from the catalog data you gave us). Mandatory 101034170 supplier_specific
bmecat:BUYER_PID Ofrex article number (SKU). Optional 13941540 buyer_specific
bmecat:INTERNATIONAL_PID GTIN / EAN, if known. Optional 7049981041865 gtin
bmecat:DESCRIPTION_SHORT Short product description. Optional Bundesordner 7cm weiss

PRODUCT_PRICE_FIXbmecat:PRICE_AMOUNT, price per unit excl. VAT (e.g. 41.06).

REMARKS (per item) — printed on the delivery note:

type Meaning
deliveryNoteTitle Short heading to print above the line (e.g. room / cost centre).
deliveryNoteText Free-text note for the line.

Further remark types can be added on a line to handle special requests; we will define them together with you if the need arises.

2.3 ORDER_SUMMARY

A control total so you can verify the transmission is complete.

Element Description Status Example
TOTAL_ITEM_NUM Number of line items. Mandatory 2
TOTAL_AMOUNT Sum of all line totals, excl. VAT (net). Optional 623.60

2.4 Example ORDER

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ORDER version="2.1" type="standard"
       xmlns="http://www.opentrans.org/XMLSchema/2.1"
       xmlns:bmecat="http://www.bmecat.org/bmecat/2005">
  <ORDER_HEADER>
    <CONTROL_INFO>
      <bmecat:GENERATOR_INFO>OFREX_1.0</bmecat:GENERATOR_INFO>
    </CONTROL_INFO>
    <ORDER_INFO>
      <ORDER_ID>6038246000</ORDER_ID>
      <ORDER_DATE>2026-07-29T09:51:00</ORDER_DATE>
      <DELIVERY_DATE type="fixed">
        <DELIVERY_START_DATE>2026-07-30T00:00:00</DELIVERY_START_DATE>
        <DELIVERY_END_DATE>2026-07-30T00:00:00</DELIVERY_END_DATE>
      </DELIVERY_DATE>
      <bmecat:LANGUAGE>ger</bmecat:LANGUAGE>
      <bmecat:CURRENCY>CHF</bmecat:CURRENCY>
      <bmecat:TRANSPORT>
        <bmecat:INCOTERM>DAP</bmecat:INCOTERM>
      </bmecat:TRANSPORT>
      <PARTIES>
        <PARTY>
          <bmecat:PARTY_ID type="supplier_specific">8620</bmecat:PARTY_ID>
          <PARTY_ROLE>buyer</PARTY_ROLE>
          <ADDRESS>
            <bmecat:NAME>Ofrex AG</bmecat:NAME>
            <CONTACT_DETAILS>
              <bmecat:CONTACT_NAME>Ofrex Einkauf</bmecat:CONTACT_NAME>
              <bmecat:PHONE>044 809 65 00</bmecat:PHONE>
            </CONTACT_DETAILS>
            <bmecat:STREET>Rohrstrasse 44</bmecat:STREET>
            <bmecat:ZIP>8152</bmecat:ZIP>
            <bmecat:CITY>Glattbrugg</bmecat:CITY>
            <bmecat:COUNTRY_CODED>CH</bmecat:COUNTRY_CODED>
            <bmecat:EMAIL>info@ofrex.ch</bmecat:EMAIL>
          </ADDRESS>
        </PARTY>
        <PARTY>
          <bmecat:PARTY_ID type="buyer_specific">1234</bmecat:PARTY_ID>
          <PARTY_ROLE>final_delivery</PARTY_ROLE>
          <ADDRESS>
            <bmecat:NAME>Sieber Papeterie</bmecat:NAME>
            <bmecat:NAME2>Peter Sieber</bmecat:NAME2>
            <CONTACT_DETAILS>
              <bmecat:CONTACT_NAME>Ralf Sieber</bmecat:CONTACT_NAME>
              <bmecat:PHONE>+41 79 333 33 33</bmecat:PHONE>
            </CONTACT_DETAILS>
            <bmecat:STREET>Bahnhofstrasse 5</bmecat:STREET>
            <bmecat:ZIP>8603</bmecat:ZIP>
            <bmecat:CITY>Schwerzenbach</bmecat:CITY>
            <bmecat:COUNTRY_CODED>CH</bmecat:COUNTRY_CODED>
          </ADDRESS>
        </PARTY>
        <PARTY>
          <bmecat:PARTY_ID type="gln">7640107870002</bmecat:PARTY_ID>
          <PARTY_ROLE>supplier</PARTY_ROLE>
        </PARTY>
      </PARTIES>
      <CUSTOMER_ORDER_REFERENCE>
        <ORDER_ID>6038246000</ORDER_ID>
        <ORDER_DESCR>PO-2026-4711</ORDER_DESCR>
      </CUSTOMER_ORDER_REFERENCE>
      <ORDER_PARTIES_REFERENCE>
        <bmecat:BUYER_IDREF type="supplier_specific">8620</bmecat:BUYER_IDREF>
        <bmecat:SUPPLIER_IDREF type="gln">7640107870002</bmecat:SUPPLIER_IDREF>
        <SHIPMENT_PARTIES_REFERENCE>
          <DELIVERY_IDREF type="buyer_specific">1234</DELIVERY_IDREF>
        </SHIPMENT_PARTIES_REFERENCE>
      </ORDER_PARTIES_REFERENCE>
    </ORDER_INFO>
  </ORDER_HEADER>
  <ORDER_ITEM_LIST>
    <ORDER_ITEM>
      <LINE_ITEM_ID>1</LINE_ITEM_ID>
      <PRODUCT_ID>
        <bmecat:SUPPLIER_PID type="supplier_specific">101034170</bmecat:SUPPLIER_PID>
        <bmecat:INTERNATIONAL_PID type="gtin">7049981041865</bmecat:INTERNATIONAL_PID>
        <bmecat:BUYER_PID type="buyer_specific">13941540</bmecat:BUYER_PID>
        <bmecat:DESCRIPTION_SHORT>Bundesordner 7cm weiss</bmecat:DESCRIPTION_SHORT>
      </PRODUCT_ID>
      <QUANTITY>10</QUANTITY>
      <bmecat:ORDER_UNIT>C62</bmecat:ORDER_UNIT>
      <PRODUCT_PRICE_FIX>
        <bmecat:PRICE_AMOUNT>41.06</bmecat:PRICE_AMOUNT>
      </PRODUCT_PRICE_FIX>
      <PRICE_LINE_AMOUNT>410.60</PRICE_LINE_AMOUNT>
      <CUSTOMER_ORDER_REFERENCE>
        <LINE_ITEM_ID>850112233</LINE_ITEM_ID>
      </CUSTOMER_ORDER_REFERENCE>
      <REMARKS type="deliveryNoteTitle">Sitzungszimmer 101</REMARKS>
      <REMARKS type="deliveryNoteText">Für Frau Müller</REMARKS>
    </ORDER_ITEM>
    <ORDER_ITEM>
      <LINE_ITEM_ID>2</LINE_ITEM_ID>
      <PRODUCT_ID>
        <bmecat:SUPPLIER_PID type="supplier_specific">175892</bmecat:SUPPLIER_PID>
        <bmecat:BUYER_PID type="buyer_specific">13941541</bmecat:BUYER_PID>
        <bmecat:DESCRIPTION_SHORT>Bundesordner 7cm gelb</bmecat:DESCRIPTION_SHORT>
      </PRODUCT_ID>
      <QUANTITY>30</QUANTITY>
      <bmecat:ORDER_UNIT>C62</bmecat:ORDER_UNIT>
      <PRODUCT_PRICE_FIX>
        <bmecat:PRICE_AMOUNT>7.10</bmecat:PRICE_AMOUNT>
      </PRODUCT_PRICE_FIX>
      <PRICE_LINE_AMOUNT>213.00</PRICE_LINE_AMOUNT>
      <CUSTOMER_ORDER_REFERENCE>
        <LINE_ITEM_ID>850112234</LINE_ITEM_ID>
      </CUSTOMER_ORDER_REFERENCE>
    </ORDER_ITEM>
  </ORDER_ITEM_LIST>
  <ORDER_SUMMARY>
    <TOTAL_ITEM_NUM>2</TOTAL_ITEM_NUM>
    <TOTAL_AMOUNT>623.60</TOTAL_AMOUNT>
  </ORDER_SUMMARY>
</ORDER>

3. DISPATCHNOTIFICATION — you → Ofrex

You send us a DISPATCHNOTIFICATION to confirm what you shipped against one of our orders. It consists of a header (DISPATCHNOTIFICATION_HEADER), an item list (DISPATCHNOTIFICATION_ITEM_LIST) and a summary (DISPATCHNOTIFICATION_SUMMARY).

This is a near-standard openTRANS 2.1 DISPATCHNOTIFICATION with one Ofrex-specific addition: a per-line cost carried in a keyed remark (priceLineAmount). The standard delivery note has no price field, and we need the net line cost for reconciliation.

3.1 DISPATCHNOTIFICATION_HEADER

CONTROL_INFO

Element Description Status Example
STOP_AUTOMATIC_PROCESSING Same meaning as on the order. Omit for normal deliveries; include a non-empty value only when the delivery needs manual review. Optional MANUAL_CHECK: substitution on line 2
bmecat:GENERATOR_INFO Your generating system. Optional MYERP_2.4

DISPATCHNOTIFICATION_INFO

Element Description Status Example
DISPATCHNOTIFICATION_ID Your unique delivery-note ID. Mandatory 9227334
DISPATCHNOTIFICATION_DATE Date/time the delivery note was created. Optional 2026-07-30T08:00:00
DELIVERY_DATE Delivery window (DELIVERY_START_DATE / DELIVERY_END_DATE). Optional See ORDER §2.1
bmecat:LANGUAGE Document language. Optional ger
PARTIES buyer, final_delivery and supplier (see Conventions). Mandatory
SHIPMENT_PARTIES_REFERENCE DELIVERY_IDREF referencing the delivery party. Mandatory
SHIPMENT_ID Carrier shipment / tracking ID. Optional 2598313_6038246000
TRACKING_TRACING_URL URL to track the shipment. Optional https://…/track?id=…
Tracking: the simplest way to give us tracking is SHIPMENT_ID + TRACKING_TRACING_URL in DISPATCHNOTIFICATION_INFO. Send a ready-to-open URL if you have one.

3.2 DISPATCHNOTIFICATION_ITEM_LIST

One DISPATCHNOTIFICATION_ITEM per delivered line. At least one line is required.

Element Description Status Example
LINE_ITEM_ID Your line number. Optional 1
PRODUCT_ID Product identifiers — see ORDER §2.2. Include INTERNATIONAL_PID (GTIN) where possible. Mandatory
QUANTITY Delivered quantity. Mandatory 10
bmecat:ORDER_UNIT Always C62. Optional C62
ORDER_REFERENCE Reference back to our order (see below). Mandatory
REMARKS type="priceLineAmount" Net line cost you charge for this line, excl. VAT (see below). Mandatory 410.60

REMARKS type="priceLineAmount" — the net amount (excl. VAT) you are charging for the whole line. This is the Ofrex-specific addition; we read it to reconcile your delivery against the order and to drive downstream invoicing. Value only, no currency symbol (e.g. 410.60).

ORDER_REFERENCE — how we match the line back to the order. Echo the IDs from the ORDER we sent you.

Element Description Status Example
ORDER_ID Our order number (from ORDER/…/ORDER_ID). Mandatory 6038246000
LINE_ITEM_ID The Ofrex line item ID (from the order item's CUSTOMER_ORDER_REFERENCE/LINE_ITEM_ID). Mandatory 850112233

3.3 DISPATCHNOTIFICATION_SUMMARY

Element Description Status Example
TOTAL_ITEM_NUM Total quantity / number of items delivered. Mandatory 40

3.4 Example DISPATCHNOTIFICATION

<?xml version="1.0" encoding="UTF-8"?>
<DISPATCHNOTIFICATION version="2.1"
      xmlns="http://www.opentrans.org/XMLSchema/2.1"
      xmlns:bmecat="http://www.bmecat.org/bmecat/2005">
  <DISPATCHNOTIFICATION_HEADER>
    <CONTROL_INFO>
      <bmecat:GENERATOR_INFO>MYERP_2.4</bmecat:GENERATOR_INFO>
    </CONTROL_INFO>
    <DISPATCHNOTIFICATION_INFO>
      <DISPATCHNOTIFICATION_ID>9227334</DISPATCHNOTIFICATION_ID>
      <DISPATCHNOTIFICATION_DATE>2026-07-30T08:00:00</DISPATCHNOTIFICATION_DATE>
      <bmecat:LANGUAGE>ger</bmecat:LANGUAGE>
      <DELIVERY_DATE>
        <DELIVERY_START_DATE>2026-07-30T08:00:00</DELIVERY_START_DATE>
        <DELIVERY_END_DATE>2026-07-30T08:00:00</DELIVERY_END_DATE>
      </DELIVERY_DATE>
      <PARTIES>
        <PARTY>
          <bmecat:PARTY_ID type="supplier_specific">8620</bmecat:PARTY_ID>
          <PARTY_ROLE>buyer</PARTY_ROLE>
          <ADDRESS><bmecat:NAME>Ofrex AG</bmecat:NAME></ADDRESS>
        </PARTY>
        <PARTY>
          <bmecat:PARTY_ID type="buyer_specific">1234</bmecat:PARTY_ID>
          <PARTY_ROLE>final_delivery</PARTY_ROLE>
          <ADDRESS>
            <bmecat:NAME>Sieber Papeterie</bmecat:NAME>
            <bmecat:STREET>Bahnhofstrasse 5</bmecat:STREET>
            <bmecat:ZIP>8603</bmecat:ZIP>
            <bmecat:CITY>Schwerzenbach</bmecat:CITY>
            <bmecat:COUNTRY_CODED>CH</bmecat:COUNTRY_CODED>
          </ADDRESS>
        </PARTY>
        <PARTY>
          <bmecat:PARTY_ID type="gln">7640107870002</bmecat:PARTY_ID>
          <PARTY_ROLE>supplier</PARTY_ROLE>
        </PARTY>
      </PARTIES>
      <SHIPMENT_PARTIES_REFERENCE>
        <DELIVERY_IDREF type="buyer_specific">1234</DELIVERY_IDREF>
      </SHIPMENT_PARTIES_REFERENCE>
      <SHIPMENT_ID>2598313_6038246000</SHIPMENT_ID>
      <TRACKING_TRACING_URL>https://www.post.ch/track?formattedParcelCodes=99.00.123456</TRACKING_TRACING_URL>
    </DISPATCHNOTIFICATION_INFO>
  </DISPATCHNOTIFICATION_HEADER>
  <DISPATCHNOTIFICATION_ITEM_LIST>
    <DISPATCHNOTIFICATION_ITEM>
      <LINE_ITEM_ID>1</LINE_ITEM_ID>
      <PRODUCT_ID>
        <bmecat:SUPPLIER_PID type="supplier_specific">101034170</bmecat:SUPPLIER_PID>
        <bmecat:INTERNATIONAL_PID type="gtin">7049981041865</bmecat:INTERNATIONAL_PID>
        <bmecat:BUYER_PID type="buyer_specific">13941540</bmecat:BUYER_PID>
        <bmecat:DESCRIPTION_SHORT>Bundesordner 7cm weiss</bmecat:DESCRIPTION_SHORT>
      </PRODUCT_ID>
      <QUANTITY>10</QUANTITY>
      <bmecat:ORDER_UNIT>C62</bmecat:ORDER_UNIT>
      <ORDER_REFERENCE>
        <ORDER_ID>6038246000</ORDER_ID>
        <LINE_ITEM_ID>850112233</LINE_ITEM_ID>
      </ORDER_REFERENCE>
      <REMARKS type="priceLineAmount">410.60</REMARKS>
    </DISPATCHNOTIFICATION_ITEM>
    <DISPATCHNOTIFICATION_ITEM>
      <LINE_ITEM_ID>2</LINE_ITEM_ID>
      <PRODUCT_ID>
        <bmecat:SUPPLIER_PID type="supplier_specific">175892</bmecat:SUPPLIER_PID>
        <bmecat:BUYER_PID type="buyer_specific">13941541</bmecat:BUYER_PID>
        <bmecat:DESCRIPTION_SHORT>Bundesordner 7cm gelb</bmecat:DESCRIPTION_SHORT>
      </PRODUCT_ID>
      <QUANTITY>30</QUANTITY>
      <bmecat:ORDER_UNIT>C62</bmecat:ORDER_UNIT>
      <ORDER_REFERENCE>
        <ORDER_ID>6038246000</ORDER_ID>
        <LINE_ITEM_ID>850112234</LINE_ITEM_ID>
      </ORDER_REFERENCE>
      <REMARKS type="priceLineAmount">213.00</REMARKS>
    </DISPATCHNOTIFICATION_ITEM>
  </DISPATCHNOTIFICATION_ITEM_LIST>
  <DISPATCHNOTIFICATION_SUMMARY>
    <TOTAL_ITEM_NUM>40</TOTAL_ITEM_NUM>
  </DISPATCHNOTIFICATION_SUMMARY>
</DISPATCHNOTIFICATION>

4. File naming

Files are exchanged over SFTP in the directories we agree with you. Names in both directions are underscore-separated tokens with an .xml extension. The third token is always the Ofrex ORDER_ID — that is how a file is routed back to its order, so it must match the ORDER_ID in the document body exactly.

The patterns below are our default, not an obligation. If your system cannot produce exactly this shape, tell us the pattern it does produce — we can configure a per-supplier naming pattern on our side, as long as the document keyword and the ORDER_ID sit in fixed positions.

4.1 ORDER (Ofrex → you)

ORDER_<our customer number>_<ORDER_ID>_<timestamp>.xml

Token Meaning Example
1 Fixed ORDER. ORDER
2 Our customer number in your system, prefixed with 00. 008620
3 Ofrex ORDER_ID. 6038246000
4 Creation timestamp, YYYYMMDDTHHMMSS. 20260729T095100

Example: ORDER_008620_6038246000_20260729T095100.xml

4.2 DISPATCHNOTIFICATION (you → Ofrex)

DISPATCHNOTIFICATION_<our customer number>_<ORDER_ID>_<your reference>.xml

Token Meaning Example
1 Must contain DISPATCH so we pick the file up. DISPATCHNOTIFICATION
2 Our customer number in your system. 008620
3 Ofrex ORDER_ID, echoed unchanged. 6038246000
4 Your own reference — delivery-note number, timestamp, anything that keeps the name unique. 9227334

Example: DISPATCHNOTIFICATION_008620_6038246000_9227334.xml

Several dispatch notifications per order are normal (partial deliveries). Give each one a distinct name so they do not overwrite each other.

Contact: your Ofrex purchasing contact, or info@ofrex.ch.