Invoice EDI Schema
Supplier billing document for ordered or shipped goods. Follows fulfilment and supports financial reconciliation, payment approval, and exception handling.
INV · Invoice
Supplier billing document for ordered or shipped goods.
An Invoice requests payment for supplied goods or services and gives the buyer enough line, tax, freight, discount, payment, and reference detail to reconcile against purchase orders, shipment notices, and accounts payable controls.
View releases · View model · View example · View guides · Versioning policy · Error catalogue
Lifecycle And Correlation
Lifecycle Position
Follows fulfilment and supports financial reconciliation, payment approval, and exception handling.
Correlation Guidance
Invoice lines should reference the original PO or ASN line with uniqueLineKey for automatic reconciliation. Header references identify the invoiced purchase orders and shipment notice; line references make quantity, price, tax, and credit/debit reconciliation precise.
Validation Notes
- Require invoiceNumber, invoiceDate, purpose, supplier, billTo, lineItems, and invoiceSummary.
- Validate purpose before applying credit memo, debit memo, or cancellation logic.
- Keep line currency and summary currency explicit and consistent unless a documented multi-currency process applies.
- Validate supplier tax identity through supplier.taxRegistrations and payment routing through remitTo.bankDetails when those controls are required.
- Validate tax totals against taxBreakdown when a breakdown is supplied.
Mapping Notes
- Map PO references at the header and preserve uniqueLineKey at the line level for automatic PO, POA, and ASN reconciliation.
- Use asnReference only when the invoice is explicitly tied to a dispatched shipment; do not fabricate it when the source does not provide an ASN reference.
- Represent line totals as grossAmount, taxAmount, and netAmount where practical; represent summary totals as grossAmount, taxAmount, shippingAmount, netAmount, and dueAmount.
- Use documentReference for credit/debit memos or cancellations tied to a previous invoice.
Operational Notes
- Use invoiceNumber with supplier identity for duplicate detection and accounts payable support.
- Route line correlation gaps to review instead of reconciling by item description or line order.
Implementation Pitfalls
- Keep tax, freight, and line totals explicit for reconciliation.
- Do not rely only on invoice-level totals when line-level tax or credits are present.
- Do not assume an invoice without uniqueLineKey can be safely matched by invoiceLineNumber, poLineReference, item id, description, quantity, or array position.
Key Fields
data.invoiceNumber: Supplier invoice identifier.data.invoiceSummary.currency: ISO 4217 currency code for invoice totals.data.lineItems[].uniqueLineKey: Line correlation key for PO or ASN reconciliation.
Field Groups
Envelope
Identifies the invoice document and traces it through order, shipment, and payment workflows.
docType: Always INV for invoice payloads.correlationId: Stable UUID used to trace the invoice against order and shipment workflows.metadata.sourceLanguage: Source format retained for public troubleshooting context.
Invoice Header
Captures invoice identity, purpose, dates, operation, and document references.
data.invoiceNumber: Supplier-generated invoice number.data.invoiceDate: Date and time the supplier issued the invoice.data.purpose: Standard invoice, credit memo, or debit memo purpose.data.poReferences[]: Purchase orders being invoiced.
Parties And Payment
Describes seller, billing, sold-to, ship-to, remit-to, contact, and payment term context.
data.supplier: Supplier or seller issuing the invoice.data.billTo: Buyer billing party.data.remitTo: Address and optional bankDetails for payment.data.paymentTerms: Payment terms, net days, and early payment discounts.
Lines And Summary
Captures invoice line quantities, prices, tax, discounts, freight, and totals.
data.lineItems[]: Invoice lines with invoiceLineNumber, quantity, unit price, grossAmount, taxAmount, netAmount, and currency.data.lineItems[].uniqueLineKey: Stable line key from the original purchase order.data.invoiceSummary: Invoice summary totals including grossAmount, taxAmount, shippingAmount, netAmount, dueAmount, and currency.data.invoiceSummary.taxBreakdown[]: Tax breakdown by type, rate, taxable amount, and jurisdiction.
Endpoints
The current JSON Schema is served at /edi/schemas/v1/invoice. Every published version, with its immutable download path, is on the releases page.
/edi/schemas/v1/invoiceModel
Generated from the published invoice.schema.json (version 1.0.12). Fields marked managed are populated by DataShift.
$
Prop
Type
$.metadata
Prop
Type
$.data
Prop
Type
$.data.documentReference
Prop
Type
$.data.poReferences[]
Prop
Type
$.data.asnReference
Prop
Type
$.data.supplier
Prop
Type
$.data.supplier.taxRegistrations
Prop
Type
$.data.supplier.contact
Prop
Type
$.data.supplier.address
Prop
Type
$.data.billTo
Prop
Type
$.data.shipTo
Prop
Type
$.data.remitTo
Prop
Type
$.data.remitTo.bankDetails
Prop
Type
$.data.shipping
Prop
Type
$.data.shipmentDetails
Prop
Type
$.data.paymentTerms
Prop
Type
$.data.paymentTerms.discountTerms[]
Prop
Type
$.data.contacts[]
Prop
Type
$.data.lineItems[]
Prop
Type
$.data.lineItems[].classification[]
Prop
Type
$.data.invoiceSummary
Prop
Type
$.data.invoiceSummary.taxBreakdown[]
Prop
Type
Last updated on