EDI to JSON converter.
Convert X12 EDI to JSON online for free. FromEDI parses EDI transactions into structured, readable JSON with meaningful field names. Test your own EDI data or use our sample EDI transactions to try different formats and transaction types.
Free to use . Unlimited conversions . Sample EDI included . No signup required
Process EDI transactions in seconds.
Generate structured JSON instantly.
Test all your use cases and contact for publishing library in public repositories.
Variety of transactions support is available.
go to home section and select EDI transaction type.
Paste EDI content into the input box.
Click Parse EDI.
Review and export JSON output.
Looking for JSON to EDI ?
First, test all the use cases for EDI-to-JSON conversion. Once you are confident that everything is working correctly, feel free to reach out to us to add the JSON-to-EDI functionality. We have schemas that you can use to generate JSON and convert it to EDI for different transaction types.
Guide :
The main challenge is that EDI does not contain keys for values like JSON or XML. Instead, it follows a predefined set of rules for decoding the data. An EDI document consists of segments, and each segment contains data elements. The data elements within a segment are separated by a delimiter, such as *. Example segment: REF*1*101 Here, REF is the segment name, and the remaining values are the data elements. Each segment is separated by another delimiter, such as ~.
A loop in an EDI document is a group of segments that repeats. For example, if you have a list of students, the same loop is repeated for each student. Suppose one student is represented by three segments. For four students, the loop will repeat four times, resulting in a total of 12 segments.
Loops are defined by the EDI specification. For example, in an EDI 835 transaction, the 2000 loop is identified by the LX segment. If the LX segment appears twice, then there are two 2000 loops. For example, if an EDI document contains 20 segments, with the first LX at segment 10 and the second LX at segment 15, then segments 10 through 14 belong to the first 2000 loop.
Understanding the Structure of JSON Responses :
The converted JSON response contains two types of response elements: a single segment object and a loop. A loop contains one or more segments and can be repeated one or more times. For better understanding, consider an example of a JSON response converted from an EDI transaction on the platform. Assume that maintaining student records is one type of EDI transaction. In this example, the school details represent a single segment, while the student details are grouped under a loop.
ISA GS ST BHT SCH - school STD - student1 STDADDR - student1 address STDCLS - student1 class details STD - student2 STDADDR - student2 address STDCLS - student2 class details SE GE IEA
Below is sample EDI txn and converted json response.
Raw EDI (999):
1)ISA*00* *00* *ZZ*11111 *ZZ*12344458 *210276*1020*^*00501*000000002*0*P*:~
2)GS*FA*XXXXX*XXXXXXX*210276*1020*0*X*005010X231A1~
3)ST*999*0002*005010X231A1~
4)AK1*HC*222*005010X222A1~
5)AK2*837*0088~
6)IK3*SBR*16**8~
7)IK4*9*1111*7*BI~
8)IK5*R*5~
9)AK9*R*1*1*0~
10)SE*8*0002~
11)GE*1*0~
12)IEA*1*000000002~
just given numbering for understanding.
Converted json:
{
"ISA_Header": { [Comments:ISA segment]
"data": [
{
"dataObjects": {
"ISA_Header": {
"1_AuthorizationInformationQualifier": "00",
"2_AuthorizationInformation": " ",
"3_SecurityInformationQualifier": "00",
"4_SecurityInformation": " ",
"5_InterchangeIDQualifier": "ZZ",
"6_InterchangeSenderID": "11111",
"7_InterchangeIDQualifier": "ZZ",
"8_InterchangeReceiverID": "12344458",
"9_InterchangeDate": "210276",
"10_InterchangeTime": "1020",
"11_RepetitionSeparator": "^",
"12_InterchangeControlVersionNumber": "00501",
"13_InterchangeControlNumber": "000000002",
"14_AcknowledgmentRequested": "0",
"15_InterchangeUsageIndicator": "P",
"16_ComponentElementSeparator": ":",
"dataObjectTypes": "ISA"
}
}
}
]
},
"GS_Header": { [Comments:GS segment]
"data": [
{
"dataObjects": {
"GS_Header": {
"1_FunctionalIdentifierCode": "FA",
"2_ApplicationSendersCode": "XXXXX",
"3_ApplicationReceiversCode": "XXXXXXX",
"4_Date": "210276",
"5_Time": "1020",
"6_GroupControlNumber": "0",
"7_ResponsibleAgencyCode": "X",
"8_VersionOrReleaseOrIndustryIdentifierCode": "005010X231A1",
"dataObjectTypes": "GS"
}
}
}
]
},
"ST_Header": { [Comments:ST segment]
"data": [
{
"dataObjects": {
"TransactionSetHeader": {
"1_TransactionSetIdentifierCode": "999",
"2_TransactionSetControlNumber": "0002",
"3_ImplementationConventionReference": "005010X231A1",
"dataObjectTypes": "ST"
}
}
}
]
},
"BHT_Header": { [Comments:BHT segment]
"data": [
{
"dataObjects": {}
}
]
},
"FunctionalGroupResponseHeader"{ [Comments:segment 4 and this is single segment]
"data": [
{
"dataObjects": {
"FunctionalGroupResponseHeader": {
"1_FunctionalIdentifierCode": "HC",
"2_GroupControlNumber": "222",
"3_Version": "005010X222A1",
"dataObjectTypes": "AK1"
}
}
}
]
},
"2000_TransactionAck": { [Comments : Segment 5 , AK2 is the first element of 2000 loop]
"data": [
{
"dataObjects": {
"TransactionSetResponseHeader": {
"1_TransactionSetIdentifierCode": "837",
"2_TransactionSetControlNumber": "0088",
"3_ImplementationConventionReference": "",
"dataObjectTypes": "AK2"
},
"TransactionSetResponseTrailer": { [Comments:8 th segment]
"1_TransactionSetAcknowledgmentCode": "R",
"2_ImplementationTransactionSetSyntaxErrorCode1": "5",
"3_ImplementationTransactionSetSyntaxErrorCode2": "",
"4_ImplementationTransactionSetSyntaxErrorCode3": "",
"5_ImplementationTransactionSetSyntaxErrorCode3": "",
"6_ImplementationTransactionSetSyntaxErrorCode3": "",
"dataObjectTypes": "IK5"
}
},
"childLoops": {
"2100_Error": [ [Comments:6 th segment ,IK3 is the first element of loop 2100 and this child to 2000 loop]
{
"dataObjects": {
"ErrorIdentification": {
"1_SegmentIDCode": "SBR",
"2_SegmentPositioninTransactionSet": "16",
"3_LoopIdentifierCode": "",
"4_ImplementationSegmentSyntaxErrorCode": "8",
"dataObjectTypes": "IK3"
}
},
"childLoops": {
"2110_Error": [ [Comments:7 th segment ,IK4 is the first element in 2110 loop and this is child to 2100]
{
"dataObjects": {
"ImplementationDataElementNote": {
"1_PositioninSegment": "9",
"2_DataElementReferenceNumber": "1111",
"3_ImplementationDataElementSyntaxErrorCode": "7",
"4_CopyofBadDataElement": "BI",
"dataObjectTypes": "IK4"
}
}
}
]
}
}
]
}
}
]
},
"FunctionalGroupResponseTrailer":{ [Comments:9 th segment]
"data": [
{
"dataObjects": {
"FunctionalGroupResponseTrailer": {
"1_FunctionalGroupAcknowledgeCode": "R",
"2_NumberofTransactionSetsIncluded": "1",
"3_NumberofReceivedTransactionSets": "1",
"4_NumberofAcceptedTransactionSets": "0",
"5_FunctionalGroupSyntaxErrorCode1": "",
"6_FunctionalGroupSyntaxErrorCode2": "",
"7_FunctionalGroupSyntaxErrorCode3": "",
"8_FunctionalGroupSyntaxErrorCode4": "",
"9_FunctionalGroupSyntaxErrorCode5": "",
"dataObjectTypes": "AK9"
}
}
}
]
},
"SE_Trailer": {
"data": [
{
"dataObjects": {
"TransactionSetTrailer": {
"1_NumberofIncludedSegments": "8",
"2_TransactionSetControlNumber": "0002",
"dataObjectTypes": "SE"
}
}
}
]
},
"GE_Trailer": {
"data": [
{
"dataObjects": {
"GE_Trailer": {
"1_NumberofTransactionSetsIncluded": "1",
"2_GroupControlNumber": "0",
"dataObjectTypes": "GE"
}
}
}
]
},
"IEA_Trailer": {
"data": [
{
"dataObjects": {
"IEA_Trailer": {
"1_NumberofIncludedFunctionalGroups": "1",
"2_InterchangeControlNumber": "000000002",
"dataObjectTypes": "IEA"
}
}
}
]
}
}
FromEDI is a free online EDI to JSON converter that lets you transform supported EDI transactions into structured JSON without a subscription or conversion fees.
Simply select your transaction type, enter your EDI data, and convert it to JSON using the online EDI parser.
Convert EDI to JSON as many times as you need. FromEDI provides unlimited conversions so you can test, analyze, and work with EDI transactions without worrying about conversion limits.
No complicated setup is required. Select an EDI transaction type, paste your EDI data, and get structured JSON output in seconds. FromEDI is designed to make EDI conversion simple and accessible for both beginners and experienced EDI users.
FromEDI supports a variety of EDI transaction types, making it easy to work with different EDI documents from a single online EDI parser. Select the transaction type you need and convert your EDI data to structured JSON.
No software installation is required. FromEDI works directly in your web browser.
EDI Parsers is designed for developers, analysts and businesses that need fast and reliable Electronic Data Interchange conversion. Try our EDI Parser online tool with your real-world use cases with masked data and share your feedback. Based on community interest and input, we may consider releasing the library to public repositories.
Email: [email protected]