Home Depot Edi 997
What This Is
This guide is an in-depth, practical reference for processing Home Depot EDI 997 functional acknowledgments (X12 997). A 997 is not a business document like an 850 purchase order or a 856 ASN; it is a system-level acknowledgment that reports whether a functional group (GS/GE) and each transaction set (ST/SE) inside that group passed syntactic and simple semantic validation. Understanding the 997 is essential to keep EDI flows healthy: it tells you whether Home Depot received, accepted, or rejected transaction sets and why.
Home Depot-specific nuances for 997s include expectations on control number matching, prompt handling of AK9-level rejects to avoid chargebacks or exceptions, and vendor portal reconciliation. This guide focuses on practical, actionable steps: how to parse 997 segments and elements, extract error codes, create CSV outputs for downstream systems, and resolve the underlying causes in your sending X12 files. Where applicable, it notes Home Depot vendor compliance context (Last Updated: 2026-04-19) and recommends checking Home Depot’s vendor portal for the latest details.
Who This Is For
This guide is for EDI analysts, integration engineers, ERP/EDI implementers, and vendor operations teams who send EDI documents to Home Depot and must process 997 functional acknowledgments for operational compliance and automated reconciliation.
Key Segments Explained
Below are the main segments you will encounter in the 997 and how to interpret them for Home Depot workflows.
- ISA ... IEA (Interchange Control Header/Trailer)
The
ISAenvelope wraps the interchange. For 997s, checkISA13(interchange control number) andISA11(interchange control standards identifier). A mismatch in the interchange control number compared to the interchange you sent indicates routing or retransmission issues. TheIEAsegment contains the number of functional groups and repeats the interchange control number for validation. - GS ... GE (Functional Group Header/Trailer)
The
GSandGEwrap functional groups. In the 997 theAK1segment references the functional group ID that Home Depot is acknowledging. For example,AK1*PO*means acknowledgment for the Purchase Order functional group (PO = 850 family). CompareGS02(group control number) to theAK1group control number. - ST ... SE (Transaction Set Header/Trailer)
The 997 itself is a transaction set identified by
ST*997*. Inside the 997, theAK2segments point to original transaction set identifiers (e.g., 850, 856, 810) and their control numbers. EachAK2is followed by anAK5to indicate accept/reject at the transaction set level. - AK1 / AK2 / AK3 / AK4 / AK5 / AK9 (Acknowledgment results)
-
AK1: Functional group accepted/rejected reference (identifies group).
-AK2: Transaction set reference (identifies the specific ST/SE control number).
-AK3: Loop-level or segment-level syntax error detail (rare but critical).
-AK4: Element-level error with element position and code.
-AK5: Transaction set accept/reject code (A, E, R, P). AK5 codes: A = accepted, E = accepted with errors, R = rejected, P = partial acceptance.
-AK9: Summary for the functional group (counts accepted, rejected, errored).Understanding
AK3/AK4details is essential to find the exact segment/element failing syntax or simple validation tests.
Example EDI Snippet
ISA*00* *00* *ZZ*SENDERID *ZZ*HOMEDEPOT *210419*1700*U*00401*000000905*0*P*>~
GS*FA*SENDERID*HOMEDEPOT*20210419*1700*905*X*004010~
ST*997*0001~
AK1*PO*123~
AK2*850*000000456~
AK5*R~
AK3*PO1*4*106*~
AK4*PO101*2*DE*~
AK2*856*000000789~
AK5*A~
AK9*R*2*1*1~
SE*11*0001~
GE*1*905~
IEA*1*000000905~
Line-by-line explanation:
ISA ... IEA: Standard interchange envelope.ISA13=000000905must match theIEAcontrol number.GS*FA*...*004010: Functional group header for 997s (FA).GS06= 905 identifies the group control number; checkGE.ST*997*0001: Transaction set header for the functional acknowledgment; control number 0001 links toSE.AK1*PO*123: Acknowledging functional group of type PO (purchase orders) with group control number 123.AK2*850*000000456: Points to transaction set 850 with control number 000000456 (the PO you sent).AK5*R: That transaction set was rejected.AK3*PO1*4*106*: Segment-level error: segment ID = PO1, at position 4 with error code 106 (segment unknown or invalid in this context).AK4*PO101*2*DE*: Element error in segment PO1, element position 2, error code DE (data element invalid).AK2*856*000000789...AK5*A: The ASN (856) with control number 000000789 was accepted.AK9*R*2*1*1: Functional group summary = Rejected; total transaction sets = 2; accepted = 1; rejected = 1.
CSV Output Example
| Field | Example Value | Description |
|---|---|---|
| interchange_control_number | 000000905 | ISA13 / IEA2 - interchange control number |
| group_control_number | 123 | AK1 second element - referenced functional group control number |
| transaction_set_id | 850 | AK2 element 1 - original transaction set identifier |
| transaction_control_number | 000000456 | AK2 element 2 - transaction set control number |
| transaction_status | R | AK5 code - A/E/R/P |
| segment_id | PO1 | AK3 segment ID where error occurred |
| element_position | 2 | AK4 element position number |
| element_error_code | DE | AK4 error code (data element invalid) |
| ak9_summary | R, total=2, accepted=1, rejected=1 | AK9 summary string for quick review |
Step-by-Step Conversion Process
-
Receive and isolate the 997 interchange
- Confirm file-level delimiters (ISA element 16: component element separator; ISA element 11: repetition separator) and segment terminator. Many parsing failures result from wrong delimiter assumptions.
- Extract the interchange by matching
ISAtoIEA, validate ISA13 ↔ IEA2.
-
Validate GS/GE functional group headers
- For each
GS, confirm group control number and functional identifier code. CompareAK1group references to theGSvalues. - If group control numbers mismatch, stop and log for manual reconciliation.
- For each
-
Parse transaction-level AK segments
- Iterate
AK2segments. For each, captureAK2-1(transaction set ID),AK2-2(transaction control number). - Read the following
AK5to determine status. IfAK5= R or E, extract anyAK3/AK4details for precise error mapping.
- Iterate
-
Map to CSV and downstream systems
- Create a CSV row per
AK2entry with fields laid out in the CSV table above. Include AK9 summary row(s) for quick dashboards. - Include timestamp, file name, and Home Depot partner ID for traceability.
- Create a CSV row per
-
Automated remediation and routing
- For accepted sets (AK5 = A), mark as transmitted/received in your ERP; no action needed.
- For rejected sets (AK5 = R/E), route CSV with error code columns to the EDI exception queue and notify the responsible person with instructions: identify original outbound file, fix payload, and resend.
- Use control numbers from the CSV to attach the original file copy for quick correction.
-
Recordkeeping and compliance
- Log acceptance/rejection times and actions taken to demonstrate remediation timelines to Home Depot if disputes arise. Use the CSV export as evidence.
- Maintain mapping between internal transaction IDs and X12 control numbers for at least 90 days or per Home Depot vendor requirements (check vendor portal).
Common Errors and Fixes
- AK5 = R with AK3/AK4 indicating segment/element errors — Fix: Inspect the referenced segment (e.g., PO1). Correct element data types, lengths, enumerations; re-run syntactic validation. Example resolution: AK4 error code DE for PO1 element 2 means data element invalid — validate against the Home Depot implementation guide and regenerate 850.
- Control number mismatch (ISA13 vs IEA2, GS06 vs GE02, ST02 vs SE02) — Fix: Ensure your EDI translator preserves control numbers and increments. Broken control numbers often originate from file concatenation or manual editing. Recreate the interchange ensuring consistent control values.
- Delimiter errors (segment terminator wrong or embedded terminator inside data) — Fix: Verify ISA16 (component separator) and ISA11/ISA12 settings. Use a deterministic parser that reads ISA to determine delimiters. PlainEDI validation checks delimiters on upload to /upload to prevent these failures.
- Missing mandatory segments for Home Depot (e.g., missing N1, REF where required) — Fix: Compare your transaction to Home Depot’s implementation guide. Add missing mandatory segments and elements. Run pre-send validation to catch these before submission.
- AK9 indicates functional group rejection — Fix: AK9 with rejected count >0 means one or more transaction sets failed. Use the AK2/AK5 details to find each failing transaction. Correct and resend the individual transaction set(s) with proper group control numbers.
- 997 not received by sender within SLA — Fix: Implement monitoring for missing 997s. If Home Depot does not send a 997 in expected time, check VAN/AS2 acknowledgments and contact EDI support. Use retransmit logs and PlainEDI’s /upload validation to ensure outgoing files are deliverable.
Related Resources
- reading 997 functional acknowledgments
- how to validate EDI files before sending
- homedepot edi 856
- homedepot edi 850
- resolving edi 997 rejection codes
- how to import Home Depot EDI into QuickBooks
- understanding EDI X12 delimiters and structure
Practical Case Studies
Case Study 1 — Rejected PO due to PO1 numeric format: A mid-sized vendor sent 10 POs to Home Depot in a single functional group. Home Depot returned a 997 (Last Updated: 2026-04-19) showing AK2 pointing to an 850 with AK5=R; the AK4 indicated element position 4 in PO1 had error code RI (right-justified numeric expected). Root cause: the vendor’s mapping wrote quantity with leading spaces instead of numeric format. Resolution: adjust the map to emit quantity as 9v0 numeric, regenerate the 850, and resend. PlainEDI validation at /upload would have caught numeric formatting prior to sending, saving an SLA breach.
Case Study 2 — Group control number mismatch causing ACK confusion: A vendor’s B2B gateway concatenated two interchanges and accidentally reused GS control numbers. Home Depot sent a 997 acknowledging one group and rejecting the other; the vendor’s automation matched control numbers incorrectly and archived the original 850 as accepted. Resolution: enable strict GS/GE control number validation, reconcile by matching ISA/GS/ST control numbers to original outbound files, and correct gateway behavior so each GS has unique control numbers. Use the CSV export described above to re-associate control numbers with original file names.
Home Depot Compliance Notes and Penalties
Home Depot enforces vendor compliance programs and may assess penalties for failed or untimely EDI processing. Effective date for the facts referenced in this guide: Last Updated: 2026-04-19. Retailers commonly apply penalties such as OTIF deductions, ASN accuracy chargebacks, and other compliance fees when EDI requirements are not met. Verify specific penalty amounts and thresholds in your Home Depot vendor portal. Best practices: maintain 997 processing within SLA, fix AK5=R rejects same business day where possible, and keep audit logs demonstrating remediation.
PlainEDI provides pre-send validation and simulated 997 checks to prevent many of these errors. Upload files to PlainEDI to run delimiter, control number, and mandatory-segment checks before sending to Home Depot.
FAQ
Q: What is the difference between AK5 codes A, E, R, and P?
AK5 codes indicate transaction set processing result: A = Accepted, E = Accepted with errors (semantic issues flagged but accepted), R = Rejected, P = Partially accepted. Treat R as actionable — you must fix and resend. Treat E as requiring review and possible correction based on severity.
Q: How do I find the exact element Home Depot flagged in a 997?
Use AK3 for segment-level location and AK4 for element-level detail. AK3 provides segment ID and position; AK4 lists the specific element position and an error code. Map those positions to your original transaction set and element dictionary to identify the faulty field.
Q: What should I do when AK9 shows the group is rejected?
If AK9 indicates rejection, iterate all AK2/AK5 pairs to find which transaction sets were rejected. Create CSV rows for each rejected set, attach the original outbound file, correct the data, and resend the individual transaction sets using consistent group control numbers. Keep logs for audit purposes and remediation timelines.
Q: Can I automate 997 parsing and CSV export?
Yes. Build a parser that reads ISA/GS/ST envelopes to extract delimiters and control numbers, then iterates AK segments and outputs a CSV row per AK2. Include fields for interchange control, group control, transaction ID, control number, AK5 status, AK3/AK4 error details, and timestamp. Many EDI platforms, including PlainEDI, offer automated parsing and CSV exports when you upload files to PlainEDI.
Q: Why am I receiving a 997 with AK5=A but my ERP shows missing PO?
An AK5=A means the transaction set passed syntactic checks and Home Depot accepted it. If your ERP does not show the PO, issues likely exist in downstream integration (failed import or mapping). Use control numbers to find the exact file; re-run the import step and check mapping logs. If the 997 shows accepted but the business data is absent, do not resend without confirming whether the transaction was ingested — duplicate sends may cause duplicate orders.
Q: How fast should I respond to a Home Depot 997 rejection?
Respond immediately; operational best practice is to acknowledge and start remediation within the same business day. Home Depot enforces compliance programs; unresolved rejects can escalate to chargebacks and operational penalties. Document remediation steps in your ticketing system and retain CSV exports and the corrected outbound file for audit trails. Verify requirements and SLAs in the vendor portal (Last Updated: 2026-04-19).
Q: What do I do if delimiters in the 997 look wrong?
Read delimiters from ISA elements: ISA11 (repetition separator), ISA16 (component element separator), ISA1/2 for element IDs; treat the ISA line as authoritative. If your parser assumed the wrong delimiters, reparse using the ISA-provided separators. Use a deterministic parser that obtains delimiters at runtime instead of hard-coded separators.
Q: Does Home Depot ever send 997s with AK5=E (accepted with errors) and what does that mean?
Yes. AK5=E indicates the transaction set was accepted but Home Depot detected non-fatal issues (formatting, deprecated codes, or warnings). Review AK3/AK4 details to understand the warning. Decide whether to correct and resend based on business impact. Track these as medium-priority exceptions.
CTA
Prevent ACK failures before they happen: upload your outgoing files to PlainEDI for pre-send validation and simulated 997 checks. PlainEDI validates delimiters, control numbers, mandatory segments, and common element formats so you can fix issues before Home Depot sees them.