FluentEDI

810 mismatch: when your invoice disagrees with your own paperwork

Retail AP systems run a three-way match: the 810 invoice against the 850 (what was ordered) and the 856 (what you said shipped). Disagreement doesn't bounce an email to you — it routes your invoice into a discrepancy queue where it's paid late, short, or disputed.

The three matches and how each breaks

MatchTypical breakRoot cause
Quantity: billed ≤ shippedInvoice bills the full PO after a partial shipmentBilling from the PO instead of from the ASN
Price: invoice price = PO priceCents-level driftPrice updated in your system after acknowledgment; or float rounding in a spreadsheet (sum of lines ≠ TDS total)
Item identity: same UPC/vendor #Substituted item billed under the ordered item's number (or vice versa)Substitutions not reflected consistently across 856 and 810

The partial-shipment trap specifically

Ship 2 of 3 pallets now and the rest next week, and your paperwork forks: the correct pattern is a supplemental ASN for the second truck and separate invoices matching each shipment (unless your program specifies otherwise). Billing everything on truck one is the single most common self-inflicted mismatch.

Reconciling before you bill

  1. Generate the 810 from shipment data, never directly from the PO
  2. Diff it against the acknowledged 855 quantities and the transmitted 856
  3. Check the total foots: sum of IT1 lines ± SAC allowances = TDS, in integer cents
FluentEDI runs exactly this three-way check across your parsed 850, generated 856, and generated 810 before anything transmits — because it's the same check the retailer runs after. 810 guide ·generator waitlist