No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kevin 2833555851 Add SEPA recipient-name alias generator
Generates spelling-variant aliases (apostrophes, umlauts/ß, legal-form
suffix spelling/presence, field-length truncation) to test against
inconsistent bank Verification-of-Payee name matching, built after our
own Verein's long-standing name misspelling caused SEPA payment
validation failures across multiple banks.
2026-08-22 15:49:37 +02:00
README.md Add SEPA recipient-name alias generator 2026-08-22 15:49:37 +02:00
sepa_recipient_alias_generator.py Add SEPA recipient-name alias generator 2026-08-22 15:49:37 +02:00

sepa_recipient_alias_generator.py

Generates spelling-variant aliases of an org name, for testing against bank SEPA recipient-name validators (Verification of Payee / IBAN name checks).

Why this exists

Our Verein is officially called "Bits'n Bugs e.V." For years, we ourselves thought it was "Bits'n'Bugs e.V." (with a second apostrophe closing off "n" before "Bugs"), so our own homepage and documents had the wrong name.

At wimp10(2) we got paid via SEPA transfer, and the recipient-name validators at several banks were unhappy about it. We investigated.

Turns out every bank implements these checks its own way -- there's no one standard algorithm (see the script's module docstring for the research trail). But we found a way through: our bank can be given a list of aliases to check an incoming payer-provided name against.

This tool generates that list -- bridging the gap between funky, bank-specific validators and our own long-standing confusion about our own name :)

Usage

./sepa_recipient_alias_generator.py "Bits'n Bugs e.V."

Run ./sepa_recipient_alias_generator.py --help for the full list of checks it runs, the German legal forms (Rechtsformen) it auto-detects, and more examples.

Source

This project lives mainly on code.bitsnbugs.de; it's mirrored to GitHub for visibility, PRs, etc.

Patches welcome.

AI notice

Claude Code helped find some stupid bugs and restructure the code. It's a rather short and straightforward script, so we were able to verify all of it -- but be aware that an LLM has touched this.