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.

The problem

You buy from a distributor who invoices you in US dollars and you sell to a client who pays in Canadian. Somewhere between those two facts is a spreadsheet with a rate somebody typed in last quarter. The quote goes out with a dollar sign and nobody is certain which dollar it means. A client pays in the wrong currency and the invoice sits open because the numbers do not tie out. At month end your revenue figure is the sum of two currencies added together, which is a number in no currency at all — and it is the number on the dashboard everyone plans against.

If you are an MSP the exposure is doubled: you carry the currency risk between what you paid your distributor and what your client agreed to pay you, and you carry it on every line of every order.

What Solidlio does about it

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

CapabilityWhat it does
Three trading currenciesPrice, invoice and settle in CAD, USD and EUR. Unsupported codes are refused, not stored.
Per-client currencySell one client in USD while the rest of the account trades in CAD, with one setting on that organization.
Buy-side currencyRecord each distributor’s billing currency; product costs convert to the buyer’s currency before any markup.
Point-in-time documentsAn invoice, quote or order keeps the currency it was raised in, even after the account’s default changes.
Daily ECB ratesSix directed pairs refreshed each morning, with a full history and per-pair provenance.
Rate expiryRates older than 48 hours are refused by pricing, checkout and payouts — a dead feed stops trade, not accuracy.
Audited manual overridePin a contracted rate for any pair; it beats the live feed, never expires, and is written to the audit log.
Currency hedge bufferAdd a configurable percentage to a converted cost on cross-currency sales only, before markup.
Regional plan pricingSet a fixed USD or EUR price per plan tier; an unpriced currency holds the invoice rather than mischarging it.
Region-based payoutsPay each MSP in its own region’s currency, converting every settled sale at payout time.
Single-currency reportingEvery dashboard total names its currency and lists the others separately instead of adding them together.
Cross-currency rebillingMark 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 currencySees every quote, invoice and order in one currency, labelledChooses the sell currency per client, overriding its own account default
Store pricesSees prices already converted into its own currencySets the markup once; it means the same thing whatever the buy currency
Currency riskNone — quoted and billed in one currencyOwns it, and can add a hedge buffer to cross-currency costs
SettlementPays in the currency the invoice statesIs paid out in its own region’s currency, converted at payout
DisputesRaises a dispute in the currency of the saleHas it converted into the reserve’s currency before it is deducted
RatesNot exposedNot writable — rates are platform reference data

How it works

  1. The account gets a currency — derived from its data-residency region when it is created: Canada→CAD, United States→USD, Europe→EUR.
  2. A client can override it — one setting on the organization sells that client in a different currency from the rest of the account.
  3. 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.
  4. The document is stamped — the quote, order or invoice records the currency it was created in, permanently.
  5. 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.
  6. 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.
  7. 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.

Editions

Multi-currency carries no plan gate. Every tier that can raise an invoice can raise it in any supported currency, and every tier that can sell through the store gets converted pricing. The capabilities below differ by who can reach them, not by what has been bought.

CapabilityCustomerOrganizationMSPPlatform
Documents in three currencies
Converted store pricing
Per-client sell currency
Distributor buy currency
Currency hedge buffer
Region-based payouts
Regional plan pricing
Exchange-rate administration

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.
  • Ingram Micro and TD Synnex — each distributor’s billing currency is recorded and applied to every product cost synced from it.

Every amount says which currency it is in, and nothing is ever added to something it does not match.

See this working on a real account.

Book a walkthrough and we will run this capability against your own clients, devices and tickets.

Book a demo All features

A 30-minute walkthrough against your own workflow. No slides.