Your bank transactions, inside Notion. Automatically.
Klartion connects to your EU bank via open banking and writes your transactions into a Notion database every day. It runs on your own machine — your financial data never touches any third-party server.
→ klartion.com · Buy a licence
- Flexible sync frequency — sync every 6, 12, or 24 hours, at a time you choose
- 2,500+ European banks — Revolut, N26, Monzo, Wise, Millennium BCP, Santander, ING, BNP Paribas, and more across 29 countries
- Multiple bank accounts — connect up to 2 bank accounts by default, with the option to add more
- Read-only, always — Klartion can never move money or modify your account
- Pending transaction tracking — pending transactions are imported and automatically updated to Cleared or Cancelled when they settle
- Duplicate detection — Klartion tracks every transaction ID so nothing ever gets imported twice
- Email notifications — a summary email on success, an alert if something goes wrong
- Your data, your machine — bank data goes directly from Enable Banking to your machine, never our servers
- Lightweight — runs as a single Docker container, uses minimal CPU and memory
- Runs anywhere — supports x86, Raspberry Pi, and other ARM devices out of the box
- Docker and Docker Compose (runs on x86, Raspberry Pi, and other ARM devices)
- An Enable Banking account (free)
- A Notion account
- A Klartion licence key — buy one at klartion.com
New to self-hosting? Follow the step-by-step guide at klartion.com/getting-started — it walks you through everything from Enable Banking setup to running your first sync.
Purchase at klartion.com. Your key is delivered to your email instantly.
Enable Banking is the regulated open banking provider that connects Klartion to your bank.
- Sign up at enablebanking.com
- Go to API applications and click Register new application
- Fill in the form:
- Application name: Klartion
- Allowed redirect URLs:
https://klartion.com/callback - Application description: Connect my bank to Notion
- Email for data protection matters: your email address
- Privacy URL:
https://klartion.com/privacy - Terms URL:
https://klartion.com/terms
- Click Register — a
.pemfile will be saved to your Downloads folder. The filename matches your Application ID (e.g.aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.pem). Keep it safe — you'll need it in the setup wizard. - Click Activate by linking accounts on your application page
- Select your country and bank from the dropdowns and click Link
- Follow the steps to log in to your bank and approve read-only access — this activates your Enable Banking app
On your server, create the folder and download the compose file:
mkdir -p ~/klartion/data && cd ~/klartion
curl -O https://raw.githubusercontent.com/DAdjadj/klartion/main/docker-compose.ymlYou do not need to clone the repository or create a .env file for the standard setup.
Back on your server, start the container:
docker compose up -dOpen http://your-server-address:3001 in your browser. The setup wizard will guide you through the rest, including uploading your Enable Banking .pem file directly in the browser.
The browser-based wizard walks you through six steps:
- Licence — enter your key to activate Klartion on this machine
- Notion — duplicate the ready-made template, create a free integration, and paste your credentials
- Notifications — set your email and SMTP credentials
- Sync — choose your sync frequency (every 6, 12, or 24 hours)
- Bank — upload your Enable Banking
.pemfile (App ID is filled automatically from the filename), then connect your bank via OAuth. You can connect up to 2 bank accounts by default. Each bank's transactions are tagged with the bank name in a "Bank" column in Notion. - Status — view sync history, manage bank connections, check for updates
Once complete, Klartion runs silently in the background. To add a second bank, go to the Bank tab and search for another bank. Need more than 2? You can purchase additional bank account slots from the status page.
Enable Banking requires you to re-authorise access roughly every 6 months. If you configured email notifications, you will receive a warning before expiry.
To re-authorise, go to the Status page in the Klartion web UI and click Re-authorise bank.
Your bank
↓ (read-only OAuth, Enable Banking)
Klartion (running on your machine)
↓ (Notion API)
Your Notion database
↓ (SMTP)
Your inbox ← daily summary email
On each sync run, Klartion:
- Validates your licence key
- Fetches transactions since the last sync from Enable Banking
- Filters out any transaction IDs already in the local SQLite database
- Writes new transactions to your Notion database
- Updates any previously pending transactions that have since settled
- Logs the result and sends you a notification email
The Klartion template includes all of these pre-configured:
| Column | Type | Description |
|---|---|---|
| Merchant | Title | Payee or sender name |
| Date | Date | Booking date |
| Amount | Number | Positive = incoming, negative = outgoing |
| Currency | Text | ISO code, e.g. EUR |
| Category | Select | Bank transaction code, e.g. CARD_PAYMENT |
| Reference | Text | Remittance information |
| Direction | Select | in or out |
| Status | Select | Cleared, Pending, or Cancelled |
| Transaction ID | Text | Enable Banking reference (deduplication key) |
| Bank | Text | Bank name (e.g. Revolut, N26) |
Click Check for updates on the Status page. Klartion will pull the latest version and restart automatically.
Or run manually:
docker compose pull && docker compose up -dEach licence key supports up to 2 machine activations. To move Klartion to a new machine, go to the Status page in the web UI and click Deactivate licence before reinstalling.
MIT + Commons Clause. Free to self-host for personal use. You may not sell, sublicence, or offer Klartion as a competing service. See LICENSE.
Built by David Alves.