[GH-ISSUE #4854] [Feature] Smart bank sync management for GoCardless (Nordigen) API limits #16299

Closed
opened 2026-04-14 19:24:29 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @kopach on GitHub (Apr 20, 2025).
Original GitHub issue: https://github.com/actualbudget/actual/issues/4854

Verified feature request does not already exist?

  • I have searched and found no existing issue

💻

  • Would you like to implement this feature?

Pitch: what problem are you trying to solve?

To sync EU banks, the only supported method is the GoCardless (formerly Nordigen) integration. Previously, the API offered generous quotas (≈100 syncs/day), allowing seamless background syncing. Now, the limit is strictly 4 syncs per day per GoCardless user token, which introduces friction 1 2 3 4 :

Problem 1 – Actual syncs each bank account separately, and each sync counts toward the quota. So if I have 5+ accounts, it’s impossible to sync all of them in one day. The only workaround is manually rotating through accounts over multiple days — an impractical solution.

Problem 2 – Rate limits reset on a rolling basis, not at midnight. For example, if I sync 2 accounts twice in the morning, I hit the 4-request limit. In the evening, only 1 sync might be available due to partial quota recovery — again, only one account syncs, the rest fail. This behavior requires precise manual scheduling, which is frustrating for users.

Describe your ideal solution to this problem

Primary solution: smart automatic sync management
- Actual tracks the sync schedule internally, respecting the GoCardless quota.
- A round-robin sync engine rotates account syncs every ~6 hours (24h ÷ 4 syncs).
- Option to disable manual sync when auto-sync enabled, to do not drain unconsciously limits manually
- A webhook (e.g., /api/cron or /api-trigger-sync) could be exposed to support cron-style scheduling (like Firefly III does it 5 ), enabling background sync even on stateless hosting.
- Optional push notification when new transactions arrive (e.g., like YNAB shows when uncategorized transactions appear, the only feature I miss from YNAB 6 ).

Alternative/additional solution: support multiple GoCardless accounts
- Allow connecting each bank account to its own GoCardless client ID/token.
- This would effectively multiply the available quota per account (e.g., 5 accounts → 20 daily syncs total).
- Ideal for households with multiple banks or shared accounts.
- can be great addition to primary solution from above

Teaching and learning

Add a “Bank Sync” settings section with:
- Sync interval display and scheduling info
- Current quota usage (e.g., “2/4 syncs used today”)
- Webhook setup instructions
- Option to enable/disable manual sync
- Document how GoCardless quotas work and how Actual’s sync engine respects them.
- For multiple credentials: explain how to generate additional GoCardless developer tokens, and assign them per bank account.

Originally created by @kopach on GitHub (Apr 20, 2025). Original GitHub issue: https://github.com/actualbudget/actual/issues/4854 ### Verified feature request does not already exist? - [x] I have searched and found no existing issue ### 💻 - [x] Would you like to implement this feature? ### Pitch: what problem are you trying to solve? To sync EU banks, the only supported method is the GoCardless (formerly Nordigen) integration. Previously, the API offered generous quotas (≈100 syncs/day), allowing seamless background syncing. Now, the limit is strictly **4 syncs per day per GoCardless user token**, which introduces friction [^1] [^2] [^3] [^4]: **Problem 1** – Actual syncs each bank account separately, and each sync counts toward the quota. So if I have 5+ accounts, it’s impossible to sync all of them in one day. The only workaround is manually rotating through accounts over multiple days — an impractical solution. **Problem 2** – Rate limits reset on a rolling basis, not at midnight. For example, if I sync 2 accounts twice in the morning, I hit the 4-request limit. In the evening, only 1 sync might be available due to partial quota recovery — again, only one account syncs, the rest fail. This behavior requires precise manual scheduling, which is frustrating for users. ### Describe your ideal solution to this problem **Primary solution**: smart automatic sync management - Actual tracks the sync schedule internally, respecting the GoCardless quota. - A round-robin sync engine rotates account syncs every ~6 hours (24h ÷ 4 syncs). - Option to **disable manual sync** when auto-sync enabled, to do not drain unconsciously limits manually - A webhook (e.g., `/api/cron` or `/api-trigger-sync`) could be exposed to support cron-style scheduling (like Firefly III does it [^5]), enabling background sync even on stateless hosting. - **Optional push notification** when new transactions arrive (e.g., like YNAB shows when uncategorized transactions appear, the only feature I miss from YNAB [^6]). **Alternative/additional solution**: support multiple GoCardless accounts - Allow connecting each bank account to its own GoCardless client ID/token. - This would effectively multiply the available quota per account (e.g., 5 accounts → 20 daily syncs total). - Ideal for households with multiple banks or shared accounts. - can be great addition to primary solution from above ### Teaching and learning Add a **“Bank Sync” settings section** with: - Sync interval display and scheduling info - Current quota usage (e.g., “2/4 syncs used today”) - Webhook setup instructions - Option to enable/disable manual sync - Document how GoCardless quotas work and how Actual’s sync engine respects them. - For multiple credentials: explain how to generate additional GoCardless developer tokens, and assign them per bank account. [^1]: https://bankaccountdata.zendesk.com/hc/en-gb/articles/11529584398236-Bank-API-Rate-Limits-and-Rate-Limit-Headers [^2]: https://www.reddit.com/r/actualbudgeting/comments/1esxg5x/rate_limit_headers_for_gocardless_bank_account/ [^3]: https://github.com/actualbudget/actual-server/issues/488 [^4]: https://github.com/actualbudget/actual/issues/4039 [^5]: https://docs.firefly-iii.org/how-to/firefly-iii/advanced/cron/ [^6]: https://github.com/user-attachments/assets/f1579f15-c48f-44bd-8cb8-91e8feb226d1
GiteaMirror added the featureneeds votes labels 2026-04-14 19:24:29 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Apr 20, 2025):

Thanks for sharing your idea!

This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don’t forget to upvote the top comment with 👍!

<!-- gh-comment-id:2817129501 --> @github-actions[bot] commented on GitHub (Apr 20, 2025): :sparkles: Thanks for sharing your idea! :sparkles: This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don’t forget to upvote the top comment with 👍! <!-- feature-auto-close-comment -->
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#16299