Validation Notes & Known Differences
Validation Notes & Known Differences
Overview
Flxpoint's EDI guides define specific validation rules. Generic X12 validators and other inspector tools sometimes apply stricter — or simply different — rules than what Flxpoint actually accepts. This document maps every known difference so you can build files that pass cleanly in Flxpoint.
The key insight: a file that passes a generic X12 inspector may still be rejected by Flxpoint if it does not match the FLX spec, and vice versa. Always build to the FLX PDF spec.
Version Standard
Authoritative rule confirmed with Faiyaz Ahmed (Integrations) on 2026-04-16. See Flxpoint Parser Rules for the full envelope spec.
| Aspect | Flxpoint |
|---|---|
| Preferred version | 004010VICS — matches Flxpoint's VICS-specific segments |
004010 (no VICS) | Accepted; Flxpector emits a warning, parser does not reject |
005010 | Accepted; Flxpector emits a warning if you want to standardize |
| Hard rejects | Structural parse failures only (ISA06/ISA08 padding, GS06↔GE02 / ST02↔SE02 mismatches, duplicate ISA13) |
Vendor-specific overrides (e.g. Land n Sea requires strict 004010VICS on its integration) are tracked in vendor-specific-behaviors.md.
Cross-Transaction Summary
Things That PASS in Flxpoint but May FAIL in Stricter X12 Validators
| # | Transaction | Issue | Why It May Fail Elsewhere |
|---|---|---|---|
| 1 | 846 | QTY03 sent as simple EA element | Strict X12 validators expect composite C001 structure |
| 2 | 856 | Missing TD512 service level code | Some validators treat it as required in certain configs |
| 3 | 810 | SAC with only G821 code | Other validators check against a broader code list |
| 4 | All | ISA Control Numbers not unique | FLX does not require uniqueness; some validators do |
| 5 | All | Loose element length enforcement | Some validators strictly check min/max lengths. Update (Apr 2026): Flxpector now validates N102 (name) ≤ 60 chars, N401 (city) ≤ 30 chars, N402 (state) = 2 chars, N403 (zip) ≤ 15 chars via FLX-ALL-007 |
Things Generic X12 Allows but Flxpoint May NOT Process
| # | Transaction | Issue | Why FLX May Reject/Ignore |
|---|---|---|---|
| 1 | 810 | SAC codes outside the whitelist (AFEE, G740, H750, etc.) | SAC02 whitelist (Faiyaz 2026-04-16): G821/C310/D240/F050. Codes outside this list are warned on, not auto-rewritten. |
| 1b | 846 | CTT segment | Stedi flags this; Flxpoint ignores it entirely. Faiyaz 2026-04-16: the 846 parser stops after the last detail loop and does not reject on CTT. Flxpector matches the parser behavior. |
| 2 | 846 | CTP pricing segment (UCP/WHL) | Not in FLX PDF; ignored |
| 3 | 810 | CTP pricing at detail level | Not in FLX PDF; ignored |
| 4 | 810 | SAC at detail level (per-item charges) | Not in FLX PDF; only summary-level SAC |
| 5 | 850 | Multiple PO1 product ID qualifier pairs (up to 6) | FLX PDF shows single pair |
| 6 | 850 | N2 (additional name) segment | Not in FLX PDF |
| 7 | 856 | Extra ISA qualifier codes beyond ZZ | FLX typically uses ZZ |
Per-Transaction Detailed Notes
846 Inventory Advice
| Segment/Element | Flxpoint | Generic X12 | Note |
|---|---|---|---|
| QTY03 structure | Simple element EA | Composite C001 with sub-components | Strict validators may reject simple format |
| CTP segment | Not present | Optional (UCP/WHL pricing) | FLX ignores |
| PID max use | Unspecified | 200 | Limit difference |
| LIN conditional pairs | LIN04-07 optional | Same with strict conditional enforcement | Strict validators check pairing |
850 Purchase Order
| Segment/Element | Flxpoint | Generic X12 | Note |
|---|---|---|---|
| PO1 ID pairs | Single pair (PO106/PO107) | Up to 6 pairs (PO108-PO117) | FLX uses one pair only |
| PO1-08 qualifiers | Not in PDF | BP, MG, VP, UP, EN | Not used by FLX |
| N1-03/N1-04 | Not in PDF | Optional ZZ qualifier + ID code | Not used by FLX |
| N2 segment | Not in PDF | Optional additional name info | Ignored by FLX |
| PER heading | Only seller phone (EA) | EA + NT contact types | FLX uses EA only |
| TD5 elements | TD505 + TD512 only | Full TD5 spec | FLX uses simplified subset |
856 Ship Notice
| Segment/Element | Flxpoint | Generic X12 | Note |
|---|---|---|---|
| TD5 shipping provider | Required (SCAC) | Required (SCAC) | Missing provider = FAIL everywhere |
| TD512 service level | Mandatory in FLX | Often optional | FLX stricter |
| REF/MAN exclusivity | Mutually exclusive | Enforced | Match |
| LIN02 qualifiers | UP, EN, SK, BP | Typically SK, UP | FLX accepts more options |
| BSN05 structure codes | 0001, 0004 | 0001, 0004 | Match |
810 Invoice
| Segment/Element | Flxpoint | Generic X12 | Note |
|---|---|---|---|
| REF*DP | Mandatory (fixed 0000) | Optional variant | FLX stricter |
| SAC codes | Only G821 (Shipping) | AFEE, C310, D240, G740, G821, H750 | FLX limited |
| SAC at detail level | Not supported | Allowed | Ignored by FLX |
| CTP at detail level | Not supported | Allowed | Ignored by FLX |
| IT1 extra ID pairs | Single pair | Multiple pairs possible | FLX uses one pair |
| IT104 format | Real number (15.95) | Type R | Match |
| TDS format | Implied decimal N2 | Implied decimal N2 | Match |
| BIG01 date validation | Current or within 17 months | Same | Match |
Critical Failure Points
These are the most common reasons EDI files get rejected:
1. Missing Shipping Provider (856 TD5)
If the SCAC code is missing, the 856 fails.
- TD502 must be
2(SCAC qualifier) - TD503 must have a valid SCAC code (e.g.,
UPSN,FEDX)
2. Strict Conditional Element Enforcement
- If PER-03 present → PER-04 required (and vice versa)
- If ISS-03 present → ISS-04 required
- If CAD-07 present → CAD-08 required
- ITD discount field dependencies
3. Control Number Mismatch
- SE02 must match ST02
- GE02 must match GS06
- IEA02 must match ISA13
4. Element Length Violations
- ISA06/ISA08: exactly 15 chars (right-padded with spaces)
- ISA13: exactly 9 digits (left-padded with zeros)
- Various ID fields with specific length requirements
Recommendations for Suppliers
- Build to the FLX PDF spec as the primary reference
- Validate against Flxpector for structural correctness
- Always include: SCAC code in TD5, service level code, matching PO numbers and item codes
- Prefer
004010VICS— plain004010and005010are also accepted (with warnings), but004010VICSis the cleanest match for Flxpoint's VICS-specific segments
Something unclear?
Ask our AI assistant — it knows this spec and can explain any segment, error, or rule in plain English.