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)
When Do You Need a Quote?
- Quotes Required
- Quotes Optional
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)
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.Locked Currency Side
You can lock either the sending or receiving amount:- Lock Sending Amount
- Lock Receiving Amount
Use when: Customer knows exactly how much they want to sendGrid 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:- 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:Execution Timing
- Prefunded
- JIT Funded
- 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 theimmediatelyExecute flag:
Immediate quote execution
Response
Response
- 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).Fees
All fees are transparently displayed in the quote response: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)
- Customer sends: $1,000
- Fees: $5.00
- Amount converted: $995.00
- Recipient receives: €915.40 (at 0.92 rate)
Quoted fees may fluctuate between quotes. Some fee components (e.g.
counterpartyFixedFee on outgoing transfers, and gridApiFixedFee on
incoming transfers) are denominated in the receiving currency, so their
value in the sending currency moves with the FX rate. Always reference the
fees in the latest quote response — they are locked only for the lifetime
of that quote.Best Practices
Always show the quote to customers before executing
Always show the quote to customers before executing
Let customers review the exchange rate, fees, and final amounts before committing:
Handle expiration gracefully
Handle expiration gracefully
Store quote parameters so you can recreate expired quotes:
Monitor quote status via webhooks
Monitor quote status via webhooks
Subscribe to quote-related webhooks: