Back to packs

Retail EDI X12 850 / 810 Quality

ASC_X12free

16 data-quality rules for retail ASC X12 Purchase Order (850) and Invoice (810) transaction sets. Covers control-number linkage (ISA/GS/ST/SE), segment/element mandatory presence, purpose and transaction-type codes, UPC/GTIN check digit, quantity and unit-price ranges, line-item extended amount footing, invoice-to-total balancing, unit-of-measure and currency codes, ship/delivery date ordering, duplicate PO/invoice suppression, and trading-partner ID validity. Malformed interchanges are 997/999-rejected by the receiver's translator.

16 rules 0 downloadsNo ratings yet
810850ediretailsupply-chainx12
0.0(0 ratings)

Sign in to rate this pack

Test this pack with your data

Download the template, fill in your data, and see quality results instantly.

Test This Pack

Download & Install

Choose your tool — get a ready-to-run file

Run this on your data? Upload your CSV — we'll auto-map the columns, validate, and report the bad rows.Test my data
Or use the CLI
$ npx dqhub install retail-edi-x12-850-810 --format soda --table YOUR_TABLE

Reference data required

This contract's checks join against 1 reference table. Load them into your warehouse — DQHub ships the public ones, the rest link to their source. All reference data →

Bundled — download

About this pack

16 data-quality rules for retail ASC X12 Purchase Order (850) and Invoice (810) transaction sets. Covers control-number linkage (ISA/GS/ST/SE), segment/element mandatory presence, purpose and transaction-type codes, UPC/GTIN check digit, quantity and unit-price ranges, line-item extended amount footing, invoice-to-total balancing, unit-of-measure and currency codes, ship/delivery date ordering, duplicate PO/invoice suppression, and trading-partner ID validity. Malformed interchanges are 997/999-rejected by the receiver's translator.

What's included

5consistency rules
4format rules
2completeness rules
2range rules
2referential integrity rules
1uniqueness rules

Checks included (16)

ST/SE Control Numbers Match

The transaction set trailer SE01 (segment count) and SE02 (control number) must reference the matching ST02 control number, and the counted segments must equal the actual count. Broken envelopes are rejected with a 999.

Requested Ship Date Before Cancel Date

The requested delivery/ship date (DTM 002/010) must be on or before the cancel-after date (DTM 001). An order that ships after its own cancel date is contradictory.

Line Extended Amount = Qty * Unit Price

For each IT1 line, the extended amount must equal quantity invoiced times unit price (within a small rounding tolerance). Footing errors cause payment disputes.

Invoice Total (TDS01) Equals Sum Of Lines

The TDS01 total monetary value must equal the sum of the line extended amounts (plus allowances/charges where applicable). An unbalanced invoice is rejected or short-paid.

Reported Line Count (CTT01) Matches Actual

The CTT01 transaction totals segment reports the number of line items; it must equal the actual PO1/IT1 line count in the transaction set.

PO Purpose Code (BEG01) Valid

BEG01 transaction-set purpose code must be a valid X12 value: 00 (Original), 01 (Cancellation), 04 (Change), 05 (Replace), 06 (Confirmation).

UPC / GTIN Check Digit Valid

Line-item UPC/GTIN (PO1 qualifier UP/UK) must pass the GS1 mod-10 check digit. Bad barcodes cause receiving mismatches and chargebacks.

Unit Of Measure (PO103) Valid

PO103 unit or basis for measurement must be a valid X12/UN-ECE code (e.g., EA, CA, BX, LB, KG, DZ, PK). Unknown UOM breaks pricing.

Interchange ID Qualifier (ISA05/07) Valid

The ISA05/ISA07 interchange ID qualifiers must be valid two-character X12 codes (e.g., 01 DUNS, 08 UCC/EAN, 12 phone, ZZ mutually defined). Bad qualifiers break partner routing.

PO Number (BEG03) Present

The 850 BEG segment must carry a purchase order number in BEG03. A PO with no number cannot be acknowledged or fulfilled.

Invoice Number (BIG02) Present

The 810 BIG segment must carry an invoice number in BIG02. Invoices with no number cannot be matched or paid.

Line Quantity (PO102) Positive

Each PO1 ordered quantity must be greater than zero; zero or negative quantities are invalid on an original order.

Unit Price (PO104) Non-Negative

The PO104 unit price must be non-negative; a negative unit price on a purchase-order line is a data error.

Invoice References A Known PO (BIG04)

The 810 BIG04 purchase-order number must reference an existing 850 PO. An invoice for an unknown PO cannot be three-way matched.

Currency Code (CUR) Is ISO 4217

When a CUR segment is present its currency code must be a valid ISO 4217 alpha-3 code from the reference table.

PO Number Unique Per Partner

A purchase-order number must be unique within a trading-partner/sender. Duplicate PO numbers cause double-shipment.