PalletLabs Greenbar

● In development · onboarding first suppliers

Your retailer speaks X12.
You shouldn't have to.

Greenbar is managed EDI for small suppliers. Your trading partners send X12 over SFTP or AS2. You receive clean JSON webhooks and send JSON back. We handle the acknowledgments, the connectivity, and the fact that every retailer's implementation guide is wrong in its own particular way.

850 Purchase Order PO-88412 · 004010 · 3 line items

What your partner sends

  • ISA*00*    *ZZ*NORTHRIDGEDIST*…
  • GS*PO*NORTHRIDGEDIST*CASCADEMFG*…
  • ST*850*0001
  • BEG*00*SA*PO-88412**20260929
  • DTM*002*20261012
  • N1*ST*Northridge DC East*92*NRD-DC2
  • N3*1200 Logistics Way*Dock 14
  • PO1*1*240*EA*4.85**BP*NR-HB-0375
  • PID*F****Hex bolt, 3/8-16 x 1.5in
  • CTT*3
  • SE*19*0001

What lands on your webhook

  • {
  •   "type": "purchase_order",
  •   "po_number": "PO-88412",
  •   "order_date": "2026-09-29",
  •   "dates": { "delivery_requested": "2026-10-12" },
  •   "parties": { "ship_to": { "name": "Northridge DC East" } },
  •   "lines": [{
  •     "quantity": { "value": 240, "unit": "EA" },
  •     "unit_price": { "amount": 485, "currency": "USD" },
  •     "identifiers": { "buyer_part": "NR-HB-0375" }
  •   }]
  • }
01

What it does

Translation

X12, both ways

Purchase orders in, acknowledgments, ship notices and invoices out. Valid on the first try, because every document we generate is parsed and validated again before it leaves.

Acknowledgments

997s, automatically

Most retailers treat a missing functional acknowledgment as a failed transmission and escalate. We send them, and we read theirs, so a rejection reaches a person instead of a log file.

Connectivity

SFTP and AS2

We run the endpoints your partner's firewall expects, on a fixed address they can allowlist once and never think about again.

Partner quirks

Retailer templates

Required segments, qualifier overrides, date formats, packaging rules. Every certified retailer becomes a template, so the second supplier onboards faster than the first.

02

Transaction sets

Set Document Direction Status
850 Purchase order Inbound Built
855 Order acknowledgment Outbound Built
856 Advance ship notice Outbound Built
810 Invoice Outbound Built
997 Functional acknowledgment Both Built
846 Inventory advice Outbound Planned
860 / 865 Purchase order change Both Planned
940 / 945 Warehouse shipping order & advice Both Planned
832 · 844 / 849 · 867 Price catalogue, chargeback, product transfer Both Medical supply tier

What we deliberately don't do. HIPAA healthcare claims (837, 835, 270/271, 834), pharmaceutical DSCSA and EPCIS, and freight (204, 214). Those are different products with different compliance obligations, and anyone who tells you they're a minor add-on is selling you a problem.

03

How it works

  1. We connect to your trading partner

    Your retailer drops files on our SFTP, or we collect from theirs. AS2 when they insist. You give them one hostname and one IP address, and that's the last conversation about connectivity.

  2. Their X12 becomes JSON on your webhook

    Signed with X-Greenbar-Signature, retried with exponential backoff for 72 hours, then dead-lettered rather than dropped. ISO dates, explicit units, and money as integer minor units so nothing depends on floating point.

  3. You send JSON back

    POST /v1/acknowledgments, /v1/shipments, /v1/invoices. We generate the 855, 856 or 810, allocate the control numbers, and build the HL hierarchy the retailer's receiving system needs.

  4. Everything is kept, and everything is replayable

    Raw bytes are stored before anything tries to parse them. A parsing failure marks the document and keeps the file; it never discards it. Re-parse and re-deliver any document from the dashboard.

04

Engineering commitments

  • ✓Never lose a document Raw bytes and a database row exist before parsing begins. Failures are recorded against the stored file, not swallowed.
  • ✓Everything replayable Any document can be re-parsed and re-delivered from the original bytes, which is what makes fixing a mapping bug a non-event.
  • ✓Duplicates flagged, not processed twice Inbound documents are keyed by interchange, group and transaction control number. A resend is recorded and marked, never double-handled.
  • ✓Outbound X12 round-trips before it's sent Serialized, re-parsed with our own parser, validated. If it wouldn't survive our validator it doesn't reach your retailer.

Onboarding the first suppliers now

If a retailer has sent you an EDI implementation guide and you'd rather not read it, that's exactly the problem we're built for. Tell us who your trading partner is and which documents they want.

Free validator
Coming soon
X12 version
004010, 005010 next
Hosted
US East