Is there an official npm or PyPI package?
Use the REST API directly with your HTTP client today. The @signaledi/sdk package mirrors /api/v1 endpoints — see the API reference for installation.
SDKs
Verify before you start
Evaluate without a sales call
Most buyers are not ready to buy on the first visit. Start with a free tool or requirement check — then trial when you are ready.
What is SignalEDI?
Fastest way to test your API key and payload shape from any terminal.
curl -X POST https://api.signaledi.com/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
}
]
}
}'Use fetch or your HTTP client in serverless functions, Express, or Next.js routes.
const res = await fetch("https://api.signaledi.com/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, documentId, status: "queued" }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/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())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","lines":[{"sku":"SKU-100","quantity":24,"unitPrice":12.5}]}}`)
req, _ := http.NewRequest("POST", "https://api.signaledi.com/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()
}Use the REST API directly with your HTTP client today. The @signaledi/sdk package mirrors /api/v1 endpoints — see the API reference for installation.
Authorization: Bearer with your SIGNALEDI_API_KEY environment variable.
All samples POST an 850 purchase order to /api/v1/documents/outbound. The API also renders retail 810, 855, and 856 plus logistics 204, 210, 211, 212, 214, 753, 754, 858, 940, 943, 944, 945, 947, and 990 payloads. Each type has its own required fields, and partner implementation guides may add more.
Open the quickstart for the end-to-end path, or the API reference for every endpoint.
Explore SignalEDI
Pricing, checkout, solutions, support, partner requirements, and trust artifacts stay linked so buyers do not dead-end on a single page.
© 2026 SignalEDI Inc. All rights reserved.