Payload reference: JSON, X12, EDIFACT
Three accepted shapes — typed JSON, raw X12, raw EDIFACT — all proven in Lab with the same runner. Keep the route and payload unchanged as you promote; only the environment identifier and lane credential change.
Typed JSON (documentTypeCode 850)
Send a JSON object as payload with documentTypeCode (e.g. 850) and environment (LAB, CERTIFICATION, or PRODUCTION). The Lab default:
{
"purchaseOrderNumber": "PO-1042",
"orderDate": "2026-09-24",
"buyer": { "id": "BUY-01", "name": "RetailMart Inc" },
"shipTo": { "id": "DC-01", "name": "RetailMart DC 01" },
"lines": [{ "lineNumber": 1, "sku": "SKU-100", "quantity": 24, "unitPrice": 12.5 }]
}Always send Idempotency-Key (e.g. po-1042-lab-1) so retries never duplicate documents, with Authorization: Bearer sk_lab_… (or the sk_cert_ / sk_live_ key for its lane).
Raw X12 (message type 850)
Send the exact interchange as content. The envelope must be complete — ISA/GS/ST … SE/GE/IEA — with matching control numbers and a correct ST/SE segment count (Lab's shipped 850 default is the reference shape). A count mismatch returns a 422 naming the error: fix the envelope and re-run.
Raw EDIFACT (message type ORDERS)
Send the exact interchange as content with UNB/UNH … UNT/UNZ framing and correct segment counts. ORDERS requires at least two NAD parties (buyer + ship-to, as in Lab's shipped default). A parsed-but-unmapped interchange returns honest raw-only Lab evidence (structure checks + CONTRL), not a semantic pass.
Endpoints
POST /api/v1/documents/outbound (typed or raw), POST /api/v1/documents/inbound (partner-to-customer EDI), POST /api/v1/documents/batch (up to 100 documents, per-item results), POST /api/v1/parse and POST /api/v1/validate (raw X12 diagnostics). Reads: GET /api/v1/documents/:documentId, GET /api/v1/document-types (recognized X12/EDIFACT types and honest raw/typed capabilities), GET /api/v1/transactions.
Start every integration with the API quickstart and prove mappings with the mapping guide.
Still have questions?
Email support@signaledi.com or open a ticket from Help & Support in the dashboard.
Contact support