cXML InvoiceDetailRequest
The cXML invoice. Issued by the supplier to the buyer or its invoicing hub. It references one or more orders, details the billed lines with taxes and charges, and establishes the amount due.
Purpose
InvoiceDetailRequest is the B2B invoice in cXML terms: the
instrument that claims payment for one or more delivered orders. It supports the
standard invoice, credit memo (purpose="creditMemo"), debit memo
(purpose="debitMemo") and their line-level variants
(lineLevelCreditMemo, lineLevelDebitMemo).
Two modes: detail invoice (default), which lists lines through
InvoiceDetailOrder/InvoiceDetailItem, and
header invoice (isHeaderInvoice="yes"), which sums
up an order at header level through InvoiceDetailHeaderOrder. Header
mode is mandatory for whole-document credit/debit memos.
XML structure
The DTD: InvoiceDetailRequest (InvoiceDetailRequestHeader,
(InvoiceDetailOrder+ | InvoiceDetailHeaderOrder+),
InvoiceDetailSummary). So one fixed shape: a header, then a sequence of
InvoiceDetailOrder or InvoiceDetailHeaderOrder
(exclusive), then a summary.
InvoiceDetailRequestHeader
Content: InvoiceDetailRequestHeader (InvoiceDetailHeaderIndicator,
InvoiceDetailLineIndicator, InvoicePartner*, DocumentReference?,
InvoiceIDInfo?, PaymentProposalIDInfo?, InvoiceDetailShipping?,
ShipNoticeIDInfo?, (InvoiceDetailPaymentTerm*|PaymentTerm*),
PaymentInformation?, Period?, Comments?, IdReference*, Extrinsic*). Both
indicators are required by cardinality — even if empty — because they declare
structural choices (header vs detail invoice; line-level vs header fields).
Attributes: invoiceID and invoiceDate are
#REQUIRED; purpose defaults to "standard"
(other values listed above); operation defaults to "new"
(alternative "delete").
InvoiceDetailOrder
Content: InvoiceDetailOrder (InvoiceDetailOrderInfo,
InvoiceDetailReceiptInfo?, InvoiceDetailShipNoticeInfo?, (InvoiceDetailItem |
InvoiceDetailServiceItem)+). At least one line (item or service) is
required. InvoiceDetailOrderInfo points to the billed order via
OrderReference (or OrderIDInfo,
MasterAgreementReference).
For InvoiceDetailItem: invoiceLineNumber and
quantity are #REQUIRED. The content requires
UnitOfMeasure, UnitPrice and
InvoiceDetailItemReference (which links to the source line via
lineNumber).
InvoiceDetailSummary
Content: InvoiceDetailSummary (SubtotalAmount, Tax,
SpecialHandlingAmount?, ShippingAmount?, GrossAmount?,
InvoiceDetailDiscount?, InvoiceHeaderModifications?,
InvoiceDetailSummaryLineItemModifications?, TotalCharges?, TotalAllowances?,
TotalAmountWithoutTax?, NetAmount, DepositAmount?, DueAmount?,
InvoiceDetailSummaryIndustry?). Three required elements:
SubtotalAmount, Tax, NetAmount.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="260520.090000.inv@supplier.example"
timestamp="2026-05-20T09:00:00+00:00"
version="1.2.069">
<Header>
<From>
<Credential domain="DUNS"><Identity>987654321</Identity></Credential>
</From>
<To>
<Credential domain="DUNS"><Identity>123456789</Identity></Credential>
</To>
<Sender>
<Credential domain="DUNS">
<Identity>987654321</Identity>
<SharedSecret>shared-secret-here</SharedSecret>
</Credential>
<UserAgent>supplier-erp/2.1</UserAgent>
</Sender>
</Header>
<Request>
<InvoiceDetailRequest>
<InvoiceDetailRequestHeader invoiceID="INV-2026-00321"
purpose="standard"
operation="new"
invoiceDate="2026-05-20T09:00:00+00:00">
<InvoiceDetailHeaderIndicator/>
<InvoiceDetailLineIndicator isTaxInLine="yes"/>
<InvoicePartner>
<Contact role="remitTo">
<Name xml:lang="en">Acme Supplies Ltd — Remittance account</Name>
<PostalAddress>
<Street>15 Old Broad Street</Street>
<City>London</City>
<PostalCode>EC2N 1HQ</PostalCode>
<Country isoCountryCode="GB">United Kingdom</Country>
</PostalAddress>
</Contact>
<IdReference identifier="GB123456789" domain="vatID"/>
</InvoicePartner>
<PaymentTerm payInNumberOfDays="30"/>
</InvoiceDetailRequestHeader>
<InvoiceDetailOrder>
<InvoiceDetailOrderInfo>
<OrderReference orderID="PO-2026-00789"
orderDate="2026-05-13T16:00:00+00:00">
<DocumentReference payloadID="260513.160000.order@buyer.example"/>
</OrderReference>
</InvoiceDetailOrderInfo>
<InvoiceDetailItem invoiceLineNumber="1" quantity="3">
<UnitOfMeasure>EA</UnitOfMeasure>
<UnitPrice><Money currency="USD">29.99</Money></UnitPrice>
<InvoiceDetailItemReference lineNumber="1">
<ItemID>
<SupplierPartID>SKU-A100</SupplierPartID>
</ItemID>
<Description xml:lang="en">Ergonomic office chair, black</Description>
</InvoiceDetailItemReference>
<SubtotalAmount><Money currency="USD">89.97</Money></SubtotalAmount>
<Tax>
<Money currency="USD">7.20</Money>
<Description xml:lang="en">Sales tax 8%</Description>
<TaxDetail purpose="tax" category="sales" percentageRate="8">
<TaxableAmount><Money currency="USD">89.97</Money></TaxableAmount>
<TaxAmount><Money currency="USD">7.20</Money></TaxAmount>
</TaxDetail>
</Tax>
<GrossAmount><Money currency="USD">97.17</Money></GrossAmount>
<NetAmount><Money currency="USD">97.17</Money></NetAmount>
</InvoiceDetailItem>
</InvoiceDetailOrder>
<InvoiceDetailSummary>
<SubtotalAmount><Money currency="USD">89.97</Money></SubtotalAmount>
<Tax>
<Money currency="USD">7.20</Money>
<Description xml:lang="en">Sales tax 8%</Description>
</Tax>
<GrossAmount><Money currency="USD">97.17</Money></GrossAmount>
<NetAmount><Money currency="USD">97.17</Money></NetAmount>
<DueAmount><Money currency="USD">97.17</Money></DueAmount>
</InvoiceDetailSummary>
</InvoiceDetailRequest>
</Request>
</cXML> Required vs optional
- Header —
invoiceID,invoiceDateare#REQUIRED. Both indicators are required by cardinality even if every attribute defaults. - Orders or Header Orders — at least one, never both.
- Summary — cardinality 1, with
SubtotalAmount,TaxandNetAmountrequired. - InvoiceDetailItem —
UnitOfMeasure,UnitPrice,InvoiceDetailItemReferenceare cardinality 1.SubtotalAmountandNetAmountare optional at line level, but always present in practice.
Common patterns
Multi-order invoice: repeat InvoiceDetailOrder,
each carrying its own OrderReference. Lines may come from different
POs.
Line credit memo: purpose="lineLevelCreditMemo" on
the header, a required DocumentReference to the original invoice,
reason="return" on credited InvoiceDetailItem entries,
and their SubtotalAmount/NetAmount must be negative.
Service invoice: use InvoiceDetailServiceItem
rather than InvoiceDetailItem. The DTD enforces per-item
exclusivity (an InvoiceDetailOrder does not mix items and services).
Documentation
- InvoiceDetail.dtd — current version
— search for
ELEMENT InvoiceDetailRequest,InvoiceDetailRequestHeader,InvoiceDetailOrder,InvoiceDetailItem,InvoiceDetailSummary. - cXML Reference Guide (PDF) — Invoice Detail chapter, tax structures (VAT, withholding, etc.).
- OrderRequest
— the order referenced by
InvoiceDetailOrderInfo.