Privacy Policy

BudgetSyncer has the highest respect for your privacy, and your information will be handled in a safe, secure and confidential manner. This policy states what personal data we collect, why we use it, who receives it, how long we keep it, and the controls you have. It includes every input and output of the ChatGPT tools listed below. We do not sell personal data or share it with advertising partners.

Data we collect

Account. Your email address and the login Amazon Cognito keeps for you. We do not keep a readable copy of your BudgetSyncer password.

YNAB. OAuth access and refresh tokens, and the budget and account ids you choose during setup. We never see or store your YNAB password. We do not store a copy of your YNAB transaction history. When you or a connected assistant asks for YNAB data, we read it from YNAB at that moment and pass that reply on. We do not save the reply.

Bank connection. The institution, the open-banking provider (Enable Banking or GoCardless Bank Account Data), account ids, the IBAN, and the YNAB budget and account each linked account maps to. We also store the consent or session references needed to fetch transactions you authorized.

Transaction preview. Up to 20 booked and 20 pending transactions for a linked account, so account mapping can show recent rows. A live sync or an assistant question does not cause us to keep the rest of the bank history.

Billing. Subscription status, how many bank connections your plan includes, and a Stripe customer id when you pay on the website. Stripe collects the card payment. We do not store the full card number. App Store and Google Play payments are collected by Apple or Google. RevenueCat tells us whether that store subscription is active. We do not receive the store payment card number.

Assistant access. If you create an API key for Claude, Cursor, or another client, we store a hash of the secret, a short prefix, the name you gave the key, and when it was created or last used. The full secret is shown once, when you create it. For ChatGPT sign-in we keep a short-lived record, about 10 minutes, only to finish the login. We also store a hash of a refresh secret so ChatGPT can stay connected; that hash expires after 30 days without use, and deleting the account removes it immediately. We do not store a ChatGPT access token, and we never see your ChatGPT password.

Assistant questions. The tool inputs and outputs in the ChatGPT section below. We do not receive your chat transcript. We do not save the question or the reply as conversation history.

Site use. Essential cookies for sign-in, and a referral cookie when you arrive from a referral link. Unless you decline, Google Analytics and PostHog (hosted in the EU) record page views, product events, and a session replay of how you use the site. Those events can include your email. A replay is a recording of the website, not a copy of the bank or YNAB replies sent to an assistant. Separate from that choice, our servers send PostHog a product event when you connect a bank (the bank name and how many accounts were linked, not the transactions) and an error report when a server request fails. Those reports are for fixing faults.

Messages you send us. Email to admin@budgetsyncer.com, which we use to answer you.

Purposes

We use this data to create your account, sync bank transactions into the YNAB accounts you select, show mapping and sync status, bill the plan you chose, answer a question you ask through a connected assistant, measure site use when you allow analytics, fix faults, and reply to support email. We do not use bank transactions, YNAB data, or assistant replies for advertising or to train our own models.

Recipients

Amazon Web Services hosts the service in the EU, including Cognito login and the database. Data transfers outside the EU use appropriate safeguards, such as Standard Contractual Clauses approved by the European Commission or the Data Privacy Framework. AWS GDPR Center.

Enable Banking or GoCardless (Bank Account Data), and through them your bank, receive the account identifier and date range needed to fetch transactions you consented to. They do not receive your chat.

YNAB receives the transactions we import and, when you or an assistant asks, a read request for the budget, accounts, categories, or transactions you asked about. YNAB does not receive your chat. We reach YNAB with the OAuth token you authorized.

Stripe receives website checkout and subscription data, including the payment. Apple, Google, and RevenueCat receive what is required to bill and confirm an App Store or Google Play subscription.

The assistant you connect. ChatGPT is operated by OpenAI. Claude is operated by Anthropic. Cursor is the client you run. That operator receives the tool reply described below. For ChatGPT, OpenAI may keep the reply in your chat and use it under OpenAI's own privacy policy and terms, including to provide and improve ChatGPT. BudgetSyncer does not control that retention.

Google (Google Analytics) and PostHog receive the site-use and fault data described above. PostHog's policy is at posthog.com/privacy. Google's policy is at policies.google.com/privacy.

Retention

Account data, bank connection details (including the IBAN), YNAB tokens, subscription status, and API-key metadata stay until you delete the account, disconnect that bank or YNAB, revoke that key, or we delete the data at your request. The transaction preview stays until a newer fetch replaces it or you delete the account. The ChatGPT sign-in record expires after about 10 minutes. A ChatGPT refresh-token hash expires after 30 days without use, or immediately when you delete the account. We do not keep assistant questions or replies. Live bank transactions are not stored beyond that preview. Stripe, Apple, Google, OpenAI, and the other recipients keep data under their own policies.

Your controls

You can disconnect a bank in BudgetSyncer or withdraw open-banking consent at your bank. You can disconnect YNAB in BudgetSyncer. You can revoke an assistant API key on the MCP page. You can disconnect BudgetSyncer in ChatGPT, and you can delete that chat in ChatGPT, which is the copy OpenAI holds. You can cancel a website subscription with the account, and you cancel App Store or Google Play subscriptions in those stores. You can accept or decline analytics cookies in the banner on your first visit, or clear site data in your browser to reset that choice. You can delete the BudgetSyncer account from Profile in the iOS or Android app. Deleting the account removes the live record: login, bank connections, the IBAN and mapping stored for sync, the transaction preview, YNAB tokens, and MCP API keys. You can also email admin@budgetsyncer.com to ask for a copy of your personal data, a correction, or deletion.

ChatGPT and other assistants

You can connect ChatGPT, Claude, Cursor, or another MCP client to your BudgetSyncer account. ChatGPT users open the published BudgetSyncer plugin and sign in with their BudgetSyncer login. Other clients can use an API key you create. An active free trial or paid subscription is required. These tools are read-only and run only for the signed-in account. They cannot create YNAB transactions, edit categories, or move money. BudgetSyncer's separate bank-sync service still imports transactions into the YNAB accounts you select. The tools do not ask for your chat history, your location, or any password.

Each tool below is one the assistant can call today. Inputs are the only fields the assistant sends. Outputs are what we return. The signed-in user comes from the login, not from a field in the request.

get_sync_status

Purpose: answer when BudgetSyncer last synced.

Inputs: none.

Outputs: the last time we polled your account, a failure count, and for each bank connection the display name, whether sync is on, the last successful sync, the last attempt, the last error message and its time, and the last transaction-fetch time and status. For each linked account: the bank account id, a display name, the last sync time, whether sync is on, and the YNAB budget id and account id. This reply does not include your IBAN.

list_connections

Purpose: show which banks are connected and how they map to YNAB.

Inputs: none.

Outputs: for each connection, the display name, the provider (Enable Banking or GoCardless), the bank name and bank id, when the bank consent is valid until, whether sync is on, and the last sync time. For each linked account: the bank account id, a display name, the IBAN masked to the first four and last four characters, whether sync is on, the YNAB budget id and name, the YNAB account id and name, and the last sync time.

get_bank_transactions

Purpose: return booked and pending transactions for one linked account when you ask about the bank side. Budget questions use the YNAB tools instead.

Inputs: accountId (the bank account id from list_connections) and an optional dateFrom in YYYY-MM-DD form.

Outputs: that account id, whether the rows are a live fetch or the stored preview, the provider name, and the booked and pending transactions. An Enable Banking live reply includes transaction ids, booking and value dates, amount and currency, creditor and debtor names, payment reference text, bank transaction codes, a merchant category code when the bank sent one, and an end-to-end id. Those mapped rows do not include account numbers. A GoCardless live reply is the transaction objects the bank returned. Those can include the other party's name and account number (IBAN, BBAN, or a masked card number), and your own IBAN if the bank included it, plus dates, amount, currency, and payment references. If the bank rate-limits the fetch, the reply is the stored preview (up to 20 booked and 20 pending) and the time that preview was fetched. A GoCardless preview can include the same account numbers.

Recipients for this tool: our servers, the assistant you connected, and — for a live fetch — Enable Banking or GoCardless and your bank. They receive the account id and optional date, not the chat.

list_ynab_budgets

Purpose: list the budgets on the connected YNAB account.

Inputs: none.

Outputs: YNAB's budget list: budget ids and names, last modified time, the month range, and the currency format. We return YNAB's response for this read. We do not add fields of our own.

list_ynab_accounts

Purpose: list the accounts in one YNAB budget.

Inputs: budgetId.

Outputs: YNAB's account list for that budget: ids, names, type, notes, balances, whether an account is closed, and the transfer payee id. We return YNAB's response for this read.

list_ynab_categories

Purpose: list category groups and categories in one YNAB budget.

Inputs: budgetId.

Outputs: YNAB's category groups and categories: names, notes, budgeted, activity, and balance amounts, and the goal settings YNAB includes. We return YNAB's response for this read.

get_ynab_transactions

Purpose: return YNAB transactions for a budget, or for one account in that budget.

Inputs: budgetId, an optional accountId, and an optional sinceDate in YYYY-MM-DD form.

Outputs: YNAB's transactions for that request: date, amount, payee, memo, category, account, cleared and approved state, flag color, import id, and transfer links when YNAB includes them. We return YNAB's response for this read.

Recipients for the YNAB tools: our servers, the assistant you connected, and YNAB. YNAB receives the read request, not the chat.

Retention and control for every tool above: we do not store the input or the reply. The assistant operator does, under its own policy. Disconnect BudgetSyncer in that assistant, delete the chat there, revoke the API key, or disconnect the bank or YNAB in BudgetSyncer. Deleting your BudgetSyncer account stops further calls.

YNAB API data

When you connect YNAB, you authorize BudgetSyncer through YNAB's OAuth process. We never see or store your YNAB password.

What we access: budget and account information needed to show your YNAB setup, and permission to create or update transactions in the YNAB accounts you choose during setup. The assistant tools only read. They do not use the write permission.

How we use it: to import bank transactions into the YNAB accounts you select, and to answer a read you request from a connected assistant. We do not use YNAB data for advertising, resale, or unrelated features.

How we store it: YNAB OAuth tokens are stored encrypted in our database (AWS, EU region) while your account is active. We do not store a copy of your YNAB transaction history.

How we secure it: access tokens are handled server-side only and transmitted over HTTPS. We share them with AWS as the host, and we present them to YNAB when calling YNAB's API. We do not put them in an assistant reply.

Retention: YNAB tokens and connection settings are kept while the account is active. When you disconnect YNAB, cancel, or ask us to delete your data, we remove them.

Data storage

Data collected by our application is stored, for the application to function, in the Amazon Web Services (AWS) cloud. The primary storage location is on AWS servers within the EU. The service provider is committed to complying with EU data protection legislation (GDPR).

Cookies and tracking

We use cookies and similar technologies for essential site functions (such as sign-in) and referral attribution. Google Analytics and PostHog, including session replay, run unless you click Decline on the cookie banner. Accept records that you agreed. You can open Cookie settings later and decline. Declining stops analytics and replays. It does not stop the server-side bank-connection events and error reports described under data we collect. You can also clear site data in your browser to reset the choice.

Controller and your rights

Dawnode Oy is the controller for personal data processed in BudgetSyncer. Contact admin@budgetsyncer.com. Company register: Dawnode Oy.

You can ask us for a copy of your personal data, to correct it, or to delete it. You can withdraw consent for optional analytics without affecting the sync. You can also lodge a complaint with the Office of the Data Protection Ombudsman in Finland (tietosuoja.fi).

YNAB trademark notice

BudgetSyncer is a YNAB-approved integration. It is not affiliated with, sponsored by, or endorsed by YNAB. The official YNAB website can be found at https://www.ynab.com.

The names YNAB and You Need A Budget, as well as related names, tradenames, marks, trademarks, emblems, and images are registered trademarks of YNAB.

Last updated: 8 November 2026