Skip to main content
Quotes are Grid’s mechanism for providing locked-in exchange rates, transparent fee calculations, and payment instructions. Understanding quotes is essential for all cross-currency or crypto-involved transactions.

What is a Quote?

A quote locks in:
  • An exchange rate between two currencies
  • Total fees for the transaction
  • Exact amounts to be sent and received
  • Payment instructions (if JIT funding is needed)
  • An expiration time (typically 1-5 minutes, up to 15 minutes depending on the payment type)
Quotes ensure that your customers know exactly what they’ll pay and what the recipient will receive before committing to a transaction.

When Do You Need a Quote?

Use quotes for:
  • Cross-currency transfers (USD → EUR, BRL → MXN)
  • Fiat-to-crypto conversion (USD → BTC)
  • Crypto-to-fiat conversion (BTC → USD)
  • UMA payments (always require quotes)
  • JIT funded payments (need payment instructions)
These scenarios involve currency conversion, exchange rate risk, or complex routing.

Creating a Quote

Basic Cross-Currency Quote

This is a basic quote for a cross-currency transfer from an internal account to an external account, which were pre-created as described in the Account Model section.
Response:
This quote says: Send 1,000USD,recipientreceives0.00829167BTC,feesare1,000 USD, recipient receives 0.00829167 BTC, fees are 5.00, expires in 5 minutes.

Locked Currency Side

You can lock either the sending or receiving amount:
Use when: Customer knows exactly how much they want to send
Grid calculates what the recipient will receive based on current exchange rates.

Funding Models

Grid supports two funding models for quotes:

Prefunded (From Internal Account)

Source is an existing internal account with available balance:
  • Funds are debited immediately when quote is executed
  • No payment instructions needed
  • Best for: Customers with pre-loaded balances

Just-In-Time (JIT) Funding

Source is the customer ID or the platform itself — Grid provides payment instructions:
Quote response includes payment instructions:
  • Customer sends funds to provided account with reference
  • Quote executes automatically when Grid receives payment
  • Best for: On-demand payments without maintaining balances

Executing a Quote

For a prefunded quote or one from a pullable external account source, once a quote is created, execute it before it expires:
Response:

Execution Timing

  • Transaction created with status PENDING
  • Funds debited from source account immediately
  • Settlement begins right away

Immediate Execution

For market rate execution without quote approval, use the immediatelyExecute flag:
Immediate quote execution
  • Quote is created and executed in one API call
  • Best for: Rewards distribution, micro-payments, time-sensitive transfers
immediatelyExecute can only be used for quotes with a source that is either an internal account or has direct pull functionality (e.g., ACH pull with an external account).
Customer doesn’t see rate before execution. If you want to lock a quote and confirm fees and exchange rate details before executing the quote, set immediatelyExecute to false or omit the field.

Fees

All fees are transparently displayed in the quote response:
Rate Details Breakdown:
  • counterpartyMultiplier: Exchange rate from mSATs to receiving currency (1.08 = 1 mSAT = 1.08 cents EUR)
  • counterpartyFixedFee: Fixed fee charged by counterparty (10 cents EUR)
  • gridApiMultiplier: Exchange rate from sending currency to mSATs including variable fees (0.925 = $1 USD = 0.925 mSATs)
  • gridApiFixedFee: Fixed fee charged by Grid API (10 cents USD)
  • gridApiVariableFeeRate: Variable fee rate as percentage (0.003 = 0.3%)
  • gridApiVariableFeeAmount: Variable fee amount (30 cents USD for $1,000 transaction)
Fees are deducted from the sending amount, so:
  • Customer sends: $1,000
  • Fees: $5.00
  • Amount converted: $995.00
  • Recipient receives: €915.40 (at 0.92 rate)

Best Practices

Let customers review the exchange rate, fees, and final amounts before committing:
Store quote parameters so you can recreate expired quotes:
Subscribe to quote-related webhooks: