Skip to main content

Map JSON to X12 (and back)

How SignalEDI translates JSON business payloads to X12 and normalized JSON on inbound — partner rules, validation, and pre-send checks.

Quick answer

Do I need to write X12 segment strings?

No for most integrations — JSON plus partner profiles is the default path. Raw X12 intake remains available when you already have generated files.

More common questions

The translation model

Your application sends JSON that maps through partner-specific profiles to X12. Inbound X12 is normalized back to JSON for webhooks and storage.

  • Partner profile = mandatory segments + code lists
  • Mappings version with your deploy pipeline

Outbound example

documentTypeCode selects the transaction set; partnerId selects the implementation guide.

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

Partner-specific rules

Retailers differ on ship-to qualifiers, allowance segments, and UOM codes. Configure rules in the partner profile instead of hard-coding segment strings.

Validate before send

Use /tools/edi-validator for ad-hoc samples, then API validation on every outbound POST. Errors reference business fields instead of opaque AK segments.

Common questions

© 2026 SignalEDI Inc. All rights reserved.