Create a quotation
Create a quotation: a priced, itemized fee envelope for a prospective payment. A quotation can optionally be persisted as a redeemable quote_id that locks the fees and FX rate so a later payout settles at the quoted price. All monetary amounts are returned as integer minor units paired with an explicit precision (e.g. 100000 at precision 2 is 1000.00).
Provide exactly one of:
virtual_account_id— price against an existing virtual account (the account pins the funding direction, source currency, and network). This persists the quote and returns a realquote_idyou can redeem on a payout.quote_for— a pre-account preview ({ rail, currency }) that does not persist and returnsquote_id: null.
Sending both, or neither, returns 400.
Key request fields:
amount(required) — a positive two-decimal string, e.g."1000.00".target— destination{ currency, network? }.currencyis one ofUSD,USDC,USDT;network(solana,polygon,tron) is required when the target currency is a stablecoin.inverse(defaultfalse) — whentrue,amountis the desired recipient amount and the engine back-solves the source amount.rail— bank-rail hint for account-bound quotes:FEDNOW,ACH_STANDARD,ACH_SAME_DAY,WIRE_DOMESTIC,WIRE_SWIFT.payment_instructions— declare a crypto funding leg{ currency, network }(account-bound quotes only).from_held_balance(defaultfalse) — price a payout from your on-book balance; the response may include an advisorybalance_sufficientflag.client_markup— per-quote markup override{ fixed_minor?, percentage_bps? }(cents and basis points). Replaces your configured markup for this quote only.
Response returns source and recipient money objects, a pricing_context, a depeg-aware conversion block, an itemized fees[] array (each line carries code, kind "fixed"/"percentage", charged_by "kira"/"client", status, signed amount), and totals. The quote expires at quote_expires_at (default TTL 15 minutes).
Errors: 400 validation_error or fees_exceed_amount; 401 unauthorized; 404 for an unknown or foreign virtual account.
Note: the itemized response shape requires pinning to API version 2026-06-01 or later. Older versions return a simpler preview shape.
Authorizations
Access token from POST /auth (the data.access_token value).
API key issued by Kira. Required on every request, including /auth.
Headers
"2026-04-14"
Body
- Option 1
- Option 2
Must be > 0 (pattern excludes 0.00 / 00.00 / etc).
^(?!0+\.0+$)\d+\.\d{2}$FEDNOW, ACH_STANDARD, ACH_SAME_DAY, WIRE_DOMESTIC, WIRE_SWIFT