Skip to main content

Transfers Between Accounts

A transfer moves money between your own accounts. Unlike income or expenses, transfers don’t change your net worth—they simply move funds from one place to another.

How Transfers Work

Every transfer consists of two linked transactions:
  1. Outflow - Money leaving one account (negative amount)
  2. Inflow - Money entering another account (positive amount)
These two transactions are linked together as a single transfer.

Example: Moving Money to Savings

When you transfer $500 from checking to savings: Your total net worth stays the same—the money simply moved from one account to another.

Transfer Types

Sure recognizes different types of transfers based on the destination account:

Funds Movement

General transfers between asset accounts:
  • Checking to savings
  • Savings to money market
  • Between investment accounts
These are excluded from budgets because they don’t represent spending or income.

Credit card payment

When you pay your credit card bill, Sure creates a cc_payment transfer:
  • Outflow from your checking account
  • Inflow to your credit card (reducing your debt)
This is excluded from budgets because the spending already happened when you used the credit card. When syncing transactions from a provider, Sure automatically classifies transactions to credit card accounts as credit card payment transfers.

Loan payment

Payments to loan accounts (mortgage, auto, student loans) are treated as loan_payment transfers.
Loan payments are treated as expenses in budgets since they represent an ongoing financial obligation, even though they also reduce your debt. For a matched loan payment, assign a category, merchant, and tags on the outflow transaction; the inflow shows the outflow category read-only.
When syncing transactions from a provider, Sure automatically classifies transactions to loan accounts as loan payment transfers.

Investment Contribution

Transfers from a non-investment, non-crypto account to an investment or crypto account:
  • Contributing to your 401(k)
  • Adding funds to a brokerage account
  • Moving money to a crypto exchange
Investment contributions from a non-investment, non-crypto account are tracked as expenses in budgets because they represent a cash outflow from that account. Transfers between investment or crypto accounts remain funds movements and are excluded. For a matched contribution, assign a category, merchant, and tags on the outflow transaction; the inflow shows the outflow category read-only.

Creating Transfers Manually

To create a transfer:
  1. Go to the Transactions page
  2. Click + New Transaction
  3. Select Transfer
  4. Choose:
    • From account - Where money is coming from
    • To account - Where money is going
    • Amount - How much to transfer
    • Date - When the transfer occurred
  5. Click Add transaction
Sure automatically creates both the outflow and inflow transactions and links them together. The From and To selectors support search — type part of an account name to filter the list. Only active accounts appear. Disabled accounts are not available when creating a transfer.

Automatic Transfer Matching

When you sync accounts with a provider (Plaid, SimpleFIN, etc.), Sure attempts to automatically match transfers between accounts.

How Matching Works

Sure looks for transaction pairs that:
  • Are from different accounts in the same family
  • Have opposite amounts (one positive, one negative)
  • Occurred within a date window

Date Windows

Suggested matches

When Sure finds a potential transfer match, it creates a pending transfer suggestion. You can:
  1. Confirm - Accept the match and link the transactions as a transfer
  2. Reject - Dismiss the match (transactions remain separate and keep their existing kinds and categories)
To review suggested transfers:
  1. Open a transaction that may be part of a transfer
  2. Look for transfer match suggestions
  3. Confirm or reject as appropriate
What changes at confirmation:
  • Sure assigns the appropriate transfer kind (funds movement, CC payment, investment contribution, etc.) to both legs at the moment you confirm — not when the suggestion first appears.
  • If the outflow has no category, the destination is an investment or crypto account, and the source is neither an investment nor a crypto account, Sure assigns the Investment Contributions category automatically.
  • Any notes on the transfer are preserved when you confirm from the transaction list.
What stays the same while a match is pending:
  • The suggestion itself leaves both transactions’ existing kinds, categories, and reporting treatment unchanged.
  • The pending suggestion does not remove category editing; existing permission and transaction-kind restrictions still apply.
  • The pending suggestion itself does not add a Transfer badge.
  • The pending suggestion does not itself exclude either transaction from budgets or income-statement totals.
When you reject a match:
  • If a transaction already had a kind (for example, one you set manually), that kind is preserved — rejection does not reset it.

Cross-Currency Transfers

When transferring between accounts with different currencies:
  • Sure validates that amounts have opposite signs
  • The exact amounts don’t need to match (due to exchange rates)
  • Both transactions are linked as a transfer
Example: Transferring from a USD checking account to a EUR savings account: The transfer is valid because one amount is negative and one is positive, even though the numbers differ due to the exchange rate.

How exchange rates are looked up

Sure syncs exchange rates from each account’s currency to your family currency. For a transfer between two non-family currencies — for example, RUB to THB in a USD family — there is no direct RUB→THB rate stored. Sure derives the cross rate through the family currency instead: (RUB→USD) / (THB→USD). This means automatic matching works for transfers between any two currencies as long as both have a rate against the family currency, not just transfers that involve the family currency directly. When a direct rate exists, Sure uses it. The derived rate is only used when no direct pair rate is available or when the direct rate is zero. Exact same-currency matches (where amounts are equal and no FX math is involved) are always ranked ahead of FX-tolerance guesses, so a coincidental cross-currency candidate cannot claim a transaction that has a real exact-amount counterpart.

Automatic matching and manual accounts

During a sync, Sure uses a tolerance band around the exchange rate to find cross-currency transfer pairs automatically. This automatic path only considers accounts that have a live provider connection (Plaid, SimpleFIN, or another connected provider). Manual accounts — those with no institution behind them — are excluded from automatic cross-currency matching because a coincidental pair of round-number transactions in different currencies could fall inside the tolerance band and be silently linked as a transfer. There is one exception: if those two accounts already have a confirmed transfer in the same direction, including when one or both accounts are manual, Sure treats that as a known route and will auto-match future transfers along it. The prior confirmed route need not itself have used different currencies. Future cross-currency candidates must still meet the normal matching checks and are created as pending suggestions; an unconfirmed suggestion cannot establish a route. Manual accounts still participate in same-currency matching, where amounts must be exactly equal and no FX approximation is involved. If you have a real cross-currency transfer that involves a manual account, you can still confirm it yourself. Open either transaction, choose Match as transfer, and select the counterpart from the dialog. The manual match dialog uses a wider tolerance (up to 10%) and shows manual account candidates so you can find and confirm the match by hand.

Write access requirement for auto-matching

For a transfer pair to be created automatically, at least one family member must have write access to both accounts involved. Ownerless accounts have the exception described below. Write access means being the account owner or having a full-control share on the account. An account whose owner has been removed from the family (owner nullified) does not block auto-matching on its own. A member who can write to the other side is sufficient, since they can still reject the match. Two accounts that nobody in the family can write to are skipped entirely. The automatic matcher checks the two endpoint accounts. Rejecting or unlinking a transfer uses a separate permission check: you need write access to at least one endpoint and to every account holding an attached fee transaction, because unlinking removes those fee transactions.

Categorizing Transfers

For transfers where a category is meaningful (investment contributions and loan payments), Sure assigns the category to the outflow leg — the transaction in the spending account that budgets and reports count. The inflow leg of the same transfer displays the outflow’s category as a read-only field. Editing the category on the inflow side has no effect; changes must be made on the outflow leg. This ownership is based on the Transfer record itself, not the leg’s transaction kind. If a provider sync updates a leg’s kind, the category assignment does not change.

Transfer Summary Totals

When viewing your transaction list filtered by transfers, Sure displays Inflow and Outflow totals instead of the standard Income and Expenses labels.

How It Works

Transfer-only filter:
  • When filtering exclusively by “Transfer” type, the summary bar shows:
    • Inflow: Total positive transfer amounts (money coming in)
    • Outflow: Total negative transfer amounts (money going out)
Mixed filters:
  • When filtering by transfers along with other transaction types (income, expenses), the summary bar shows standard Income/Expenses labels
  • Transfer amounts are excluded from these totals since they don’t represent actual income or spending
This helps you understand your cash movement patterns when reviewing transfers in isolation.
[!NOTE] When filtering by both transfers and other transaction types, transfer amounts are excluded from income and expense totals to avoid confusion.

Currency display in transfer-only days

When a day’s entries are all transfers, every entry is excluded from the total, leaving a zero balance. Sure displays that zero in the original currency of the day’s entry group rather than defaulting to your family currency. For example, a group of GBP entries containing only transfers shows £0.00, even when the family currency is USD. This keeps currency symbols consistent across your transaction list regardless of how many transfers a day contains.

How Transfers Affect Budgets

Transfers are generally excluded from budget calculations because they don’t represent actual spending or income:
Loan payments and investment contributions are both treated as expenses in budgets because they represent real cash outflows. For matched transfers, assign a category, merchant, and tags on the outflow transaction.
A pending auto-match does not itself change budget or income-statement treatment. Confirmation assigns the transfer kinds; reporting then follows those kinds and any existing exclusions. Transactions that already had excluded kinds or were manually excluded remain subject to those rules while a suggestion is pending.

Understanding Net Worth Impact

Transfers are zero-sum for net worth:
  • Moving $500 from checking to savings: Net worth unchanged
  • Paying $500 to credit card: Net worth unchanged (reduced cash = reduced debt)
  • Contributing $500 to 401(k): Net worth unchanged (reduced cash = increased investments)
The only time a transfer affects net worth is if there are fees involved (which would be a separate expense transaction).

Common Transfer Scenarios

Paying Off a Credit Card

  1. Money leaves your checking account (-$500)
  2. Credit card balance decreases (-$500 debt)
  3. Net worth: unchanged

Making a Mortgage Payment

  1. Money leaves your checking account (-$2,000)
  2. Loan balance decreases (-1,700principal,1,700 principal, 300 goes to interest)
  3. Note: The interest portion is technically an expense
[!IMPORTANT] Mortgage payments include both principal (reducing debt) and interest (an expense). Sure tracks the full payment as a loan transfer, but the interest portion represents a true cost.

Contributing to Retirement

  1. Money leaves your checking account (-$500)
  2. Investment account balance increases (+$500)
  3. Net worth: unchanged (cash converted to investments)

Transferring Between Banks

  1. Money leaves Bank A checking (-$1,000)
  2. Money arrives at Bank B checking (+$1,000)
  3. Net worth: unchanged

Troubleshooting Transfers

Duplicate Transactions

If you see both a transfer and separate expense/income transactions:
  • Check if the transactions should be linked as a transfer
  • Confirm or reject the transfer suggestion
  • Delete duplicate transactions if needed

Duplicate transfer from double-submit

If you submit the transfer form twice in quick succession (double-click, browser retry, or two simultaneous requests), Sure creates only one transfer. A per-form idempotency key is generated when the form loads and sent with each submission. The first request to reach the database wins; any subsequent request with the same key returns the already-created transfer instead of inserting a duplicate. If a transfer is rejected or deleted after creation, the idempotency key is cleared from its entries so a later retry creates a fresh transfer rather than returning an error.

Transfer matching stops mid-sync

When two account syncs run at the same time, each transfer candidate is matched in its own isolated savepoint. A conflict on one pair no longer affects the others, so all remaining candidates continue to be processed.

Unmatched Transfers

If Sure didn’t automatically match a transfer:
  • The amounts may not match exactly (due to fees or timing)
  • The dates may be too far apart
  • You can manually create a transfer to link them

Wrong Transfer Type

If a transfer is categorized incorrectly:
  • Check that both accounts are the correct type
  • The transfer type is determined by the destination account