---
title: "Create a transfer quote"
method: POST
path: "/quotes"
tags: ["Cross-Currency Transfers"]
---

# Create a transfer quote

`POST /quotes`

Generate a quote for a cross-currency transfer between any combination of accounts
and UMA addresses. This endpoint handles currency exchange and provides the necessary
instructions to execute the transfer.

**Transfer Types Supported:**
- **Account to Account**: Transfer between internal/external accounts with currency exchange.
- **Account to UMA**: Transfer from an internal account to an UMA address.
- **UMA to Account or UMA to UMA**: This transfer type will only be funded by payment instructions, not from an internal account.

**Key Features:**
- **Flexible Amount Locking**: Always specify whether you want to lock the sending amount or receiving amount
- **Currency Exchange**: Handles all cross-currency transfers with real-time exchange rates
- **Payment Instructions**: For UMA or customer ID sources, provides banking details needed for execution

**Important:** If you are transferring funds in the same currency (no exchange required),
use the `/transfer-in` or `/transfer-out` endpoints instead.

## Headers

- `Idempotency-Key` string

## Request body

- QuoteRequest
  - `lookupId` string — Lookup ID from a previous receiver lookup request. If provided, this can make the quote creation more efficient by reusing cached lookup data. NOTE: This is required for UMA destinations due to counterparty institution requirements. See `senderCustomerInfo` for more information.
  - `source` union, required
    - AccountQuoteSource — Source account details
      - `sourceType` 'ACCOUNT', required
      - `accountId` string, required — Source account identifier
      - `customerId` string — Required when funding from an FBO account to identify the customer on whose behalf the transaction is being initiated. Otherwise, will default to the customerId of the account owner.
    - RealtimeFundingQuoteSource — 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
      - `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://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.
      - `cryptoNetwork` string — The crypto network to use for the funding source. Required when `currency` is a stablecoin (e.g. USDC, USDT). Specifies which network the customer will deposit on, so the correct deposit address can be generated. Example values: `SOLANA`, `ETHEREUM`, `BASE`, `POLYGON`, `SPARK`, `LIGHTNING`, `BITCOIN`.
  - `destination` union, required
    - AccountDestination — Destination account details
      - `destinationType` 'ACCOUNT', required
      - `accountId` string, required — Destination account identifier
      - `paymentRail` 'ACH' | 'BANK_TRANSFER' | 'FAST' | 'FASTER_PAYMENTS' | 'FEDNOW' | 'MOBILE_MONEY' | 'PAYNOW' | 'PIX' | 'RTP' | 'SEPA' | 'SEPA_INSTANT' | 'SPEI' | 'SWIFT' | 'UPI' | 'WIRE' — The payment rail to use for the transfer. Must be one of the rails supported by the destination account. If not specified, the system will select a default rail.
    - UmaAddressDestination — UMA address destination details
      - `destinationType` 'UMA_ADDRESS', required
      - `umaAddress` string, required — UMA address of the recipient
      - `currency` string — Currency code for the destination. See [Supported Currencies](https://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.
  - `lockedCurrencySide` 'SENDING' | 'RECEIVING', required — The side of the quote which should be locked and specified in the `lockedCurrencyAmount`. For example, if I want to send exactly $5 MXN from my wallet, I would set this to "sending", and the `lockedCurrencyAmount` to 500 (in cents). If I want the receiver to receive exactly $10 USD, I would set this to "receiving" and the `lockedCurrencyAmount` to 10000 (in cents).
  - `lockedCurrencyAmount` integer, required — The amount to send/receive in the smallest unit of the locked currency (eg. cents). See `lockedCurrencySide` for more information.
  - `immediatelyExecute` boolean — Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. This can only be used for quotes with a `source` which is either an internal account, or has direct pull functionality (e.g. ACH pull with an external account). Not supported when the `source` is an internal account of type `EMBEDDED_WALLET`: those transfers require a `Grid-Wallet-Signature` over the `payloadToSign` returned in the quote response, which is not available in a combined create-and-execute call. Create the quote first with `immediatelyExecute: false` and then call `POST /quotes/{quoteId}/execute` with the `Grid-Wallet-Signature` stamp header.
  - `description` string — Optional description/memo for the transfer
  - `purposeOfPayment` 'GIFT' | 'SELF' | 'GOODS_OR_SERVICES' | 'EDUCATION' | 'HEALTH_OR_MEDICAL' | 'REAL_ESTATE_PURCHASE' | 'TAX_PAYMENT' | 'LOAN_PAYMENT' | 'UTILITY_BILL' | 'DONATION' | 'TRAVEL' | 'OTHER' — The purpose of the payment. This may be required when sending to certain geographies (e.g. India).
  - `senderCustomerInfo` object — Key-value pairs of additional information about the sender which was requested by the destination. This is relevant when the destination requires more sender info than was provided during customer creation. Any fields specified in `requiredPayerDataFields` from the response of the `/receiver/uma/{receiverUmaAddress}` (lookupUma) or `/receiver/external-account/{accountId}` (lookupExternalAccount) endpoints MUST be provided here if they were requested. If the destination did not request any additional information, this field can be omitted.

## Response `201`

Transfer quote created successfully. The response includes exchange rates,
fees, and transfer details. For transfers involving UMA addresses, payment
instructions are also included for execution through banking systems.

- Quote
  - `id` 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 — Absolute UTC timestamp when the rate locked in this quote becomes invalid and the quote can no longer be executed. The window depends on the rail and corridor: instant rails (Lightning, Spark, USDC on Solana/Base/Polygon, RTP, SEPA Instant) typically expire in 1–5 minutes; corridors with longer settlement guarantees may have longer windows. Always rely on this timestamp rather than assuming a fixed window.
  - `source` union, required
    - AccountQuoteSource — Source account details
      - `sourceType` 'ACCOUNT', required
      - `accountId` string, required — Source account identifier
      - `customerId` string — Required when funding from an FBO account to identify the customer on whose behalf the transaction is being initiated. Otherwise, will default to the customerId of the account owner.
    - RealtimeFundingQuoteSource — 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
      - `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://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.
      - `cryptoNetwork` string — The crypto network to use for the funding source. Required when `currency` is a stablecoin (e.g. USDC, USDT). Specifies which network the customer will deposit on, so the correct deposit address can be generated. Example values: `SOLANA`, `ETHEREUM`, `BASE`, `POLYGON`, `SPARK`, `LIGHTNING`, `BITCOIN`.
  - `destination` union, required
    - AccountDestination — Destination account details
      - `destinationType` 'ACCOUNT', required
      - `accountId` string, required — Destination account identifier
      - `paymentRail` 'ACH' | 'BANK_TRANSFER' | 'FAST' | 'FASTER_PAYMENTS' | 'FEDNOW' | 'MOBILE_MONEY' | 'PAYNOW' | 'PIX' | 'RTP' | 'SEPA' | 'SEPA_INSTANT' | 'SPEI' | 'SWIFT' | 'UPI' | 'WIRE' — The payment rail to use for the transfer. Must be one of the rails supported by the destination account. If not specified, the system will select a default rail.
    - UmaAddressDestination — UMA address destination details
      - `destinationType` 'UMA_ADDRESS', required
      - `umaAddress` string, required — UMA address of the recipient
      - `currency` string — Currency code for the destination. See [Supported Currencies](https://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.
  - `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). Note: this value may fluctuate between quotes — some underlying fee components are defined in the receiving currency, so their equivalent in the sending currency moves with the FX rate. The fees shown here are locked only for the lifetime of this quote.
  - `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
      - PaymentUsdAccountInfo
        - `accountType` 'USD_ACCOUNT', required
        - `accountNumber` string, required — The account number of the bank
        - `routingNumber` string, required — The ABA routing number
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentBrlAccountInfo
        - `accountType` 'BRL_ACCOUNT'
        - `qrCode` string, required — A PIX QR code payload that can be used to fund the transaction. This can be rendered as a QR code image or pasted into a PIX-compatible banking app.
      - PaymentMxnAccountInfo
        - `accountType` 'MXN_ACCOUNT', required
        - `clabeNumber` string, required — The CLABE number of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentDkkAccountInfo
        - `accountType` 'DKK_ACCOUNT', required
        - `iban` string, required — Danish IBAN (18 characters, starting with DK)
        - `swiftCode` string — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentEurAccountInfo
        - `accountType` 'EUR_ACCOUNT', required
        - `iban` string, required — The IBAN of the bank account
        - `swiftCode` string — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentInrAccountInfo
        - `accountType` 'INR_ACCOUNT', required
        - `vpa` string, required — The UPI Virtual Payment Address
        - `paymentRails` string[], required
      - PaymentNgnAccountInfo
        - `accountType` 'NGN_ACCOUNT', required
        - `accountNumber` string, required — Nigerian bank account number
        - `bankName` string, required — The name of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentCadAccountInfo
        - `accountType` 'CAD_ACCOUNT', required
        - `bankCode` string, required — Canadian financial institution number (3 digits)
        - `branchCode` string, required — Transit number identifying the branch (5 digits)
        - `accountNumber` string, required — Bank account number (7-12 digits)
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentGbpAccountInfo
        - `accountType` 'GBP_ACCOUNT', required
        - `sortCode` string, required — The UK sort code
        - `accountNumber` string, required — UK bank account number (8 digits)
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentHkdAccountInfo
        - `accountType` 'HKD_ACCOUNT', required
        - `bankName` string, required — The name of the bank
        - `accountNumber` string, required — Hong Kong bank account number
        - `swiftCode` string, required — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentIdrAccountInfo
        - `accountType` 'IDR_ACCOUNT', required
        - `bankName` string, required — The name of the bank
        - `accountNumber` string, required — Indonesian bank account number
        - `swiftCode` string, required — The SWIFT/BIC code of the bank
        - `phoneNumber` string, required — Indonesian phone number for e-wallet payments
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentMyrAccountInfo
        - `accountType` 'MYR_ACCOUNT', required
        - `bankName` string, required — The name of the bank
        - `accountNumber` string, required — Malaysian bank account number
        - `swiftCode` string, required — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentPhpAccountInfo
        - `accountType` 'PHP_ACCOUNT', required
        - `bankName` string, required — Name of the beneficiary's bank
        - `accountNumber` string, required — Bank account number
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentSgdAccountInfo
        - `accountType` 'SGD_ACCOUNT', required
        - `bankName` string, required — Name of the beneficiary's bank
        - `accountNumber` string, required — Bank account number
        - `swiftCode` string, required — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentThbAccountInfo
        - `accountType` 'THB_ACCOUNT', required
        - `bankName` string, required — The name of the bank
        - `accountNumber` string, required — Thai bank account number
        - `swiftCode` string, required — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentVndAccountInfo
        - `accountType` 'VND_ACCOUNT', required
        - `bankName` string, required — The name of the bank
        - `accountNumber` string, required — Vietnamese bank account number
        - `swiftCode` string, required — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentAedAccountInfo
        - `accountType` 'AED_ACCOUNT', required
        - `iban` string, required — UAE IBAN (23 characters, starting with AE)
        - `swiftCode` string — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentKesAccountInfo
        - `accountType` 'KES_ACCOUNT', required
        - `phoneNumber` string, required — Kenyan mobile money phone number
        - `provider` string, required — The mobile money provider name
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentMwkAccountInfo
        - `accountType` 'MWK_ACCOUNT', required
        - `phoneNumber` string, required — The phone number in international format
        - `provider` string, required — The mobile money provider name
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentRwfAccountInfo
        - `accountType` 'RWF_ACCOUNT', required
        - `phoneNumber` string, required — Rwandan mobile money phone number
        - `provider` string, required — The mobile money provider name
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentTzsAccountInfo
        - `accountType` 'TZS_ACCOUNT', required
        - `phoneNumber` string, required — Tanzanian mobile money phone number
        - `provider` string, required — The mobile money provider name
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentUgxAccountInfo
        - `accountType` 'UGX_ACCOUNT', required
        - `phoneNumber` string, required — The phone number in international format
        - `provider` string, required — The mobile money provider name
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentXofAccountInfo
        - `accountType` 'XOF_ACCOUNT', required
        - `phoneNumber` string, required — The phone number in international format
        - `provider` string, required — The mobile money provider name
        - `region` 'BJ' | 'CI' | 'SN' | 'TG', required — Country code within the West African CFA franc zone
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentZarAccountInfo
        - `accountType` 'ZAR_ACCOUNT', required
        - `accountNumber` string, required — South African bank account number
        - `bankName` string, required — The name of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentZmwAccountInfo
        - `accountType` 'ZMW_ACCOUNT', required
        - `phoneNumber` string, required — Zambian mobile money phone number
        - `provider` string, required — The mobile money provider name
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentBwpAccountInfo
        - `accountType` 'BWP_ACCOUNT', required
        - `phoneNumber` string, required — The phone number in international format
        - `provider` string, required — The mobile money provider name
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentXafAccountInfo
        - `accountType` 'XAF_ACCOUNT', required
        - `phoneNumber` string, required — The phone number in international format
        - `provider` string, required — The mobile money provider name
        - `region` 'CM' | 'CG', required — Country code within the Central African CFA franc zone
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentBdtAccountInfo — Required fields depend on the selected paymentRails: - BANK_TRANSFER: accountNumber - MOBILE_MONEY: phoneNumber
        - `accountType` 'BDT_ACCOUNT', required
        - `accountNumber` string — The account number of the bank
        - `branchCode` string — The branch code
        - `swiftCode` string — The SWIFT/BIC code of the bank
        - `phoneNumber` string — The phone number in international format
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentArsAccountInfo
        - `accountType` 'ARS_ACCOUNT', required
        - `accountNumber` string, required — The static CVU (Clave Virtual Uniforme) bank account number to pay to.
      - PaymentCopAccountInfo
        - `accountType` 'COP_ACCOUNT'
        - `paymentUrl` string, uri, required — A payment URL where the customer can complete their COP deposit.
      - PaymentEgpAccountInfo
        - `accountType` 'EGP_ACCOUNT', required
        - `bankName` string, required — The name of the bank
        - `accountNumber` string, required — The account number of the bank
        - `iban` string — Egyptian IBAN (29 characters, starting with EG)
        - `swiftCode` string — The SWIFT/BIC code of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentGhsAccountInfo — Required fields depend on the selected paymentRails: - BANK_TRANSFER: accountNumber - MOBILE_MONEY: phoneNumber
        - `accountType` 'GHS_ACCOUNT', required
        - `accountNumber` string — The account number of the bank
        - `phoneNumber` string — The phone number in international format
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentGtqAccountInfo
        - `accountType` 'GTQ_ACCOUNT', required
        - `accountNumber` string, required — The account number of the bank
        - `bankAccountType` 'CHECKING' | 'SAVINGS', required — The bank account type
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentHtgAccountInfo
        - `accountType` 'HTG_ACCOUNT', required
        - `phoneNumber` string, required — The phone number in international format
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentJmdAccountInfo
        - `accountType` 'JMD_ACCOUNT', required
        - `accountNumber` string, required — The account number of the bank
        - `branchCode` string, required — The branch code
        - `bankAccountType` 'CHECKING' | 'SAVINGS', required — The bank account type
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentPkrAccountInfo — Required fields depend on the selected paymentRails: - BANK_TRANSFER: accountNumber - MOBILE_MONEY: bankName, phoneNumber
        - `accountType` 'PKR_ACCOUNT', required
        - `accountNumber` string — The account number of the bank
        - `iban` string — Pakistani IBAN (24 characters, starting with PK)
        - `phoneNumber` string — The phone number in international format
        - `bankName` string — The name of the bank
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentSlvAccountInfo — Required fields depend on the selected paymentRails: - BANK_TRANSFER: bankAccountType, accountNumber - MOBILE_MONEY: phoneNumber
        - `accountType` 'SLV_ACCOUNT', required
        - `bankName` string — The name of the bank (BANK_TRANSFER only)
        - `accountNumber` string — The account number of the bank (BANK_TRANSFER only)
        - `bankAccountType` 'CHECKING' | 'SAVINGS' — The bank account type (BANK_TRANSFER only)
        - `phoneNumber` string — The phone number in international format (MOBILE_MONEY only — e.g. Tigo Money)
        - `paymentRails` string[], required
        - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
      - PaymentSparkWalletInfo
        - `accountType` 'SPARK_WALLET', required
        - `address` string, required — Spark wallet address
        - `assetType` 'BTC' | 'USDB', required — Type of asset
        - `invoice` string — Invoice for the payment
      - PaymentLightningInvoiceInfo
        - `accountType` 'LIGHTNING'
        - `invoice` string, required — Invoice for the payment
      - PaymentSolanaWalletInfo
        - `accountType` 'SOLANA_WALLET', required
        - `address` string, required — Solana wallet address
        - `assetType` 'USDC' | 'USDT' — Type of asset
      - PaymentTronWalletInfo
        - `accountType` 'TRON_WALLET', required
        - `address` string, required — Tron wallet address
        - `assetType` 'USDT' — Type of asset
      - PaymentPolygonWalletInfo
        - `accountType` 'POLYGON_WALLET', required
        - `address` string, required — Polygon eth wallet address
        - `assetType` 'USDC' — Type of asset
      - PaymentBaseWalletInfo
        - `accountType` 'BASE_WALLET', required
        - `address` string, required — Base eth wallet address
        - `assetType` 'USDC' — Type of asset
      - PaymentEthereumWalletInfo
        - `accountType` 'ETHEREUM_WALLET', required
        - `address` string, required — Ethereum L1 wallet address
        - `assetType` 'USDC' — Type of asset
      - PaymentEmbeddedWalletInfo
        - `accountType` 'EMBEDDED_WALLET', required — Discriminator value identifying this as Embedded Wallet payment instructions.
        - `payloadToSign` string, required — JSON-encoded transaction signing payload that must be stamped, as-is (byte-for-byte, without re-serialization), with the session private key of a verified authentication credential on the source Embedded Wallet. The resulting Turnkey API-key stamp is passed as the `Grid-Wallet-Signature` header on `POST /quotes/{quoteId}/execute` to authorize the outbound transfer from the wallet.
  - `transactionId` string, required — The ID of the transaction created from this quote.
  - `counterpartyInformation` CounterpartyInformation — Additional information about the counterparty, if available and relevant to the transaction and platform.
  - `rateDetails` OutgoingRateDetails — Details about the rate and fees for an outgoing transaction or quote. Note: `counterpartyFixedFee` is denominated in the receiving currency, so its equivalent value in the sending currency fluctuates with the FX rate. As a result, the total fee on a subsequent quote for the same transfer may differ even if the underlying fee structure is unchanged.
    - `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

- `400` — Bad request - Missing or invalid parameters
- `401` — Unauthorized
- `412` — Counterparty doesn't support UMA version
- `424` — Counterparty issue
- `500` — Internal service error
- `501` — Not implemented

## Changes

- **2026-05-28** `d0bce562bffd` — 13 breaking, 7 warning, 5 info
  - the response property `paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #28: BDT Account]/allOf[#/components/schemas/BdtAccountInfo]/allOf[#/components/schemas/BdtAccountInfoBase]/accountNumber` became optional for the status `201`
  - the response property `paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #28: BDT Account]/allOf[#/components/schemas/BdtAccountInfo]/allOf[#/components/schemas/BdtAccountInfoBase]/branchCode` became optional for the status `201`
  - the response property `paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #28: BDT Account]/allOf[#/components/schemas/BdtAccountInfo]/allOf[#/components/schemas/BdtAccountInfoBase]/phoneNumber` became optional for the status `201`
  - the response property `paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #32: GHS Account]/allOf[#/components/schemas/GhsAccountInfo]/allOf[#/components/schemas/GhsAccountInfoBase]/accountNumber` became optional for the status `201`
  - …21 more
- …earlier changes not shown

[Full history](https://skmtc.dev/lightsparkdev/apis/grid-api/changes/quotes/post.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/d0bce562bffd/schema)
