Generate EDI acknowledgments Last updated: 2026-10-01
An acknowledgment is the receipt the partner expects from the validation result: an X12 999, 997, or TA1, or an EDIFACT CONTRL. Validate EDI is how those checks run. This page is where each product turns that result into the acknowledgment.
ediFabric .NET
ediFabric .NET generates the acknowledgment with AckMan while X12Reader or EdifactReader streams the file. Each item the reader returns is published into AckMan. AckMan validates it and raises the acknowledgment at the end of the group (GE) or the interchange (UNZ). The acknowledgment arrives in AckHandler.
using (var ackMan = new Plugins.Acknowledgments.X12.AckMan(settings))
{
using (var ediReader = new X12Reader(edi, "EdiFabric.Sdk.X12"))
{
while (ediReader.Read())
ackMan.Publish(ediReader.Item);
}
}EDIFACT uses Plugins.Acknowledgments.Edifact.AckMan with EdifactReader in the same shape. Ack settings, TA1, 999, 997, and CONTRL are in Generate EDI acknowledgments.
ediFabric Native
ediFabric Native writes the X12 acknowledgment while it parses. ParseMode.JSON_VALIDATE_ACK is mode 3. parse returns a UTF-8 string and an offset. The string up to the offset is the transaction JSON. The report, including the acknowledgment, starts at the offset. Read that slice as a string. Do not decode it.
output, offset = ef.parse(edi, ef.ParseMode.JSON_VALIDATE_ACK, config)
report = json.loads(output[offset:])
print(report["errors_count"], report["ack"])JSON is mode 1 and JSON_VALIDATE is mode 2. Mode 2 returns the validation report and no acknowledgment. Loading the model map, the ack settings, and the 837P sample are in Generate EDI acknowledgments for Native. The Python calls are the ones in example_all_functions.py.
ediFabric Cloud
ediFabric Cloud returns the acknowledgment as JSON. POST the interchange you already parsed.
- Generate X12 997 takes an X12Interchange. The response is an X12Interchange of 997 acknowledgments. Sender and receiver on ISA and GS are swapped, and ISA13 is 1. The functional acknowledgments are batched in that interchange. TA1 is included according to ISA14.
- Generate X12 999 is the same request with the query parameter
ackset to999. The response is the 999 acknowledgments, with the same ISA and GS changes. TA1 follows ISA14. - Generate EDIFACT CONTRL takes an EdifactInterchange. The response is an EdifactInterchange for CONTRL. Sender and receiver on UNB are swapped, and UNB5 is 1. A technical CONTRL is included according to UNB9.
The checks those acknowledgments report are the ones in Validate EDI.
