Multi-Currency
SpeyBooks supports transactions in GBP, USD, and EUR with deterministic, auditable exchange handling.
Foreign-currency transactions are recorded explicitly and reported consistently in your base currency.
Supported currencies
| Currency | Code | Minor unit |
|---|---|---|
| British pound | GBP | Pence |
| US dollar | USD | Cents |
| Euro | EUR | Cents |
All monetary values are represented in minor units.
Base currency
Each organisation has a base currency (typically GBP for UK companies).
- The base currency defines how reports are presented
- All balances and reports are generated in the base currency
- Foreign-currency transactions are converted deterministically
The base currency cannot be changed once the organisation is created.
Creating foreign-currency invoices
Invoices can be issued in any supported foreign currency.
curl -X POST https://api.speybooks.com/v1/invoices \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"contactId": "cont_17",
"currency": "USD",
"items": [
{
"description": "Consulting",
"quantity": 1,
"unitPrice": 200000,
"vatRate": "zero"
}
]
}'
Response
{
"success": true,
"data": {
"id": "inv_42",
"invoiceNumber": "INV-0042",
"currency": "USD",
"subtotal": 200000,
"vatAmount": 0,
"total": 200000,
"baseCurrencyTotal": 160000,
"exchangeRate": 1.25,
"createdAt": "2026-01-31T10:00:00Z"
}
}
The invoice is recorded in the specified currency. Its base-currency value is derived using the applicable exchange rate.
Exchange rates
SpeyBooks uses HMRC-published exchange rates for consistency and auditability.
Exchange rates are applied as follows:
- At invoicing — used to calculate the base-currency value of the receivable
- At payment — locked to the payment date
Exchange rates are stored alongside transactions and never recalculated.
Exchange gains and losses
If the exchange rate changes between invoicing and payment, the difference is recorded automatically.
- Exchange gain — you receive more base currency than expected
- Exchange loss — you receive less base currency than expected
These amounts are posted to dedicated exchange gain or loss accounts.
Example
- Invoice $2,000 at a rate of 1.25 → £1,600.00 expected
- Payment received at a rate of 1.20 → £1,666.67 received
Result: Exchange gain of £66.67
This gain is recorded automatically when the payment is posted.
Reporting
All reports:
- Are presented in the organisation's base currency
- Apply exchange rates at the transaction date
- Reflect realised gains and losses explicitly
No values are silently re-translated or normalised.
Key principles
- Currency is explicit on every transaction
- Exchange rates are deterministic and stored
- Gains and losses are accounted for, not hidden
- Reports reflect ledger state exactly
Multi-currency handling in SpeyBooks is designed to be predictable, inspectable, and auditable.
What to read next
- Invoices API — issuing foreign-currency invoices
- Transactions API — exchange gain and loss postings
- Reports API — balance sheet and P&L with currency effects