One register for every movement
Bank sync, a CSV, OFX or JSON file, a receipt, a voice memo, the assistant or your own typing: it all lands in one register, newest first. Flag it, search it, attach the receipt and reconcile it when the statement arrives.

Flags your household names
Six colour flags come with every household, named in its language. Rename them to mean what you need, put one on a row, and find it again with a filter, in bulk or from the keyboard.
Named per household
Filter on them
Flag in bulk
Keyboard first

Search that finds what you named
One search box reaches transactions, payees, categories and tags. Results are ranked by how closely they match your text, each kind in its own tab, from any screen.
Transactions, payees, categories, tags
Scored, not guessed
From any screen

What the register carries with it
Receipts and attachments
Upload a receipt, let OCR read it, then confirm it into a new row or attach it to a purchase you already have, typed or from the bank. The row shows its receipt count; detach sends it back to the tray.
Learn moreReconcile to the cent
Type the balance your bank shows. vokse compares it with the cleared balance up to today, books any gap as a balance adjustment and locks the cleared rows as reconciled. A reconciled row asks before an edit that would break the match.
Learn more
Merchants become payees
A bank merchant becomes a payee at import: matched by name or alias, created on first sight. Past imports heal on the next sync, so payee rules and spending by payee cover bank activity too. Merge or rename afterwards and the register follows.
Learn moreThe standing rules of the register
Flags belong to the household
A bank row folds into yours
Pending rows do not linger
Rules can drop noise
A receipt has one home
Merchants resolve once
vokse
Every movement in one register you can flag, search, document and reconcile.