Most common OCI errors detected
OCI cart returns that break in production almost always come from the same causes. Here is what this validator catches before it reaches your SAP buyer:
- PRICEUNIT misread. The supplier sends
PRICE=12.50, PRICEUNIT=1000to mean "12.50 EUR per 1000 units", but the SAP buyer ignores PRICEUNIT and bills 12.50 EUR per piece. The #1 source of pricing errors in OCI integration - the validator computes the effective price and warns. - Line index
[0]. OCI spec numbers lines starting at[1]. Some SAP ITS versions silently drop line 0, others reject the entire request. - ISO vs SAP T006 units. The validator knows both the OCI spec (UN/ECE codes: PCE, KGM, MTR, etc.) and the real-world SAP setup (internal T006 codes: ST, KG, M, etc.). When the supplier sends a spec-compliant code but the buyer hasn't mapped it, we flag it.
-
~Target=_selftraps the return form. If the catalogue runs in an iframe (typical SAP SRM behind a reverse proxy), HOOK_URL will never fire. The validator detects this on the setup request. - Latin-1 / mojibake encoding. Characters like
é,à,üin DESCRIPTION or LONGTEXT become?when the auto-submit wrapper lacksaccept-charset="UTF-8". Detected automatically. - Missing required fields. DESCRIPTION, QUANTITY, UNIT, PRICE, CURRENCY are mandatory on every line. Silent omission makes the line vanish on the SAP side.
- Currencies outside ISO 4217 / dates outside ISO 8601. Direct validation against the official referentials.
OCI 4.0 vs OCI 5.0 - which one should you use?
OCI 4.0 remains the de-facto standard in the vast majority of integrations. It is the version recognised by SAP SRM, S/4HANA, and procurement suites that ship an OCI bridge (SAP Ariba via OCI gateway, Jaggaer, etc.). Note: Coupa, Oracle Procurement and most cloud suites are cXML-native and speak OCI only marginally or not at all.
OCI 5.0 added attachments (NEW_ITEM-ATTACHMENT, ATTACHMENT_TITLE, ATTACHMENT_PURPOSE), external product references (EXT_PRODUCT_ID, EXT_SCHEMA_TYPE, EXT_CATEGORY_ID, etc.), and a richer service hierarchy. Adoption remains limited to large industrial groups on recent S/4HANA.
Recommendation: start with OCI 4.0, only add 5.0 fields when the buyer explicitly asks.
OCI vs cXML, which should you implement?
Both protocols serve the same goal (B2B PunchOut) but with very different conventions. Our full OCI vs cXML comparison covers the decision. In short:
- Buyer on SAP SRM / S/4HANA? OCI is native. cXML requires a connector.
- Buyer on Ariba, Coupa, Jaggaer, Oracle Procurement, etc.? cXML is native. OCI is often a partial fallback.
- You serve both buyer types? Implement both protocols on the supplier side - the underlying data structure is the same, only the transport layer changes.
Going further
- OCI examples library - 7 PunchOut payloads (cart return + setup request) ready to copy, download or one-click test here. Includes PRICEUNIT trap, errors demo, OCI 5.0 attachments, etc.
- OCI Fields reference - all 38 documented fields (cart return + setup request), with format, length, version 4.0/5.0, descriptions and per-field shareable anchors.
- cXML Validator - equivalent for the cXML 1.2.070 protocol (official DTD).
- What is OCI? - SAP origin, mechanics, differences with cXML.
- cXML vs OCI - Full protocol comparison.
- UNSPSC Codes - The referential to use for the NEW_ITEM-MATGROUP field on the supplier side.
- PunchOut Magento planning checklist - Supplier-side integration checklist.