OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. Logistics shipment record validation aligned with ICC Incoterms 2020, UK HMRC customs declaration requirements (post-Brexit CDS — Customs Declaration Service), and HS (Harmonised System) tariff code standards (WCO, 6-digit minimum for customs). Enforces ISO 3166-1 origin/destination country codes, Incoterms 2020 classification (11 terms replacing DAT with DPU), HS tariff code format, shipment mode classification, ISO 4217 currency, and delivery date monotonicity (estimated delivery must be on or after dispatch). Prevents customs declaration rejections, incorrect duty calculation, and carrier SLA misreporting in WMS and TMS pipelines.
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| shipment_id_required | shipment_id | error | shipment_id is required |
| origin_country_required | origin_country | error | origin_country is required |
| origin_country_min_length | origin_country | error | origin_country must be at least 2 characters |
| origin_country_iso_format | origin_country | error | origin_country must be a valid ISO 3166-1 alpha-2 code (e.g. GB, US, DE) |
| destination_country_required | destination_country | error | destination_country is required |
| destination_country_min_length | destination_country | error | destination_country must be at least 2 characters |
| destination_country_iso_format | destination_country | error | destination_country must be a valid ISO 3166-1 alpha-2 code (e.g. GB, US, DE) |
| dispatch_date_format | dispatch_date | error | dispatch_date must be a valid date (YYYY-MM-DD) |
| estimated_delivery_format | estimated_delivery | error | estimated_delivery must be a valid date (YYYY-MM-DD) |
| estimated_delivery_after_dispatch | estimated_delivery | error | estimated_delivery must be on or after dispatch_date — delivery before dispatch corrupts carrier SLA and OTIF reporting |
| weight_kg_min | weight_kg | error | weight_kg must be >= 0 |
| weight_kg_anomaly | weight_kg | warning | weight_kg exceeds 50,000 kg — verify this is not a unit error (grams stored as kg). Exceeds legal road payload limits in most jurisdictions. |
| incoterms_values | incoterms | warning | incoterms must be a valid ICC Incoterms 2020 term: EXW, FCA, CPT, CIP, DAP, DPU, DDP, FAS, FOB, CFR, CIF (note: DAT was replaced by DPU in Incoterms 2020) |
| hs_code_format | hs_code | warning | hs_code must be 6-10 numeric digits (WCO HS standard: 6 digits; UK CDS: 10 digits). e.g. 847130 or 8471300000 — incorrect HS codes cause customs rejection and incorrect duty calculation |
| shipment_mode_values | shipment_mode | warning | shipment_mode must be one of: air, sea, road, rail, courier, multimodal, post (note: FOB/CFR/CIF Incoterms are only valid for sea and inland waterway) |
| currency_format | currency | warning | currency must be a valid ISO 4217 three-letter code (e.g. GBP, USD, EUR) — required for customs valuation declarations |
| carrier_required | carrier | error | carrier is required |
| tracking_number_required | tracking_number | error | tracking_number is required |
| status_required | status | error | status is required |
| shipment_status_valid | status | error | status must be one of: pending, collected, dispatched, in_transit, customs_hold, out_for_delivery, delivery_attempted, delivered, returned, lost, damaged, cancelled |
Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →