How it worksPricingDocsTry the decoder
Built by people who’ve lived the pain

EDIFACT is hard.
We made it not.

Got handed an EDIFACT file and no idea what to do with it? You are in the right place. CleanEDI turns raw EDIFACT into clean, structured data your systems can actually use, and keeps it that way permanently.

Try the free decoderSee how it works
Raw EDIFACTDecoded JSON
UNB+UNOA:2+SENDER:1+RECEIVER:1+260524:1000+1'
UNH+1+ORDERS:D:96A:UN'
BGM+220+PO-48291+9'
DTM+137:20260524:102'
NAD+BY+5412345000013::9++ACME Corp+123 Main St+Sydney++2000+AU'
NAD+SU+4012345000014::9++CleanEDI Pty Ltd'
LIN+1++4012345678901:SRV'
QTY+21:100:PCE'
PRI+AAA:29.99:CA'
UNS+S'
CNT+2:1'
UNT+11+1'
UNZ+1+1'
{
  "messageType": "ORDERS",
  "version": "D96A",
  "orderId": "PO-48291",
  "orderDate": "2026-05-24",
  "buyer": {
    "gln": "5412345000013",
    "name": "ACME Corp",
    "address": "123 Main St, Sydney NSW 2000 AU"
  },
  "supplier": {
    "gln": "4012345000014",
    "name": "CleanEDI Pty Ltd"
  },
  "lines": [
    {
      "lineNumber": 1,
      "gtin": "4012345678901",
      "quantity": 100,
      "unitOfMeasure": "PCE",
      "unitPrice": 29.99,
      "currency": "AUD"
    }
  ],
  "summary": {
    "totalLines": 1
  }
}
ORDERS D96A - 13 segments - 1 line itemTry with your own message →
No EDIFACT knowledge required
No EDIFACT knowledge required
ORDERS - DESADV - INVOIC - CONTRL
ORDERS - DESADV - INVOIC - CONTRL
AS2 - SFTP - Direct API
AS2 - SFTP - Direct API
Idempotent by default
Idempotent by default
Partner isolation enforced architecturally
Partner isolation enforced architecturally
EANCOM D.01B - GS1 - UN/EDIFACT
EANCOM D.01B - GS1 - UN/EDIFACT
Streaming ingestion, no batch windows
Streaming ingestion, no batch windows
Stable schemas, partners change, contracts don't
Stable schemas, partners change, contracts don't
REST - Webhook - Event Stream
REST - Webhook - Event Stream
Sender or receiver, either side works
Sender or receiver, either side works

Every EDI project ends up the same way.

It starts simple. One trading partner, one file format, one developer who figures it out. Then a second partner joins with a slightly different interpretation. Then a third. Before long you have a codebase full of special cases, two people who actually understand it, and nobody who wants to touch it.

This is not a skill problem. EDIFACT was designed for machine-to-machine interchange, not as something developers should have to think about. When it leaks into your architecture, it spreads.

"We have two people who understand our EDI setup. If either of them leaves, we have a serious problem."

Said by more teams than you'd think.

You got handed a file and no instructions

A trading partner sends you an EDIFACT message. Your team has never seen one before. The documentation is a 400-page UN standard. Good luck.

Every partner does it differently

EDIFACT is a standard that nobody follows exactly. Each partner has their own interpretation, their own qualifiers, their own quirks. You build a parser that works for one and breaks for the next.

It leaks into everything

Segment names end up in database columns. Qualifier codes end up in API responses. New developers spend weeks just understanding the domain before they can ship anything.

Batch windows that fail at the worst time

Month-end. Peak season. The processing window closes before the file finishes. This is not a data volume problem, it is an architecture problem.

Silent errors nobody notices

A partner changes how they use a field. No error is thrown. The data is quietly wrong for months before someone spots it in a report.

CleanEDI sits at the boundary so your team doesn't have to.

Think of it as a wall between the chaos of EDIFACT and the rest of your systems. Everything messy stays on one side. Everything clean comes out the other. Your team only ever sees the clean side.

01

EDIFACT comes in

Via AS2, SFTP, or direct API. Any message type, any partner, any version. CleanEDI handles it all at the boundary.

02

CleanEDI normalises it

Partner quirks, version differences, and qualifier misuse are resolved silently. Nothing unusual leaks through.

03

Clean data comes out

Your systems receive typed, structured business objects via REST or webhook. The schema never changes, even when your partners do.

01
Inbound

Any EDIFACT message

ORDERS, DESADV, INVOIC, CONTRL and more. Streaming or file-based. AS2, SFTP, or direct API call. CleanEDI ingests it all without your team needing to understand the format.

02
Core

CleanEDI absorbs the complexity

Every partner deviation, undocumented override, and version difference is handled here. This is where the mess stops. Nothing gets through unvalidated or unnormalised.

03
Outbound

Your system gets clean data

A typed business object, a purchase order, an invoice, a shipment notice, arrives exactly as your API contract defines it. Same shape every time, regardless of which partner sent it or how.

Not sure what your EDIFACT message contains?

Paste any raw EDIFACT message into the decoder and get back a plain English breakdown of every segment and field, plus a JSON mapping you can use straight away. No account needed, no strings attached.

Open the decoderRead the docs

Supports all message types

ORDERS, DESADV, INVOIC, CONTRL, ORDRSP and more

Shows segment-level detail

Every qualifier, field, and value explained in plain English

Generates a JSON mapping

Ready to paste into your integration or hand to your team

Completely free

No account, no credit card, no limit on how many times you use it

Not a translator. A boundary.

Most EDI tools translate EDIFACT into something slightly less painful. CleanEDI does something different. It acts as an anti-corruption layer, a hard architectural boundary that absorbs everything messy on one side and only lets clean, stable business data through the other. Your systems never know EDIFACT exists.

Read the full architecture breakdown
Trading Partners
ORDERS D96A / D01BINVOIC D01B (modified)DESADV - non-standardCONTRL / APERAK+ 40 partner variants
Version drift, qualifier abuse,
undocumented overrides
raw EDIFACT
CleanEDI
Anti-Corruption Layer
clean contracts
Your Systems
PurchaseOrder (v1.0)Invoice (v1.0)Shipment (v1.0)FunctionalAck (v1.0)stable forever
REST / Webhook / Stream
No EDIFACT knowledge required

Their chaos, contained

Every partner's quirks, deviations, and undocumented overrides stay sandboxed on their side. Nothing unusual propagates into your architecture.

Your schema, never changes

When a partner updates their EDIFACT dialect, your API contract is unaffected. The contract is versioned by you, independently of any EDIFACT standard.

Either direction

CleanEDI works whether you are receiving orders or sending invoices. One side integrates, the other continues unchanged. No big-bang migration required.

What you get when EDIFACT stops being your problem.

These are not optional features you configure. They are how CleanEDI works by default, because enterprise infrastructure does not have an optional reliability mode.

No EDIFACT knowledge required

Your developers work with business objects, orders, invoices, shipments. Nobody on your team needs to know what a BGM segment is or what a qualifier does.

Developers ship faster. Documentation stays clean.

Schemas that never change

When a trading partner changes their EDIFACT dialect, your API contract stays exactly the same. CleanEDI absorbs the difference so your systems don't have to.

Partner chaos never leaks upstream.

Built for peak loads

Streaming ingestion replaces fragile batch windows. Idempotency, deduplication, and replay are defaults, not options. Your team sleeps through month-end.

Idempotency - Replay - Deduplication built in.

Partners stay isolated

Each trading partner's config, quirks, and corrections are sandboxed. Fixing or onboarding one partner has no impact on any other.

Operational risk is contained, not shared.

Works cross-border

Currencies, units of measure, time zones, and regional qualifier differences are normalised as standard behaviour. Not a premium add-on.

International from day one.

Works either side

CleanEDI works whether you are sending or receiving. One side integrates. The other continues as-is. No political friction, no big-bang migration.

Sender or receiver, your choice.

Built by people who spent years dealing with this exact problem.

We have been building EDI integrations for large retailers and distributors for years. Every project had the same problems, the same tribal knowledge risk, the same partner-specific hacks, the same batch jobs that failed at month-end. CleanEDI is the thing we wished existed back then. It is early, it is growing, and if any of this sounds familiar we would genuinely like to hear from you.

Try the decoderGet in touch

Simple pricing, no surprises.

You pay for complexity absorbed and risk removed. No per-message fees, no feature flags, no gotchas. Plans start from AU$3,500 per month on an annual contract. Enterprise pricing available for larger networks.

See full pricingTalk to us first

Annual contracts only - No per-message fees - Onboarding included

Still staring at that EDIFACT file?

Paste it into the decoder and find out exactly what it contains in about 30 seconds. Free, no account needed. If you like what you see, we can talk about what a permanent solution looks like.

No account needed
Free forever
No sales call required