OCI

OCI PunchOut, from the supplier’s side

Your buyer runs SAP and has asked for an OCI catalogue, not a cXML one. Here is what the difference actually means, what SAP will send you, and what it expects back.

What OCI is

OCI — Open Catalog Interface — is SAP’s mechanism for letting a buyer shop a supplier’s catalogue from inside their own procurement system. It does the same job as cXML PunchOut and does it a completely different way.

cXML exchanges structured XML documents. OCI passes plain HTTP form fields. There is no document schema to validate against and no DTD to fail — which makes OCI faster to stand up and considerably less expressive once you need more than a catalogue.

The distinction that catches suppliers out: a buyer saying "we use SAP" tells you nothing about which protocol you need. SAP Ariba speaks cXML. SAP SRM and SAP ERP speak OCI. Both are SAP. Confirm which system, in writing, from someone technical — before anyone estimates the work.

How the OCI RoundTrip works

Four steps out and back. "RoundTrip" is simply the name for the whole cycle completing successfully.

  1. The buyer calls your catalogue URL SAP opens your configured OCI URL and passes parameters with it — credentials identifying the buyer, and critically HOOK_URL, the address your cart must be posted back to. That value is generated per session and is not something you store.
  2. You authenticate and open a session You validate the credentials, identify which buyer this is, and show them your catalogue at their contracted pricing rather than list prices.
  3. The buyer shops and checks out They add what they need and click whatever your site calls "return to procurement". No order has been placed yet — this is still a shopping basket.
  4. You post an HTML form back to HOOK_URL Not an XML document — an HTML form POST carrying one indexed set of NEW_ITEM-* fields per line. SAP reads those into a requisition, which then goes through the buyer’s approval chain and eventually reaches you as a purchase order.

The fields you have to return

One indexed set per cart line, where [n] is the line number starting at 1. Which of these are mandatory varies by buyer configuration.

FieldWhat it carries
NEW_ITEM-DESCRIPTION[n]Product description as it will appear on the requisition line. Usually length-capped by the buyer’s system.
NEW_ITEM-MATNR[n]The buyer’s own material number, where they hold one for your product. Often blank.
NEW_ITEM-VENDORMAT[n]Your part number. This is the field the buyer’s team will reconcile against your invoice, so it must be stable.
NEW_ITEM-QUANTITY[n]Quantity ordered, in the unit given below.
NEW_ITEM-UNIT[n]Unit of measure. Expected as a valid code the buyer’s system recognises — the most common cause of a return that arrives but prices wrongly.
NEW_ITEM-PRICE[n]Unit price, at the contract terms for that specific buyer rather than list price.
NEW_ITEM-CURRENCY[n]ISO currency code. Must match what the buyer’s contract expects.
NEW_ITEM-PRICEUNIT[n]The quantity the price applies to. A price of 100 per 10 units is not the same as 100 per unit, and this field is what says which.
NEW_ITEM-LEADTIME[n]Lead time in days. Ignored by some buyers, mandatory for others.
NEW_ITEM-VENDOR[n]Your vendor number in the buyer’s system, where they use one.
NEW_ITEM-LONGTEXT_n:132[]Extended description. The unusual field naming is genuine OCI, not a typo — it trips up most first implementations.

Unit of measure and price unit cause more failed OCI implementations than anything else on this list. A cart that returns cleanly but prices wrongly is worse than one that fails outright, because it reaches an approver before anyone notices.

OCI versus cXML, decided quickly

 OCIcXML
Used bySAP SRM, SAP ERP, some S/4HANASAP Ariba, Coupa, Oracle, JAGGAER
TransportHTTP form fieldsXML documents
Return targetHOOK_URL from the sessionBrowserFormPost URL
Schema validationNoneDTD, and it will reject you
Carries orders and invoicesNo — IDoc or EDI separatelyYes, same protocol family
Effort to startLowerHigher
Effort to completeHigher — the rest is a second projectLower — one protocol throughout

A fuller treatment of the trade-off is in cXML vs OCI: which PunchOut protocol you need.

OCI questions

Is OCI the same thing as cXML PunchOut?

No. Both let a buyer shop a supplier catalogue from inside their procurement system, but the mechanics differ completely. cXML exchanges XML documents; OCI passes HTML form fields over HTTP. A supplier built for one does not automatically speak the other, which is why the first question to ask any buyer is which of the two their system uses.

Which buyers use OCI rather than cXML?

OCI is SAP’s interface, so it appears where SAP procurement does — SAP SRM, SAP ERP materials management, and some S/4HANA configurations. Buyers on SAP Ariba use cXML instead, despite Ariba also being SAP. That distinction catches suppliers out regularly: "we use SAP" does not tell you which protocol you need.

What is OCI RoundTrip?

The complete journey out and back: the buyer leaves their procurement system for your catalogue, shops, and the cart is returned into their requisition. "RoundTrip" is simply the term for that full cycle working end to end, as opposed to a one-way catalogue transfer.

Is OCI easier to implement than cXML?

The handshake is simpler — form fields rather than XML documents, and no DTD validation to fail. What OCI does not give you is the rest of the document flow. cXML carries purchase orders, shipping notices and invoices in the same protocol family; with OCI those travel separately, usually as IDoc or EDI. So OCI is easier to start and less complete to finish.

Can one catalogue serve both OCI and cXML buyers?

Yes, and it is the normal arrangement once a supplier has more than one enterprise customer. The catalogue, the product data and the buyer-specific pricing are shared; what differs is the endpoint that receives the request and the format of the returned cart.

Not sure whether your buyer needs OCI or cXML?

Send us what they gave you. The answer is usually in the first page of their onboarding pack, and it changes what the work is.

Start a conversation See pricing