Automate retail EDI: 850 orders, 855 acknowledgments, 856 ASNs and 810 invoices
Updated · By Ecomsellertool editorial team
To automate retail EDI, let an EDI provider carry the messages and let rules post each 850 purchase order to your store, ERP or 3PL, answer with an 855, build the 856 ship notice from what was really packed, and bill the 810 from what shipped. Anything that fails a check, such as a price mismatch or a short shipment, stops and goes to a person.
- X12 names the documents: 850 Purchase Order, 855 Purchase Order Acknowledgment, 856 Ship Notice/Manifest, 810 Invoice and 860 Purchase Order Change Request (checked November 5, 2026).
- A 997 is a technical receipt, not a yes. SPS Commerce says it does not confirm the supplier can fill the order; the 855 does that.
- SPS Commerce says retailers check the 810 against both the 850 and the 856 in a three-way match, and errors can lead to payment delays or deductions.
- Each retailer sets its own list. Walmart's drop-ship EDI file list names the 850, 855, 856, 860, 846 and 997, and no 810.
- Shopify's Fulfillment object page names tracking details but no carton or weight fields, so ASN pack data usually has to come from the 3PL or warehouse system.
- This recipe uses no AI model. EDI data is already structured, so rules check every document and a person decides every exception.
The step map: who runs each step
Trigger: A retailer's 850 purchase order or 860 change arrives through your EDI provider; after that, each pick, pack and shipment event from your warehouse or 3PL, plus a clock on every document still owed.
| Step | What happens | Who runs it |
|---|---|---|
| 1 | The EDI provider receives the 850, returns the 997 receipt and passes the translated fields to the workflow, which logs the PO once by retailer and PO number. | Rule |
| 2 | Each line is checked: retailer item number against your SKU cross-reference, cost against the agreed price, ship-to code, unit of measure, ship window and available stock. | Rule |
| 3 | Clean POs post to Shopify, the ERP or the 3PL with the PO number attached. A deadline clock starts for each document the retailer expects back. | Rule |
| 4 | A person reviews what the rule table stopped: unknown items, price differences, short stock, impossible dates and changes to work already picked. | Person |
| 5 | The 855 goes out line by line with the retailer's status codes, built from the stock check and the person's decisions. A later 860 is matched to the open PO and applied if nothing has been picked. | Rule |
| 6 | When the warehouse or 3PL finishes packing, its carton, weight, label and tracking data becomes the 856. The workflow checks it against the acknowledged quantities and sends it inside the retailer's window. | Rule |
| 7 | The 810 is built from what the 856 says shipped, at the PO price, and checked so lines add up to the total before it leaves. | Rule |
| 8 | Rejections, missing receipts, overdue documents and short payments open a case with the full document history, assigned to a named owner. | Person |
6 rule steps · 0 AI model steps · 2 person steps. A rule follows fixed logic you approve; an AI model handles messy input and its output is checked by rules; a person makes the calls listed below.
What stays with a person
- Rejecting or shorting a line, offering a substitute and setting a backorder date
- Price or cost differences between the PO and your agreed price
- Changes that arrive after a line has been picked, packed or shipped
- Packed quantities that differ from the 855, and any correction to a document already sent
- Chargeback and deduction disputes, including whether one is worth contesting
Which tools can run it
- An EDI provider's web portal, keyed by hand, for a few POs a month with one retailer
- An EDI provider plus its connector for your ERP or store, when your system has one and your exceptions are few
- Zapier, Make or n8n between a provider's files or API and your store, for one retailer, simple orders and a log someone reads
- Custom code on your accounts, for several retailers, a 3PL's pack data, the full rule table and a clock on every document
Systems it connects
- EDI provider or direct AS2 or SFTP connection
- Shopify or another store
- ERP or accounting system
- 3PL or warehouse system
- Carton label printing
- SKU cross-reference and retailer price list
- Slack or email for exception alerts
- Document log
Build size: Large
Each retailer has its own document list, codes and windows, and the 856 depends on carton data that often sits in another company's warehouse system.
A retailer says yes, and your brand gets a new kind of paperwork. Purchase orders arrive as EDI files, the retailer expects structured answers on its own clock, and someone ends up retyping the same order into Shopify, the ERP and the 3PL portal. Then a ship notice goes out late, or an invoice does not match, and money comes off the payment. This recipe turns each document into a set of rules, with every exception going to a named person. It is one page of our automation library.
What should happen to each EDI document, and when does a person step in?
This table is the core of the build, and you can use it today even if a person still keys every document. Each row is one document or one failure. Read it as a spec: where the data comes from, what the rule does, what stops the rule, and what the delay or error costs you. Your retailer's guide overrides anything here, so write its windows and codes next to each row. The document names follow the X12 transaction set list (checked November 5, 2026).
| Document or failure | Where the data comes from | What the automation does | What stops it and goes to a person | What goes wrong if late or wrong |
|---|---|---|---|---|
| 850 Purchase Order (retailer to you) | The retailer, through your EDI provider; your SKU cross-reference and agreed prices | Logs it once by retailer and PO number, posts the order with the PO number attached, starts a clock for each document owed | Unknown item, price differs from the agreed price, unknown ship-to code, a ship window you cannot meet | Missed: nothing ships and you hear about it from the buyer. Posted twice: the order ships twice |
| 997 Functional Acknowledgment (both ways) | The provider's transmission log | Sends a receipt for each file received, and watches for a receipt on each file sent | A rejected file, or no receipt within the time you set | Your system says "sent" while the retailer has nothing |
| 855 PO Acknowledgment (you to retailer) | PO lines, plus available stock from the ERP, warehouse or 3PL | Answers each line with the retailer's status code: accepted, rejected or backordered | Short stock, substitutes, new dates, discontinued items | The retailer plans on units you cannot ship, and finds out when the truck arrives short |
| 860 PO Change (retailer to you) | The retailer, matched to your open PO | Applies a cancel or change if nothing is picked, tells the warehouse, resets the clocks | The line is already picked, packed or shipped; any change to price or an added quantity | You ship a canceled line, or your 810 no longer matches the PO |
| 856 Ship Notice (you to retailer) | Pack data from the warehouse or 3PL: cartons, weights, label numbers, carrier and tracking | Builds it from what was packed, not what was ordered; checks totals against the 855; sends inside the retailer's window | Packed differs from acknowledged, missing carton or tracking data, a split the retailer's rules do not allow | Late or inaccurate: manual receiving at the dock, then possible chargebacks or penalties |
| Carton label does not match the 856 (failure) | Label records and the 856 draft | Takes label numbers and the ASN from one record, compares them before the shipment closes | Any mismatch: fix and reprint before pickup | The scan fails, so the carton needs manual handling and receiving slows down |
| 810 Invoice (you to retailer) | Shipped quantities from the 856, prices from the PO | Bills what shipped, at the PO price, and checks the lines add up to the total | Any difference from the PO or the 856; discounts that do not calculate | Payment delays, short payments or deductions |
| 846 Inventory Advice (if your retailer requires it) | Available stock after your buffer | Sends on the agreed schedule from one shared stock count | Feed stops, or a large swing that looks like a data error | The retailer sells what you cannot ship, and you cancel orders |
| 824 Application Advice, or a provider rejection (failure) | The retailer or the provider | Logs the document and the reason, holds the next document for that PO | Always: a person fixes the data and decides whether to resend | The file passed the format check but its content failed, so the document is not doing its job |
| A document is overdue (failure) | The clock started by the 850 | Alerts the owner before the deadline, not after, with the PO and what is missing | Always, once the first alert passes unanswered | The window closes without anyone noticing |
| 820 remittance or a deduction (failure) | The retailer's remittance file or portal, plus your document log | Matches payment to invoice, opens a case for any shortfall, attaches the 850, 855, 856, 810 and timestamps | Every dispute, and the call on whether to dispute at all | The dispute window closes and the money is gone |
The 997 and 824 rows are easy to overlook. X12 describes the 824 as reporting the results of data content edits, so a file can pass the format check and still fail on its content. Walmart's 997 page shows the other trap: a functional group is fully accepted or fully rejected, so one rejected group means every set in it failed (checked November 5, 2026).
The costs in the last column come from what EDI providers publish. SPS Commerce's chargeback guide describes chargebacks as fees for documents or shipments that are wrong, late or missing, and says many retailers' dispute windows typically range from 30 to 90 days from the deduction date (checked November 5, 2026). Its 856 page says barcode and ASN mismatches can force manual sorting and lead to chargebacks or penalties, and its label guide says the SSCC on the carton must be the same 18-digit string sent in the 856 (both checked November 5, 2026). Amounts vary by retailer, so use your own vendor guide.
How do the four documents have to agree with each other?
Trouble starts when two documents tell different stories. SPS Commerce's guide for first-time suppliers says retailers validate the 810 against both the 850 and the 856 in a three-way match, and that errors between them often lead to payment delays or deductions (checked November 5, 2026). So write one rule that every document passes. Use it as your default, unless your agreement allows overshipping.
Invoiced units = units on the 856 ≤ units on the 855 ≤ units on the 850, after any 860
An illustrative example, not a client result. A retailer orders 120 units of one item. Your stock check finds 110.
| Document | Illustrative units | What the rule checks |
|---|---|---|
| 850 Purchase Order | 120 | Item and price known, so the PO posts |
| 855 Acknowledgment | 110 accepted, 10 backordered or rejected | A person approved the short line before it went out |
| 860 Change, if the retailer sends one | 110 | PO quantity updated, clocks reset |
| 856 Ship Notice | 108 packed in cartons | Below the 855, so a person sees it before it goes |
| 810 Invoice | 108 at the PO price | Equals the 856, and lines add up to the total |
The check runs before each document leaves, so a difference reaches a person while it can still be fixed. SPS's 810 page names one more: when mapping or rounding errors mean lines do not add up to the total, the retailer is likely to pay the lesser amount (checked November 5, 2026). The 3PL also has to report what really went in the box. If it reports only "shipped", you are guessing, which is why order routing and the 856 are one design problem.
Which documents does your retailer actually require?
Do not build from a generic list. Read each retailer's guide and mark every row in the table as required, optional or not used. Two public examples show how much that varies, both checked November 5, 2026. These cover drop-ship programs; store and warehouse programs have their own rules, which sit behind supplier logins and which we have not read.
| Retailer page | What it says | What it means for the build |
|---|---|---|
| Walmart's EDI interface page | Drop-ship vendors send 855, 856, 846 and 997 files and receive 850, 860 and 997 files. Its file list names no 810 | Do not assume the invoice travels as an 810. Confirm how each program bills |
| Walmart's 855 page | Line codes include IA accepted, R2 invalid item, R4 backordered and AR released for shipment; IA must come before AR | Map your own statuses to the retailer's codes, line by line |
| Walmart's 856 page | Order, pack and item levels; a carrier tracking number and a supplier package ID are required for all packages | The pack level needs data per package, not per order |
| Walmart's 860 page | A line to be canceled, assuming its entire quantity is canceled | Your pick step has to check for cancels before it starts |
| Walmart's order interface guide (its XML route) | A line acknowledgment is due within four hours of receiving the order file | A daily batch can miss a window like this. Check the deadline for your route |
| Target's supplier page | Lists the ability to use EDI to receive purchase orders among vendor requirements | Plan for EDI before the first PO, not after |
| Target's drop ship overview | Fulfilling orders within one business day (24 hours), and sending and receiving all required EDI documents in a timely manner. The file's properties date it 2017, so confirm it with Target | Your clocks need to run in hours, including the 3PL's part |
Connections differ too. Walmart's connection types page lists AS2, SFTP, a value-added network and a third-party provider, and says it does not govern the data flow between the network or provider and the vendor (checked November 5, 2026). If the provider's connection to you breaks, finding that out is your job, so the overdue-document clock should watch your side as well.
Where does the data for each document live in Shopify, an ERP or a 3PL?
The hard part is rarely the EDI file. It is that the fields it needs sit in different systems. Use this map to find the gaps before you pick a tool. The Shopify rows were checked November 5, 2026.
| What the document needs | Where it usually lives | What to know |
|---|---|---|
| The order, with its PO number (850) | Shopify, the ERP or the 3PL | Shopify's orderCreate is meant for orders from an external system or for wholesale customers. Its input takes poNumber and sourceIdentifier, the ID on the originating platform |
| Whether stock is claimed | The system that holds available stock | Set the inventory behavior on purpose: BYPASS does not claim inventory, so a retail order could oversell your store |
| Stopping customer emails | Order creation options | The orderCreate page says sendReceipt and sendFulfillmentReceipt set to true send the customer confirmations. Leave them off for retail orders |
| Which location ships (855, 856) | Shopify fulfillment orders, or the ERP | Fulfillment orders are created automatically with the order and cannot be created by hand; each groups items from one location |
| Tracking and shipped lines (856) | Shopify, or the carrier | A Fulfillment records lines shipped and tracking details |
| Cartons, weights, label numbers (856) | Usually the 3PL's or warehouse's system | The Fulfillment page names no carton or weight fields, so plan a feed from the warehouse |
| Item codes (all) | A cross-reference you maintain | Retailer item numbers, UPCs and your SKUs, with case pack and unit of measure. A missing row here stops the order |
| Agreed prices (850, 810) | The retailer's cost file, in your ERP or a sheet | One source only, with effective dates |
Whichever system holds the order, run the duplicate check yourself, by retailer and PO number, before creating anything. The orderCreate input fields we read describe no duplicate protection.
How do you test EDI automation before going live?
Test the failures, not only the clean order. A retailer's own testing may never try your warehouse's bad day. SPS Commerce's testing page describes an exchange of test data built on the retailer's order management model and trading requirements (checked November 5, 2026), so ask early which documents your retailer tests and who signs off. Shopify's orderCreate page limits trial and development stores to five new orders per minute, so test a large batch knowing that limit.
- Every document marked required, optional or not used for each retailer, from that retailer's current guide
- Every status code and ship-to code mapped, and every SKU in the cross-reference with its case pack
- A clean PO runs from 850 to 810 with the three-way rule passing
- The same PO sent twice creates one order
- An unknown item, a wrong price and an unknown ship-to code each stop and reach the right person
- A short line produces the right 855 code, and the 856 and 810 follow the lower quantity
- A shipment split into two trucks produces what the retailer expects, or stops
- An 860 cancel arriving before the pick and another arriving after it each do the right thing
- A carton label scanned against the 856 matches, and a deliberately wrong label stops the shipment
- An invoice with a rounding error is held before it leaves
- A rejected 997 and a missing 997 each raise an alert
- Each overdue clock fires ahead of the retailer's deadline, including on weekends if the retailer's clock runs then
- Retail orders send no email to customers and affect stock the way you chose
- The 3PL's feed going silent raises an alert within hours
- A person can find any PO's full document history in under a minute
Run the new flow beside the manual one on real POs for a while, and switch off the manual steps once the documents match. Keep the manual path written down for the day the provider or 3PL feed is down.
What should stay with a person?
Anything that changes what you promise a retailer or what you get paid. The checkpoint list above covers shorted lines, price differences, late changes and disputes. The person never starts from a blank screen. They see the PO, every document sent, the rule that stopped it and the deadline. Log each decision with a name and a reason.
The log pays off after a few months. If most of your deductions trace back to one 3PL feed, one retailer's item codes or one label template, that is the next fix. Keeping score the way SPS suggests, with on-time ASNs and label accuracy on a scorecard, tells you whether it worked.
Which related workflows does this not cover?
EDI appears on several of our other recipes, in a different direction. Pick by who is sending the order to whom.
| Your situation | The recipe |
|---|---|
| Amazon is your retail buyer, as a 1P vendor | Amazon Vendor Central PO acceptance |
| You send orders on to dropship suppliers | Dropship supplier order forwarding |
| You are the buyer, waiting on your own suppliers' 855s | Supplier PO confirmations and ETAs |
| Buyers email PDFs and spreadsheets instead of EDI | B2B order entry from email |
| Consumer orders go to a 3PL | Shopify orders to a 3PL |
Which tool should run it?
Start with the EDI provider or direct link for the transport, because translating each retailer's format is its own specialty. Then ask how much of the rule table the provider's tools can run for you.
| Level | Fits when | What to watch |
|---|---|---|
| A provider's web portal, keyed by hand | A few POs a month, one retailer | The rule table still works as a checklist; the deadlines are all on your team |
| A provider plus its connector for your ERP or store | Your system has a connector, and exceptions are few | Ask which rows of the table it covers, and where the carton data for the 856 comes from |
| Zapier, Make or n8n between the provider and your store | One retailer, simple orders, a log someone reads | A failure nobody sees is a chargeback later. Our Zapier vs Make vs n8n comparison covers how they count work |
| Custom code on your accounts | Several retailers, a 3PL's pack data, the full table and every clock | Can run on Ecomsellertool Growth OS beside your order and stock flows |
Who builds retail EDI automation for brands?
Ecomsellertool builds workflow automation on your own accounts and systems for ecommerce brands. We have built software on Amazon's seller APIs since 2017 and shipped 50+ tools for 100+ teams. For retail EDI, we write the document rule table with you, then connect your EDI provider to your store, ERP and 3PL. Send a project brief below, or read how our workflow automation service works.
None of our published case studies is an EDI project, so here is the closest work, described as what it is:
- Inbound shipments and discrepancies at a prep center. For Little Owl, a 3PL and FBA prep center, we built software that tracks inbound shipments and inventory, with an admin side and a customer side. The client's brief included keeping track of discrepancies, similar in shape to an 856 that disagrees with a PO.
- A next action on every item. For EzBookPrep we built inbound and outbound shipment flows on Amazon's shipment APIs, with alerts for the next action on each book that replaced manual follow-ups. A clock on each document works the same way.
- Rules with a full log. TRAKTOR is rule-based automation we built for advertising. Its log records the rule, the previous and new values and a timestamp, the kind of history a dispute needs.
Get your EDI workflow built
Send us how a retail PO moves through your team today
Describe the workflow you want automated. We reply with a written plan: scope, timeline and a fixed price.
Frequently asked questions
What is the difference between an EDI 997 and an 855?
A 997 is a technical receipt. It says a file arrived and passed format checks. An 855 is a business answer. It says which lines you accept, reject or backorder. A retailer can hold a clean 997 from you and still have no idea what you can ship, so a workflow should track the two separately.
Can Shopify receive EDI orders directly?
Not as raw X12 through the Admin API pages we read. An EDI provider or your own translator turns the 850 into fields, and the workflow creates the order. Shopify's orderCreate mutation is meant for orders from an external system or for wholesale customers, and it takes a PO number and the ID of the order on the originating platform.
When should an 856 ASN be sent?
When your retailer's guide says. SPS Commerce says trading partners typically require the ASN to arrive before the shipment and that it should be sent at the time of the physical shipment. Windows differ by retailer and we do not quote a single number. Put yours in the rule table and set the alert well ahead of it.
How much do EDI chargebacks cost?
It depends on the retailer, the agreement and the failure, so use your own vendor guide and not a figure from a blog. SPS Commerce describes chargebacks as fees for EDI documents or shipments that are wrong, late or missing. Track what you are charged by reason code for a few months before deciding which fix to build.
Do I need an EDI provider, or can I connect directly to the retailer?
Walmart's drop-ship documentation lists AS2, SFTP, a value-added network and a third-party provider as connection types, so direct links exist. A provider can also handle translating each retailer's specification. A brand with one retailer and no EDI staff usually starts with a provider; the workflow in this recipe sits behind either choice.
Does retail EDI need AI?
No. EDI documents arrive as structured fields, so there is nothing for a model to read, and every check is a rule. AI models earn their place on emailed POs and PDFs, a different job that our B2B order entry recipe covers.
