Skip to content
Gatebold

OCI Validator

Free OCI validator for SAP PunchOut debugging.

Validate your OCI 4.0 and 5.0 payloads - setup request and HOOK_URL cart return - against SAP T006, PRICEUNIT, indexing and encoding rules, etc. 100% browser-side, no payload stored, no cookies.

100% browser-side validation - your payload never leaves your machine

Examples library

Results

Ready to validate

Paste your OCI payload on the left then click Validate. No data is sent to our servers.

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=1000 to 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=_self traps 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 lacks accept-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.

The 8 essential OCI fields

The most useful for debugging a payload: 5 cart-return required, PRICEUNIT (silent killer), MATGROUP (UNSPSC), and HOOK_URL.

  • NEW_ITEM-DESCRIPTION[i] Required

    Short item label as it will appear in the buyer cart. Truncated to 40 chars by SAP.

  • NEW_ITEM-QUANTITY[i] Required

    Ordered quantity. Positive decimal, dot as decimal separator (never comma).

  • NEW_ITEM-UNIT[i] Required

    Unit of measure. OCI spec = ISO/UN/ECE code (PCE, KGM, MTR, etc.). Many SAP installations expect internal T006 codes (ST, KG, M, etc.) - the validator flags both cases.

  • NEW_ITEM-PRICE[i] Required

    Unit price (for PRICEUNIT units, default 1). Decimal, dot as separator. Always validate PRICE / PRICEUNIT / QUANTITY coherence.

  • NEW_ITEM-PRICEUNIT[i]

    Quantity that PRICE refers to. If PRICE=12.50 and PRICEUNIT=1000, the price is 12.50 per 1000 units. Absent = 1. The #1 source of x100 / x1000 pricing bugs in production.

  • NEW_ITEM-CURRENCY[i] Required

    ISO 4217 currency code (EUR, USD, GBP, etc.). 3 uppercase letters.

  • NEW_ITEM-MATGROUP[i]

    Material group or classification. In international B2B, this is often an 8-digit UNSPSC code.

  • HOOK_URL Required

    Absolute URL to which the supplier catalogue will POST the cart return. HTTPS very strongly recommended.

Gatebold

You validate your OCI, but who generates them?

Gatebold turns your Magento or Adobe Commerce into an OCI (4.0 and 5.0) and cXML compatible PunchOut supplier - without rewriting your catalogue. Structured mapping, observability, data hosted in France.