832

EDI 832 — Price/Sales Catalog

Supplier → Flxpoint · Price and product catalog

EDI 832 — Price/Sales Catalog

Purpose

Send your full product catalog — items, prices, and availability — to Flxpoint. Originates with the Supplier, sent to Flxpoint. Used for initial catalog setup and ongoing price or product updates.

In Plain English

The 832 is your product list. Where the 846 answers "how many of each item do you have right now?", the 832 answers "what do you sell, how do you describe it, and what does it cost?". Flxpoint ingests the 832 to set up the master catalog — SKUs, descriptions, wholesale prices, category codes, pack sizes — so that when orders come in the system already knows what each item is. Partners typically send one big 832 during onboarding (a full catalog load) and then send smaller delta 832s whenever prices change or new SKUs launch. A wrong 832 creates downstream pain: incorrect pricing on PO 850s, mismatched UPCs on invoices, or catalog items that never appear in the retailer's channel because Flxpoint could not match them. Flxpoint now supports the 832 as a catalog-import document (internally called GIP — Get Inventory & Price), rolling out on Standard EDI V2 and live first for pharma sources such as AmerisourceBergen and Kinray.

Note: The 832 is a catalog document, not an inventory update. For live inventory quantity changes use the 846. The 832 is for pricing, product details, and availability status.

How Flxpoint actually parses the 832 (important): there is no generic 832 parser — 832/GIP is handled only by vendor parsers (AmerisourceBergen, Kinray), both built on the 846 base. Both hard-require BCT01=PC and key items on NDC. Their LIN-qualifier and CTP price-type sets diverge, so Flxpector validates the 832 leniently: envelope + BCT present + BCT01=PC + LIN pair structure, with no whitelist on BCT02 / CTP02 / LIN qualifiers. The generic SC/UP/CA + WS/NET details below are X12 reference; the "Pharma / GIP Catalog Variant" section at the bottom is the operative spec for what Flxpoint actually reads.

Frequency

  • Initial setup: Send a full catalog when onboarding
  • Updates: Send price changes or new SKUs (delta) as needed
  • Full refresh: Resend the complete catalog periodically to sync any gaps

Business Rules

  • One 832 per catalog or catalog segment — do not mix multiple suppliers in one file
  • Each CTP segment must have a valid price type code (e.g., WS for wholesale)
  • Unit of measure must be EA (Each)
  • PID segment is strongly recommended for product descriptions
  • LIN identifiers must match your 850/846 identifiers (same qualifier and value)

Transaction Purpose Codes

BCT02 — Transaction Set Purpose Code

CodeMeaningWhen to Use
SCSpecific CatalogFull catalog transmission
UPUpdatePartial update — new items or price changes only
DLDeleteRemove items from catalog
CACatalogGeneral catalog (initial or full refresh)

Availability Status

PO401 (in PO4 loop) or CTP product availability

Use the PID segment description or CTP availability codes to communicate stock status:

StatusMeaning
AvailableItem is in stock and available to order
DiscontinuedItem is no longer carried — include in DL update
Back OrderItem temporarily unavailable

Segment Hierarchy

code
ISA  Interchange Header
 GS  Group Header (GS01 = "SP")
  ST   Transaction Set Header (ST01 = "832")
  BCT  Beginning Segment for Price/Sales Catalog
  ┌─ LIN Loop (repeats per item)
  │  LIN  Item Identification
  │  CTP  Pricing Information
  │  PID  Product/Item Description (recommended)
  │  QTY  Quantity Available (optional)
  └─
  CTT  Transaction Totals (optional)
  SE   Transaction Set Trailer
 GE  Group Trailer
IEA  Interchange Trailer

Segment Specifications

ST — Transaction Set Header

ElementNameLengthM/OValue/Notes
ST01Transaction Set ID Code3 IDRequired832
ST02Transaction Set Control Number9 NRequiredUnique, must match SE02

BCT — Beginning Segment for Price/Sales Catalog

ElementNameLengthM/OValue/Notes
BCT01Catalog Purpose Code2 IDRequiredPC — Flxpoint's GIP parser (AmerisourceBergen, Kinray) hard-requires PC here and rejects anything else (Invalid BCT01 Catalog Purpose Code — expected 'PC'). This is what Flxpector validates.
BCT02Catalog Number30 ANOptionalCatalog identifier or version. (Generic X12 also carries purpose codes SC/UP/CA on the BCT segment, but Flxpoint keys on BCT01=PC, not those.)
BCT03Description80 ANOptionalCatalog description
BCT07Date8 DTRequiredCatalog date (CCYYMMDD)

LIN — Item Identification

ElementNameLengthM/OValue/Notes
LIN01Assigned Identification20 ANRequiredLine item number (sequential)
LIN02Product/Service ID Qualifier2 IDRequiredGeneric: SK/UP/EN. Pharma GIP (ABC/Kinray) keys on NDC — qualifier ND (ABC also falls back N1N4). Flxpoint does not whitelist 832 LIN qualifiers (vendor sets diverge).
LIN03Product/Service ID48 ANRequiredYour item identifier
LIN04Product/Service ID Qualifier2 IDOptionalSecondary identifier qualifier
LIN05Product/Service ID48 ANOptionalSecondary identifier value

CTP — Pricing Information

ElementNameLengthM/OValue/Notes
CTP01Class of Trade Code2 IDOptionalLeave blank if not applicable
CTP02Price Identifier Code3 IDRequiredGeneric: WS/NET/RTL. Flxpoint does not whitelist CTP02 — pharma sets diverge (ABC: AWP/CON/LPR/MSR/RTL/WHL/SPE; Kinray: INV/MSR). A non-numeric CTP03 skips the item; a blank CTP03 keeps it (price unset).
CTP03Unit Price17 RRequiredUnit price — supports up to 4 decimal places
CTP04Quantity15 NOptionalQuantity associated with this price
CTP05Unit of Measure2 IDRequiredEA (Each)

PID — Product/Item Description

ElementNameLengthM/OValue/Notes
PID01Item Description Type1 IDRequiredF (Free-form) or S (Structured)
PID02Product Characteristic Code2 IDOptionalLeave blank for free-form
PID05Description80 ANRequiredProduct name or description

QTY — Quantity Available

ElementNameLengthM/OValue/Notes
QTY01Quantity Qualifier2 IDRequiredOH (On Hand), OA (On Order), AV (Available)
QTY02Quantity15 NRequiredAvailable quantity
QTY03Unit of Measure2 IDOptionalEA (Each)

CTT — Transaction Totals

ElementNameLengthM/OValue/Notes
CTT01Number of Line Items6 NRequiredTotal count of LIN segments

SE — Transaction Set Trailer

ElementNameLengthM/OValue/Notes
SE01Number of Included Segments6 NRequiredCount of all segments including ST and SE
SE02Transaction Set Control Number9 NRequiredMust match ST02

Example File

EDI · 004010VICS
ISA*00* *00* *ZZ*SUPPLIER *ZZ*FLXPOINT *240115*1200*U*00401*000000020*0*P*>~
GS*PI*SUPPLIER*FLXPOINT*20240115*1200*20*X*004010VICS~
ST*832*0001~
BCT*PC*CAT-2024-001***20240115~
LIN*1*SK*SKU-ABC123~
CTP**WS*29.99*1*EA~
PID*F****Blue Widget 12oz - Case of 1~
QTY*OH*150*EA~
LIN*2*SK*SKU-DEF456*UP*UPC-012345678901~
CTP**WS*49.99*1*EA~
PID*F****Pro Tool Kit - Standard Edition~
QTY*OH*42*EA~
LIN*3*SK*SKU-GHI789~
CTP**WS*15.00*1*EA~
PID*F****Cotton T-Shirt - White XL~
QTY*OH*0*EA~
CTT*3~
SE*16*0001~
GE*1*20~
IEA*1*000000020~

What this file does: Sends 3 items with wholesale pricing and on-hand quantities:

  • SKU-ABC123: $29.99 — 150 units on hand
  • SKU-DEF456: $49.99 — 42 units (also has a UPC cross-reference)
  • SKU-GHI789: $15.00 — 0 units on hand (still listed in catalog)

Common Mistakes

⚠️ The 832 is a catalog document, not inventory. Use the 846 to send daily inventory quantity updates. The 832 is for product setup, pricing, and catalog management.

⚠️ BCT07 (date) is required. Missing the date field is a common structural error that causes a 997 rejection.

⚠️ LIN identifiers must match your other transactions. If you use SK + a SKU value in your 846/856, use the same qualifier and value in the 832. Mismatched identifiers break product matching in Flxpoint.

⚠️ CTP03 unit price must be a positive decimal. Do not include currency symbols or commas. Use 29.99 not $29.99 or 29,99.


Pharma / GIP Catalog Variant

Pharma distributors (AmerisourceBergen, Kinray) send a richer 832 with pricing and packaging detail. If your catalog follows this flavor:

  • Header: BCT01 = PC (Price Catalog). REF qualifiers seen here: ACC, FL, 2K, X9.
  • Parties: N1*VN (Vendor) and N1*BY (Buyer).
  • Item identifiers (LIN): Flxpoint matches in this qualifier priority — VNUPNDMGSKVCEAUN. Send the identifier your channel keys on first.
  • Validity dates: DTM*092 (price start) and DTM*093 (price end).
  • Packaging: PO4 (e.g. 1 case / 100 each).
  • Pricing (CTP02 price-type qualifiers): AWP (Average Wholesale Price), CON (Contract), LPR (List), WHL (Wholesale), RTL (Retail), MSR (MSRP).

CTP03 (price) handling

CTP03 valueResult
Valid numberPrice saved normally
Blank / emptyItem is kept and its quantity updates; the price is simply not saved (item is not skipped or archived).
Invalid / non-numericError Invalid CTP03 value: CTP03 (price) must be numeric — the item is skipped.

⚠️ A blank CTP03 used to skip and archive the item. As of mid-2026 a blank price keeps the item; only an invalid (non-numeric) price skips it. Reprocess the catalog file to apply the current logic.


Known Issues & Status

Full structural validation is incremental. The 832 is supported for catalog import (GIP); Flxpector currently applies envelope + generic X12 validation and is adding deeper GIP-832 field checks as the standard finalizes. The documentation above reflects the X12 004010 standard and the current Flxpoint GIP implementation.

Known limitations under review

  • Extraction of secondary product identifiers (e.g. UPC) from LIN segments when multiple qualifier/value pairs are present: Flxpoint reads pairs in the qualifier-priority order above.
  • Deeper GIP-832 structural validation (pricing/packaging segments) is being added to Flxpector incrementally.

Something unclear?

Ask our AI assistant — it knows this spec and can explain any segment, error, or rule in plain English.