Internal transfer & card payment detection

An internal transfer is not a purchase.

Pay your card from checking and most apps put you on a $13,878 shopping spree. That exact payment, filed as an expense in an account it had nothing to do with, every month for years, is why Quaestor exists. Here is how it catches the pair instead, on my own ledger.

7 days free, then $12.99 a month or $89.99 a year. Card required, cancel anytime before your first payment.

Free trial for first-time customers; if your organization has subscribed before, the paid plan starts at checkout. Renews automatically until you cancel in Settings. Taxes may apply.

My transactions page filtered to transfers: a card autopay leaving checking and arriving on the card, both legs tagged, then a transfer I recorded by hand between two cards that share a nickname, and two more card payments, tagged the same way. None of them count as spending. The Matched column is about receipts.Names, institutions, currencies and balances shown are illustrative.

Both legs, matched by amount, date and account

A debit in one account and a matching credit in another, inside a short date window, become one transfer. It is rules, not guesses: the same pair matches the same way every time, and you can see why.

  • Matched pairs leave spending and burn rate immediately.
  • Savings moves, card payments and brokerage funding all count as transfers, not spending.
  • Cross-currency pairs match on the converted amount.
My 60-day money flow: internal transfers get their own node, so a card payment never shows up as an outflow category.Names, institutions, currencies and balances shown are illustrative.

Disagree with one? Dismiss it.

When one leg arrives before the other, the row is marked as a possible transfer. If that flag is wrong, one click marks it as not a transfer and the row stays an ordinary transaction. A confirmed pair can still be opened, edited or deleted. It has caught 100-plus pairs in my ledger so far, across 60-plus accounts, and I have overruled it exactly as often as I needed to.

  • A possible transfer is labelled while it waits for its other half.
  • Dismiss a wrong flag with one click. Nothing is deleted.
  • Confirmed transfers show both accounts, so you always know where the money went.

My own ledger, October 2026

live accounts
60-plus
live bank connections
about 20
institutions on three continents
15-plus
currencies, one net worth
4
credit cards
30-plus
internal transfer pairs caught
100-plus
transactions, back to May 2012
25,000-plus
receipts on file
1,100-plus
recurring payments tracked
140-plus

Why credit card payments and internal transfers wreck your spending report

Spending reports, burn rate, Cash Outlook and the weekly briefing are all computed from the ledger with transfers removed. Get transfers wrong and every number downstream is wrong by the size of your card payments. I pay 30-plus cards. You can imagine.

Settlement lag starts between any two banks, and mine span 15-plus institutions. Checking marks a card payoff as sent on Tuesday, the card issuer posts the credit on Thursday, and an app that reads one account at a time counts both rows as cash flow. Quaestor labels the early leg as a possible transfer while it waits, then pairs both sides into one internal move once the other half arrives inside the date window as the only match.

Frequently asked questions

Is transfer detection AI?
No. It is rules on amount, date and account, so the same pair matches the same way every time and you can see why. Quaestor uses AI for reading receipts and answering questions, not for deciding what your money did.
Will a transfer to savings still show up as spending?
No. Once both legs are matched, the pair leaves spending and burn rate immediately, and Cash Outlook and the weekly briefing are computed without it. Savings moves, card payments and brokerage funding all count as transfers, not purchases.
What about transfers between currencies?
They match on the converted amount at the rate for that day, so moving money from a dollar account to a foreign-currency account is one transfer, not income on one side and spending on the other.
What happens when one side of a transfer posts days before the other?
When a bank feed flags an outgoing payment or deposit as a likely transfer or loan payment before the other institution has posted its side, the ledger labels that row as a possible transfer while it waits, and reports count the row on its own until its partner arrives. Once the matching opposite amount posts on the second account within the date window and it is the only row that fits, with neither side already categorized, split or linked to a receipt, the two pair on the matcher’s next run and leave spending.
How are transfers handled when an account is imported from a CSV or QIF file?
Automatic transfer pairing runs only when both accounts sync live through Plaid. When a transfer touches an account you keep updating by CSV or QIF, you record the transfer manually in Quaestor instead of keeping both imported rows. If you are moving existing history over from another app for the first time and I take your move on under Assisted Migration on the annual plan, transfers between your migrated accounts come over where your old app recorded them as transfers.

Keep exploring

Stop paying yourself and calling it spending.

Connect your accounts and let the matching run. Your spending report gets honest the same day.

7 days free, then $12.99 a month or $89.99 a year. Card required, cancel anytime before your first payment.

Free trial for first-time customers; if your organization has subscribed before, the paid plan starts at checkout. Renews automatically until you cancel in Settings. Taxes may apply.