Multi-Currency
Quote, invoice and settle in Canadian dollars, US dollars and euros — with every amount labelled with the currency it was actually written in.
How Solidlio helps
Every money record — invoice, quote, order, contract, credit limit, cart line, payout, dispute — stores the currency it was created in, and that currency is never recalculated afterwards. Conversion happens at four defined points: pricing a product, checking out an order, paying an MSP, and rebilling a foreign vendor invoice. Everywhere else Solidlio refuses to mix currencies rather than guessing a rate, so a US payment cannot silently close a Canadian invoice and a euro sale cannot inflate a Canadian revenue total. Rates refresh daily from European Central Bank reference data, expire after 48 hours, and every money-moving path fails closed rather than converting at a rate nobody can vouch for.
Capabilities
| Capability | What it does |
|---|---|
| Three trading currencies | Price, invoice and settle in CAD, USD and EUR. Unsupported codes are refused, not stored. |
| Per-client currency | Sell one client in USD while the rest of the account trades in CAD, with one setting on that organization. |
| Buy-side currency | Record each distributor’s billing currency; product costs convert to the buyer’s currency before any markup. |
| Point-in-time documents | An invoice, quote or order keeps the currency it was raised in, even after the account’s default changes. |
| Daily ECB rates | Six directed pairs refreshed each morning, with a full history and per-pair provenance. |
| Rate expiry | Rates older than 48 hours are refused by pricing, checkout and payouts — a dead feed stops trade, not accuracy. |
| Audited manual override | Pin a contracted rate for any pair; it beats the live feed, never expires, and is written to the audit log. |
| Currency hedge buffer | Add a configurable percentage to a converted cost on cross-currency sales only, before markup. |
| Regional plan pricing | Set a fixed USD or EUR price per plan tier; an unpriced currency holds the invoice rather than mischarging it. |
| Region-based payouts | Pay each MSP in its own region’s currency, converting every settled sale at payout time. |
| Single-currency reporting | Every dashboard total names its currency and lists the others separately instead of adding them together. |
| Cross-currency rebilling | Mark up a USD distributor bill onto a CAD client invoice, converting first and recording the rate on the link. |
Built for MSPs and their clients
A managed client is a separate Account with its own books. Currency respects that boundary in both directions — and it is genuinely two-sided, because the MSP’s buy currency, the client’s sell currency and the MSP’s payout currency can all be different at once.
| Organization (the client) | MSP | |
|---|---|---|
| Trading currency | Sees every quote, invoice and order in one currency, labelled | Chooses the sell currency per client, overriding its own account default |
| Store prices | Sees prices already converted into its own currency | Sets the markup once; it means the same thing whatever the buy currency |
| Currency risk | None — quoted and billed in one currency | Owns it, and can add a hedge buffer to cross-currency costs |
| Settlement | Pays in the currency the invoice states | Is paid out in its own region’s currency, converted at payout |
| Disputes | Raises a dispute in the currency of the sale | Has it converted into the reserve’s currency before it is deducted |
| Rates | Not exposed | Not writable — rates are platform reference data |
How it works
- The account gets a currency — derived from its data-residency region when it is created: Canada→CAD, United States→USD, Europe→EUR.
- A client can override it — one setting on the organization sells that client in a different currency from the rest of the account.
- Costs convert before markup — a product bought in USD from a distributor is converted into the buyer’s currency first, then the pricing profile, category, brand and vendor markups apply to the converted figure.
- The document is stamped — the quote, order or invoice records the currency it was created in, permanently.
- Settlement matches — a payment must be in the invoice’s currency and a credit note must match what it is applied to; neither is converted at face value.
- The MSP is paid in its own currency — the nightly payout run converts each settled sale from the currency it sold in into the MSP’s region currency, and skips the run entirely rather than transferring at a stale rate.
- Rates stay honest — refreshed daily, expiring after 48 hours, visible with their provenance, and overridable under audit.
Compliance and audit
Every conversion is reconstructable after the fact:
- Orders store the rate table used at checkout alongside the order.
- Chargebacks store the converted amount, Stripe’s original amount, the original currency and the exact rate applied.
- Rebill links store the vendor’s currency, the client’s currency and the rate between them, per line.
- Rate overrides are written to the platform audit log with the operator, the pair, the previous value, the new value and the stated reason.
- Rate history retains every quote ever received, keyed by pair, quote instant and source.
- Reserve movements reconcile: the signed ledger for an MSP’s reserve always sums to its held plus available balance, in one currency.
Integrations
- European Central Bank reference rates, via frankfurter — the daily rate source. No key, no contract.
- Stripe — card and bank-debit charges are submitted in the document’s currency; Connect accounts are opened in the MSP’s own country so payouts settle in its region currency.
- QuickBooks Online — invoices, payments and credit memos carry their currency in both directions; a single-currency QuickBooks company falls back to the organization’s own currency rather than assuming Canadian dollars.
- distribution partner and distribution partner — each distributor’s billing currency is recorded and applied to every product cost synced from it.
Plans and access
Availability depends on your plan, role and account permissions. Capacity limits and service terms apply. Compare current plans and integration requirements, or ask us about your setup.
Every amount says which currency it is in, and nothing is ever added to something it does not match.