How to read this reference
OCI (SAP Open Catalog Interface) is not XML: it is a protocol based on HTTP form-urlencoded parameters. Every cart-return payload contains NEW_ITEM-FIELD[i]=value pairs, where i is the line index (starting at 1). Setup request parameters are global and prefixed differently (sometimes with ~ for SAP-reserved parameters).
For each field, the table shows:
- Exact name (case-sensitive on the SAP side), followed by
[i]if the field is repeated per line. - Status required or optional per the OCI 4.0 spec.
- Type and max length: SAP silently truncates oversized values.
- Mode: cart return or setup request.
- OCI version: most fields exist since 4.0, some were added in 5.0 (attachments, external product references, etc.).
- Description bilingual with usage context and known traps.
The fields you must know
- NEW_ITEM-PRICEUNIT - the #1 source of x1000 pricing bugs in production. Always map it on the buyer side.
- NEW_ITEM-MATGROUP - material group, often an 8-digit UNSPSC code. See the UNSPSC reference.
- NEW_ITEM-UNIT - UN/ECE codes per the spec (PCE, KGM, MTR), but most SAP installations expect internal T006 codes (ST, KG, M). Coordinate the unit mapping with the buyer.
- HOOK_URL - absolute URL where the supplier POSTs the cart. Always HTTPS in web scenarios, strict syntax, no mixed-content from an HTTPS catalogue. In legacy SAP GUI scenarios (ITS / WebGUI, etc.), HOOK_URL can instead contain a
sapevent:pseudo-URL: the cart-return form then posts tosapevent:postand the embedded browser turns the submit into an SAP event that hands theNEW_ITEM-*fields back to the transaction. - ~Target - target of the cart-return auto-submit form. Three possible values:
_top(recommended): breaks out of all frames and POSTs to the top-level browser window, so the SRM intercepts the cart normally._self: POSTs within the current frame. If the catalogue runs in an iframe (standard SAP SRM setup), the return stays trapped inside the iframe and the SRM never sees anything →HOOK_URLnever fires and the cart vanishes._parent: goes up only one frame. Risky if there are nested iframes (reverse proxy + SRM Portal).
OCI 4.0 or OCI 5.0?
OCI 4.0 remains the de-facto standard across the vast majority of the installed base. OCI 5.0 added attachments, external product references (GTIN, EAN, UNSPSC, eCl@ss, etc.) and a richer service hierarchy. Start with 4.0, add 5.0 fields only when the buyer explicitly requests them. See the full OCI article.
Going further
- OCI Validator - test an OCI payload (setup request or cart return) against all the rules documented here, 100% in your browser.
- OCI payload examples - 7 curated examples (minimal, complete, PRICEUNIT trap, OCI 5.0 attachments, etc.) ready to copy or test directly in the validator.
- cXML Validator - the equivalent for the cXML protocol, validation against the official 1.2.070 DTD.
- cXML vs OCI - full protocol comparison.
- UNSPSC Codes - the product/service referential for the NEW_ITEM-MATGROUP field.