Back to packs

ISO 20022 Payment Messages

ISO_20022free

Validate financial messaging data — BIC/SWIFT codes, IBAN format with mod-97, monetary amounts per ISO 20022.

9 rules 2863 downloads4.4 avg (227)
iso-20022swiftbicibanpaymentsbanking
4.4(227 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 dataWant this certified on your data? Book a 30-min demo.Book a demo
Or use the CLI
$ npx dqhub install iso20022-payments --format soda --table YOUR_TABLE

About this pack

Data quality rules for ISO 20022 financial messaging compliance. Covers: - BIC/SWIFT code format (8 or 11 characters, ISO 9362) - IBAN format with mod-97 check digit validation - Monetary amount format (up to 18 integer + 5 decimal digits) - Currency code validation (ISO 4217) Based on ISO 20022 message definitions and SWIFT standards.

Sources & References

BCBS_239 — Principle 2

Data architecture and infrastructure must use standardized reference data

GDPR — Article 44-49

Cross-border transfer validation requires valid country identification

BCBS_239 — Principle 3

Accuracy of financial reference data including account identifiers

What's included

6format rules
2completeness rules
1uniqueness rules

Checks included (9)

BIC/SWIFT Code Format(bic_code)

Validates that BIC (Business Identifier Code) / SWIFT codes conform to the ISO 9362 standard format. A BIC is either 8 or 11 characters: 4 letters (bank code) + 2 letters (country code per ISO 3166-1) + 2 alphanumeric (location code) + optional 3 alphanumeric (branch code). An 8-character BIC implicitly refers to the primary office.

IBAN Format and Mod-97 Check(iban)

Validates that International Bank Account Numbers (IBANs) conform to the ISO 13616 format: 2 uppercase letters (country code) followed by 2 check digits and up to 30 alphanumeric characters (the Basic Bank Account Number). The check digits are validated using the mod-97 algorithm per ISO 7064. This rule validates the format structure; full mod-97 computation requires engine-specific implementation.

ISO 20022 Monetary Amount Format(transaction_amount)

Validates that monetary amount values conform to the ISO 20022 ActiveCurrencyAndAmount format. Amounts must be positive numeric values with up to 18 integer digits and up to 5 decimal places. The value must not contain currency symbols, commas, or negative signs. This format is used across ISO 20022 payment messages (pacs, pain, camt).

ISO Currency Code Validation(currency_code)

Validates that values are valid ISO 4217 currency codes (e.g., USD, EUR, GBP, JPY)

ISO Country Code Validation(country_code)

Validates that values are valid ISO 3166-1 alpha-2 country codes (e.g., US, GB, DE, FR)

IBAN Format Validation(iban)

Validates International Bank Account Number format — 2-letter country code, 2 check digits, and up to 30 alphanumeric characters

Column Not Null

Asserts that a specified column contains no null values. This is the most fundamental completeness check — every row must have a value present in the target column.

Column Completeness Threshold

Asserts that a column meets a minimum completeness threshold, measured as the percentage of non-null values. Useful when some nulls are acceptable but the overall population rate must stay above a defined level (e.g., 95%).

Column Unique

Validates that all non-null values in a specified column are unique. Useful for natural keys, email addresses, identifiers, and any column where duplicates indicate a data quality issue.