• Last edited on: 24 July 2019

cXML Invoices

Coupa supports cXML InvoiceDetailRequest and InvoiceResponse documents.

Coupa adheres to cXML standards. We suggest you refer to the cXML User's Guide at cXML.org to learn more. See also Handling Common Special Characters in cXML.


If you plan on receiving purchase orders via cXML, you’ll want to fill out the Coupa cXML Supplier Questionnaire and give it to your customer.

How It Works

Post your invoices to:

Send Coupa an InvoiceDetailRequest cXML document via a secure HTTP connection. Each invoice must be backed by a purchase order or a contract. A single invoice can refer to multiple purchase orders. Ask your customer for the invoice posting URL.

For each InvoiceDetailRequest, include these required validation fields:

Item Description
Supplier domain and identity Usually a DUNS or NetworkID.
Customer domain and identity Usually a DUNS or NetworkID.
Shared secret A password that validates the buyer with the supplier. If no shared secret is specified, Coupa automatically passes none.
PO/contract information

If the invoice is backed by a PO, include:

  • Coupa PO number
  • Supplier part number
  • Unit of measure (UOM)
  • PO line number

If the invoice isn't backed by a PO, include the contract number.

Supported cXML

Coupa supports the following cXML purchase order documents:

cXML Document Description
InvoiceDetailRequest Reference invoice.dtd.
InvoiceResponse Post your cXML back to Coupa when you receive InvoiceDetailRequest.

See Sample cXML Invoices.

Testing Checklist

Talk to your customer about how to test your integration.