Simple .NET EDI Reader, Writer and Validator. Read, Write and Validate X12 EDI files with EDI Parser written on C#.
Main Features:
- EDI to JSON and JSON to EDI conversion. Uses System.Text.Json (replaced Newtonsoft.Json) for serialization and a custom JSON reader for deserialization. JSON is a handy extension for the library. Imagine you can parse your EDI object directly in Angular or jQuery app.
- EDI to XML and XML to EDI conversion. EdiEngine does not use XML as intermediate format, as many other engines do. It uses POCO objects and XML is just an extension.
- Deterministic output: control segments (ISA, GS, ST, SE, IEA, GE) and XML serialization use InvariantCulture for numbers and dates, so EDI/XML/JSON do not contain locale-dependent characters (e.g. NNBSP).
- Configurable EDI X12 997 - Functional Acknowledgment generation. You can setup whether to accept all messages, accept but say errors were noted or reject depending on your needs.
- HL Loop Hierarchical parsing - Create a real tree structure based on HL segment hierarchy. No need to map every HL to map, this means one map can serve multiple needs. Say for ASN it can be S-O-P-I or S-O-I hierarchy in one map.
- Syntax Notes. All types of EDI Syntax notes are supported. P Paired, R Required, E Exclusion, C Conditional, L List Conditional
- Composite Data Elements are supported, which is really important for HIPAA and sometimes for other transactions even in retail.
- X12 Maps Current repository contains all 004010 maps, including Purchase Order, Invoice, Shipment and many others. You can easily craft yours on their basis.
- .NET Standard 2.1, .NET 6, .NET 8 and Source Linking. Multi-targeting support. Source linking enabled and symbol package is published to NuGet symbols server, making debugging easier.
Install the package Cross.EdiEngine NuGet package into your ASP.NET Core project:
Install-Package Cross.EdiEngineor
dotnet add package Cross.EdiEnginePlease use Wiki for documentation and usage examples.
EdiEngine.Samples — runnable examples for 210 (Freight Invoice), 322 (Terminal), 810 (Invoice), 850 (Purchase Order), 997 (Functional Acknowledgment):
dotnet run --project EdiEngine.SamplesEdiEngine.Tests — unit tests with additional examples. Clone the repository to explore.
Json Serialization and DeserializationXml Serialization and DeserializationCraft more maps (Added all 004010 maps)997 generationHL loop hierarchical parsingSyntax NotesComposite data elements.NET Core support- HIPAA support