Skip to main content

Accounting

Multi-currency

How PulseBooks handles foreign-currency invoices and expenses — daily exchange rates, manual overrides, the rate frozen at issue, and gains or losses on payment.

Your books are kept in one base currency, chosen when you set up your organisation — see Getting started. You can still invoice a client in dollars or record an expense in euros: PulseBooks stores the foreign amount, the currency, and the exchange rate used to convert it, so every report can state one consistent figure in your base currency.

Foreign-currency invoices and expenses

Invoices, credit notes, bills, and income, expense and loans & equity entries can all be recorded in a currency other than your base currency. Pick the currency on the form and supply the exchange rate to your base currency; PulseBooks shows the converted amount as you type, and stores both figures.

A foreign-currency document always needs a real rate. PulseBooks refuses a rate of exactly 1 on a foreign invoice, bill or credit note — no supported currency pair genuinely trades at parity, so a rate of 1 is almost always a default nobody changed, and booking it would misstate your income by the whole exchange rate.

Exchange rates

Settings → Exchange Rates lists the rates your conversions start from, month by month, against your base currency. Two kinds of rate appear there:

  • Automatic — where a rate provider is connected, a scheduled job fetches published rates once a day, and each row is dated the day the rate was published for. The badge at the top of the page tells you whether your organisation is on Automatic or Manual only rates.
  • Manual — a rate you add yourself for a specific day: the rate your bank actually gave you, or a contractual rate. Your rate takes precedence over the automatic one for that day, and the row says so. Removing your rate falls back to the automatic one.

Nothing on this page is retroactive. Rates already recorded on your documents never change when you edit this table — you are only changing what future conversions default to.

How a rate is chosen for a date

When a form needs a rate — say a USD invoice dated the 14th — PulseBooks looks one up in a fixed order:

  1. Your own manual rate for that exact day.
  2. The automatic rate for that exact day.
  3. The most recent earlier rate, reaching back up to 90 days, shown together with how old it is.

If nothing is found within 90 days, no rate is suggested and you type your own. PulseBooks never invents a rate — a plausible wrong rate is worse than no rate, because it gets filed. Either way the suggestion lands in an editable field: the rate that ends up on a document is always one you chose.

The rate frozen on an invoice

When you issue a foreign-currency invoice, its exchange rate is frozen on the invoice itself. The ledger records the invoice in both currencies at that rate, and the receivable — the amount your client owes you — is carried at it from then on. See Invoices for the rest of the lifecycle.

When payment arrives at a different rate

Exchange rates move between the day an invoice is issued and the day it is paid. A payment recorded without a rate of its own simply settles at the invoice's frozen rate, and nothing further happens.

When a payment does carry its own rate — because the money that reached your bank was worth more or less in base currency than the invoice said — the difference is posted automatically as a realised exchange gain or loss: real profit or loss from the currency movement, kept in its own account so your sales and expense figures are not distorted by it. The same happens when reconciliation matches a bank line that settled a foreign-currency transaction at a different base amount than the books carried, when a foreign-currency bill is paid, and when money moves between accounts held in different currencies.

Reporting

Reports are stated in your base currency, using each document's own frozen rate — so the figures you reported last quarter stay the figures you reported, whatever the rates table says today. See Reports.