Sell in your client's currency. Keep your books in yours.

Cord keeps the currency you sell in apart from the currency you keep your books in. You quote and collect in dollars or euros, the exchange rate is frozen at quote time from a published, dated source, and the invoice declares that rate and the total in your ledger currency. If there is no real rate, Cord does not make one up.

On every plan. The API accepts base_currency, fiscal_currency and fx_buffer_pct when creating a quote.

GET /api/v1/facturas/f3a8d1c4-…200 OK
{
  "data": {
    "numero": "INV-000318",
    "cliente": "Lone Star Builders LLC",
    "estado": "open",
    "moneda": "USD",
    "total": 12480.00,
    "moneda_contable": "EUR",
    "tipo_cambio": 0.8796,
    "total_contable": 10977.41,
    "saldo": 12480.00,
    "vence": "2026-10-30"
  }
}
rate locked at quote time · 30 dayssource: ECB

TWO CURRENCIES, TWO JOBS

The sales currency and the ledger currency never mix.

The sales currency is the one your client sees: prices are entered in it, the link shows it, you collect in it and the invoice is issued in it. The ledger currency is the one in your books. When they differ, the invoice declares the exchange rate and the converted total; amounts are never relabeled.

  • base_currency: the currency you sell and collect in
  • fiscal_currency: your accounting currency
  • The invoice returns tipo_cambio and total_contable over the API
Invoice INV-000318 · Lone Star Builders LLCOpen
SubtotalUS$12,480.00
TaxesUS$0.00
TotalUS$12,480.00
Ledger currencyEUR
Declared exchange rate0.8796
Ledger total€10,977.41

Rate locked Sep 30, 2026 · European Central Bank · +2% cushion

LOCKED RATE

Your margin does not move mid-negotiation.

When the quote is created, Cord takes the day's rate and locks it for 30 days. You can add a cushion with fx_buffer_pct to cover that client's volatility. That same rate is what the invoice uses later: there are never three different calculations for one sale.

  • A cushion per quote, not one fixed for the whole account
  • The same rate on the quote, the payment and the invoice
  • A cached rate is only valid if it is under 24 hours old
POST /api/v1/cotizaciones200 OK
{
  "cliente_id": "4d7e…",
  "base_currency": "USD",    // you sell and collect
  "fiscal_currency": "EUR",  // your books
  "fx_buffer_pct": 2,          // cushion over the daily rate
  "items": [{ "descripcion": "Steel rebar #4",
              "cantidad": 800, "precio_unitario": 15.6 }]
}
Daily rate (ECB)0.8624
Cushion+2%
Locked rate0.8796
Valid untilOct 30, 2026

SOURCES

If no source publishes the pair, Cord stops.

Cord first checks the European Central Bank's daily reference. Since it publishes around 30 currencies, for pairs such as COP, CLP, PEN or ARS it moves on to two broad-coverage sources. If none has the pair, the quote is not created and the message says why. A made-up rate of 1.0 never reaches your invoice.

  • European Central Bank as the first reference
  • Two fallback sources for Latin American currencies
  • "This source does not cover the pair" and "no response" are handled differently
Exchange rate · USD → COPchained lookup
2
Broad-coverage source~160 currencies, daily update
4,186.20
3
CDN fallbackOnly if the previous sources lack the pair
—
×
No source publishes itThe quote is not created. Never 1.0.
503

FREQUENTLY ASKED QUESTIONS

What developers ask about Multi-currency.

First the European Central Bank's daily reference, through Frankfurter. For currencies the ECB does not publish, such as COP, CLP, PEN or ARS, it checks two broad-coverage sources in order. If none has the pair, the operation stops with a clear message.

30 days from when the quote is created. During that time the rate does not change even if the market moves.

Yes. You quote, collect and invoice in your client's currency (say, in dollars from an account that keeps its books in euros, pesos or pounds) and the invoice declares the locked exchange rate and the total in your ledger currency.

Cord does not create the quote and returns a clear error (503 on the API). It only uses a cached rate if it is under 24 hours old; it never substitutes 1.0 or an estimate.

Explore the rest of the developer platform.

Sell in any currency without losing your margin.

Create your account and quote in dollars or euros with a locked rate.

See what you'll pay

Published pricing, with the fee for every payment in plain view.

Pricing details →

Start building

Start operating and sending quotes on the Free plan.

Integration options →