Operations teams
“A supplier operations team can see partner setup, validation, exceptions, and QuickBooks handoff in one workspace instead of chasing spreadsheets.”
850 Purchase Order
The 850 Purchase Order is the most common retail EDI document. SignalEDI accepts JSON that maps to your partner's X12 850 implementation guide.
Pass partnerId, documentTypeCode 850, and a payload with purchase order fields. SignalEDI validates and translates to X12 before routing.
curl -X POST https://api.signaledi.com/api/v1/documents/outbound \
-H "Authorization: Bearer $SIGNALEDI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"partnerId": "your-partner-id",
"documentTypeCode": "850",
"payload": {
"purchaseOrderNumber": "PO-1042",
"shipTo": {
"id": "DC-01",
"name": "RetailMart DC 01"
},
"lines": [
{
"lineNumber": 1,
"sku": "SKU-100",
"quantity": 24,
"unitPrice": 12.5
}
]
}
}'Same outbound call in application code — store SIGNALEDI_API_KEY and partnerId in environment variables.
const res = await fetch("https://api.signaledi.com/api/v1/documents/outbound", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SIGNALEDI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
partnerId: "your-partner-id",
documentTypeCode: "850",
payload: {
purchaseOrderNumber: "PO-1042",
shipTo: { id: "DC-01", name: "RetailMart DC 01" },
lines: [{ lineNumber: 1, sku: "SKU-100", quantity: 24, unitPrice: 12.5 }],
},
}),
});
const data = await res.json(); // { ok: true, data: { documentId, status: "queued" } }
import os
import requests
r = requests.post(
"https://api.signaledi.com/api/v1/documents/outbound",
headers={"Authorization": f"Bearer {os.environ['SIGNALEDI_API_KEY']}"},
json={
"partnerId": "your-partner-id",
"documentTypeCode": "850",
"payload": {
"purchaseOrderNumber": "PO-1042",
"shipTo": {"id": "DC-01", "name": "RetailMart DC 01"},
"lines": [{"lineNumber": 1, "sku": "SKU-100", "quantity": 24, "unitPrice": 12.5}],
},
},
)
print(r.json())Missing required fields return 400 with fieldErrors. Mapping violations after enqueue surface as document.error webhooks with fixable field paths.
{
"ok": true,
"data": {
"documentId": "doc_01HXYZ…",
"status": "queued"
}
}FAQ
Yes — SignalEDI also accepts raw X12 on supported intake paths. JSON is the fastest developer on-ramp because validation returns field-level context.
Watch document.routed and document.partner_ack webhooks, or inspect lifecycle status in the dashboard.
Trust & proof
SignalEDI keeps the public promise consistent across every route: real-time processing, transparent monthly plans, no per-document fees, QuickBooks-friendly handoffs, and core healthcare X12 workflows on paid plans.
Operations teams
“A supplier operations team can see partner setup, validation, exceptions, and QuickBooks handoff in one workspace instead of chasing spreadsheets.”
Healthcare billing
“837, 835, and 270/271 workflows are explained in plain English, with HIPAA-aware handling and a documented BAA review path for diligence.”
Developer teams
“JSON/CSV in and X12 out, with API docs, webhooks, real-time status, and validation responses that make EDI feel like modern infrastructure.”
© 2026 CCCM Consulting LLC. All rights reserved.