A Celigo integration between Orderful and NetSuite: X12 purchase orders from trading partners become NetSuite sales orders, and ship notices and invoices flow back to partners as EDI — with 997 acknowledgments for every document.
Selling to large retailers and distributors usually comes with one non-negotiable requirement: trade by EDI. Purchase orders arrive as X12 documents, ship notices and invoices must go back in exactly the format each partner specifies, and every document is acknowledged. Doing that by hand isn’t realistic — and doing it wrong costs money in rejected documents and compliance penalties.
In this project, Orderful handles the trading-partner side of EDI, NetSuite is the ERP where orders, fulfilments and invoices live, and Celigo connects the two.

The challenge
Each trading partner brings its own implementation guide, its own connection (AS2 or SFTP) and its own expectations about timing and content. The business needed purchase orders to reach NetSuite automatically, ship notices and invoices to go back accurately, and acknowledgments exchanged for every document — without building and maintaining X12 translation for every partner.
The documents also depend on each other. A NetSuite sales order must carry the partner’s PO and line numbers; the ship notice built from the fulfilment must describe exactly what shipped; and the invoice must reference the original order. Getting one link wrong breaks the chain for the partner.
How it works
- Trading partner connections in Orderful. Partners connect to Orderful over AS2 or SFTP; Orderful translates X12 to and from JSON and validates documents against each partner’s requirements.
- Inbound purchase orders (850) → NetSuite sales orders. A Celigo flow picks up new purchase orders from Orderful and creates sales orders in NetSuite, mapping the partner, ship-to locations and items, and keeping the partner’s PO and line numbers on the order.
- Functional acknowledgments (997). Every inbound document is acknowledged, and the 997s partners return for outbound documents are tracked, so rejections are visible.
- Fulfilments → advance ship notices (856). When orders ship in NetSuite, a Celigo flow sends the shipment details — orders, packs and items — to Orderful as ASNs for the partner.
- NetSuite invoices → EDI invoices (810). Invoices created in NetSuite are sent through Orderful as 810s referencing the original purchase orders.

Design decisions
Let each tool do what it is best at
Orderful specialises in the partner side — connections, X12 translation, partner-specific validation, acknowledgments, and separate test and live streams. Celigo specialises in moving and mapping data between applications, with strong NetSuite support. NetSuite stays the system of record. Splitting the work this way means no custom X12 parsing, and each part can change without touching the others — a new trading partner is mostly configuration in Orderful plus mapping in Celigo.
JSON on the inside, X12 on the outside
Partners exchange X12; the Celigo flows work with Orderful’s JSON. That keeps mappings readable in Celigo’s mapper — the same way any other API integration is built — while partners still receive exactly the X12 they expect.

Reference numbers carried end to end
The partner’s PO number and line numbers are stored on the NetSuite sales order from the moment the 850 arrives, because the 856 and 810 must quote them. Carrying them from order to fulfilment to invoice is what lets outbound documents match the original order — the basis of the buyer’s three-way match.
NetSuite records drive the outbound documents
Ship notices are built from NetSuite item fulfilments and invoices from NetSuite invoices, so what the partner receives always reflects what was actually recorded in the ERP — no separate spreadsheet of shipments to keep in sync.
Acknowledgments treated as signals
A rejected or missing 997 means a partner did not accept a document. Tracking acknowledgments, rather than assuming delivery, turns them into an early warning instead of a surprise weeks later.

Validation before sending
Outbound documents are checked against each partner’s requirements before they leave, so problems such as a carton without its label number are fixed internally instead of being rejected by the partner.

Things that matter in an integration like this
- Map partner identifiers once. Partner IDs, ship-to location codes and item numbers (or UPCs) need a reliable match to NetSuite customers, addresses and items.
- Make inbound orders idempotent. The same 850 can be delivered twice; the partner’s PO number should prevent a second sales order.
- Send ASNs on time. Many retailers expect the 856 before the shipment arrives — fulfilment data must be complete when the flow runs.
- Watch the 997s you receive. A rejected ASN or invoice should reach someone the same day.
Highlights
- Orderful + Celigo + NetSuite: EDI platform, integration platform and ERP, each doing its own job.
- X12 850, 856, 810 and 997 exchanged with trading partners over AS2 and SFTP.
- 850s become NetSuite sales orders; fulfilments and invoices become 856s and 810s.
- Partner-specific validation before documents are sent.
The result
Orders from trading partners reach NetSuite without re-keying, ship notices and invoices go back in each partner’s required format, and every document is acknowledged and traceable.
At a glance
| Built with | Celigo, Orderful |
|---|---|
| Systems | Orderful → NetSuite |
| Standards | ANSI X12 (850, 856, 810, 997) |
| Transport | AS2, SFTP |
| NetSuite records | Sales Orders, Item Fulfilments, Invoices |
Related reading
- The EDI document lifecycle explained: 850, 855, 856, 810 and 997 — the documents, the envelopes and how Orderful fits
- Celigo integration consultant and NetSuite ERP consultant — how I work with Celigo and NetSuite
- EDI & B2B file integration — trading partner integrations
Onboarding a retail partner, or connecting EDI to NetSuite? Let’s talk.


