Skip to content
SyncMyShop

EDI

EDI integration with your ERP, mapped per trading partner and run for you

Purchase orders from your trading partners become sales orders in your ERP, and acknowledgments, ship notices and invoices go back in the format each partner prescribes. We build the mapping per partner and per document, connect it to your ERP or store, host it, and watch every file until its acknowledgment is in.

What an EDI integration consists of

An EDI integration has four layers. A trading partner sees only the top one, and your order desk only the bottom one.

Layer What it does Differs per
Transport Moves the file: AS2, SFTP or a VAN mailbox Partner
Translation Reads and writes X12 syntax: segments, elements, envelope, control numbers X12 version
Mapping Decides which element becomes which field, with which codes Partner and document
ERP side Creates and reads the records: sales order, fulfillment, invoice Your ERP and its setup
The four layers of an EDI integration, with one purchase order line An inbound 850 line passes four layers: transport as a file, translation of the X12 segment, mapping of cases to eaches and of the partner's item ID to item 10482, and the sales order in the ERP. one 850 line, inbound WMI_850PO_....edi Transport AS2, SFTP or a VAN mailbox PO1*1*24*CA*150.00 Translation X12 segments to fields 24 CA = 288 EA of 10482 Mapping Per partner and per document SO-88104, PO 4500018236 ERP side The records in your ERP
One purchase order line on its way down. The top two layers are the same for every supplier; the bottom two are specific to your partners and your ERP.

Transport and translation are solved software. AS2 is specified in RFC 4130, published in July 2005: the payload is signed and encrypted, and the receiver returns a signed receipt. X12 syntax is fixed per release. The work is in the lower two layers. Each partner publishes its own subset of the standard as an implementation guide, and each ERP account has its own items, units, customers and custom fields.

This page is part of our integrations. The documents themselves are listed under EDI document types.

Four ways to connect to a trading partner

There are four routes for an EDI file. Walmart accepts the first three from its drop-ship vendors and describes them on its connection types page.

Route How the file travels What it leaves with you
Direct AS2 Point to point over HTTPS with certificates and a signed receipt Certificates, the endpoint, translation, mapping
Direct SFTP Files in a folder; Walmart prescribes names such as WMI_850PO_... and WMI_856SH_... Polling, file naming, translation, mapping
VAN A mailbox at a network that routes to the partner's network Translation and mapping, unless bought as an extra
Web portal A person reads orders and types ship notices and invoices All of it, by hand, per order

Walmart names one more connection type: the solution provider, "a third party that provides EDI process capability to its partners". It states that it "does not govern or dictate the data flow between the solution provider and the drop-ship vendor". The partner checks the files, not the route. Kroger's supplier portal describes a VAN as a private network provider "hired by a company to facilitate electronic data interchange".

The route decides how files move. It does not decide who builds the mapping or who owns the ERP side, and those two are where an order is entered correctly or not. We connect over the route each partner prescribes and build the two lower layers to your systems.

The documents, and what they are in your ERP

Document Direction ERP record The value that ties it to the order
850 purchase order In Sales order BEG03, the buyer's PO number
855 acknowledgment Out Sales order after the availability check BAK03
856 ship notice Out Fulfillment with cartons and SSCCs PRF01
810 invoice Out Invoice BIG04
846 inventory advice Out Available quantity per item Item number
997 acknowledgment Both None; a status per document sent AK102 and AK202, the control numbers

One order without changes is 4 business documents and 4 acknowledgments, 8 transaction sets. With a 3PL in between, the 940 and 945 and their acknowledgments make it 12. At 300 orders a month that is 3,600 sets, and every outbound one has to be matched to the 997 that answers it.

The mapping is per partner, per document

Three partners that each exchange five documents are 3 times 5, so 15 mappings. They share the ERP side and differ in everything a guide can prescribe. Two published guides, checked on 3 October 2026:

Walmart drop ship Kroger
X12 version 004010 005010
Segments in a 997 AK1, AK2, AK5, AK9 Adds AK3 and AK4 with the error location
997 for a group A or R, never partial A, P or R
Sender ID qualifier 01 in its sample 08

This is one line of an 850 and the sales order line it has to become:

PO1*1*24*CA*150.00**UK*10614141104823*VP*10482~
{
  "item": "10482",
  "quantity": 288,
  "units": "EA",
  "rate": 12.50,
  "customerLine": "1"
}

Four decisions sit between the two. The item is found on VP, the vendor part number, because this partner sends its GTIN-14 in the UK element and the ERP stores the 12-digit UPC. The quantity is 24 cases of 12, so 24 times 12 is 288 eaches. The price is 150.00 per case, which is 12.50 per each. The line number 1 is stored, because the 855, 856 and 810 have to return it. A mapping that copies 24 and EA ships 264 units short.

Other values change form on the way: ISA09 carries the date as 260928 and GS04 as 20260928, and the invoice total in TDS01 has two implied decimals, so 41540 is 415.40. The ship-to arrives as a location code in N104, such as 0007, and has to resolve to an address record in the ERP. The classes of mismatch are described under EDI mapping and units of measure.

What goes wrong quietly

  • A resent order becomes a second sales order. The buyer sends the same 850 in a new interchange. The file is valid and gets its 997. Only a check on buyer ID plus PO number stops the duplicate.
  • A test file creates a live order. ISA15 is T. A translator that ignores the flag books a certification order as real.
  • Cases read as eaches. See the line above: 24 instead of 288.
  • The 855 confirms what is not in stock. Every line is acknowledged as accepted, and the 856 ships short against a confirmed order.
  • The 856 is built from the order, not from what was packed. The carton count, the SSCC and the quantities come from the pack record. An SSCC in the notice that is on no label fails at the dock scan.
  • A partial acceptance is read as accepted. AK9*P*3*3*2 means two of three invoices arrived. The third stays unpaid.
  • A price difference goes through unseen. The PO says 12.50 and the price list 12.80. On 24 units the invoice is short-paid by 24 times 0.30, which is 7.20, and the deduction arrives with the remittance.
A purchase order that the buyer sends twice The buyer sends an 850 for PO 4500018236 and gets a 997. The integration creates sales order SO-88104. Two hours later the same 850 arrives in a new interchange. It gets a 997 too, and the integration holds it because the PO number already exists for this buyer. Buyer trading partner Integration queue, mapping ERP sales orders ISA13 000001203 850, PO 4500018236 997: AK9*A*1*1*1 create sales order PO # 4500018236 SO-88104 2 hours later ISA13 000001219 850, PO 4500018236 997: AK9*A*1*1*1 PO exists for this buyer: held, not imported Both files are valid X12 and both get a 997. The check on buyer ID plus BEG03 keeps the ERP at one sales order.
A resent purchase order passes the syntax check both times. The duplicate check on buyer ID and PO number keeps it at one sales order.

Each of these passes the syntax check. Retailers price the result per carton, per shipment or as a share of the invoice, and take it off the payment. The schedules that are public are collected under EDI compliance.

Throughput and timing

EDI arrives in batches, and the ERP takes requests one at a time.

A morning batch. A buyer sends one interchange with 400 purchase orders at 06:00. NetSuite's concurrency limit on the Standard tier is 5 requests at the same moment, shared with every other integration on the account; Premium has 15, Enterprise and Ultimate 20. With 2 of the 5 slots and 2 seconds per sales order, 400 orders take 400 times 2 divided by 2, which is 400 seconds, or 6 minutes 40 seconds. The 997 goes back at once and the orders wait in a queue until the ERP has taken them. A request over the limit is refused and tried again.

A ship notice deadline. Kroger requires the 856 at least 90 minutes before the truck arrives. NetSuite WMS writes its ship-notice staging records with a scheduled script that runs every 15 minutes. A truck that leaves at 10:00 for a 2-hour drive arrives at 12:00, so the notice is due by 10:30. The staging record can appear as late as 10:15. That leaves 15 minutes to read it, build the hierarchy, validate the counts and send. A notice that fails validation at 10:20 has to be visible at 10:20.

An acknowledgment window. Kroger tells vendors to call when a 997 or 824 for a ship notice has not come back within 12 hours. The integration keeps a timer per document sent and raises the alert itself.

How the ERP limits work is described under NetSuite concurrency limits and integration throughput.

What your ERP or store does natively

System Native part What stays outside
NetSuite WMS staging records for ship notices, SSCC-18 generation, an "ASN Required?" box on the customer The X12 file, every other document, the mapping, the envelope
Shopify B2B companies, PO number on the order, order creation through the Admin API Any X12 or EDIFACT, acknowledgments, ship notices
Business Central The E-Document Core app for electronic invoices X12 documents and partner mappings

Oracle states the boundary itself in its WMS documentation: NetSuite writes the shipping data, and it is "read by the NetSuite EDI partner, who converts the data into an EDI document". In each row the ERP or store holds the order, the fulfillment and the invoice, and something outside it produces the documents. That part is what we build, also for SAP Business One, Acumatica and Sage.

What you get

We build the integration to your trading partners, your ERP and your rules, host it and run it. The build has a fixed price and running it has a monthly fee.

  • Mappings per partner and per document, written against each partner's guide and your item, unit and customer data.
  • Validation before sending. Segment counts, control numbers, required segments and the partner's code lists are checked. A document that fails is held with the reason and never sent half right.
  • A register of acknowledgments. Every document sent is matched to its 997. A rejection or a missing acknowledgment raises an alert.
  • A queue with retries. When the ERP refuses a request or is down, orders wait and are written in the order they arrived. Nothing is dropped silently.
  • A dashboard with a login. Per document: the raw file, the mapped record, the status and the log.
  • Dry run and approval. A new partner or a changed mapping first runs without writing to the ERP and without sending. Documents can wait for your approval per partner.
  • Changes on either side. When a partner publishes a new guide or the ERP changes a field, we change the integration.

Orders that arrive by EDI follow the same rules as orders from a store, described under orders, customers and shipping and ecommerce ERP integration. Buyers that order from inside a procurement system use PunchOut, a different mechanism for the same goal.

Tell us which trading partners ask for EDI and which ERP you run. You get a concrete answer.

Frequently asked questions

What is EDI integration?

It is the connection between the EDI documents your trading partners exchange and the records in your own systems. An inbound 850 becomes a sales order without anyone typing it over, and the 855, 856 and 810 are generated from the order, the fulfillment and the invoice in your ERP. Without integration, EDI is a portal where someone reads orders and keys in ship notices by hand.

Do I need a VAN for EDI?

It depends on what your partner accepts. Walmart lists four connection types for its drop-ship vendors: direct AS2, a VAN, direct SFTP and a solution provider. Two of those are direct connections without a network in between. Other partners only publish a VAN mailbox. We connect over the route each partner prescribes.

Does my ERP handle EDI natively?

NetSuite, Business Central and Shopify do not translate X12. Oracle's documentation describes NetSuite's part as custom records with shipping data that are "read by the NetSuite EDI partner, who converts the data into an EDI document". Business Central ships an e-document framework for electronic invoices, and Shopify's Admin API exchanges JSON. In each case the X12 file, the partner mapping and the envelope sit outside the system.

How many mappings does an EDI integration need?

One per trading partner per document. Three partners that each exchange an 850, 855, 856, 810 and 997 are 3 times 5, so 15 mappings. They share the ERP side, which is built once, and differ in versions, qualifiers, codes and required segments.

What does a 997 confirm, and what not?

It confirms that a file arrived and passed the syntax check. It does not confirm that the order will ship or that the invoice will be paid. A document can be acknowledged with a 997 and still be refused by the partner's application. See EDI 997.

Can EDI orders go into a store platform instead of an ERP?

Yes. When the store is the system where orders are fulfilled, an 850 is created as an order through the platform's API, with the PO number and the buyer's company on it, and the fulfillment in the store is the source of the 856. See Shopify EDI integration.

How is an EDI connection tested before it goes live?

With test files. ISA15 in the envelope is T for test and P for production, and a T file never creates a live order. The partner sends test purchase orders and checks the acknowledgments, ship notices and invoices that come back against its guide, and decides when production starts. On our side every mapping first runs as a dry run that writes nothing to the ERP.

Can you take over an existing EDI setup?

Yes. The new integration first runs next to the existing one without sending and without writing: it reads the same inbound files and logs what it would create and send. The differences show what the old setup did, including rules nobody wrote down. The switch is then made per partner.

What is the difference between EDI and an API integration?

With EDI the larger trading partner prescribes a document format and you conform to it, file by file, with a separate acknowledgment. With an API the publisher exposes endpoints and answers each request directly. Most EDI integrations use both: X12 toward the partner and the ERP's API on the inside. See EDI vs API.

Tell us what you need

Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.

  • You know the price and the timeline before you commit to anything
  • We work out the connection that takes the work off your hands
  • We handle the build, hosting, monitoring and maintenance
  • Your team has less information to retype and fewer discrepancies to chase

Suppliers, products, orders per day, a rough estimate is fine.

Or email directly: carsten@syncmyshop.com