Lowe's Edi 997
What This Is
This guide focuses on Lowe's EDI 997 functional acknowledgment: the standardized X12 transaction set retailers use to confirm receipt and syntactic validation of inbound transaction sets. Lowe's trading partners receive 997s to understand whether submitted transaction sets (for example, 850 Purchase Orders or 856 ASNs) were accepted, accepted with errors, or rejected at the transaction or segment/element level.
The goal is practical: explain why Lowe's rejects or flags transaction sets, how to interpret every segment in the 997, how to convert a 997 to a CSV for reporting, and step-by-step corrective actions that prevent repeated compliance failures. This guide includes real-world examples, annotated EDI code, CSV output, common error codes and exact fixes, and integration tips using PlainEDI validation features.
Who This Is For
This guide targets EDI analysts, integration engineers, vendor compliance teams, 3PLs managing Lowe's orders, and developers integrating EDI acknowledgments into ERP or WMS systems who require operational, stepwise guidance for interpreting and fixing Lowe's 997 responses.
Key Segments Explained
Below are the core segments you will see in every Lowe's 997. Each explanation includes element-level notes, common pitfalls, and why Lowe's uses the information.
- ISA — Interchange Control Header
The ISA sets envelope-level control characters: element separator, component separator, and repetition separators. ISA15 is the interchange control number. Common pitfall: using an interchange control number that duplicates a previous file will cause trading partner rejection. Lowe's uses the ISA control number to track receipt date/time of interchange and ensure uniqueness per trading day.
- GS — Functional Group Header
GS identifies the functional group (for example, functional ID 'FA' for 997). GS06 is the group control number. Mismatch between GS control numbers and the group's GE segment will lead to group-level rejection. Lowe's uses GS-level checks to confirm the expected transaction types and trading partner IDs.
- ST — Transaction Set Header
ST02 is the transaction set control number for the 997. Lowe's correlates ST02 with AK1/AK2 to reference which outbound transaction is being acknowledged. A missing or duplicate ST02 causes downstream reconciliation issues in accounting and EDI dashboards.
- AK1 / AK2 — Functional Group and Transaction Set Responses
AK1references the functional group being acknowledged (AK101 = functional ID code, AK102 = group control number).AK2references the specific transaction set (AK201 = transaction set ID code, AK202 = transaction set control number). Lowe’s uses AK1/AK2 to map the 997 back to the original outbound file. Common failure is mismatched AK202 (transaction set control number) versus the originator’s ST02. - AK3 — Segment Syntax Error Identification
AK3 provides the segment ID and position where a syntax or structural error occurred (AK301 = segment ID code, AK302 = segment position in transaction). Lowe's includes AK3 in rejections to indicate where the parser flagged a segment-level issue. If AK3 reports an error, the next step is to inspect the indicated segment in the original file for missing elements, misplaced delimiters, or incorrect loop placement.
- AK4 — Element Syntax Error Identification
AK4 drills down to the element level within the segment flagged by AK3. AK401 = element position within the segment, AK402 = component data element position (if used), AK403 = repetition position, AK404 = data element reference number, and AK405 = data element error code. Lowe's uses AK4 to indicate invalid element values, invalid codes, or missing required elements. Typical fixes involve adjusting formatting, applying code lists, or adding required elements that were omitted.
- AK5 — Transaction Set Acknowledgment
AK5 reports acceptance at the transaction set level. Common codes used by Lowe's:
A= Accepted,E= Accepted With Errors,R= Rejected. AK5 presence and value determine whether the business system will process or drop the payload. If AK5=R, review AK3/AK4 entries to resolve and resend. - SE / GE / IEA — Trailing Controls
SE contains the transaction set trailer with element count and ST02 repeat. GE and IEA close the functional group and interchange respectively. Counts and control numbers must match their headers exactly. Lowe’s automated ingestion rejects files where SE count or GS/GE/IEA control numbers do not match, because mismatched counts indicate truncated or corrupted payloads.
Example EDI Snippet
ISA*00* *00* *ZZ*SENDERID *ZZ*LOWESID *200503*1253*^*00501*000000905*0*T*:~
GS*FA*SENDERID*LOWESID*20200503*1253*905*X*005010~
ST*997*0001~
AK1*PO*12345~
AK2*850*000123~
AK3*PO1*4*10~
AK4*01*1*8*PID*7~
AK5*R~
SE*8*0001~
GE*1*905~
IEA*1*000000905~
Line-by-line explanation:
ISA*00* ... *000000905*0*T*:Interchange header. ISA13 sends control number000000905. Delimiters explicitly defined in positions (element separator '*', component separator ':').GS*FA*...Functional group for acknowledgments (FA). GS06 group control number905must match GE02.ST*997*0001Transaction set 997 with control number0001. Use this in internal reconciliation against AK2.AK202.AK1*PO*12345Functional ID 'PO' referenced; group control number12345is the outgoing group generated by the sender.AK2*850*000123The 850 transaction set control number000123is being acknowledged. Match this to the original ST02 from your 850 file.AK3*PO1*4*10Segment-level error: segment IDPO1, loop position4, segment position10. Check the original 850 PO1 segment at that position for structure issues.AK4*01*1*8*PID*7Element-level detail: element position01, component1, element referencePID, error code7(invalid code value). Replace element value with a valid code from the PID usage table.AK5*RTransaction rejected. Do not process the original 850 for business logic until fixed and resent.SE*8*0001Transaction trailer with segment count = 8 and repeating ST control0001. The segment count must include ST and SE segments.GE*1*905Functional group trailer (one transaction in group, control number905).IEA*1*000000905Interchange trailer with matching control number000000905.
CSV Output Example
Converting 997 acknowledgments into a CSV simplifies reporting and automation. Below is a minimal CSV mapping from the example above. Column selection reflects the most actionable fields for operations and integration teams.
| ISA Control Number | GS Control | ST Control | Referenced TS | TS Control | AK3 Segment | AK4 Element | AK5 Code | Received Date |
|---|---|---|---|---|---|---|---|---|
| 000000905 | 905 | 0001 | 850 | 000123 | PO1 at pos 10 | PID element 01 error 7 | R | 2020-05-03T12:53 |
Sample CSV row (comma-delimited):
000000905,905,0001,850,000123,"PO1 at pos 10","PID element 01 error 7",R,2020-05-03T12:53
Step-by-Step Conversion Process
This section walks through converting a Lowe's 997 into a CSV line for system ingestion or reporting. Use these steps in an automated parser, or perform them manually for audit purposes.
- Receive & Validate Envelope
- Read the ISA header. Extract ISA13 (interchange control number) and verify the element separator characters located in fixed ISA positions. If ISA is malformed, stop and record: "ISA parse error".
- Validate IEA trailer control number matches ISA13. If mismatch, flag as "Interchange control mismatch".
- Validate Functional Group
- Extract GS06 group control number and GS01 functional ID. Confirm GS/GE counts and control numbers match. If GE02 != GS06, record a group-level error.
- Confirm GS01 is 'FA' (997 functional acknowledgment). If not 'FA', route to appropriate processor or discard per Lowe's trading rules.
- Correlate Transaction Set
- Read ST02 and correlate to AK2.AK202. If ST02 != AK2.AK202, flag "Transaction set control mismatch". Map the referenced TS (AK2.AK201) to your internal transaction numbering (e.g., 850).
- Increment internal processing counter for that ST02 for audit and idempotency.
- Extract Error Details
- If AK5 indicates rejection (
R) or acceptance with errors (E), parse all AK3/AK4 occurrences into separate CSV columns or rows for review. - For each AK3, capture segment ID and segment position. For each AK4, capture element position, referenced data element, and error code. Use a mapping table to convert error codes to human-readable descriptions.
- If AK5 indicates rejection (
- Generate CSV Row(s)
- Populate CSV fields: ISA control, GS control, ST control, referenced TS, referenced TS control, AK5 code, AK3/AK4 descriptions, and received timestamp.
- Write one CSV row per AK2 (transaction reference). If a single AK2 has multiple AK3/AK4 entries, include them in the same row in a delimited sub-field or output multiple rows depending on downstream system requirements.
- Automated Alerts & Remediation
- If AK5=R, automatically create a ticket in your EDI queue and attach the CSV row. Include links to the original outbound file.
- Use PlainEDI validation to re-run the outbound file through syntax and code-list checks before resubmission to Lowe's. PlainEDI prevents common AK4 errors by validating element presence, length, and valid code sets.
- Resend & Audit Trail
- After fixes, regenerate the outbound transaction set with corrected control numbers and data. Use unique ST02 and ISA13 to avoid duplication issues.
- Archive original, corrected, and 997 acknowledgment CSV records for at least the retention period your compliance team enforces. Include timestamps and user IDs for auditing.
Common Errors and Fixes
The following are common Lowe's 997-related issues, error codes you will see in AK4, and step-by-step fixes. These are field-tested resolutions used by vendors and 3PLs.
- Error: AK5=R with AK3 pointing to
PO1segment.
Likely cause: Missing required element within the PO1 loop or incorrect loop placement.
Fix: Open the original 850, compare PO1 segment against the spec used by Lowe’s. Ensure quantity and unit-of-measure elements are present and use Lowe’s allowed UOM codes. Re-validate with PlainEDI before resending. - Error code (AK4 AK405=1): "Mandatory data element missing".
Fix: Add the missing data element. For example, if PID01 (item description type) is required, include PID01 and PID05 per Lowe’s segment usage. Re-run syntax validation and confirm element presence and order. - Error code (AK4 AK405=4 or 5): "Data element too short/too long".
Fix: Adjust the element length to meet X12 min/max. For instance, if a UPC must be 12 digits but you sent 11, left-pad with zeros only after confirming Lowe’s expects a full 12-digit UPC. Validate code lists for leading zeros handling. - Error code (AK4 AK405=7): "Invalid code value".
Fix: Replace the value with a valid code from Lowe’s published code list (e.g., product classification, order type). Verify using the trading partner guide or Lowe’s vendor portal. Use PlainEDI’s code list validation to detect invalid values before sending. - Error: ISA/GS/SE/GE control numbers do not match.
Fix: Implement strict control number generation and tracking in your EDI gateway. Ensure ISA13 is unique per interchange, GS06 increments per group, and ST02 increments per transaction. Reconstruct the envelope with correct values and retransmit. - Error: AK4 reporting an invalid character in element (AK405=6).
Fix: Strip non-printable characters and ensure ASCII or UTF-8 per Lowe’s spec. Check for stray delimiters inside free-text fields and escape or truncate them as required. Validate the original file's character encoding before sending.
Related Resources
- reading 997 functional acknowledgments — deep dive on 997 structure and parser behavior.
- resolving edi 997 rejection codes — mapping of common AK4 error codes to fixes.
- reading lowes edi files — Lowe's-specific EDI file patterns and vendor notes.
- lowes edi 850 — common PO issues that cause 997 rejections.
- lowes edi 856 — ASN formatting issues frequently referenced by Lowe's 997s.
FAQ Section
Q: What does AK5=R mean in Lowe's 997?
AK5=R indicates the referenced transaction set is rejected at the transaction level. Lowe's 997 will include AK3 and AK4 segments explaining the rejection points. Do not process the original transaction for business purposes until you correct the referenced AK3/AK4 errors and resend the corrected transaction set.
Q: How do I map AK3/AK4 error details back to my original file?
AK3 contains the segment ID and segment position; AK4 contains element position and error code. Use AK3.AK302 (segment position) to locate the exact segment instance in your outbound file, then use AK4.AK401 (element position) to inspect the problem element. Keep your original file with line numbers or parse it into a DOM model for rapid lookup.
Q: Can I automate fixes for common AK4 error codes?
Yes. Automate canonical fixes like removing non-printable characters, enforcing element length, and validating code lists. For code-list mismatches, automation can suggest replacements but a human should approve business-critical changes. Use PlainEDI validation to block syntactic errors before submission.
Q: What control numbers must match between my outbound file and Lowe's 997?
ISA13 must match IEA02 at the interchange level; GS06 must match GE02 at the group level; ST02 must match SE02 at the transaction set level. AK1/AK2 will reference your original group and transaction set control numbers for correlation. Maintain strict control-number governance to prevent mismatches that cause automated rejections.
Q: Does Lowe’s impose penalties for 997 rejections or repetitive errors?
Retailers, including Lowe’s, enforce penalties for non-compliance and operational failures such as ASN inaccuracies and OTIF non-compliance. Last updated: 2026-05-03. Verify current penalty amounts and thresholds in Lowe’s vendor portal for exact amounts and effective dates. Maintain clean 997 acceptance rates to reduce chargebacks and penalties.
Q: What is the fastest way to resolve an AK4 invalid code value?
Identify the data element referenced by AK4, consult Lowe’s published code list in the vendor guide for the correct value, update your master data (SKU, UOM, classification), re-validate the corrected transaction with PlainEDI, and resubmit with a new ST02 and ISA13 to ensure unique control numbers.
Q: How should I store and report Lowe's 997s for audit purposes?
Store raw 997 EDI files plus a normalized CSV row per referenced transaction. Include timestamps, control numbers, AK3/AK4 error descriptions, and the original outbound filename or ST02. Maintain retention consistent with your compliance policy and Lowe's trading partner requirements.
Q: When should I escalate a persistent 997 rejection to Lowe's EDI support?
Escalate when repeated corrections still produce AK5=R for the same business scenario, when Lowe's response lacks clear AK3/AK4 guidance, or when documentation in the vendor portal does not explain a rejection. Provide Lowe's support with your original transaction, the 997, control numbers, and the CSV extraction for faster triage.
Final Notes and Best Practices
997 acknowledgments are your first feedback loop from Lowe's EDI engine. Build a reliable process: enforce control-number uniqueness, validate against Lowe’s code lists and segment usage, and automate CSV extraction for reporting. Use PlainEDI as a pre-flight validator to catch syntax, length, and code-list errors before transmission to Lowe’s. PlainEDI integrates easily into CI/CD pipelines and nightly job schedules to reduce rejections and speed resubmissions.
If you need automated conversion or a hands-off ingestion system, upload a sample 997 to PlainEDI and review the parsed CSV output for integration into your ERP or reconciliation dashboards.