How to move your history from ZenMoney

ZenMoney writes a transfer as a single row with money leaving on one side and arriving on the other. Read that row as an expense and the arriving half vanishes without an error, which is the quietest way an import can go wrong.

How to bring it in

  1. 1. Export your history from ZenMoney. You want the CSV file.
  2. 2. Open Money Talks, go to Settings and tap Import Data.
  3. 3. Choose ZenMoney from the list of apps.
  4. 4. Pick the file you exported.
  5. 5. Read the preview. Transfers appear as a single row showing both accounts, so you can check the pairing before anything is saved.
  6. 6. Confirm.

The file you need

ZenMoney exports one CSV file, semicolon-separated, with decimal commas.

You have the right file if its first line looks like this:

date;categoryName;payee;comment;outcomeAccountName;outcome;outcomeCurrencyShortTitle;incomeAccountName;income;incomeCurrencyShortTitle;createdDate;changedDate;qrCode

Every row has both an outcome group and an income group. Which of them holds a non-zero number is what makes the row a spend, an income, or a transfer.

Frequently asked questions

How is a transfer written in a ZenMoney export?

As one row with both halves filled in. An expense has a number in outcome and 0,00 in income. Income is the reverse. A transfer has a real number on both sides, with the account it left in outcomeAccountName and the account it reached in incomeAccountName. Money Talks reads that as one transfer with two sides.

I moved money between accounts in different currencies. What happens to the two amounts?

Both are kept. On a cross-currency transfer ZenMoney records the amount that left, the amount that arrived, and a currency for each. Those two numbers are not supposed to match: the gap between them is the rate you got that day. Money Talks stores both rather than keeping one and recalculating the other later.

Why are the amounts written with a comma instead of a dot?

ZenMoney uses the decimal comma, so fifty hryvnia is 50,00 rather than 50.00. This is normal for the format and Money Talks reads it correctly. You do not need to convert the file in a spreadsheet first, and doing so often makes things worse by changing the date format at the same time.

Do I need an account to import from ZenMoney?

No. Import works without signing up. If you do have an account, Settings keeps a Delete last import row that removes the transactions from your most recent import in one tap.

What comes across from ZenMoney

  • Every transaction with its date, payee and comment
  • Categories
  • The currency of each side of each row, so a multi-currency history stays multi-currency
  • Transfers between your own accounts, kept as one record with both amounts and both currencies
  • The account each transaction came from

What does not come across

  • Rows with a zero amount on both sides - Nothing moved, so there is nothing to record. They are marked as skipped on purpose.
  • The QR code column - ZenMoney stores the raw receipt code some banks attach to a payment. Money Talks has nowhere to put it, and it is not readable as a note.
  • Created and changed timestamps - These say when you typed the transaction, not when the money moved. The transaction date is what comes across.
  • Your accounts themselves - Each transaction remembers the account name it came from, and the preview lists the names it found. Money Talks does not recreate the accounts or their balances.

One row, two sides

Most apps give a transfer two rows and leave you to notice they belong together. ZenMoney does the opposite: one row carries both halves.

The columns come in pairs. outcomeAccountName, outcome and outcomeCurrencyShortTitle describe money leaving. incomeAccountName, income and incomeCurrencyShortTitle describe money arriving. Every row has all six, and which ones hold a real number is what gives the row its meaning.

  • An expense: outcome is 50,00 and income is 0,00.
  • Income: outcome is 0,00 and income is 500,00.
  • A transfer: both are non-zero.

That third case is the one that gets mishandled. A reader that checks income first and expense second, or the other way round, will match a transfer on whichever branch it tests first and never notice the other half of the row.

What that costs you

Say you move 10,000 UAH from your hryvnia account to a euro account and 230 EUR arrives. ZenMoney writes one row: 10,000 out in UAH, 230 in EUR.

Handled as an expense, that becomes a 10,000 UAH spend. Your month now contains a five-figure purchase you never made, your spending chart is dominated by it, and the 230 EUR that arrived is simply not there. No error is raised, because nothing failed. The file was read; it was just read as something it was not.

Money Talks reads both sides, records one transfer, and keeps 10,000 UAH and 230 EUR together. The difference between them is the rate you got, and it stays in your history as a fact rather than being recomputed from a rate table months later.

Semicolons and decimal commas

The file is semicolon-separated and writes amounts as 50,00. Both are normal for ZenMoney and Money Talks handles them as they are.

It is worth resisting the urge to clean the file up in a spreadsheet first. Opening a CSV in Excel and saving it again tends to rewrite the dates into whatever your system prefers, which turns a file that would have imported cleanly into one that needs the dates repaired.