Docs · Validators
bic validator
SWIFT/BIC code shape check — 8 or 11 chars, no checksum.
Reference
Format
Matches `/^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/` after uppercasing. 6-letter institution + 2-char location, optionally followed by a 3-char branch.
Examples
- UBSWCHZH80A (UBS Zurich, full BIC11)
- DEUTDEFF (Deutsche Bank Frankfurt, BIC8)
- CHASUS33
How it runs
Implementation
Faithful summary of lib/validators.ts. Validators are pure functions and run identically in the worker, the Workbench, and the MCP server.
function validBic(value) {
return /^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/.test(value.toUpperCase())
? OK
: fail('bic_invalid', 'not a BIC')
}Config
Use in a template
Validators attach to a field on a custom template. The cascade runs them after mapping but before commit; failures surface in the per-row validation report.
fields:
- column: bic
type: string
validators:
- type: bicWatch out
Common gotchas
- Shape only — no SWIFT directory lookup, no test BIC carve-out. Length 9 and 10 are rejected (the standard skips them).
- Input is uppercased before matching, so mixed-case input passes if otherwise valid.
- No template in the default catalogue uses `bic` yet — wire it explicitly on custom templates.
Catalogue
Related templates
- Bank accounts
bank_accounts_v1Bank account details with IBAN/BIC validation.
Fields:
bic
Pricing
Validators run on every committed row
Validators add no AI cost — they are pure functions. Every map bills a small flat per-map fee from your prepaid token wallet ($10 minimum, shared across our suite); only columns that reach the metered LLM layer, plus any-to-any convert and reshape, bill real AI tokens. See pricing →
Explore
Other validators
Back to the documentation index or browse the template catalogue.
Ready when you are
Validate every row — before it lands.
Attach checksum-strict validators to any field, and gate risky commits with the requires_hitl flag. One key runs the whole cascade.