Skip to main content

SignalEDI documentation

API-first EDI docs for onboarding, X12 basics, trading partner setup, billing, REST endpoints, and webhooks — with JSON/CSV intake, instant validation, and real-time visibility.

6. API Reference

Authentication

All API requests require a Bearer token. Generate an API key from Settings → API Keys.

GET /api/v1/transactions
Authorization: Bearer sk_live_YOUR_API_KEY
Content-Type: application/json
Security: Never expose your API key in client-side code or public repositories. If a key is compromised, revoke it immediately from the Settings page.

REST Endpoints

MethodEndpointDescription
POST/api/v1/documents/outboundSend an outbound EDI document (JSON payload). Returns 202 with a document id.
GET/api/v1/transactionsList your recent transactions (newest first), scoped to your API key.
GET/api/v1/transactions/:idGet a single transaction you own, with full status.
POST/api/v1/parseParse a raw X12 interchange into structured JSON plus diagnostics.
POST/api/v1/validateValidate a raw X12 interchange against envelope rules; returns diagnostics.

Trading partners are created in the dashboard (Settings → Trading Partners) or the developer console; pass the resulting partnerId to the API.

Example: list recent failed transactions:

curl -X GET "https://signaledi.com/api/v1/transactions?status=FAILED&limit=50" \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json"

Code Samples

Complete request examples in multiple languages. Click the tabs to switch between cURL, Node.js, Python, and PHP.

Authentication
Include your API key as a Bearer token in the Authorization header.
curl -X GET "https://signaledi.com/api/v1/transactions" \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json"
Send an Outbound Document
Send an outbound EDI document as JSON to the versioned developer API. Returns 202 with a document id.
curl -X POST "https://signaledi.com/api/v1/documents/outbound" \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"partnerId":"your-partner-id","documentTypeCode":"850","payload":{"purchaseOrderNumber":"PO-1001","lines":[{"sku":"SKU-1","quantity":1,"unitPrice":10}]}}'
Get Transaction Status
Retrieve a single transaction by ID.
curl -X GET "https://signaledi.com/api/v1/transactions/txn_abc123" \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
Webhook Verification
Verify webhook signatures using HMAC-SHA256.
# SignalEDI signs the string "<X-SignalEDI-Timestamp>.<rawBody>" with HMAC-SHA256.
# The X-SignalEDI-Signature header is "sha256=<hex>". Verify with:
SIGNED="$TIMESTAMP.$BODY"
echo -n "$SIGNED" | openssl dgst -sha256 -hmac "whsec_YOUR_SECRET"

Rate Limits

Endpoint GroupLimitWindow
/api/auth (login)Class-basedfive failures per account; separate per-IP credential and support-request abuse guards
/api/agents (autonomous)Lower autonomous tierper minute per actor
/api/v1/transactionsUp to ~120 reqper minute per API key
/api/v1/parse and /api/v1/validate120 reqper minute per API key
/api/chat (AI assistant)Up to ~30 reqper minute
/api/upload30 req per user, 90 req per networkper minute (in addition to the general /api/ budget)
All other /api/ routes300 reqper minute per actor

Numbers above are typical ceilings; the actual cap that applies to your request is the lower of the per-endpoint ceiling and your plan-tier ceiling (see Acceptable Use). Rate-limit response headers (when present): X-RateLimit-Remaining and X-RateLimit-Reset (Unix timestamp). On a 429, retry after the time indicated in the response body or Retry-After header.

Webhook Setup

Configure a webhook URL in Settings → Webhooks to receive document lifecycle updates (validation, routing, partner acknowledgements, and errors) without polling.

SignalEDI sends a POST request to your URL with the following JSON payload:

{
  "event": "document.validated",
  "timestamp": "1710000000",
  "data": {
    "documentId": "doc_01HXYZ",
    "partnerId": "partner_abc",
    "documentTypeCode": "850",
    "status": "validated"
  }
}

Webhook events include document.validated, document.routed, document.partner_ack, and document.error. Deliveries also include X-SignalEDI-Timestamp, X-SignalEDI-Event, and X-SignalEDI-Delivery-ID headers.

Verify webhook authenticity by checking the X-SignalEDI-Signature header (HMAC-SHA256 over timestamp + "." + rawBody using your webhook signing secret; reject deliveries whose timestamp skew exceeds ~5 minutes).

Still have questions?

Our support team typically responds within a few hours during business hours.

Contact support

© 2026 SignalEDI Inc. All rights reserved.