Your bank stuffs everything into one field.
Let's fix that.

YNAB Split Payee and Memo automatically cleans up your imported transactions — separating messy payee descriptions into proper Payee and Memo fields.

View on GitHub

See the difference

From chaotic bank imports to tidy, searchable transactions.

Before 😩
Date Payee Memo
02/28 ALBERT HEIJN 1576 - AMSTERDAM
02/27 AMAZON.COM - KOTLIN IN ACTION
02/26 COOLBLUE - WIRELESS MOUSE
02/25 SHELL - FUEL STATION A2
02/24 THUISBEZORGD.NL - ORDER 847291
After 🎉
Date Payee Memo
02/28 ALBERT HEIJN 1576 AMSTERDAM
02/27 AMAZON.COM KOTLIN IN ACTION
02/26 COOLBLUE WIRELESS MOUSE
02/25 SHELL FUEL STATION A2
02/24 THUISBEZORGD.NL ORDER 847291

Your data, your rules

No sneaky stuff. Here's exactly how it works under the hood.

No bank connection

The tool only talks to the YNAB API. It never connects to your bank and your bank credentials are never involved — not even close.

Runs locally, stores nothing

You run your own Docker container on your machine. There's no cloud service, no database, and no data leaves your device (except to YNAB's own API). Your token stays with you.

Scoped to your budget

You control exactly which YNAB budget — and optionally which account — the tool touches. It only modifies the transactions you point it at.

Existing memos preserved

Already wrote a memo? It won't be overwritten. The split result is appended to existing content, never replaced. Your notes stay intact.

Three steps. One command. Clean payees forever.

1

Grab your YNAB token

Head to YNAB Developer Settings and create a Personal Access Token.

2

Run one command

Fire up Docker and let it rip:

docker run --rm \ ghcr.io/zzave/ynab-split-payee-and-memo \ --token YOUR_TOKEN
3

That's it. Seriously.

Set up a cron job and never think about messy payees again.