curl -fsSL syncbank.app/install.sh | bash
paste this on terminal
or
Manual install (.zip)
Manual install requires extra steps • View script source
ONBOARDING
Get started with SyncBank.
If you have already purchased a license key, thank you. Please follow the instructions below to get started. If you run into any issues, please feel free to contact us.
~15 minutes
1
Create an Enable Banking account
Go to enablebanking.com and sign up.
SyncBank connects to your bank through Enable Banking, a licensed PSD2 provider. You need a free developer account.
A
Register an API application (SyncBank)
1. Application name:
Syncbank
2. Allowed redirect URLs:
https://syncbank.app/callback
3. Application description:
Sync your transactions inside your favorite app
4. Email for data protection matters: your email adress
5. Privacy URL:
https://syncbank.app/privacy
6. Terms URL:
https://syncbank.app/terms
7. Set your application environment to (production)
You must be in production mode to fetch your transactions inside Sync Bank, Sandbox mode is only for testing.
B
Get .pem file and application ID
1. Your Application UUID — a unique identifier for your app
2. A private.pem key file  — download and keep it safe
~ Keep both ready — you'll enter them in the setup wizard.
C
Activate the app by linking your bank accounts
1.  Open your application page.
2.  Click Activate by linking accounts.
3.  Choose country and bank, then complete the flow.
4.  Approve read-only access.
Before adding your banks inside Sync Bank, you need to link your bank account on Enable Banking first, in order to activate.
~3 minutes
2
Install Sync Bank
Make sure your  Docker Desktop is installed. Sync Bank will be running inside a lightweight container in any computer, even a NAS, a Rasperry or any small home server.
1. Download the app, unzip, and open your terminal from that folder app.  
1. Download the app, unzip, and open your terminal from that folder app.  
2. Run the following command:
docker compose up -d
A
Fastest option
Choose your platform, then copy and paste the install command into Terminal or PowerShell.
Once completed, you can skip Option B 1-3 (Manual install .zip) below.
curl -fsSL syncbank.app/install.sh | bash
B
Manual install (.zip)
2.  Unzip it, and open terminal in that folder app.  
3. Run the command:
docker compose up -d
~3 minutes
3
Activate Sync Bank
Sync Bank runs on port 3030 by default (e.g. http://127.0.0.1:3030)
1. Launch the app from your browser
https://localhost:3030/
2. Enter the purchased license key to activate the app (step 1-in-app)
3. Upload your .pem file and add your Application ID (step 2-in-app)
~5 minutes
4
Connect Banks and Destinations
SyncBank is specified built to make the setup easier. Inside the app there will be a 5 step-by-step guide to get you started.
1.  Connect your banks and authorize your read-only access
2. Enable your favourite destination: Notion, Actual, Google Sheets, Airtable or CSV (step 3-in-app)
Every bank will require re-authorization every 180 days. Through the application, you can monitor the remaining days or enter your email to receive notifications.
~1 minutes
5
Schedule Sync and Monitor
You can choose a specific date to start your first sync. After that initial sync, the system will automatically fetch new transactions from the last synced date onward.
Your first sync runs immediately. After that, it's automatic on your schedule. You can view logs and monitor your connections.
HELP
FAQ & Support
Transactions are not syncing
+
First, verify that your bank authorization is still active. You can re-authorize it in step 2 if needed. Review the status of the last sync in step 5. Try syncing again and refresh, or wait for the next scheduled sync. Make sure recent transactions are not pending or already included. For further support, copy your logs and send them to support@syncbank.app.
Can I activate the same license on multiple computers?
+
Yes. The same SyncBank license key can be activated on up to 2 computers. If you want to move it to a different machine later, the app also supports deactivation.
What does error 429 mean?
+
Error 429 means the API has temporarily rate-limited the request because too many requests were sent in a short period of time. In most cases, this is temporary. Wait a few minutes and try again.
Why does my license show as inactive or expired?
+
This means SyncBank could not validate your current license as active. Common causes are an expired trial, an invalid key, or a license that is no longer active. Re-enter your key in Step 1, make sure you are online, and try again. If it still shows as inactive, contact support with your license key.
Why does SyncBank say “No new transactions”?
+
This means SyncBank checked your bank successfully, but there was nothing new to import since the last sync. In most cases, this is normal. Your bank may not have posted any new transactions yet, or a recent payment may still be pending. If you expected something to appear, wait a bit and run sync again.
Why are my transactions not showing up in Notion?
+
Usually this means one of a few things: the Notion destination is not enabled, the API key or database ID has not been validated, the database has not been shared with your Notion integration, required property mappings are missing, or the current license does not include the Notion bundle. Also note that pending transactions are not sent to Notion until they are confirmed by the bank.
Why are pending transactions not being sent to my destinations?
+
This is expected. SyncBank sends pending transactions to Actual first, then waits until the bank confirms them before writing them to destinations like Notion, Google Sheets, or CSV. This avoids unstable IDs and helps prevent duplicates. Once the transaction clears, SyncBank matches it and writes the confirmed version.
Why am I seeing duplicate transactions?
+
Current versions of SyncBank are designed to prevent duplicates automatically. It does this by tracking pending transactions separately, waiting until they are confirmed before writing them to destinations like Notion, Google Sheets, and CSV, and using the bank’s stable transaction reference as the dedup key. SyncBank also remembers which transactions were already imported or written, so they are not sent again on later syncs.

If you still see duplicate transactions, they are usually older legacy entries created before the confirmed transaction replaced the pending one. In most cases, you can keep the confirmed entry and remove the older duplicate. If duplicates continue to appear, contact support and we’ll help investigate and clean them up.
Didn’t find what you were looking for and still need support?
+
If you couldn’t find the answer you were looking for, contact us at support@syncbank.app.