Configuring a PunchOut Supplier
Each supplier you punch out to needs a configuration row. The supplier provides most of the values in their integration guide.
Where to find it
Architect Panel → ERP - Setup:
- PunchOut Suppliers — the console — configure, test, monitor sessions
Architect Panel → Automation:
- Tasks — PunchOut Order Transmission every 15 minutes; PunchOut Session Expiry hourly
What to configure
- Supplier code and the counterparty record it binds to.
- Dialect — cXML or SAP OCI.
- Setup URL — where a session is opened.
- Order URL — where the approved order is sent.
- OCI method — for OCI suppliers, how the return is posted.
- Default document type — what a punch-out creates.
- Currency.
- Price tolerance — how much the returned price may differ from the reference before it is flagged.
- Session lifetime in minutes.
- Enabled and test mode.
Price tolerance
Returned prices are compared against your reference price and flagged when they differ by more than the tolerance.
This is the control that catches a supplier quietly moving off contract pricing. Set it tight enough to be meaningful — a percent or two covers rounding and small legitimate variation — and actually review what it flags. A tolerance set at 20% to stop the alerts is a tolerance that catches nothing.
Session lifetime
Sessions expire so an abandoned basket cannot be returned into a document hours later, when the requisition has moved on or the prices have changed.
Set it long enough for a real shopping trip — 60 to 120 minutes suits most — and short enough that stale returns are not possible. Too short and buyers lose baskets mid-order, which they will mention.
Test mode first
Suppliers provide a test endpoint. Configure in test mode, run a full round trip — open a session, build a basket, return it, apply it, approve the document and transmit the order — and confirm each step before enabling for real.
Test the whole loop, not just the punch-out. The return leg and the order transmission are where configuration errors surface, and they are the legs a buyer cannot work around.
The two background tasks
Both ship disabled and both are needed:
- PunchOut Order Transmission, every 15 minutes, sends approved orders to the supplier's order URL.
- PunchOut Session Expiry, hourly, closes sessions past their lifetime.
Without the first, approved orders sit unsent — which looks exactly like a working system right up until somebody asks where the delivery is. Enable both under Automation → Tasks when you go live.
Monitoring
Sessions move through opened, sent to supplier, cart returned, applied, and end as cancelled, expired or errored. Messages carry their own status — queued, sent, acknowledged, received, rejected by supplier, or failed.
Watch for rejected by supplier: it means the order reached them and they refused it, which is a different problem from a transmission failure and needs a person rather than a retry.
Worked example
A first supplier is configured in test mode with a 90-minute lifetime and a 2% price tolerance. The full loop is run twice, including a deliberately stale session to confirm expiry. Test mode is then turned off, both tasks are enabled, and the buying team is shown the round trip. A second supplier is added the following month using the same pattern.
Recommendations
- Enable both tasks — unsent orders are silent failures.
- Keep the price tolerance tight and review what it flags.
- Test the whole round trip, including order transmission.
- Investigate supplier rejections individually rather than retrying.