Skip to content
    Book a demo
    Integrations · Deep dive

    EDI integration: what it actually takes to onboard a trading partner

    Mapping is the line item everyone quotes. Acknowledgements, partner quirks, and files that validate cleanly while carrying the wrong numbers are what actually cost you.

    One channel out of many. The whole connectivity picture — connectors, APIs, ERP/TMS/WMS sync — is on Integrations

    What EDI integration actually involves

    EDI integration is the exchange of structured business documents — purchase orders, shipment notices, invoices, status updates — with a trading partner, in a standard they specify (ANSI X12 in North America, UN/EDIFACT in Europe and Asia), over a transport they specify (AS2, SFTP, or a VAN mailbox). Parsing the file is the easy part. Five workstreams make up a real implementation and only one of them is the map.

    01

    Partner onboarding

    Trade specs, then agree identifiers — ISA05/06 for the sender qualifier and ID, ISA07/08 for the receiver, GS02/GS03 at the functional group. Run in test with ISA15 = T, exchange samples until their compliance team signs off, flip to ISA15 = P. Most of the calendar time goes to the other company's testing queue, not to your code.

    02

    Mapping

    Your order and shipment model has to be expressed in their segment structure. An 856 is a nested HL hierarchy — Shipment, Order, Pack, Item — and the retailer decides which levels are mandatory, whether SSCC-18 pack IDs go in MAN, and which UOM codes they accept. Two retailers on the same 4010 version still need two maps.

    03

    Validation

    Two layers people conflate. Syntactic: does SE01 match the segment count, does GE01 match the transaction count, are ISA13/GS06/ST02 unique and matched. Semantic: does the ship-to exist, does the item exist on the referencing PO, does the pack-loop total equal what left the dock.

    04

    Acknowledgements

    The 997 tells you the file arrived and parsed. The 824 Application Advice tells you the business application rejected the content. Different questions, different alerts.

    05

    Error handling

    Who gets paged when a file rejects, what the retry policy is on a failed AS2 handshake, and how long a missing acknowledgement can sit before it becomes a chargeback. This is the workstream that never gets staffed.

    A 997 with AK9 = A means your file was syntactically legal. It does not mean the shipment data was correct, and it does not mean the partner's application accepted it. Three questions, three alerts.

    Before you scope anything: three questions

    Most people land here because a partner handed them a date. Settle these three before you scope work, in this order.

    Q1

    What do you already own?

    Plenty of ERPs ship an EDI module, and plenty of companies bought a translator years ago that nobody has opened since. Check whether the mandated set is already licensed before you buy a second stack to sit beside the first.

    Q2

    Who owns the map after go-live?

    The partner will revise their implementation guide, and the map will have to change. If the answer is “the consultant who set it up,” you have a recurring cost with no owner. This question ends more EDI programs than mapping complexity does.

    Q3

    Where does their date actually land?

    Two to eight weeks per partner is realistic, and the driver is their test queue, not your build. If the mandate is six weeks out and their queue is four, you are negotiating the date, not the architecture — and you should say so in writing, early, to whoever owns that customer relationship.

    Transport

    The connection ages even when nobody touches it

    Mapping gets the estimate; the connection gets the outage. AS2 certificates expire on a date somebody agreed to two years ago, SFTP host keys rotate, a partner moves gateways and the new address is not on your allowlist. None of that reads as a mapping defect. Files simply stop arriving, and the first symptom is a partner asking where the ASN went.

    Ask for certificate expiry dates and a named renewal contact during onboarding, while the partner still has a project manager assigned to you. After go-live the same request goes to a support queue.

    Bundled network cables routed neatly into a server rack
    Photo: Unsplash / Unsplash

    Where each check stops

    Three layers of validation, each answering a narrower question than the last. None of them answer the one that costs money.

    ISA · ISA13 ⇄ IEA02
    envelope balances
    GS · GS06 ⇄ GE02
    group counts match
    ST 856 · ST02 ⇄ SE02
    AK501 = A
    CONTENT · SN102 24 EA
    validation stops here — SN102 24 EA is still unverified.

    Envelope layers — owned by your translator and transport. Control numbers, 997 timers, AS2 handshakes. Orkestra is not in this path.

    The content — owned by nobody by default. Only answerable by comparing the document to another record. This is the layer Orkestra occupies.

    Everything from here down is about the innermost box.

    The transaction sets that matter in logistics

    Hundreds of X12 sets exist. In a shipper or 3PL operation, about a dozen carry almost all the traffic. Learn what breaks when each is wrong and you can triage an incident without opening a spec manual.

    SetNameTypical directionWhat it breaks when it's wrong
    850Purchase OrderInbound from customerOrders enter with wrong dates, items, or ship-to; every downstream promise is built on bad input
    855PO AcknowledgmentOutbound to customerThe customer never gets confirmation of accepted lines, quantities, or substitutions — disputes surface at invoicing
    856ingestedASN (Advance Ship Notice)Outbound to customer / retail DCReceiving can't pre-stage against the shipment; late or inaccurate ASNs are a leading source of retail compliance chargebacks
    810InvoiceOutbound to customerPayment delays and deductions when invoice lines don't reconcile to the PO and the receipt
    214ingestedTransportation Carrier Shipment StatusInbound from carrierNo live milestones — the operational picture goes stale and ETAs stop moving
    204 / 990ingestedLoad Tender / Response to Load TenderOutbound to carrier / inboundTenders sit unanswered, loads get double-covered or dropped, spot buys go up
    210ingestedMotor Carrier Freight Details and InvoiceInbound from carrierFreight audit breaks — you pay accessorials you can't tie back to a tendered rate or a status event
    940ingestedWarehouse Shipping OrderOutbound to 3PL / WMSThe warehouse doesn't get the pick instruction, or picks the wrong allocation
    945ingestedWarehouse Shipping AdviceInbound from 3PL / WMSYou don't know what actually shipped — so your ASN to the customer is a guess
    943 / 944Warehouse Stock Transfer Shipment / Receipt AdviceBothTransfers go missing in the ledger; inventory is right in two systems and wrong in aggregate
    846Inventory Inquiry / AdviceBothAvailability shared with partners or channels drifts from reality
    997 / 824Functional Acknowledgment / Application AdviceBothYou believe you're compliant when you're not — the silent failure mode

    This is an industry reference, not a support matrix. The logistics sets Orkestra ingests today are 204, 210, 214, 856, 940/945 and custom formats. The rest are here because you will meet them in a partner's requirements document, and knowing what each one breaks is how you triage an incident without opening a spec manual.

    EDIFACT equivalents if you trade into Europe: ORDERS (850), ORDRSP (855), DESADV (856), INVOIC (810), IFTSTA (214), IFTMIN (204). Concepts survive the translation; segment names don't.

    EDI vs API: the honest version

    The take that EDI is legacy and APIs replaced it doesn't survive contact with a supplier requirements document. Large retailers, 3PL warehouse platforms and asset-based carriers still mandate EDI, and the mandate arrives with a compliance program attached. You don't get to choose. If the requirements doc says 856 over AS2, that's the requirement, and your API roadmap is irrelevant to it.

    The useful question isn't which channel wins. It's which one each partner supports, and how you keep one operational picture when half of them push batch files and half emit events.

    DimensionEDI (X12 / EDIFACT)API (REST / webhook)
    Who decides the formatThe trading partner, in a supplier requirements docUsually the system owner, documented publicly
    LatencyBatch — minutes to hours, sometimes a nightly windowNear real time, event-driven
    TransportAS2, SFTP, or a VAN mailboxHTTPS
    Acknowledgement modelExplicit: a 997, then an 824 from the applicationImplicit: an HTTP status code, sometimes a callback
    Change managementPartner sends a new spec; you remap and re-testVersioned endpoints, deprecation notices
    Cost shapePer-kilocharacter or per-document VAN fees plus mapping labourHosting and engineering time
    Where errors surfaceIn a control-number gap or a rejected file you have to go look forIn a response you already received
    Realistic per-partner setup2–8 weeks, driven mostly by the partner's test queueDays to weeks

    Plan for both, permanently. The shippers who struggle are the ones who built an operational picture that only works when data arrives one way.

    How EDI integration actually fails

    Not with a loud outage. EDI fails quietly, which is why the damage gets measured in chargebacks rather than downtime.

    Silent map breaks

    A partner adds a mandatory qualifier or changes an allowed UOM code in their 4010 implementation guide. Your map keeps producing files. Some pass, some reject. Nobody watches the reject queue because it's usually empty. Six weeks later a compliance report arrives.

    Missing 997s

    The most dangerous EDI event is nothing happening. You transmitted 1,240 ASNs and 1,228 were acknowledged. The 12 with no 997 inside the agreed window are not failures anyone reported — they are files that vanished between your AS2 client and their gateway. Without a control-number reconciliation, you never see them.

    Partner-specific quirks

    One retailer wants the SSCC-18 in MAN01/MAN02 at the pack level. Another wants pack-level HL loops omitted entirely. One carrier sends 214 status and reason codes on AT7 with values you don't recognize; another buries the operationally useful detail in a free-text remarks segment your parser isn't reading. Every quirk is a branch in your logic, and branches rot.

    Data that validates but is wrong

    The file balances, the counts match, the acknowledgement comes back clean — and the pack quantity on the ASN doesn't match what the 3PL's 945 said actually shipped. The retailer receives against your ASN, finds a discrepancy at the door, and charges you. Syntax validation cannot catch this.

    Why it stays hidden

    EDI is the only integration nobody is looking at

    Every other system in your stack has a human in front of it. When a TMS screen is empty or a WMS queue stops moving, someone notices inside an hour because someone is trying to work. EDI is deliberately the opposite: it runs unattended, at night, between two machines, and the whole value of it is that no person has to be involved. That is also why a broken map can run for six weeks.

    So the monitoring is not overhead on top of the integration. It is the substitute for the user who is not there. The example that follows is one month where nothing looked wrong from the inside.

    Worked example: what ASN accuracy really measures

    Take one month of outbound 856s across three retail DCs. The compliance requirement is 98% ASN accuracy, with the ASN transmitted and accepted before the goods arrive.

    ASNs transmitted1,240
    Acknowledged clean (AK501 = A at the transaction-set level)1,187
    Accepted with errors (AK501 = E) — mostly an invalid UOM in the item loop after the retailer's spec update41
    Unacknowledged inside the 24-hour window12

    Illustrative month, modelled on a three-DC retail program. The shape is what generalises, not the counts.

    One precision note, because it changes your counts. AK9 is the functional-group verdict; AK5 is per transaction set. If you batch ASNs into one group, only AK5 tells you which ones passed — a group-level A can sit on top of a rejected transaction. And treating AK501 = E as a miss here is a deliberate choice: some retail programs accept it, some don't. Confirm which yours does before you build a dashboard on it.

    On a syntax-only dashboard, that reads as 95.7% accepted and everyone moves on. Now reconcile the 1,187 clean ASNs against the 945 shipping advice the 3PL sent back for the same shipments.

    Pack-level quantity mismatch against the 945 — invisible to every layer of EDI validation63

    ASN accuracy = (ASNs accepted AND matching the physical shipment ÷ shipments) × 100

    (1,240 − 41 − 12 − 63) ÷ 1,240 = 90.6%

    A syntax-only dashboard reads this month as 95.7%.

    Seven and a half points below the requirement, and the largest single component was invisible to every layer of EDI validation in the stack. Retail chargeback structures vary widely: some programs use a flat fee per non-compliant shipment, others a percentage of invoice value, and thresholds are set per supplier agreement. Whatever the schedule, 116 exposed shipments in a month is a budget line, not an IT ticket.

    The lesson generalises past ASNs. Every EDI document worth monitoring has a counterpart somewhere — the 945 for the 856, the 214 milestone for the promised delivery date, the 210 for the tendered rate on the 204. Structural validation checks the document against the standard; reconciliation checks it against reality, and only one of them comes with the translation licence.

    A control room filled with monitoring screens
    12
    ASNs with no acknowledgement inside the window

    Not rejections. Files that left the gateway and were never confirmed by anyone. No screen turned red, because the failure mode here is an event that did not happen — and only a control-number reconciliation asks that question.

    Photo: Unsplash / Unsplash

    What to monitor from day one

    Inherit an EDI environment and you get to add four alerts. Add these.

    Envelope layer — your translator and transport

    01

    Control-number gaps

    Track interchange control numbers per partner per direction. A gap means a file went missing, not that a file was rejected — and it will never appear in a rejection report.

    02

    Acknowledgement SLA breaches

    Every outbound document type gets an expected 997 window. Anything unacknowledged past it pages someone. Treat a missing 997 as more urgent than a rejection — a rejection at least told you.

    03

    Rejection rate by partner and segment

    A rate that jumps for one partner and one segment is a spec change, not a bad day. Catching it inside 24 hours is the difference between remapping and remediating.

    Content layer — typically no owner and no tool

    04

    Cross-document reconciliation

    856 against 945. 810 against the 850 and the receipt. 214 milestones against the committed delivery date. This is where the wrong-but-valid data lives, and none of it is answerable from inside the EDI channel.

    The first three are envelope-level, and they belong to whoever owns your translator and transport — that is the only place ISA13 sequences and 997 timers actually exist. Do not scope them to anything that sits above that layer, including us. The fourth is a different animal: it needs data from outside the EDI channel entirely, which is why it typically has no owner and no tool. If you are scoping an EDI project right now, scope that fourth item as its own line. It will not arrive with the translation licence.

    Where Orkestra fits — and where it doesn't

    Orkestra ingests EDI data alongside API feeds, flat files and portal data, and normalizes all of it into one operational model — so a 214 milestone arriving from a carrier's VAN feed and a tracking event arriving from a carrier API land as the same kind of record. On the EDI side that covers the logistics sets Orkestra ingests today — 204, 210, 214, 856, 940/945 and custom formats — plus whatever your translator can drop as a file or post to an endpoint.

    What one normalized record makes possible is the part EDI validation was never designed to do: comparing one document against another. Once the 940 you issued, the 945 that came back and the shipment record behind your 856 are all in the same model, a quantity that doesn't agree across them becomes a detectable condition instead of a discovery at the retailer's door. Same for a 214 milestone measured against the committed delivery date. Be clear about what that requires: the counterpart document has to be fed to Orkestra, and you have to define what variance is acceptable. It is a comparison you configure, not one that appears on its own. What it does not require is a second translator or a monthly spreadsheet.

    The reconciliation layer is the part that matters here, and it's worth being exact about where it sits. Structural validation is already solved by whatever translator you own — it will tell you a file was legal. Envelope-level monitoring is also already solved there: ISA13 sequences, AS2 handshakes and 997 timers live with your translator or VAN, because that's the only place they exist. Orkestra is not in that path and does not see them. What neither layer can tell you is that a legal, acknowledged file carried the wrong numbers.

    The Integration Agent maps your data into Orkestra's canonical model, validates payloads, and generates the connection configuration, which shortens the front end of getting your data in. Read that direction carefully, because it is the one people get wrong: it maps inbound, into our model. It does not author the partner-facing map that has to satisfy a retailer's 4010 implementation guide, and it does not maintain that map when they revise it. Your translator owns that, and so does whoever you've named to keep it current.

    From there the same data drives shipment visibility, exception management and analytics. Define a variance rule and the breach becomes a case with a named owner and an SLA rather than a line in a reject queue nobody reads. The 850 and 855 side of the same picture lives in order management.

    One adjacent piece worth knowing about, since this page has been about chargebacks throughout: when one does land, the dispute is won or lost on evidence — what you transmitted and when, what the 945 said actually shipped, what the POD showed at the door. Document management assembles that evidence set as the shipment moves, instead of someone reconstructing it from four systems six weeks later. Avoiding the chargeback and winning the dispute are two different jobs.

    Three things Orkestra is not

    Stated here so nobody discovers them on a technical call.

    Not a VAN. We don't replace your VAN, your AS2 gateway, or your SFTP transport. We don't run your mailbox and we don't hold your trading partner certificates.

    Not a translator. We don't author or maintain the partner-facing maps that have to satisfy a retailer's implementation guide, and we're not in the certification loop with their compliance team. When they revise the guide, that remap is yours.

    Not a transport-level monitor. AS2 handshakes, ISA13 sequences and 997 timers exist inside the translator and transport layer. We're not in that path, so we don't see them.

    If you need a VAN, an AS2 endpoint, or a mapping service, those are separate purchases from separate vendors. What Orkestra does sits one layer up: it takes the data those systems move — alongside your API, file and portal feeds — normalizes it into one record, and makes the cross-document comparison no EDI validator is built to make. That's the layer where a spreadsheet is doing the job today.

    EDI questions, answered straight

    If you're here because a partner handed you a date: the mapping and transport half of this is yours, or your translator vendor's, to own. The half that turns a clean file into a chargeback — content that disagrees with the rest of your operational record — is a supply chain problem wearing an IT costume. It needs whoever owns the OTIF number in the room, because they own the budget line the chargebacks land in and you don't.

    Bring them to the first call. The broader connectivity picture — pre-built connectors, APIs, and sync across ERP, TMS and WMS — is on the parent page: Integrations. Where the ingested data goes next is visibility and exception management.

    Walk through one partner's spec with us — 30 min
    When the formats disagree

    A global tire and rubber manufacturer normalised 100% of its supply chain data across formats, and found $11.6K a week on 22 shipments.

    Orkestra's solution revolutionized data accuracy, empowering us to confidently make impactful supply chain decisions.Global tire & rubber manufacturer, Automotive & Tire Manufacturing

    $11.6K
    Weekly cost savings on 22 shipments
    100%
    Data normalization across formats
    Real-time
    Alerts on critical pipelines
    Read the Global tire & rubber manufacturer story
    Trusted by leading supply chain teams
    MatalcoOIA GlobalKingsdownDBWMatalcoOIA GlobalKingsdownDBW
    DLAIllyLevitt SafetySquareInstoreDLAIllyLevitt SafetySquareInstore
    TAKE THE NEXT STEP

    Action breaks down when operations are disconnected.

    Orkestra gives teams one place to see what matters, coordinate the response, and move operations forward.