Skip to main content

FX and quotes

CashXChain uses quote-driven FX to make conversion costs transparent before a payment is submitted.

A quote is a temporary offer that describes how much will be debited, how much will be received, what fees apply, and when the quote expires.

Why quotes matter​

Cross-border payments — especially in B2B contexts — often fail operationally because the sender does not know the final recipient amount, total fees, or FX spread until after execution. CashXChain solves this by making quote acceptance explicit.

Quote components​

A quote states:

  • The currency and amount you sell, and the currency and amount you receive.
  • The rate you get, with our margin already applied, and that margin as a percentage.
  • Any fixed unit fee.
  • When it expires.
  • Whether the partner confirms the settlement timing (tradable).

You choose which side is fixed: sell exactly an amount, or deliver exactly an amount.

Example quote request​

Bash
curl -X POST https://api.sandbox.cashxchain.com/v1/banking/fx/quote \
-H "Authorization: Bearer $CXC_KEY" \
-H "Content-Type: application/json" \
-d '{"sell_currency": "EUR", "buy_currency": "GBP", "amount": "1000.00"}'

The full request, response and errors are in FX.

Quote expiry​

Quotes expire because rates and liquidity move. Execute before expires_at, or request a new quote. In the sandbox a quote lasts 15 minutes; in production its lifetime is set by our partner per quote.

Quotes and indicative rates​

A quote is a price held until it expires. An indicative rate — GET /v1/fx/rates — is for display only and is never honoured. Do not show an indicative rate as the price of a conversion.

Conversion execution​

Executing a quote converts between two of your own accounts; an expired or already-executed quote is refused, and you request a new one. A quote can also lock the rate for a payout in another currency: the payout names the quote, must match it exactly, and is refused once the quote has expired. In the sandbox such a payout is checked against the quote but debited at the sandbox rate. See FX and Payouts.

Best practices​

  • Display quote expiry clearly to users.
  • Store the quote_id with your invoice or payment record.
  • Show tradable: false to the payer before they agree.
  • Retry a conversion with the same idempotency key. A 409 conflict on retry names the first attempt and its status — failed means nothing was converted. See FX.