Changelog

Increased maximum size for Mappings documents

To support developers working with larger JSON documents, we have increased the maximum mapped document size from 1 megabyte to 4 megabytes in order to accommodate a wider range of use cases.

New $currentDateTime function in Mappings

You can now use $currentDateTime function to generate current date and time in different formats and timezones. For example, if you want to generate a current date in an EDI format, you can achieve this by $currentDateTime($dateTime.EDIDate). If you need to have it generated for a different timezone, you can do so by specifying the 2nd argument like so: $currentDateTime($dateTime.EDIDate, "Europe/Berlin"). Read more

EDI Core APIs are now multi-region

Since launch, EDI Core served traffic from a single geographic region. Now, EDI Core serves traffic from multiple regions. This will increase the reliability of the service in the case of a regional outage, and decrease latency for requests made geographically closer.

Mappings: Lookup tables

You can now add one or more lookup tables to your mappings. Lookup tables are powerful for use cases where you have a field that contains a code and you wish to replace it with a related value.

For example, if you have a source field with a country code (`USA`) and you want to replace it with the country name (`United States`), you can achieve this by building a countries lookup table:

You can then use the lookup table in your mapping expression with the $lookupTable function:

To learn more, see: Mappings documentationMappings API documentation.

EDI Core: Embed EDI payload into Launch snippets

Now, when you explore an EDI file in Inspector, the Launch modal will generate a code snippet using that EDI payload.

Mappings: Ability to explicitly omit fields from the mapping output

Mappings now supports omitting fields from the mapping output using the $omitField constant.

If a given expression evaluates the $omitField constant, the field the expression is defined for will be omitted in the output. The $omitField constant is compatible with all mapping types and all JSONata expressions.

To learn more, refer to the Mappings documentation here.

EDI Core: Launch modal with sample code snippets

We added a new Launch modal in Inspector with code snippets for making a HTTP request, cURL, Node.js + Axios, Python + Requests. Simply copy the code into a tool of your choice, insert your API key and a sample payload, and beging translating between EDI and JEDI programmatically.

EDI Inspector & Reference

EDI Inspector: ability to download EDI file and improved data rendering

You can now save an EDI file from the Inspector editor.

We also improved data rendering format making the EDI file more human-readable:

  • Dates previously displayed as 20210901 now are shown as Sep 1, 2021.

  • Prior to the change, X12 elements that had a paired relational constraint were displayed as two separate entries. Example:

Communication Number Qualifier: Internet Email Address <> EA Communication Number: team@stedi.com

We now combine these into a single entry, with the qualifier as the label. You can click on either of these values to see the relevant reference information.

Internet Email Address <> EA : team@stedi.com

EDI Reference: Human-readable conditions

The EDI Reference has been updated to display a human-readable interpretation of relation condition code (ex. P0304: If either PER-03 or PER-04 is present, then the other is required). Before the enhancement, only the relation condition code was provided, which was difficult to parse (ex. P0304).See example

Mappings: Launch modal with sample code snippets

When you create or import a mapping, you can now open a Launch modal with code snippets in cURL, Node.js + Axios, Python + Requests. Simply copy the code into a tool of your choice, insert your API key and a sample payload to try out the mapping.

EDI Core: format EDI files

You can now prettify unformatted EDI files in Inspector and through the /prettify endpoint.

EDI Core: parse EDI files without envelopes

As a consumer of the /translate EDI core API, you now have the ability to parse EDI files that do NOT have envelopes. Before this enhancement, parsing a file without ISA/IEA GS/GE segments would result in a 422 response. Now, the EDI Core API will return a response based on the desired output parameters. The API response will identify the missing envelopes and elements for you.

View the response of the following payload in the inspector here:

ST*850*000000001~ BEG*24*SP*PO-00001**20210901~ N1*2L*STEDI INC.~ REF*K6*A composable platform for building flexible EDI systems~ PER*SR**EA*team@stedi.com~ PO1**1*2P*0.0001*PE*GE*EDI Core~ PO1**1*C0*0.05*PE*GE*Mappings~ CTT*2~ SE*9*000000001~

EDI Core: parse segments not in spec

The /translate EDI core API has been updated to support the parsing of segments that are not part of a given X12 release. Before this update, such a segment would result in a 422 response. Now, the API will return a valid response that clearly identifies the segment in question.

View the response of the following payload in the inspector here

ST*850*000000001~ BEG*24*SP*PO-00001**20210901~ N1*2L*STEDI INC.~ AUD*K6*<--AUD is NOT part of the 850 spec -->~ PER*SR**EA*team@stedi.com~ PO1**1*2P*0.0001*PE*GE*EDI Core~ PO1**1*C0*0.05*PE*GE*Mappings~ CTT*2~ SE*9*000000001~

EDI Core: remove empty segments

You are now able to specify the option to remove_empty_segments in the output_options of the EDI Core API.

"output_options": { "generate_control_numbers": true, "remove_empty_segments": true },

This feature can be helpful in cases when you're translating from JEDI to EDI and you wish to omit blank segments. Read more

Announcing 98% price decrease for Mapping requests

As of January 1, 2022, Mapping has a new pricing table, seen here. The decreased price of $0.001 per request for new and existing customers costs 98% less than the previous price of $0.05 (for volumes between 101-1,000,000 requests a month).

The price per request is tiered and the first 100 requests per month are free.

Request CountPriceFirst 100FreeFrom 101 to 1,000,000$0.001Above 1,000,000Contact us

JEDI 2.0 format is now available in production

Until now, the new JEDI 2.0 format was in "beta" as it stabilized. As of today, JEDI 2.0 is now ready for production use and comes with long-term support and commitment to no breaking changes.

You can read more about the JEDI@2.0 format here.

Below is an example of a JEDI 2.0 file.

{ "interchanges": [ { "interchange_control_header_ISA": { "authorization_information_qualifier_01": "no_authorization_information_present_no_meaningful_information_in_i02_00", "authorization_information_02": "", "security_information_qualifier_03": "no_security_information_present_no_meaningful_information_in_i04_00", "security_information_04": "", "interchange_id_qualifier_05": "mutually_defined_ZZ", "interchange_sender_id_06": "", "interchange_id_qualifier_07": "mutually_defined_ZZ", "interchange_receiver_id_08": "", "interchange_date_09": "210902", "interchange_time_10": "1200", "repetition_separator_11": "/", "interchange_control_version_number_code_12": "00801", "interchange_control_number_13": "123456789", "acknowledgment_requested_code_14": "interchange_acknowledgment_requested_ta1_1", "interchange_usage_indicator_code_15": "test_data_T", "component_element_separator_16": ":" }, "groups": [ { "functional_group_header_GS": { "functional_identifier_code_01": "ocean_shipment_information_304_311_317_319_322_323_324_325_326_361_SO", "application_senders_code_02": "00", "application_receivers_code_03": "00", "date_04": "20210902", "time_05": "1200", "group_control_number_06": "987654321", "responsible_agency_code_07": "accredited_standards_committee_x12_X", "version_release_industry_identifier_code_08": "008010" }, "transaction_sets": [ { "heading": { "transaction_set_header_ST": { "transaction_set_identifier_code_01": "326", "transaction_set_control_number_02": "0000" }, "transaction_set_trailer_SE": { "number_of_included_segments_01": "2", "transaction_set_control_number_02": "0000" } }, "type": "326" } ], "functional_group_trailer_GE": { "number_of_transaction_sets_included_01": "1", "group_control_number_02": "987654321" } } ], "interchange_control_trailer_IEA": { "number_of_included_functional_groups_01": "1", "interchange_control_number_02": "123456789" }, "delimiters": { "element": "*", "segment": "~", "sub_element": ":", "repetition": "/" } } ] }