Add a partner.
Not a ticket.

Describe the map in plain English, review what Vibe Mapping writes, and go live. Partners, agreements, webhooks and a replayable ledger, all from one console.

GS*PO — one purchase order, end to end

Partner in. JSON out.

Trading partner · AS2
Retailer 850
ISA*00**ZZ*RETAILER*ZZ*VIBEEDI
GS*PO*RETAILER*VIBEEDI
ST*850*0001
BEG*00*SA*PO-48812**20260920
PO1*1*24*EA*12.50**UP*0123
SE*8*0001
Your endpoint · we run it
Vibe EDI
decrypt + verifysigned MDN decode X12JSONata map 997 sentledger
Your ERP · webhook
Purchase order
{
  "poNumber": "PO-48812",
  "orderDate": "2026-09-20",
  "lines": [{ "qty": 24,
             "unitPrice": 12.5,
             "upc": "0123" }]
}
MDN signed · MIC verified · 997 AK5*A

No VAN in the middle. Your partners see one endpoint; you see JSON.

Vibe Mapping — included

New partner, new map.
Describe it. Done.

Map the partner's 810 invoice to our accounting JSON: invoice number, due date, line totals.
outbound/810.jsonata { "invoiceNumber": functionalGroups[0].transactions[0].segments[BIG].elements[1], "dueDate": $toDate(segments[DTM and elements[0]='011'].elements[1]), "lines": segments[IT1].{ "qty": $number(elements[1]), "unitPrice": $number(elements[3]) }, "total": $number(segments[TDS].elements[0]) / 100 } // generated, reviewed against the partner's spec, live on next message ✓ compiled · 3 sample invoices pass

ST*997 — acknowledged, every time

Built on standards. Open by design.

AK1*PO*48812 · AK5*A · AK9*A*1*1*1
Standards
X12 + EDIFACT850 · 810 · 856 · 997 · ORDERS · INVOIC
Transport
AS2S/MIME signed, encrypted, signed MDN
Deployment
Single-tenantyour own stack, cloud-agnostic, nothing shared
Delivery
WebhooksJSON to your ERP, replayable ledger
vibeedi
AS2 endpoint · X12 + EDIFACT
Vibe Mapping writes the maps. You run everything else.
0:00 / 0:23