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. Banking transaction record validation
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| transaction_id_required | transaction_id | error | transaction_id is required |
| account_number_required | account_number | error | account_number is required (send as a JSON string to preserve leading zeros) |
| account_number_min_length | account_number | error | account_number must be at least 6 characters |
| sort_code_format | sort_code | warning | sort_code must be in NN-NN-NN format (e.g. 20-00-00) — required for Faster Payments (PSR) and BACS submissions |
| bic_format | bic | warning | bic must be a valid ISO 9362 BIC/SWIFT code (e.g. BARCGB22) — required for SEPA credit transfers and SWIFT cross-border payments |
| transaction_date_format | transaction_date | error | transaction_date must be a valid date (YYYY-MM-DD) |
| amount_min | amount | error | amount must be > 0 |
| amount_large_transaction_warning | amount | warning | amount exceeds £85,000 FSCS deposit protection limit — enhanced due diligence may be required under Money Laundering Regulations 2017 (MLR17) |
| currency_format | currency | error | currency must be a 3-letter ISO 4217 code (e.g. GBP, USD, EUR) |
| transaction_type_valid | transaction_type | error | transaction_type must be one of: debit, credit, transfer, payment, refund, fee, chargeback, reversal — chargeback/reversal trigger Consumer Duty and Payment Services Regulations 2017 obligations |
| channel_valid | channel | error | channel must be one of: online, mobile, branch, atm, pos, api, open_banking — open_banking is PSD2 Article 66/67 regulated (AISP/PISP access) |
| reference_max_length | reference | error | reference must not exceed 18 characters — Faster Payments Service limit; longer references are silently truncated by receiving banks causing reconciliation failures |
| merchant_id_required | merchant_id | warning | merchant_id is required when channel is 'pos' (Point of Sale card-present transactions) |
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 →