Skip to main content

EDI API SDKs and code examples

Send an EDI 850 purchase order with cURL, Node.js, Python, or Go — same POST /api/v1/documents/outbound contract across every language.

cURL

Fastest way to test your API key and payload shape from any terminal.

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
      }
    ]
  }
}'

Node.js

Use fetch or your HTTP client in serverless functions, Express, or Next.js routes.

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" } }

Python

Works with requests, httpx, or any HTTP library — ideal for data pipelines and Django/FastAPI backends.

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())

Go

Standard library net/http — compile a small binary for high-throughput outbound workers.

package main

import (
  "net/http"
  "os"
  "strings"
)

func main() {
  body := strings.NewReader(`{"partnerId":"your-partner-id","documentTypeCode":"850","payload":{"purchaseOrderNumber":"PO-1042"}}`)
  req, _ := http.NewRequest("POST", "https://api.signaledi.com/api/v1/documents/outbound", body)
  req.Header.Set("Authorization", "Bearer "+os.Getenv("SIGNALEDI_API_KEY"))
  req.Header.Set("Content-Type", "application/json")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
}

Common questions

Built for SMB teams that need API-first EDI, healthcare diligence, and predictable pricing.

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.

HIPAA-aware handlingBAA path documentedSecure API + webhooksNo per-document fees

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.

Preview case studies

© 2026 CCCM Consulting LLC. All rights reserved.