The BerryWave Python EDI SDK is a high-performance SDK for converting X12 and EDIFACT EDI documents to normalized JSON using a simple, Python-native API.
It combines a clean Python interface with the mature BerryWave EDI processing engine, enabling Python applications, automation workflows, AI applications, and data pipelines to process EDI entirely on the local machine.
The same processing engine also powers the BerryWave API for EDI. The Python SDK provides a native Python alternative for applications that prefer an in-process library instead of a REST API.
Additional documentation is provided in focused guides covering installation, examples, and performance benchmarking.
The Python SDK source code is fully available in this repository. The underlying BerryWave EDI processing engine is developed and maintained by BerryWave Software and is distributed as prebuilt runtime libraries.
The BerryWave Python EDI SDK provides a Python-native interface to the BerryWave EDI processing engine.
The SDK distribution includes the Community Edition of the BerryWave EDI processing engine and supports:
- Convert X12 EDI documents to normalized JSON
- Convert EDIFACT documents to normalized JSON
- Generate X12 997 / 999 acknowledgments
- Generate EDIFACT CONTRL acknowledgments
- String-based and file-based EDI processing APIs
- Optional pretty-printed JSON output
- Fully local processing
- No network connection required
The SDK is designed to support additional capabilities available through the Enterprise Edition of the BerryWave EDI processing engine, including:
- JSON → EDI conversion
- Advanced EDI validation
- Business transaction responses (for example, 850 → 855 and 837 → 277)
- Additional enterprise processing capabilities
The Enterprise Edition is licensed separately from BerryWave Software and can be installed into an existing BerryWave Python EDI SDK environment by replacing the Community Edition engine runtime components with the licensed Enterprise Edition runtime.
The SDK API remains consistent across both engine configurations.
All EDI processing occurs locally. EDI data does not need to leave the machine.
The SDK is organized around five simple operations:
| Method | Purpose |
|---|---|
edi_to_json() |
Convert EDI to normalized JSON |
json_to_edi() |
Convert normalized JSON back to EDI (requires Enterprise engine capabilities) |
acknowledge() |
Generate a technical acknowledgment |
validate() |
Validate an EDI document (requires Enterprise engine capabilities) |
respond() |
Generate a business response (requires Enterprise engine capabilities) |
from berrywave import EdiService
service = EdiService()
json_document = service.edi_to_json(edi_document)
print(json_document)Generating a technical acknowledgment is equally simple:
ack = service.acknowledge(
edi_document,
response_type="999"
)
print(ack)The project documentation is organized into focused guides:
| Guide | Description |
|---|---|
| Installation Guide | Installation, virtual environments, verification, and getting started |
| Examples Guide | Complete guide to the included example programs |
| Benchmarks Guide | Running the claims benchmarks and interpreting performance results |
The SDK is intentionally layered.
Python Application
│
▼
BerryWave Python EDI SDK
│
▼
BerryWave EDI Processing Engine
│
▼
X12 / EDIFACT Processing
The Python layer presents a clean, Pythonic interface while the underlying EDI processing remains implemented in the BerryWave EDI engine. Most applications never need to know that the implementation is written in Java.
The BerryWave EDI processing engine is designed for environments where EDI data must remain under customer control.
Features include:
- No network connectivity required
- No inbound or outbound network connections
- Suitable for on-premise deployment
- Suitable for air-gapped environments
- Customer-controlled processing of sensitive EDI documents
All EDI processing occurs entirely on the local machine.
- Python 3.11 or later
- Java 21 or later
The BerryWave Python EDI SDK uses a local Java runtime to execute the BerryWave EDI processing engine.
BerryWave Software develops EDI solutions designed to simplify integration between business systems, applications, and trading partners.
The BerryWave API for EDI provides REST-based access to the same BerryWave EDI processing engine used by this SDK.
Repository:
https://github.com/RBMayberry/BerryWave-EDI-API
This repository contains the complete BerryWave Python SDK source code.
The BerryWave EDI processing engine and associated runtime libraries are included with the SDK distribution and licensed separately.
The Python source code in this repository is licensed under the project's LICENSE file.
The BerryWave EDI processing engine and associated runtime libraries are licensed separately by BerryWave.