On this page
  1. Availability and setup
  2. Request security
  3. Return URL
  4. Context and cart
  5. OCI product functions
  6. Transfer and mapping
  7. Request replay
  8. Inbound OrderRequest processing
  9. Confirmation documents
  10. ASN and invoice documents

Error Catalog

These are the public PUNCHOUT_* response codes returned by the PunchOut module. A security response may also include more specific codes in its errors array.

Availability and setup

Code Meaning and next check
PUNCHOUT_DISABLED PunchOut is disabled in the resolved store scope.
PUNCHOUT_MISSING_REQUIRED_FIELDS OCI buyer/hook values or required cXML setup values were not parsed.
PUNCHOUT_BUYER_MISSING The request did not contain the buyer identity required for context creation.
PUNCHOUT_BUYER_NOT_ALLOWED No active buyer matched protocol, identity and store scope.
PUNCHOUT_AUTHENTICATION_FAILED Protocol or optional transport credentials did not match; read the returned messages.
PUNCHOUT_INVALID_CUSTOMER_REFERENCE A supplied/assigned customer reference is invalid for the resolved context.
PUNCHOUT_INTERNAL_ERROR An unexpected server error occurred; use the correlation time and Magento logs without exposing the request secret.

Request security

PUNCHOUT_SECURITY_VALIDATION_FAILED is the top-level error. Its nested codes can include:

Nested code Meaning and next check
PUNCHOUT_IP_NOT_ALLOWED Magento's resolved client IP is outside the configured list.
PUNCHOUT_SIGNATURE_SECRET_MISSING Strict mode is on but the scoped signature secret is empty.
PUNCHOUT_SIGNATURE_MISSING No signature header/parameter was supplied.
PUNCHOUT_SIGNATURE_INVALID The supplied digest is not a 64-character hexadecimal SHA-256 value.
PUNCHOUT_SIGNATURE_MISMATCH HMAC secret or signed payload representation differs.

Return URL

The setup controller returns PUNCHOUT_INVALID_HOOK_URL with one or more details:

Nested code Meaning and next check
PUNCHOUT_MISSING_HOOK_URL No OCI hook or cXML form-post URL was found.
PUNCHOUT_INSECURE_HOOK_URL The URL is not HTTPS.
PUNCHOUT_HOOK_URL_CREDENTIALS_NOT_ALLOWED The URL contains user or password credentials. Remove them and authenticate through the supported transport modes instead.
PUNCHOUT_INVALID_HOOK_URL_PORT The URL port is outside the valid TCP port range.
PUNCHOUT_HOOK_URL_BLOCKED_HOST localhost was used outside sandbox mode.
PUNCHOUT_HOOK_URL_BLOCKED_IP A literal or resolved address is private/reserved outside sandbox mode.
PUNCHOUT_HOOK_URL_DNS_RESOLVE_FAILED The hostname produced no usable A/AAAA address.

Context and cart

Code Meaning and next check
PUNCHOUT_MISSING_TOKEN No token was supplied in the supported parameter/header.
PUNCHOUT_CONTEXT_NOT_FOUND Logout could not resolve the supplied token.
PUNCHOUT_CONTEXT_EXPIRED The token is absent, expired or already logged out for the requested action.
PUNCHOUT_CONTEXT_NOT_ACTIVE HTTP 409. The resolved context is no longer authenticated, for example because its cart was already transferred or the session was logged out. Start a new PunchOut session instead of reusing the token.
PUNCHOUT_CART_ADD_FAILED SKU, quantity, availability or Magento add-to-cart validation failed.
PUNCHOUT_CART_UPDATE_FAILED No item was resolved or an update value was invalid.
PUNCHOUT_CART_REMOVE_FAILED No matching item identifier was supplied/found.
PUNCHOUT_CART_GET_FAILED Magento could not resolve or read the bound quote.
PUNCHOUT_OPERATION_RESTRICTED The active storefront operation policy does not permit this action.

OCI product functions

Code Meaning and next check
PUNCHOUT_OCI_VERSION_INVALID The request contains an unsupported OCI version.
PUNCHOUT_OCI_VERSION_MISMATCH The request version differs from the OCI version configured on the buyer profile.
PUNCHOUT_OCI_PROFILE_VERSION_INVALID The buyer profile has no supported OCI version. Open the profile and save a valid value.
PUNCHOUT_OCI_FUNCTION_NOT_SUPPORTED The requested OCI function is not implemented for this flow.
PUNCHOUT_OCI_DETAIL_PRODUCT_REQUIRED DETAIL or DETAILADD was sent without PRODUCTID.
PUNCHOUT_OCI_DETAIL_PRODUCT_NOT_FOUND The configured SKU or external product identifier did not resolve to an eligible product.
PUNCHOUT_OCI_DETAILADD_VERSION_NOT_SUPPORTED DETAILADD was requested for a buyer profile that does not use OCI 5.
PUNCHOUT_OCI_QUANTITYCHECK_VERSION_NOT_SUPPORTED QUANTITYCHECK was requested for a buyer profile that does not use OCI 5.0.
PUNCHOUT_OCI_QUANTITYCHECK_FAILED The availability check failed: EXT_PRODUCT_ID is missing or unresolvable, QUANTITY is invalid, or the configured lead-time attribute is unusable. Read the returned message.

Transfer and mapping

Code Meaning and next check
PUNCHOUT_VALIDATION_ERROR Read the returned errors list for item, URL, mapping or currency details.
PUNCHOUT_EMPTY_ITEMS The transfer has no cart lines.
PUNCHOUT_ITEM_<n>_MISSING_DESCRIPTION The numbered line has no description.
PUNCHOUT_ITEM_<n>_INVALID_QTY The numbered line has a non-positive quantity.
PUNCHOUT_ITEM_<n>_MISSING_UNIT The numbered line has no unit.
PUNCHOUT_ITEM_<n>_MISSING_PRICE The numbered line has a missing, non-numeric or negative price.
PUNCHOUT_ITEM_<n>_INVALID_FORMAT The numbered cart line is not a readable item structure.
PUNCHOUT_ITEM_<n>_INVALID_OCI_UNIT The numbered OCI line has a unit longer than three characters.
PUNCHOUT_ITEM_<n>_INVALID_OCI_QTY The numbered OCI line has a quantity that cannot be formatted for OCI output.
PUNCHOUT_ITEM_<n>_INVALID_OCI_PRICE The numbered OCI line has a price that cannot be formatted for OCI output.
PUNCHOUT_MIXED_ITEM_CURRENCIES cXML lines do not share one currency.
PUNCHOUT_MAPPING_INVALID_PROFILE The context mapping is absent or not a usable runtime profile.
PUNCHOUT_MAPPING_INVALID_RULE_CONFIGURATION A saved rule cannot be executed safely.
PUNCHOUT_MAPPING_REQUIRED_<TARGET> A mandatory mapped target is empty after formatting/fallback.
PUNCHOUT_MAPPING_INVALID_NEW_ITEM_UNIT An OCI unit contains more than three characters.
PUNCHOUT_MAPPING_INVALID_NEW_ITEM_LEADTIME OCI lead time is not an integer with at most five digits.
PUNCHOUT_MAPPING_INVALID_NEW_ITEM_MANUFACTCODE The OCI manufacturer code exceeds ten characters.
PUNCHOUT_UNSUPPORTED_PROTOCOL The transfer resolved neither OCI nor cXML.

Request replay

Code Meaning and next check
PUNCHOUT_REQUEST_REPLAY_IN_PROGRESS Another call with this operation and X-Punchout-Request-Key is still processing.
PUNCHOUT_REQUEST_REPLAY_CONFLICT The operation and key were reused with a different request hash in the same Store view.
PUNCHOUT_REQUEST_KEY_REQUIRED A manual retry of an unknown delivery was requested without X-Punchout-Request-Key.

A successful exact retry returns the previously stored response and is not an error.

Inbound OrderRequest processing

Code Meaning and next check
PUNCHOUT_INVALID_ORDER_REQUEST The cXML document is malformed or does not contain a supported OrderRequest.
PUNCHOUT_ORDER_REQUEST_DISABLED OrderRequest intake is disabled on the resolved buyer profile. Enable Accept OrderRequest if this buyer should submit orders.
PUNCHOUT_PO_NUMBER_MISSING No PO/order number was parsed.
PUNCHOUT_PO_EMPTY_ITEMS The PO contains no parsed line items.
PUNCHOUT_PO_CANCEL_FAILED A legacy context-cart cancellation could not clear the linked PunchOut quote.
PUNCHOUT_INVALID_PRICE A submitted or authoritative unit price is invalid for processing.
PUNCHOUT_ITEM_MISSING Magento cannot resolve a submitted product using the configured product reference.
PUNCHOUT_ORDER_REJECTED An inbound policy or Magento quote validation rejected the order.
PUNCHOUT_MANUAL_REVIEW The request requires an administrator to review and process or reject it.
PUNCHOUT_PRICE_REVIEW A price difference reached the configured manual-review action.
PUNCHOUT_QUANTITY_REVIEW A changed returned-cart quantity requires review.
PUNCHOUT_NEW_ITEM_REVIEW A product not present in the returned cart requires review.
PUNCHOUT_REMOVED_ITEM_REVIEW The approved order removed a returned-cart line that requires review.
PUNCHOUT_SNAPSHOT_REVIEW The returned-cart snapshot is missing or expired and the configured action is manual review.
PUNCHOUT_UPDATE_REVIEW An OrderRequest update requires manual review.
PUNCHOUT_UPDATE_REPLACEMENT_CANCELLED A cancel-and-recreate update produced a replacement order that is cancelled; the inbound order is held for manual review.
PUNCHOUT_UPDATE_CANCELLATION_REVIEW The original Magento order could not be cancelled during a cancel-and-recreate update; the inbound order is held for manual review with the failure detail.
PUNCHOUT_CANCELLATION_REVIEW An OrderRequest delete requires manual review.
PUNCHOUT_MANUALLY_REJECTED An administrator rejected the inbound order.
PUNCHOUT_PROCESSING_ERROR Quote or order processing raised an unexpected error. Inspect the detail record and Magento log for the same time.
PUNCHOUT_ORDER_PROCESSING The same OrderRequest is still being processed. Retry the unchanged request later.
PUNCHOUT_RETRY_EXHAUSTED The configured inbound-order processing attempts have been used. Review the stored failure before retrying manually.

Confirmation documents

These codes appear on document-queue rows for ConfirmationRequest delivery.

Code Meaning and next check
PUNCHOUT_CONFIRMATION_ENDPOINT_MISSING The stored confirmation routing has no endpoint URL. Check the buyer's Confirmation URL and the Store-view default.
PUNCHOUT_CONFIRMATION_DATA_INVALID The queued confirmation record lacks a valid order reference or confirmation type.
PUNCHOUT_CONFIRMATION_PREREQUISITE_MISSING The inbound order lacks the store, Magento order, buyer or endpoint data required to queue a confirmation.
PUNCHOUT_CONFIRMATION_PAYLOAD_FAILED The confirmation routing could not be decrypted or the cXML payload could not be generated; the queue row was closed with this diagnostic.

ASN and invoice documents

Code Meaning and next check
PUNCHOUT_ASN_ENDPOINT_MISSING No effective ASN URL is configured for shipment delivery.
PUNCHOUT_INVOICE_ENDPOINT_MISSING No effective Invoice URL is configured for invoice delivery.
PUNCHOUT_ASN_PAYLOAD_MISSING Magento could not build or load the retained shipment payload.
PUNCHOUT_INVOICE_PAYLOAD_MISSING Magento could not build or load the retained invoice payload.
PUNCHOUT_ASN_SHIPMENT_ID_MISSING No shipment/ASN/notice number was supplied.
PUNCHOUT_ASN_EMPTY_ITEMS No shippable line items were supplied or parsed.
PUNCHOUT_ASN_DATA_INCOMPLETE Magento could not hydrate the required shipment, order or supplier cXML data.
PUNCHOUT_ASN_DELIVERY_FAILED The HTTPS POST raised an error or returned non-2xx.
PUNCHOUT_INVOICE_NUMBER_MISSING No invoice number was supplied or parsed.
PUNCHOUT_INVOICE_TOTAL_INVALID Invoice total is missing or not greater than zero.
PUNCHOUT_INVOICE_CURRENCY_MISSING No currency was supplied or parsed.
PUNCHOUT_INVOICE_DATA_INCOMPLETE Magento could not hydrate the required invoice, order or supplier cXML data.
PUNCHOUT_INVOICE_DELIVERY_FAILED The HTTPS POST raised an error or returned non-2xx.
PUNCHOUT_DOCUMENT_TYPE_UNSUPPORTED A queue record refers to an unsupported outbound document type.
PUNCHOUT_DOCUMENT_CONFIGURATION_ERROR Required routing or supplier configuration is incomplete.
PUNCHOUT_DOCUMENT_PAYLOAD_MISSING Document generation completed without an outbound payload.
PUNCHOUT_DOCUMENT_PAYLOAD_DECRYPTION_FAILED Magento cannot decrypt the retained outbound payload. Check the installation's encryption key and deployment history.
PUNCHOUT_INBOUND_ORDER_REFERENCE_MISSING A queue row has no durable inbound-order reference.
PUNCHOUT_DOCUMENT_IDENTITY_INCOMPLETE A shipment or invoice queued for reconciliation is missing its Store View, inbound-order or buyer reference.
PUNCHOUT_BUYER_PROFILE_MISSING The inbound order linked to a shipment or invoice no longer references a buyer profile.
PUNCHOUT_DOCUMENT_STORE_MISSING The Store View referenced by a queued shipment or invoice document no longer exists.
PUNCHOUT_DOCUMENT_STORE_MISMATCH The queue row and its inbound order belong to different Store Views.
PUNCHOUT_QUEUE_OWNERSHIP_LOST The worker lost its queue lease before it could save the outbound payload. The row was not completed by that worker.
PUNCHOUT_DELIVERY_OUTCOME_UNKNOWN Magento cannot tell whether the remote system accepted the document. Check the receiver before using the dedicated manual retry action.
PUNCHOUT_QUEUE_PROCESSING_ERROR A queue handler raised an unexpected processing exception.

When the API message and trace do not explain a failure, reproduce it in the simulator with privacy-safe values and then inspect Magento logs for the same time window.

Display preferences

Adjust how this website is displayed. Changes apply immediately.

Text size
Text spacing
Reading aids

Follows the pointer. Move it with Alt + Up/Down outside input fields. Hidden while a dialog is open.

Uses the voices provided by your browser, which may use an online service. Reading starts only when you press Read aloud.

Your choices are saved in this browser for this website.