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.
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, …) |
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_DATE — type="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_REFERENCE — ORDER_ID (our order id) and ORDER_DESCR (the
customer PO number, if any).
ORDER_PARTIES_REFERENCE — BUYER_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_DETAILS — bmecat: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_FIX — bmecat: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=… |
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.
Supplier Integration