Three endpoints. Complete EDI integration.
NeutronEDI's REST API gives developers direct control over EDI translation, generation, and validation — without the legacy middleware. Everything you need to integrate X12 and EDIFACT into modern systems.
Read API
X12 & EDIFACT → JSON
The Read API accepts raw X12 or EDIFACT input and returns clean, structured JSON. It supports all major X12 transaction sets — including 850, 855, 856, 810, 846, 997 and 30+ more — and all EDIFACT message types (ORDERS, INVOIC, DESADV, and more).
Input — X12 850 Purchase Order
ISA*00* *00* *ZZ*NEUTRONEDI *ZZ*TRADINGPARTNER *260412*1430*U*00401*000000001*0*P*:~
GS*PO*NEUTRONEDI*TRADINGPARTNER*20260412*1430*1*X*004010~
ST*850*0001~
BEG*00*SA*PO-48291**20260412~
N1*BT*NeutronEDI Inc*92*NEUTRONEDI~
PO1*1*100*EA*12.50**VP*WIDGET-BLUE~
PO1*2*50*EA*12.50**VP*WIDGET-RED~
CTT*2*150~
SE*7*0001~
GE*1*1~
IEA*1*000000001~Output — JSON
{
"success": true,
"version": "004010",
"isa": {
"AuthorizationInformationQualifier_1": "00",
"AuthorizationInformation_2": " ",
"SecurityInformationQualifier_3": "00",
"SecurityInformation_4": " ",
"SenderIDQualifier_5": "ZZ",
"InterchangeSenderID_6": "NEUTRONEDI ",
"ReceiverIDQualifier_7": "ZZ",
"InterchangeReceiverID_8": "TRADINGPARTNER ",
"InterchangeDate_9": "260412",
"InterchangeTime_10": "1430",
"InterchangeControlStandardsIdentifier_11": "U",
"InterchangeControlVersionNumber_12": "00401",
"InterchangeControlNumber_13": "000000001",
"AcknowledgementRequested_14": "0",
"UsageIndicator_15": "P",
"ComponentElementSeparator_16": ":"
},
"iea": {
"NumberOfIncludedGroups_1": "1",
"InterchangeControlNumber_2": "000000001"
},
"groups": [
{
"gs": {
"CodeIdentifyingInformationType_1": "PO",
"SenderIDCode_2": "NEUTRONEDI",
"ReceiverIDCode_3": "TRADINGPARTNER",
"Date_4": "20260412",
"Time_5": "1430",
"GroupControlNumber_6": "1",
"TransactionTypeCode_7": "X",
"VersionAndRelease_8": "004010"
},
"ge": {
"NumberOfIncludedSets_1": "1",
"GroupControlNumber_2": "1"
},
"transactionSets": [
{
"ST": {
"TransactionSetIdentifierCode_01": "850",
"TransactionSetControlNumber_02": "0001"
},
"BEG": {
"TransactionSetPurposeCode_01": "00",
"PurchaseOrderTypeCode_02": "SA",
"PurchaseOrderNumber_03": "PO-48291",
"Date_05": "20260412"
},
"N1Loop": [
{
"N1": {
"EntityIdentifierCode_01": "BT",
"Name_02": "NeutronEDI Inc",
"IdentificationCodeQualifier_03": "92",
"IdentificationCode_04": "NEUTRONEDI"
}
}
],
"PO1Loop": [
{
"PO1": {
"AssignedIdentification_01": "1",
"QuantityOrdered_02": "100",
"UnitorBasisforMeasurementCode_03": "EA",
"UnitPrice_04": "12.50",
"ProductServiceIDQualifier_06": "VP",
"ProductServiceID_07": "WIDGET-BLUE"
}
},
{
"PO1": {
"AssignedIdentification_01": "2",
"QuantityOrdered_02": "50",
"UnitorBasisforMeasurementCode_03": "EA",
"UnitPrice_04": "12.50",
"ProductServiceIDQualifier_06": "VP",
"ProductServiceID_07": "WIDGET-RED"
}
}
],
"CTTLoop": {
"CTT": {
"NumberofLineItems_01": "2",
"HashTotal_02": "150"
}
},
"SE": {
"NumberofIncludedSegments_01": "7",
"TransactionSetControlNumber_02": "0001"
}
}
]
}
],
"ack997": null,
"ackTA1": null,
"errors": [],
"requestId": null,
"timestamp": null
}Use cases
- • ERP integration (SAP, Oracle, NetSuite, Dynamics)
- • Order processing automation (850, 855)
- • Warehouse management & shipping (856, 945)
- • Inventory and catalog sync (846, 832)
- • Financial reconciliation (820)
Technical details
- • Content-Type:
application/edi-x12orapplication/edifact - • Supports UTF-8, ISO-8859-1, and other common encodings
- • Multi-transaction envelopes handled automatically
- • Detailed error responses with segment/element references
Write API
JSON → X12 & EDIFACT
The Write API accepts JSON following NeutronEDI's schema and returns a valid, properly delimited X12 or EDIFACT document. Build EDI output from your modern systems without memorizing segment terminators, delimiters, or transaction set rules.
Input — JSON invoice
{
"content": {
"ISA": {
"AuthorizationInformationQualifier_1": "00",
"AuthorizationInformation_2": " ",
"SecurityInformationQualifier_3": "00",
"SecurityInformation_4": " ",
"SenderIDQualifier_5": "ZZ",
"InterchangeSenderID_6": "NEUTRONEDI ",
"ReceiverIDQualifier_7": "ZZ",
"InterchangeReceiverID_8": "TRADINGPARTNER ",
"InterchangeDate_9": "260412",
"InterchangeTime_10": "1430",
"InterchangeControlStandardsIdentifier_11": "U",
"InterchangeControlVersionNumber_12": "00401",
"InterchangeControlNumber_13": "000000002",
"AcknowledgementRequested_14": "0",
"UsageIndicator_15": "P",
"ComponentElementSeparator_16": ":"
},
"Groups": [
{
"GS": {
"CodeIdentifyingInformationType_1": "IN",
"SenderIDCode_2": "NEUTRONEDI",
"ReceiverIDCode_3": "TRADINGPARTNER",
"Date_4": "20260412",
"Time_5": "1430",
"GroupControlNumber_6": "2",
"TransactionTypeCode_7": "X",
"VersionAndRelease_8": "004010"
},
"Transactions": [
{
"ST": {
"TransactionSetIdentifierCode_01": "810",
"TransactionSetControlNumber_02": "0001"
},
"BIG": {
"Date_01": "20260412",
"InvoiceNumber_02": "INV-9921"
},
"IT1Loop": [
{
"IT1": {
"AssignedIdentification_01": "1",
"QuantityInvoiced_02": "100",
"UnitorBasisforMeasurementCode_03": "EA",
"UnitPrice_04": "12.50",
"ProductServiceIDQualifier_06": "VP",
"ProductServiceID_07": "WIDGET-BLUE"
}
}
],
"TDS": {
"Amount_01": "125000"
},
"CTT": {
"NumberofLineItems_01": "1",
"HashTotal_02": "100"
},
"SE": {
"NumberofIncludedSegments_01": "6",
"TransactionSetControlNumber_02": "0001"
}
}
]
}
],
"IEA": {
"NumberOfIncludedGroups_1": "1",
"InterchangeControlNumber_2": "000000002"
}
}
}Output — X12 810
ISA*00* *00* *ZZ*NEUTRONEDI *ZZ*TRADINGPARTNER *260412*1430*U*00401*000000002*0*P*:~
GS*IN*NEUTRONEDI*TRADINGPARTNER*20260412*1430*2*X*004010~
ST*810*0001~
BIG*20260412*INV-9921~
IT1*1*100*EA*12.50**VP*WIDGET-BLUE~
TDS*125000~
CTT*1*100~
SE*6*0001~
GE*1*2~
IEA*1*000000002~Use cases
- • Generating purchase orders (850) from procurement systems
- • Producing invoices (810) from billing pipelines
- • Issuing advance ship notices (856) from warehouses
- • Returning functional acknowledgments (997) from automation layers
Validate API
Validate without translating
The Validate API checks EDI documents for structural and semantic errors without performing translation. You get back a pass/fail status plus a detailed list of errors, each with segment references, error codes, and human-readable descriptions you can show to operators or log for compliance.
Validation response — document with errors
{
"valid": false,
"errors": [
{
"segment": "BEG",
"position": 3,
"code": "MISSING_REQUIRED",
"message": "Element BEG03 (Purchase Order Number) is required but missing."
},
{
"segment": "PO1",
"position": 1,
"line": 7,
"code": "INVALID_UOM",
"message": "Unit of measure 'XY' is not in the allowed code list for PO103."
}
],
"transactionSet": "850",
"standard": "X12",
"version": "004010"
}Use cases
- • Pre-flight checks before sending to trading partners
- • Quality control in EDI ingest pipelines
- • Compliance monitoring and audit trails
- • Debugging documents rejected by downstream systems
Coming soon
The core API is only the beginning. We're building the connective tissue that makes NeutronEDI a full EDI platform:
- • AS2, FTP, SFTP file transfer — drop-in support for legacy trading partner connections
- • EDI mailboxes — inbound/outbound queues with retry, dead-letter, and audit logs
- • Trading partner management — envelope config, per-partner rules, acknowledgment tracking
Start building in minutes.
Create an API key in the dashboard and make your first Read request in under five minutes.