Distribution
E-invoicing
ERP
Financial Management
Supply Chain Collaboration
Supply Chain Management
EDI 810 Invoice: Requirements, Common Rejections and ERP Setup

Last updated: October 7, 2026 · Independent buyer’s guide · We do not sell rankings or coverage.
An EDI 810 invoice is the X12 transaction a supplier sends to bill a customer electronically for goods it has shipped. Retailers check each 810 first for format and then against their purchase order (850), your advance ship notice (856) and their own receipt, so an invoice can be technically valid and still go unpaid. To get paid on time, your ERP must bill the shipped quantity at the PO price and unit of measure, with the allowances and charges each retailer’s specification expects.
Key takeaways
- A 997 functional acknowledgment only confirms that the 810 passed syntax checks. Business rejections arrive later, as an 824 application advice, a portal status or a deduction.
- Walmart tells suppliers that the PO, ASN, physical shipment and invoice must all match.
- Invoice what shipped, not what was ordered. Billing the PO quantity after a short shipment can lead to shortage deductions such as Walmart’s code 22.
- Allowances and charges travel in SAC segments, and what each TDS total means varies by retailer.
- Most ERPs we reviewed rely on a partner app or EDI provider for the 810, but the ERP must still hold customer item numbers, units of measure and allowance rules.
What the 810 is and where it sits in the order cycle
X12, the standards body that maintains the format, describes the 810 as a transaction set that “can be used to provide for customary and established business and industry practice relative to the billing for goods and services provided” (X12, no date shown). The customer sends an 850 purchase order, you ship and send the 856 ASN, and then you send the 810. See our guide to the EDI 856 advance ship notice.
X12 defines the 997 as a report on “the results of the syntactical analysis” of a document and the 824 application advice as a report on “the results of an application system’s data content edits” (X12, no date shown). A 997 is therefore not acceptance.
The segments that carry the invoice
In version 004010 of the X12 standard, only ST, BIG, TDS and SE are mandatory, and every other segment is optional at the standard level (Stedi X12 reference, no date shown). Retailers make many optional segments mandatory. CVS’s 2026 guide, for example, marks N1, ITD and CTT as “must use” (CVS 810 guide v1.1, February 18, 2026).
| Segment | What it carries | Must match | ERP data source |
|---|---|---|---|
| BIG | Invoice and PO numbers and dates | 850 PO number and date | Sales invoice header, customer PO field |
| REF, N1 | Vendor number, shipment references, parties | Vendor setup, 856 carrier references | Customer and shipment records |
| ITD | Terms of sale and discount terms | Terms on the PO or vendor agreement | Payment terms code |
| IT1 | Line, quantity, unit, price, item IDs | 850 line, 856 shipped quantity | Invoice lines, customer item cross-reference |
| SAC | Allowances and charges | Allowances on the PO or in the vendor agreement | Discount and charge lines |
| TDS, CTT | Invoice totals, line count and hash total | Lines, SAC and tax per partner rules | Calculated by the map or ERP |
TDS amounts use the N2 data type, which has two implied decimal places (Stedi X12 reference, TDS segment, no date shown). Celigo, an integration vendor, gives the example that TDS*100000 represents $1,000.00 (Celigo, June 15, 2026).
The same element can also mean different things to different partners. JCPenney’s guide defines TDS02 as the amount subject to the terms discount and requires TDS01 and TDS02 to be the same value, with charges and allowances factored into both (JCPenney 810 guide, September 14, 2016). Core-Mark’s 2024 guide defines TDS02 as the merchandise total excluding charges, allowances and taxes (Core-Mark 810 guide, April 30, 2024). Your EDI map must therefore be built per trading partner.
Matching the 810 to the 850 and 856
Walmart’s supplier help center summarizes the rule as “PO == ASN == Physical Shipment == Invoice” and states that “your invoice should match the ASN exactly” (Walmart Supplier One help center, ASN FAQs, no specific date shown). Other buyers use a three-way match of PO, receipt and invoice. Kroger’s manufacturing division runs an Oracle three-way match (Kroger MFG supplier FAQ, July 15, 2022), and Core-Mark asks for one invoice per PO for its three-way match (Core-Mark, April 30, 2024).
Matching depends on five fields agreeing:
- PO number and line number. Insight’s guide says the invoice line number must match the line number on the original purchase order (Insight 810 guide, November 24, 2025).
- Item identifier. JCPenney asks for its 11-digit item number returned exactly as sent on the PO (JCPenney, September 14, 2016).
- Quantity. Bill the quantity on the ASN.
- Unit of measure and price. Kroger’s manufacturing division requires the unit price and quantity on each line to be in the same unit of measure shown on that line (Kroger MFG, July 15, 2022).
- Shipment reference. JCPenney requires a carrier PRO, bill of lading or tracking number on every invoice (JCPenney, September 14, 2016), and Home Depot’s matching uses SCAC, bill of lading, PRO or parcel tracking numbers (SPS Commerce, updated June 12, 2025). SPS Commerce sells EDI and deduction services.
Allowances and charges in the SAC segment
The SAC segment carries an allowance or charge indicator in SAC01, a code in SAC02, the amount in SAC05 (also N2), a handling code in SAC12 and a description in SAC15 (Stedi X12 reference, SAC segment, no date shown). JCPenney’s guide uses A for allowance and C for charge in SAC01 (JCPenney, September 14, 2016). Insight lists handling code 02 for off invoice and 06 for a charge to be paid by the customer (Insight, November 24, 2025).
Codes differ by partner. Kroger’s manufacturing division specifies D240 for freight, H750 and H850 for tax and F180 for pallets, and asks for a clear SAC15 description on any other charge (Kroger MFG, July 15, 2022). Core-Mark lists 15 codes, including F800 for promotional allowance and I500 for vendor freight (Core-Mark, April 30, 2024). If your ERP stores a promotion as a reduced unit price while the retailer expects list price plus an SAC allowance, the line price fails the match.
Where 810 invoices get rejected
Rejections happen at four layers.
- Syntax. The retailer’s translator returns a 997 that accepts or rejects the file. Celigo notes that a functional acknowledgment “does not confirm business approval” or invoice acceptance (Celigo, June 15, 2026).
- Application edits. Kroger’s manufacturing division sends an 824 failure message for invoices that fail its checks and says such an invoice “will not be in our AP systems” until it is corrected and resent (Kroger MFG, July 15, 2022).
- Match exceptions. The invoice is loaded but cannot be matched. Home Depot’s accounts payable team cannot automatically pay an invoice without an exact match (SPS Commerce, updated June 12, 2025). Lowe’s treats invoices with price, quantity or PO problems, or no record of receipt, as problem invoices (SPS Commerce, updated April 22, 2026).
- Deductions after payment. The retailer pays a reduced amount. At Walmart, code 22 applies when you invoice for items Walmart did not receive, code 25 when Walmart says it received no product for an invoice, and code 30 for duplicate billing, which often follows a second invoice sent after a code 25 (SPS Commerce, updated July 2, 2020; SupplyPike, October 17, 2025).
The causes that recur in the guides we reviewed are a wrong PO number, item numbers not returned as sent, quantity billed above quantity received, unit of measure or price different from the PO, allowances netted into price, wrong TDS totals, missing carrier references and duplicate invoices. Deductions that follow these errors are covered in our guides to retail chargebacks and supplier software and deductions management software.
Worked example: one short shipment, two ways to invoice it
Illustration: all figures in this section are constructed for this example. A housewares supplier receives a PO for 500 cases at $24.00 per case, with a 3% off-invoice promotional allowance and a $150.00 freight charge that the retailer agreed to pay. The warehouse ships 480 cases, and the ASN reports 480.
Invoicing the shipped quantity gives a merchandise total of 480 × $24.00 = $11,520.00. The allowance is 3% of that, or $345.60, sent as an SAC allowance. Freight is a $150.00 SAC charge. The total is $11,520.00 − $345.60 + $150.00 = $11,324.40, which goes in TDS01 as 1132440.
If the ERP invoices from the sales order instead, it bills 500 cases, or $12,000.00, and an invoice total of $11,790.00 after the allowance and freight. That is $465.60 more than the retailer received. Depending on the retailer, the invoice may sit in a quantity exception or be paid and then reduced through a shortage deduction.
A third failure is a pricing mismatch. If the ERP recorded the promotion as a net price of $23.28, the total would still be $11,324.40, but every line price would differ from the PO.
ERP and EDI provider setup for the 810
What your ERP must hold
- Customer item cross-references. Microsoft’s Business Central item references insert the customer’s item description, unit of measure or variant code on documents (Microsoft Learn, May 2, 2025). Check that your ERP has an equivalent customer item table.
- The original PO data. Store the PO number, date, line numbers and unit of measure on the sales order.
- Invoice from shipment. Trigger the 810 from ship confirmation and block duplicate invoices.
- Allowance and charge rules. Store allowances and freight as separate lines with the partner’s SAC code.
- Partner-specific totals. Document how each partner calculates TDS, tax and terms.
How vendors produce the 810
| Option | How the 810 is produced | Limitation to check | Published pricing |
|---|---|---|---|
| SPS Commerce on Acumatica | Embedded app listing 810/880 invoices, 850 and 856 (Acumatica Marketplace, no date shown) | Confirm how allowances map from Acumatica discounts | Not published |
| EDI 365 (WebSan) on Business Central | App listing 810 sales invoice, return and credit memo, plus 820 remittance (Microsoft Marketplace, no date shown) | Ask who maintains retailer maps | Not published on the listing |
| Cleo Integration Cloud | Tracks invoices; connectors for NetSuite, Business Central, SAP S/4HANA and QuickBooks (Cleo, no date shown) | The self-service option requires in-house EDI skills; managed service is also offered | Not published |
| Epicor EDI | Self-managed or managed service handling POs, invoices and ASNs (Epicor, no date shown) | Confirm the connector for your ERP if it is not Epicor | Not published |
| Orderful | API-based EDI and web forms | Confirm that a connector exists for your ERP | Web EDI $189/month per partner; integrated from $399/month (Orderful, no date shown) |
All of these companies sell the products described. For NetSuite, SPS Commerce’s integration is in the Built for NetSuite program (SPS Commerce, modified May 6, 2026), although that page focuses on orders and ASNs rather than invoices. Before you sign, ask any provider to generate an 810 from your own test shipment with a short ship, an allowance and a freight charge.
Our independent take
Most 810 problems in the guides we reviewed start before the EDI map: invoicing ordered rather than shipped quantities, storing promotions as net prices, or losing the customer’s item number and unit of measure. An EDI provider cannot fix data your ERP never captured. Monitor 824s and portal statuses, not only 997s, and have AR clear them daily. We do not name an overall winner, because the right provider depends on your ERP, partner count and in-house mapping skills.
Three buyer scenarios
A $20 million consumer goods supplier on Business Central selling to four big-box retailers. Set up item references and PO units of measure first, then compare a marketplace EDI app with Cleo’s connector, testing each partner’s TDS and SAC rules.
A $70 million food manufacturer on Acumatica with grocery and club customers. Confirm that promotional allowances flow from Acumatica as separate SAC lines in each partner’s format. Pair the rollout with deduction tracking, so you can reconcile the allowances a retailer takes against the allowances you invoiced.
A small supplier on QuickBooks with one retail customer and fewer than 30 invoices a month. A web EDI plan, where you key the 810 against the 850, is usually enough; Orderful publishes $189 per month per partner. Integrate once volume grows.
When you do not need dedicated 810 software
If a customer accepts invoices through its supplier portal or by email, you do not need EDI for that customer. With one EDI partner and low volume, a web EDI form avoids integration cost, at the price of rekeying invoice data.
How we researched this
We reviewed X12 transaction set descriptions, a public segment reference, 810 guides from CVS, Core-Mark, JCPenney, Kroger’s manufacturing division and Insight, Walmart’s supplier help center, and help articles on Home Depot, Lowe’s and Walmart invoicing, then checked each vendor page named. We did not test the products, and no vendor paid for inclusion.
Related guides
- EDI 850 Purchase Order: What Suppliers Need to Receive and Process It in Their ERP
- EDI 940 and 945: How Brands and 3PLs Exchange Warehouse Orders
Frequently asked questions
What is the difference between an EDI 810 and an 856?
The 856 tells the customer what is on a shipment before it arrives, and the 810 bills for that shipment. Walmart expects the invoice to match the ASN exactly, so generate both from the same shipment record.
Does a 997 mean my 810 invoice was accepted?
No. A 997 confirms only that the file passed syntax checks. The retailer may still reject it with an 824, hold it as a match exception or pay it short.
How do I show allowances on an EDI 810?
Use the SAC segment with an allowance indicator in SAC01, the partner’s allowance code in SAC02 and the amount in SAC05. Keep the IT1 unit price equal to the PO price.
Why does TDS show 1132440 instead of 11324.40?
TDS amounts use the N2 data type, which has two implied decimal places. The value 1132440 means $11,324.40.
Can I resend an 810 that the retailer says it did not receive?
Check the retailer’s status first. SupplyPike notes that a second invoice sent after a Walmart code 25 can trigger a code 30 duplicate billing deduction, so dispute the original unless the retailer asks for a new invoice.
Sources
- X12, Transaction set descriptions, no date shown
- Stedi, X12 004010 810 Invoice reference, no date shown
- Stedi, TDS segment reference, no date shown
- Stedi, SAC segment reference, no date shown
- CVS, 4010 810 RX DC implementation guide v1.1, February 18, 2026
- Core-Mark, 810 Invoice v5010, April 30, 2024
- JCPenney, Factory Ship 810 v4030, September 14, 2016
- Kroger Manufacturing, Supplier FAQ on invoicing and claims, July 15, 2022
- Insight, EDI vendor 810 guidelines, November 24, 2025
- Walmart Supplier One help center, ASN general FAQs, no specific date shown
- SPS Commerce, Invoice matching at The Home Depot, updated June 12, 2025
- SPS Commerce, Problem invoices at Lowe’s, updated April 22, 2026
- SPS Commerce, Most common Walmart deduction codes, updated July 2, 2020
- SupplyPike, Code 30 duplicate billing, October 17, 2025
- Celigo, EDI 810 guide, June 15, 2026
- Microsoft Learn, Use item references in Business Central, May 2, 2025
- Acumatica Marketplace, SPS Commerce EDI for Acumatica, no date shown
- Microsoft Marketplace, EDI 365 by WebSan Solutions, no date shown
- Cleo, Cleo Integration Cloud, no date shown
- Epicor, EDI integrations, no date shown
- SPS Commerce, NetSuite integration, modified May 6, 2026
- Orderful, Pricing, no date shown

