---
title: "Get quote by ID"
method: GET
path: "/quotes/{quoteId}"
tags: ["Cross-Currency Transfers"]
---

# Get quote by ID

`GET /quotes/{quoteId}`

Retrieve a quote by its ID. If the quote has been settled, it will include
the transaction ID. This allows clients to track the full lifecycle of a payment
from quote creation to settlement.

## Path parameters

- `quoteId` string, required

## Response `200`

Quote retrieved successfully

- Quote
  - `quoteId` string, required — Unique identifier for this quote
  - `status` 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'EXPIRED', required — Current status of the quote
  - `createdAt` string, date-time, required — When this quote was created
  - `expiresAt` string, date-time, required — When this quote expires (typically 1-5 minutes after creation)
  - `source` union, required
    - object — Source account details
      - `sourceType` 'ACCOUNT', required — Source type identifier
      - `accountId` string, required — Source account identifier
    - object — Fund the quote using a real-time funding source (RTP, SEPA Instant, Spark, Stables, etc.). This will require manual just-in-time funding using `paymentInstructions` in the response. Because quotes expire quickly, this option is only valid for instant payment methods. Do not try to fund a quote with a non-instant payment method (ACH, etc.).
      - `sourceType` 'REALTIME_FUNDING', required — Source type identifier
      - `customerId` string — Source customer ID. If this transaction is being initiated on behalf of a customer, this is required. If customerId is not provided, the quote will be created on behalf of the platform itself.
      - `currency` string, required — Currency code for the funding source. See [Supported Currencies](https://grid.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.
  - `destination` union, required
    - object — Destination account details
      - `destinationType` 'ACCOUNT', required — Destination type identifier
      - `accountId` string, required — Destination account identifier
      - `currency` string — Currency code for the destination account
    - object — UMA address destination details
      - `destinationType` 'UMA_ADDRESS', required — Destination type identifier
      - `umaAddress` string, required — UMA address of the recipient
      - `currency` string — Currency code for the destination
      - `counterpartyInformation` object — Information about the recipient, as required by the platform in their configuration.
  - `sendingCurrency` Currency, required
    - `code` string — Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. "BTC" for Bitcoin, "USDC" for USDC, etc.)
    - `name` string — Full name of the currency
    - `symbol` string — Symbol of the currency
    - `decimals` integer — Number of decimal places for the currency
  - `receivingCurrency` Currency, required
    - `code` string — Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. "BTC" for Bitcoin, "USDC" for USDC, etc.)
    - `name` string — Full name of the currency
    - `symbol` string — Symbol of the currency
    - `decimals` integer — Number of decimal places for the currency
  - `totalSendingAmount` integer, required — The total amount that will be sent in the smallest unit of the sending currency (eg. cents).
  - `totalReceivingAmount` integer, required — The total amount that will be received in the smallest unit of the receiving currency (eg. cents).
  - `exchangeRate` number, required — Number of sending currency units per receiving currency unit.
  - `feesIncluded` integer, required — The fees associated with the quote in the smallest unit of the sending currency (eg. cents).
  - `paymentInstructions` PaymentInstructions[] — Payment instructions for executing the payment. This is not required when using an internal account source.
    - `instructionsNotes` string — Additional human-readable instructions for making the payment
    - `isPlatformAccount` boolean — Indicates whether the account is a platform account or a customer account.
    - `accountOrWalletInfo` union, required
      - ClabeAccountInfo
        - `accountType` 'CLABE', required
        - `clabeNumber` string, required — 18-digit CLABE number (Mexican banking standard)
      - UsAccountInfo
        - `accountType` 'US_ACCOUNT', required
        - `accountNumber` string, required — US bank account number
        - `routingNumber` string, required — ACH routing number (9 digits)
        - `accountCategory` 'CHECKING' | 'SAVINGS', required — Type of account (checking or savings)
        - `bankName` string — Name of the bank
      - PixAccountInfo
        - `accountType` 'PIX', required
        - `pixKey` string, required — PIX key for Brazilian instant payments
        - `pixKeyType` 'CPF' | 'CNPJ' | 'EMAIL' | 'PHONE' | 'RANDOM', required — Type of PIX key being used
        - `taxId` string, required — Tax ID of the account holder
      - IbanAccountInfo
        - `accountType` 'IBAN', required
        - `iban` string, required — International Bank Account Number
        - `swiftBic` string, required — SWIFT/BIC code (8 or 11 characters)
      - UpiAccountInfo
        - `accountType` 'UPI', required
        - `vpa` string, required — Virtual Payment Address for UPI payments
      - SparkWalletInfo
        - `accountType` 'SPARK_WALLET', required
        - `address` string, required — Spark wallet address
      - object
        - `accountType` 'LIGHTNING', required
        - `invoice` string, required — Invoice for the payment
      - SolanaWalletInfo
        - `accountType` 'SOLANA_WALLET', required
        - `address` string, required — Solana wallet address
      - TronWalletInfo
        - `accountType` 'TRON_WALLET', required
        - `address` string, required — Tron wallet address
      - PolygonWalletInfo
        - `accountType` 'POLYGON_WALLET', required
        - `address` string, required — Polygon eth wallet address
      - BaseWalletInfo
        - `accountType` 'BASE_WALLET', required
        - `address` string, required — Base eth wallet address
  - `transactionId` string, required — The ID of the transaction created from this quote.
  - `originalQuoteId` string — ID of the quote that is being retried
  - `rateDetails` OutgoingRateDetails — Details about the rate and fees for an outgoing transaction or quote.
    - `counterpartyMultiplier` number, double, required — The underlying multiplier from mSATs to the receiving currency as returned by the counterparty institution.
    - `counterpartyFixedFee` integer, required — The fixed fee charged by the counterparty institution to execute the quote in the smallest unit of the receiving currency (eg. cents).
    - `gridApiMultiplier` number, double, required — The underlying multiplier from the sending currency to mSATS, including variable fees.
    - `gridApiFixedFee` integer, required — The fixed fee charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents).
    - `gridApiVariableFeeRate` number, double, required — The variable fee rate charged by the Grid product to execute the quote as a percentage of the sending currency amount.
    - `gridApiVariableFeeAmount` number, required — The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents). This is the sending amount times gridApiVariableFeeRate.

## Other responses

- `401` — Unauthorized
- `404` — Quote not found
- `500` — Internal service error

## Changes

- **2026-01-28** `d1490309094a` — 1 info
  - removed `subschema #1` from the `paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #5: FBO Account]/` response property `allOf` list for the response status `200`
- **2026-01-28** `60af1189794c` — 1 breaking, 1 info
  - the `paymentInstructions/items/accountOrWalletInfo` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - added the required property `paymentInstructions/items/accountOrWalletInfo/accountType` to the response with the `200` status
- **2026-01-24** `36c697116132` — 1 breaking, 1 info
  - the `paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #8: Lightning Invoice]/` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - removed `#/components/schemas/PaymentAccountOrWalletInfo` from the `paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #8: Lightning Invoice]/` response property `allOf` list for the response status `200`
- **2026-01-24** `881b41b3aa77` — 1 breaking
  - the response property `source/oneOf[#/components/schemas/QuoteRealtimeFundingSource]/customerId` became optional for the status `200`

[Change history](https://skmtc.dev/lightsparkdev/apis/grid-api/changes/quotes/:quoteId/get.md)

---

[API](https://skmtc.dev/lightsparkdev/apis/grid-api.md) · [All operations](https://skmtc.dev/lightsparkdev/apis/grid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lightsparkdev/grid-api/revisions/d1490309094a/schema)
