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
| Match | Typical break | Root cause |
|---|---|---|
| Quantity: billed ≤ shipped | Invoice bills the full PO after a partial shipment | Billing from the PO instead of from the ASN |
| Price: invoice price = PO price | Cents-level drift | Price 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
- Generate the 810 from shipment data, never directly from the PO
- Diff it against the acknowledged 855 quantities and the transmitted 856
- 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