DataShift
EDIDocuments

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.

Current JSON Schema
/edi/schemas/v1/invoice

Model

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

On this page