Implementation reference
Amazon Vendor EDI transaction sets work as one order-to-cash chain
On this page
Amazon Vendor integrations are easiest to understand as related business states, not a folder of unrelated EDI files. The purchase order defines demand, the acknowledgement defines what the supplier accepts, the ASN describes what physically ships, the invoice requests payment, and technical acknowledgements report whether messages passed the receiving translator.
Direct answer: Treat the 850, 855, 856, 810, and 997/999 as a versioned transaction chain. Validate each document, then reconcile quantities, item identifiers, purchase-order versions, shipment references, invoice amounts, and acknowledgement status across the chain. A file can be syntactically valid and still contradict every document before it.
The core transaction chain
| Transaction | Direction from vendor perspective | Business role | Cross-document gate |
|---|---|---|---|
| 850 Purchase Order | Inbound | What Amazon currently orders | Idempotent import; newest revision; item and quantity identity |
| 855 PO Acknowledgement | Outbound | What the vendor accepts, changes, or rejects | Response never exceeds or invents the active 850 |
| 856 Ship Notice/Manifest | Outbound | What actually leaves the warehouse | Shipment never exceeds accepted quantity; packaging matches physical output |
| 810 Invoice | Outbound | What the vendor asks Amazon to pay | Billed quantity and terms match eligible PO and shipment state |
| 997/999 Acknowledgement | Inbound or outbound | Translator/implementation response | Controls match the original document; business monitoring stays open |
Amazon’s public SP-API documentation mirrors the same business workflow through the Vendor Orders, Shipments, Invoices, and Transaction Status APIs. That public material is useful evidence for invariants, but it does not replace the current EDI implementation guide in a vendor account.
Why one-file validators miss expensive errors
An 856 can contain the right envelopes, valid HL parents, a mathematically valid SSCC, and consistent segment counts while shipping a cancelled PO line. An 810 can balance perfectly while invoicing more than the 855 accepted or the 856 shipped. A 997 can accept translator syntax while the downstream business transaction later fails.
These are comparison defects:
- latest 850 quantity versus final 855 accepted quantity;
- accepted 855 quantity versus cumulative 856 shipped quantity;
- 850 item identity versus the item under each 856 order branch;
- cumulative eligible shipment quantity versus cumulative 810 billed quantity;
- outbound controls versus 997/999 references;
- technical acknowledgement versus Vendor Central or transaction-status progress.
A shared reconciliation model keeps these checks consistent across formats. Standards and partner profiles supply parsing and usage rules, while the document history preserves the business relationships needed to compare orders, shipments, and invoices.
The safe validation layers
- Transport and bytes: confirm the complete file arrived, delimiters are known, encoding is accepted, and a duplicate delivery is idempotent.
- Envelope structure: reconcile interchange, functional-group, transaction controls, and trailer counts.
- Transaction structure: apply the selected transaction-set and version rules.
- Partner profile: apply only requirements supported by the current account guide or public partner evidence.
- Cross-document state: compare with active orders, acknowledgements, shipments, invoices, and prior retries.
- Physical and financial evidence: compare labels, WMS closeout, carrier records, receiving, payments, credits, and deductions.
The report should name which layer produced every finding. That makes a deterministic syntax error different from an account-specific warning and prevents “best practice” from masquerading as an Amazon requirement.
Where transaction rules and partner requirements come from
Use the applicable X12 release together with the receiver's current implementation guide. Public examples help explain the structure but do not establish every permitted code, repetition, or partner-specific requirement. Software teams incorporating standards metadata should also review the relevant X12 licensing arrangements for their intended use.
Record the source and revision behind each rule. This lets an operator distinguish a base-format error from a retailer restriction and gives developers a reproducible basis for updating a mapping when the partner changes its requirements.
Choose a manageable implementation sequence
Start with the documents needed for one complete partner workflow. Establish order identity and line interpretation before automating acknowledgment, shipment and invoice generation. Add technical response monitoring alongside each outbound flow. Reuse the resulting business relationships for additional partners, while keeping their versions and implementation requirements separate.
Common questions
Does a 997 mean the transaction was accepted by Amazon?
It generally communicates functional or syntactic acknowledgement. It does not prove the shipment was received correctly or an invoice reached a payable state. Keep business monitoring separate.
Can the same validator handle Walmart or Target?
The parser and cross-document engine can be shared. Each retailer needs its own versioned partner pack, licensed source material, fixtures, and evidence ownership. Do not turn one Amazon rule into a universal X12 rule.
Does every partner require the same transaction sets?
No. The agreed business process determines the document exchange. Confirm required messages, directions and timing during onboarding. Do not assume that supporting a transaction number means the integration supports the partner's complete operational workflow.
Read an EDI 850 purchase order as a business instruction
An EDI 850 communicates a purchase order. It identifies the order, parties, requested goods or services, quantities and other relevant terms. The exact segments and permitted use depend on the agreed release and implementation guide. A public reference is useful for learning the structure, but the partner profile determines what your integration must accept and produce.
The first import decision is identity. Determine which partner and business unit issued the order, how its order number is scoped and which source record represents it in your ERP. An order number alone may not be globally unique. Preserve partner identity and the original document controls so duplicate deliveries cannot create additional orders.
Next, map line identity and units. A buyer's item number can differ from the supplier's SKU, and “one” can mean one case or one individual unit. A line that orders ten cases must not be imported as ten each because both values happen to be numeric. Store the qualifier, identifier and unit together, and require maintained cross-references where systems use different codes.
For EDI 850 documentation or an EDI 850 spec, check the named X12 release before using a field definition. The general transaction definition does not replace a partner guide. Changes and acknowledgments have their own business roles and can use other transaction types; do not treat any later file with the same PO number as a simple overwrite without agreed change semantics.
Trace a small EDI 850 example
Imagine a buyer orders 24 cases of ITEM-A and 12 cases of ITEM-B for delivery to one location. The supplier receives an 850, resolves the buyer's item codes to internal SKUs and stores both requested quantities in cases. The business record should preserve the buyer's line identifiers even if the ERP assigns its own internal line numbers.
Now suppose the same interchange arrives again after a transport retry. The import should recognize the repeated document according to its idempotency policy. It should not double the order quantity or create a second order. However, a later legitimate change must not be discarded merely because the PO number is familiar. Distinguish a duplicate transmission from a new authorized business instruction.
The 850 validation guide provides a focused starting point for these checks. A useful EDI 850 example should include enough identifiers to demonstrate correlation and enough lines to reveal how the system handles repeated items. A single unexplained line of EDI is less useful than a small complete fixture with an expected imported result.
Use an EDI 855 to record the supplier's response
An EDI 855 purchase order acknowledgment communicates the supplier's response to the order under the agreed implementation. It can include acceptance, rejection or other permitted line-level decisions. Do not reduce the response to a document-level yes/no if the partner workflow distinguishes lines, quantities or dates.
In the example, the supplier can provide all 24 cases of ITEM-A but only eight cases of ITEM-B at the requested time. The response must express the actual permitted outcome, using the applicable codes and dates from the partner guide. The ERP state should make the difference between requested and accepted quantity visible to operations.
An EDI 855 example is therefore most useful beside its originating 850. Show which order line each response refers to, whether the accepted quantity differs and what follow-up action is required. A structurally valid 855 that refers to a nonexistent line is not a valid business response. Similarly, a response to an obsolete order version can mislead downstream fulfillment even if its individual fields are well formed.
When looking for EDI 855 documentation, check whether it describes the generic transaction or a specific partner implementation. Codes, required explanations and allowed timing can vary. The 855 validation guide explains why the active order should be part of the validation context rather than an optional attachment.
Keep the 856 tied to actual packing
The 856 ship notice describes what is being shipped and how the shipment is organized. It should come from the warehouse's actual packing state, not a blind copy of the order. An order expresses demand; an acknowledgment expresses the supplier's response; the ASN describes the physical dispatch. Those quantities can differ for legitimate reasons that the workflow must retain.
Continue the example: the warehouse packs 24 cases of ITEM-A and eight of ITEM-B into identified logistics units. The ASN should reflect those packed quantities and their order/package relationships. If a case is removed before dispatch, update the packing record, regenerate the affected shipment document and apply the partner's correction process. Editing only the ASN leaves the source systems inconsistent.
Use the complete EDI 856 example to inspect envelope and hierarchy relationships. For logistics-unit identity, use the SSCC generator and explanation. The barcode, warehouse record and ASN must refer to the same physical unit; a correct checksum cannot establish that identity match on its own.
Validate an EDI 810 invoice against eligible quantities
An EDI 810 invoice requests payment for a transaction. It needs a distinct invoice identity and the references required to connect it with the relevant commercial records. The invoice can be mathematically balanced and still charge for the wrong item, wrong unit or an already billed shipment. Validation therefore needs both arithmetic and business context.
In the running example, invoicing 12 cases of ITEM-B after shipping eight would overstate the shipped quantity if the agreed billing basis is shipment. The correct check depends on the contract and eligible shipment state; it is not safe to impose a universal invoicing rule across every industry. Document the billing basis and compare cumulative quantities where partial shipments or multiple invoices are permitted.
Amounts need independent recalculation. Compare line quantity, unit price, allowances, charges, tax and totals using the precision and rounding required by the implementation. Do not recompute with binary floating-point assumptions and then round only at the very end without considering the required line-level rules. A one-cent discrepancy can be a rounding-policy mismatch rather than a missing item.
An EDI 810 example should make each amount traceable. Label any synthetic price and tax assumptions, show which order and shipment support the invoice and explain the expected totals. The 810 validation guide develops the reconciliation approach. For a structural check, use the 810 validator within its stated scope.
Understand what an EDI 846 inventory message adds
An EDI 846 inventory inquiry/advice supports inventory-related communication. It is not a substitute for the purchase order, shipment notice or invoice. In a retailer or distributor integration, inventory availability can influence what the buyer orders and what the supplier can promise, but the specific meaning of a quantity must come from its qualifier and agreed context.
“Stock” can mean on hand, available, committed or another defined inventory state. A reported number is ambiguous without that meaning, location and effective time. An integration that publishes on-hand quantity while the receiver interprets it as available-to-sell can create overselling even when the underlying count is correct.
For an EDI 846 example, include the item identifier, inventory meaning, quantity, unit and relevant location/time context. Test what happens when a report is late or repeated. A stale inventory message should not silently replace a newer state. If the partner uses full snapshots and incremental changes differently, make that distinction part of the import contract.
Connect inventory monitoring to order exceptions without assuming every difference is an error. Stock can change between the inventory report and order acceptance. The useful operational question is whether the system can explain the sequence and handle the resulting order response appropriately, not whether all document quantities always match exactly.
Build a reconciliation ledger with explicit identities
A reconciliation ledger is a record of how business quantities and statuses relate over time. At minimum, retain partner, order, line, item, unit, shipment and invoice identities where applicable. Store source document references so a discrepancy can be traced to the exact evidence rather than a manually copied summary.
Consider partial fulfillment. An order for 100 units might produce two shipments of 40 and 60. Comparing the second ASN to the full order independently is insufficient: it should be assessed against prior eligible shipments and the active order state. The same principle applies when several invoices consume a shipment balance. Repeated documents must not consume that balance twice.
Use reversals and corrections explicitly. If a shipment is cancelled or an invoice corrected, do not erase historical evidence and pretend it never existed. Record the authorized business change and its relationship to previous documents. That history allows operations to distinguish an actual discrepancy from a resolved one.
For detailed cases, continue with document reconciliation. The key design principle is that document processing and business-state change are separate events. A received file can be stored and validated without immediately changing the order ledger, particularly when required references are missing or ambiguous.
Test the chain rather than isolated happy paths
Create an end-to-end synthetic scenario with an order, response, packing record, ASN and invoice. Define the expected business state after each step. Then add variations: repeated order, rejected line, partial shipment, mismatched unit, duplicate invoice and acknowledgment arriving before its corresponding record has been linked.
Each variation should have a known expected outcome. A duplicate invoice should not create another payable record. A shipment for an unknown order should be held or handled under an explicitly permitted workflow. A late inventory report should not silently become the latest stock position. These tests reveal operational defects that a collection of parsable EDI files will miss.
Include a correction journey. An operator should be able to find the source of the error, understand what can safely change and regenerate or resubmit under the partner's rules. Record whether controls are reused or replaced for that correction. The receiver's expected behavior must govern the choice; a developer convenience is not a partner agreement.
Questions about document relationships
What is the difference between an 850 and an 855?
The 850 communicates the buyer's purchase order; the 855 communicates the supplier's acknowledgment of that order. Compare them at the relevant order-line level. A technical 997 acknowledging receipt of the 850 does not replace the commercial response expressed through the agreed order acknowledgment workflow.
Is an 810 the same as an 856?
No. The 810 is an invoice and the 856 is a shipment notice. One concerns billing; the other describes dispatch and packing. They may refer to the same order and goods, but they serve different decisions. Use the actual shipment and agreed billing basis when validating their relationship.
Can an inventory feed replace order acknowledgment?
An inventory feed reports a defined inventory state; it does not necessarily accept a particular buyer's order. Stock availability can change, and a buyer may need explicit line-level acceptance. Follow the agreed document exchange rather than assuming that a recent positive stock count proves the supplier has committed the requested goods.
What should I ask an LLM about a failed EDI chain?
Describe the business event, relevant document types, sanitized identifiers, units and expected state. Ask which relationship is inconsistent and what evidence is missing. Do not ask it to invent an acceptance code or change quantities until a validator passes. Verify any proposed correction against the current implementation guide and actual order, packing or billing record.
Keep each document's meaning visible to people
A successful integration should let an operator answer simple questions: what was ordered, what was accepted, what left the warehouse, what was billed and what the receiver acknowledged. Each answer should link to its source and relevant time. Preserve those distinctions in the dashboard, support process and exported reports. That makes EDI automation understandable even when a shipment is split, a message is repeated or a partner returns a delayed rejection.
Extend the chain with EDI 860 and EDI 865 order changes
An EDI 860 supports buyer-initiated purchase-order changes. An EDI 865 supports purchase-order change acknowledgment or seller-initiated requests in the applicable workflow. These are additional document roles, not another name for an ordinary 855 acknowledgment. Select the exact version and partner usage before implementing them. 860 reference and 865 reference.
For EDI order processing, changes need a revision-aware ledger. Suppose an order begins at twenty units, twelve have already shipped, and a later change requests a lower total. The application must evaluate the requested change against the actual shipped state and agreed policy. It cannot safely replace the stored quantity and pretend the shipment never occurred. Preserve the original order, proposed revision, acceptance decision, and effect on outstanding quantities.
EDI purchase order automation should also handle a duplicate change and an older revision arriving late. Stable partner references and explicit revision ordering prevent a stale message from undoing newer approved work. When the partner's change semantics are unclear, create an exception before modifying the ERP. That behavior is a necessary part of a complete document workflow even when a simple parser already recognizes the transaction number.
Connect warehouse operations with EDI 940 and EDI 945
An EDI 940 is a warehouse shipping order, while an EDI 945 is warehouse shipping advice. These documents can connect a business with its warehouse or logistics provider. Their roles differ from the customer-facing ASN, even where information from warehouse advice contributes to that ASN. 940 reference and 945 reference.
Define which event authorizes warehouse release and which evidence confirms the actual dispatch. A request to ship is not proof that every requested unit left the building. Use the warehouse's confirmed quantities and packing relationships when preparing downstream shipment information. If the advice lacks detail required by the retailer, request the missing evidence rather than filling it from the original requested totals.
Test partial dispatch, warehouse substitution where permitted, a repeated advice, and a cancelled release request. Keep the customer order, warehouse instruction, warehouse result, and retailer notice linked through stable references. This lets operators explain a discrepancy without confusing a warehouse instruction with a completed physical movement.
Automate invoice processing after the shipment state is known
EDI invoice processing should use the eligible business state and the source accounting record. Validate the 810 structure, then reconcile billed lines, units, references, and totals with the agreed order and shipment workflow. Do not create an invoice merely because an ASN was generated; a draft notice can precede a packing correction or cancelled dispatch.
Evaluate an EDI 850 validator and EDI 810 validator as scoped checks within that larger process. The operational platform must still own duplicates, revisions, exception resolution, and confirmed downstream actions. Adding document types expands useful coverage only when their distinct business effects remain explicit.
Primary sources
- developer-docs.amazon.com ↗
- developer-docs.amazon.com ↗
- developer-docs.amazon.com ↗
- docs.aws.amazon.com ↗
- x12.org ↗
Apply the current standard, profile, and trading-partner requirements for your workflow. Each result establishes only the checks it explicitly reports.