Flxpoint Parser Rules — Authoritative Reference
Flxpoint Parser Rules — Authoritative Reference
This page captures the Flxpoint parser's actual behavior as confirmed by the Integrations team (Faiyaz Ahmed) on 2026-04-14 (parser spec) and 2026-04-16 (envelope + enum follow-up). It is the authoritative source for what Flxpoint accepts, rejects, or quietly ignores.
Use this page to answer the two most common partner questions:
- "Will Flxpoint accept my file?"
- "Is this rule a generic X12 requirement or a Flxpoint-specific one?"
1. Envelope Layer (ISA / GS / ST)
Envelope validation is delegated to the core EDI library. Flxpoint's Accept vs. Reject behavior on envelope fields is as follows:
Supported Versions (GS08 / ISA12)
| Version | Flxpoint behavior |
|---|---|
004010VICS | Preferred — X12 Retail VICS. Accepted. |
004010 (no VICS) | Accepted + warning. Not hard-rejected even when VICS-specific segments are present. Partners should ideally switch to 004010VICS. |
005010 | Accepted. |
| Anything else | Warning. Processing depends on whether the segment structure still parses. |
Hard rejection on version strings only happens when the segment structure itself fails to parse — not the version literal.
ISA06 / ISA08 — Sender / Receiver IDs
- Must be exactly 15 characters, right-padded with spaces when the ID is shorter.
- Missing padding → the internal parser fails to find the segment terminator → hard reject.
GS01 — Functional Identifier Code
| Code | Transaction |
|---|---|
IB | 846 Inventory |
SH | 856 Ship Notice |
PO | 850 Purchase Order |
AD | 855 PO Acknowledgement |
IN | 810 Invoice |
FA | 997 Functional Acknowledgement |
PI | 832 Price/Sales Catalog |
A GS01/ST01 mismatch is a hard reject.
Control Numbers
- ISA13 must be unique within a 24-hour window from the same Sender ID. Duplicate ISA13 from the same sender is rejected.
- GS06 ↔ GE02 must match; mismatch is rejected.
- ST02 ↔ SE02 must match; mismatch is rejected.
ISA15 — Usage Indicator
T(Test) andP(Production) are both processed.- Test files are badged in the Flxpoint UI as "Test Mode" to prevent accidental real-world fulfillment.
2. 997 Functional Acknowledgement
Pending formal confirmation from Integrations (2026-04-16 follow-up). Unofficial guidance from Raja Bhanu (2026-04-08): Flxpoint treats 997 as an acknowledgement only. The payload is not run through content validation. Flxpector mirrors this stance — it parses the envelope but does not enforce a content schema on 997.
3. 832 Price / Sales Catalog
Pending formal confirmation from Integrations (2026-04-16 follow-up). Himanshu Katyal has a custom 832 implementation for AmerisourceBergen; INT-55281 is the evaluation ticket for a standard 832 structure. Until Flxpoint publishes an official 832 schema, Flxpector emits generic X12 validation only.
4. Enum Whitelists
These are the exact values the parser checks against. When the inspector says "invalid ___", partners can use this table to pick a valid value.
SCAC Codes (TD503)
- Flxpoint does not maintain an exhaustive list. New carriers are added constantly.
- Validation is format-only: 2 to 4 alphanumeric characters (e.g.
UPSN,FDXE,USPS). - Flxpector warns when a SCAC is not in the common-carrier list, but the file still processes.
DTM Qualifiers (DTM01)
| Qualifier | Meaning |
|---|---|
011 | Shipped |
017 | Estimated Delivery |
002 | Delivery Requested |
ACK01 — 855 Line Item Status Codes
| Code | Meaning |
|---|---|
IA | Item Accepted |
IB | Item Backordered |
IR | Item Rejected |
IQ | Item Quantity Changed |
Broader X12 codes (AC/AD/AE/AK/BP/DR/IC/ID/IF/IS/IW/RD/RJ/SP) are accepted by the parser for backward compatibility, but only the four above are actively processed by Flxpoint.
SAC02 — 810 Service / Allowance / Charge Codes
| Code | Meaning |
|---|---|
G821 | Shipping (primary code per FLX PDF v2) |
C310 | Freight |
D240 | Freight Assistance |
F050 | Other / Miscellaneous Charges |
Any other SAC code (e.g. AFEE, G740, H750) will be flagged by Flxpector as "may not be processed".
5. X12-Standard vs. FLX-Custom Rules
When a partner argues "my file is X12 compliant", these are the rows where Flxpoint diverges from the industry standard. Everything else in the inspector is generic X12 syntax.
| Segment / Rule | Rule | Source |
|---|---|---|
| BIA01 (846) | Must be exactly 00 | FLX-Custom — X12 allows 05 (Replace) |
| BIA02 (846) | Must be exactly MM | FLX-Custom — X12 allows DD (Distributor), DR (Delivery) |
| REF*IA (846) | Mandatory; qualifier must be IA | FLX-Custom — X12 marks REF as optional |
| LIN02 | Must be SK/UP/EN/BP | X12-Standard |
| SN102 (856) | Must be a positive integer > 0 | X12-Standard (ASN business logic) |
| CTT (846) | Ignored by parser | X12-Standard (segment optional; Flxpoint skips entirely) |
| REF*DP (810) | Mandatory; value must be 0000 | FLX-Custom |
| TD5 (856) | Required; TD502=2, TD503 SCAC required, TD512 service level required | FLX-Custom |
| Item Tracking Reachability (856) | Every item HL must have reachable tracking (REF0L/CN/TN at shipment, or MANCP/GM at pack/item) | FLX-Custom (runtime mapper requirement) |
Flxpector tags every validation finding with this provenance so the UI can badge FLX-Custom rules distinctly.
6. CTT Handling by Transaction Type
| Transaction | CTT behavior |
|---|---|
| 846 | Parser ignores CTT entirely. Neither error nor warning. Stedi flags CTT*N as unsupported; that is a Stedi false-positive for Flxpoint ingestion. |
| 850 / 855 | CTT01 must equal the number of PO1 segments. Mismatch is an error. |
| 810 | CTT01 must equal the number of IT1 segments. Mismatch is an error. |
| 856 / 997 | CTT is not used. |
Source
- 2026-04-14 parser spec (INT-55283) — 846, 856, 855, 850, 810 parser rules.
- 2026-04-16 envelope + enum follow-up (Slack, Faiyaz Ahmed) — ISA/GS rules, SCAC format, DTM/ACK01/SAC02 whitelists, X12-vs-FLX labels, CTT in 846.
Still pending from Faiyaz: formal 997 stance and 832 standard structure.
Something unclear?
Ask our AI assistant — it knows this spec and can explain any segment, error, or rule in plain English.