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

# Get quote by ID

`GET /quotes/{quoteId}`

Retrieves a previously created quote by ID, including its locked rate,
fee breakdown, and expiry.

## Path parameters

- `quoteId` string, required

## Response `200`

The request has succeeded.

- Quote — A price quote for moving money between two instruments. It locks an exchange rate and the amounts for a short window; execute it by creating a transaction that references this quote's id.
  - `id` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
  - `object` 'quote', required — Resource type discriminator. Always "quote".
  - `status` 'open' | 'accepted' | 'expired', required — Status of a quote. open: pricing locked, awaiting acceptance. accepted: a transaction has been created from it. expired: the pricing window elapsed.
  - `sourceToDestination` 'cryptoToCrypto' | 'cryptoToCash' | 'cryptoToFiatAccount' | 'cashToCrypto' | 'fiatAccountToCrypto' | 'fiatAccountToFiatAccount' — Composite of source and destination instrument categories, inferred from each side. The cash corridors (`cryptoToCash`, `cashToCrypto`) are derived from a cash-pickup destination / cash-in source respectively; the rest map straight from the internal corridor type.
  - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
  - `source` union, required — The source side of a transaction/quote (v0.10): a typed instrument carrying identity (`party`) and instrument detail. Amounts live only in `pricing`.
    - object — OMS-custodied crypto wallet instrument.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'walletOms', required — Type discriminator.
      - `category` 'crypto', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` WalletOmsDetails, required — WalletOms instrument details: an OMS-custodied crypto wallet.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` string — Canonical asset identifier.
        - `network` string — Network identifier.
        - `blockchainAddress` string — On-chain address.
        - `custodyType` 'custodial' | 'embedded' — How the wallet is held: `custodial` or `embedded`.
        - `txHash` string — On-chain transaction hash.
        - `blockchainAsset` BlockchainAsset
          - `protocol` 'evm' | 'svm' | 'sui', required
          - `chainId` string, required
          - `tokenId` string, required
    - object — Externally-custodied crypto wallet instrument.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'walletExternal', required — Type discriminator.
      - `category` 'crypto', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` WalletExternalDetails, required — WalletExternal instrument details: a crypto wallet held in external custody.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` string — Canonical asset identifier.
        - `network` string — Network identifier.
        - `blockchainAddress` string — On-chain address.
        - `custodian` string — Custodian holding the funds.
        - `otherCustodian` string — Free-text custodian name when `custodian` is `other`.
        - `txHash` string — On-chain transaction hash.
        - `blockchainAsset` BlockchainAsset
          - `protocol` 'evm' | 'svm' | 'sui', required
          - `chainId` string, required
          - `tokenId` string, required
    - object — Fiat balance wallet instrument - a USD balance held at a partner bank (a settlement bank). No network or on-chain address; an internal ledger.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'walletFiat', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` WalletFiatInstrumentDetails, required — WalletFiat instrument details: a fiat balance wallet held at a partner bank (e.g. USD at a settlement bank). No network or on-chain address - an internal ledger balance.
        - `id` string — OMS fiat wallet ID (`wlt_fiat_` prefix). Look up via `GET /wallets`. Plain string, not the `typeId` scalar: `wlt_fiat_` is a two-token prefix, which the single-underscore `typeId` pattern cannot validate. Matches the sibling `WalletFiatSideDetails.id` in quote.tsp.
        - `asset` 'usd' — Fiat currency of the balance. Only `usd` today.
        - `provider` string — Legal entity holding the balance (e.g. "the settlement bank"). Read-only.
    - object — US bank account instrument.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'bankUs', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` BankUsDetails, required — US bank account instrument details.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` 'usd' — Canonical asset identifier.
        - `network` 'ach' | 'achSameDay' | 'wire' | 'rtp' — Network identifier.
        - `secCode` 'ccd' | 'ppd' | 'web' — ACH SEC code. Populated only when the destination bank network is `ach`/`achSameDay`; null otherwise. Server-derived from the destination owner's and the source customer's `entityType`.
        - `accountNumberLast4` string — Last four digits of the account number.
        - `routingNumber` string — US ABA routing number.
        - `bankName` string — Bank display name.
        - `accountType` 'checking' | 'savings' — checking or savings.
        - `memo` string — Payment memo.
    - object — IBAN bank account instrument.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'bankIban', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` BankIbanDetails, required — IBAN bank account instrument details.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` string — Canonical asset identifier.
        - `network` 'swift' — Network identifier.
        - `ibanLast4` string — Last four characters of the IBAN.
        - `BIC` string — SWIFT BIC.
        - `bankAddress` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
          - `line1` string — Street address, line 1.
          - `line2` string — Street address, line 2.
          - `city` string — City.
          - `state` string — State / province / region.
          - `country` string — ISO 3166-1 alpha-2
          - `zipCode` string — ZIP / postal code.
        - `countryCode` string — ISO 3166-1 alpha-2 country code.
        - `memo` string — Payment memo.
    - object — Canadian bank account instrument.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'bankCanada', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` BankCanadaDetails, required — Canadian bank account instrument details.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` 'usd' | 'cad' — Canonical asset identifier.
        - `network` 'swift' | 'local' — Network identifier.
        - `institutionNumber` string — Canadian 3-digit institution number.
        - `transitNumber` string — Canadian 5-digit transit number.
        - `accountNumberLast4` string — Last four digits of the account number.
        - `bankName` string — Bank display name.
        - `memo` string — Payment memo.
    - object — Card instrument.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'card', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` CardDetails, required — Card instrument details.
        - `id` string — Unique identifier.
        - `asset` 'usd' — Canonical asset identifier.
        - `network` 'card' — Network identifier.
        - `cardNumberLast4` string — Last four digits of the card number.
        - `cardProvider` string — Card network/provider.
        - `memo` string — Payment memo.
    - object — Cash instrument.
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'cash', required — Type discriminator.
      - `category` 'cash', required — High-level grouping: always `cash` for cash pickups and drops.
      - `details` CashDetails, required — Cash pickup/drop instrument details.
        - `asset` string — Canonical asset identifier.
        - `cashLocationId` string — Cash location ID from `GET /cash-locations`.
        - `cashLocationReference` string — Provider reference for the location, from `GET /cash-locations`.
        - `code` string — Machine-readable code.
        - `expiresAt` string, date-time — Expiration time.
        - `locationName` string — Display name of the retail location.
        - `locationAddress` string — Street address of the retail location.
  - `destination` union, required — The destination side of a transaction/quote (v0.10): a typed instrument plus `payoutOrigin`. Amounts live only in `pricing`.
    - object
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'walletOms', required — Type discriminator.
      - `category` 'crypto', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` WalletOmsDetails, required — WalletOms instrument details: an OMS-custodied crypto wallet.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` string — Canonical asset identifier.
        - `network` string — Network identifier.
        - `blockchainAddress` string — On-chain address.
        - `custodyType` 'custodial' | 'embedded' — How the wallet is held: `custodial` or `embedded`.
        - `txHash` string — On-chain transaction hash.
        - `blockchainAsset` BlockchainAsset
          - `protocol` 'evm' | 'svm' | 'sui', required
          - `chainId` string, required
          - `tokenId` string, required
      - `payoutOrigin` union — Where last-mile delivery is sent *from*. Tiered: Quote & Deposit Address echo the choice only; the Transaction carries full detail (`accountNumber`/`routingNumber`/`txHash`). At launch all payouts route through a single provider, so the field is forward-compatible but single-valued.
        - object — Payout originates from a bank account. the response wraps the fields in a `details` envelope (matches the `precursor` shape). `accountNumber`/`routingNumber` are full sending-account detail rendered on the Transaction only, null on Quote/Deposit Address (choice-only).
          - `type` 'bank', required — Type discriminator.
          - `details` PayoutOriginBankDetails, required — Bank payout-origin detail. `accountHolder`(+`Name`) is the chosen sender identity (echoed on Quote/DA too); `accountNumber`/`routingNumber` are the full sending-account coordinates (Transaction only, else null); `virtualAccountId` is the VA the funds were pulled from.
            - `accountHolder` 'customer' — Who holds the payout bank account (OMS closed enum). `customer` is the only valid value.
            - `accountHolderName` string — Name of the sending account holder.
            - `accountNumber` string, nullable — Bank account number.
            - `routingNumber` string, nullable — US ABA routing number.
            - `virtualAccountId` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — Payout originates from an on-chain address.
          - `type` 'blockchain', required — Type discriminator.
          - `blockchainAddress` string — On-chain address.
          - `network` string — Network identifier.
          - `txHash` string — On-chain transaction hash.
          - `custodian` string — Custodian holding the funds.
    - object
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'walletExternal', required — Type discriminator.
      - `category` 'crypto', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` WalletExternalDetails, required — WalletExternal instrument details: a crypto wallet held in external custody.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` string — Canonical asset identifier.
        - `network` string — Network identifier.
        - `blockchainAddress` string — On-chain address.
        - `custodian` string — Custodian holding the funds.
        - `otherCustodian` string — Free-text custodian name when `custodian` is `other`.
        - `txHash` string — On-chain transaction hash.
        - `blockchainAsset` BlockchainAsset
          - `protocol` 'evm' | 'svm' | 'sui', required
          - `chainId` string, required
          - `tokenId` string, required
      - `payoutOrigin` union — Where last-mile delivery is sent *from*. Tiered: Quote & Deposit Address echo the choice only; the Transaction carries full detail (`accountNumber`/`routingNumber`/`txHash`). At launch all payouts route through a single provider, so the field is forward-compatible but single-valued.
        - object — Payout originates from a bank account. the response wraps the fields in a `details` envelope (matches the `precursor` shape). `accountNumber`/`routingNumber` are full sending-account detail rendered on the Transaction only, null on Quote/Deposit Address (choice-only).
          - `type` 'bank', required — Type discriminator.
          - `details` PayoutOriginBankDetails, required — Bank payout-origin detail. `accountHolder`(+`Name`) is the chosen sender identity (echoed on Quote/DA too); `accountNumber`/`routingNumber` are the full sending-account coordinates (Transaction only, else null); `virtualAccountId` is the VA the funds were pulled from.
            - `accountHolder` 'customer' — Who holds the payout bank account (OMS closed enum). `customer` is the only valid value.
            - `accountHolderName` string — Name of the sending account holder.
            - `accountNumber` string, nullable — Bank account number.
            - `routingNumber` string, nullable — US ABA routing number.
            - `virtualAccountId` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — Payout originates from an on-chain address.
          - `type` 'blockchain', required — Type discriminator.
          - `blockchainAddress` string — On-chain address.
          - `network` string — Network identifier.
          - `txHash` string — On-chain transaction hash.
          - `custodian` string — Custodian holding the funds.
    - object
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'bankUs', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` BankUsDetails, required — US bank account instrument details.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` 'usd' — Canonical asset identifier.
        - `network` 'ach' | 'achSameDay' | 'wire' | 'rtp' — Network identifier.
        - `secCode` 'ccd' | 'ppd' | 'web' — ACH SEC code. Populated only when the destination bank network is `ach`/`achSameDay`; null otherwise. Server-derived from the destination owner's and the source customer's `entityType`.
        - `accountNumberLast4` string — Last four digits of the account number.
        - `routingNumber` string — US ABA routing number.
        - `bankName` string — Bank display name.
        - `accountType` 'checking' | 'savings' — checking or savings.
        - `memo` string — Payment memo.
      - `payoutOrigin` union — Where last-mile delivery is sent *from*. Tiered: Quote & Deposit Address echo the choice only; the Transaction carries full detail (`accountNumber`/`routingNumber`/`txHash`). At launch all payouts route through a single provider, so the field is forward-compatible but single-valued.
        - object — Payout originates from a bank account. the response wraps the fields in a `details` envelope (matches the `precursor` shape). `accountNumber`/`routingNumber` are full sending-account detail rendered on the Transaction only, null on Quote/Deposit Address (choice-only).
          - `type` 'bank', required — Type discriminator.
          - `details` PayoutOriginBankDetails, required — Bank payout-origin detail. `accountHolder`(+`Name`) is the chosen sender identity (echoed on Quote/DA too); `accountNumber`/`routingNumber` are the full sending-account coordinates (Transaction only, else null); `virtualAccountId` is the VA the funds were pulled from.
            - `accountHolder` 'customer' — Who holds the payout bank account (OMS closed enum). `customer` is the only valid value.
            - `accountHolderName` string — Name of the sending account holder.
            - `accountNumber` string, nullable — Bank account number.
            - `routingNumber` string, nullable — US ABA routing number.
            - `virtualAccountId` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — Payout originates from an on-chain address.
          - `type` 'blockchain', required — Type discriminator.
          - `blockchainAddress` string — On-chain address.
          - `network` string — Network identifier.
          - `txHash` string — On-chain transaction hash.
          - `custodian` string — Custodian holding the funds.
    - object
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'bankIban', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` BankIbanDetails, required — IBAN bank account instrument details.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` string — Canonical asset identifier.
        - `network` 'swift' — Network identifier.
        - `ibanLast4` string — Last four characters of the IBAN.
        - `BIC` string — SWIFT BIC.
        - `bankAddress` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
          - `line1` string — Street address, line 1.
          - `line2` string — Street address, line 2.
          - `city` string — City.
          - `state` string — State / province / region.
          - `country` string — ISO 3166-1 alpha-2
          - `zipCode` string — ZIP / postal code.
        - `countryCode` string — ISO 3166-1 alpha-2 country code.
        - `memo` string — Payment memo.
      - `payoutOrigin` union — Where last-mile delivery is sent *from*. Tiered: Quote & Deposit Address echo the choice only; the Transaction carries full detail (`accountNumber`/`routingNumber`/`txHash`). At launch all payouts route through a single provider, so the field is forward-compatible but single-valued.
        - object — Payout originates from a bank account. the response wraps the fields in a `details` envelope (matches the `precursor` shape). `accountNumber`/`routingNumber` are full sending-account detail rendered on the Transaction only, null on Quote/Deposit Address (choice-only).
          - `type` 'bank', required — Type discriminator.
          - `details` PayoutOriginBankDetails, required — Bank payout-origin detail. `accountHolder`(+`Name`) is the chosen sender identity (echoed on Quote/DA too); `accountNumber`/`routingNumber` are the full sending-account coordinates (Transaction only, else null); `virtualAccountId` is the VA the funds were pulled from.
            - `accountHolder` 'customer' — Who holds the payout bank account (OMS closed enum). `customer` is the only valid value.
            - `accountHolderName` string — Name of the sending account holder.
            - `accountNumber` string, nullable — Bank account number.
            - `routingNumber` string, nullable — US ABA routing number.
            - `virtualAccountId` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — Payout originates from an on-chain address.
          - `type` 'blockchain', required — Type discriminator.
          - `blockchainAddress` string — On-chain address.
          - `network` string — Network identifier.
          - `txHash` string — On-chain transaction hash.
          - `custodian` string — Custodian holding the funds.
    - object
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'bankCanada', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` BankCanadaDetails, required — Canadian bank account instrument details.
        - `id` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - `asset` 'usd' | 'cad' — Canonical asset identifier.
        - `network` 'swift' | 'local' — Network identifier.
        - `institutionNumber` string — Canadian 3-digit institution number.
        - `transitNumber` string — Canadian 5-digit transit number.
        - `accountNumberLast4` string — Last four digits of the account number.
        - `bankName` string — Bank display name.
        - `memo` string — Payment memo.
      - `payoutOrigin` union — Where last-mile delivery is sent *from*. Tiered: Quote & Deposit Address echo the choice only; the Transaction carries full detail (`accountNumber`/`routingNumber`/`txHash`). At launch all payouts route through a single provider, so the field is forward-compatible but single-valued.
        - object — Payout originates from a bank account. the response wraps the fields in a `details` envelope (matches the `precursor` shape). `accountNumber`/`routingNumber` are full sending-account detail rendered on the Transaction only, null on Quote/Deposit Address (choice-only).
          - `type` 'bank', required — Type discriminator.
          - `details` PayoutOriginBankDetails, required — Bank payout-origin detail. `accountHolder`(+`Name`) is the chosen sender identity (echoed on Quote/DA too); `accountNumber`/`routingNumber` are the full sending-account coordinates (Transaction only, else null); `virtualAccountId` is the VA the funds were pulled from.
            - `accountHolder` 'customer' — Who holds the payout bank account (OMS closed enum). `customer` is the only valid value.
            - `accountHolderName` string — Name of the sending account holder.
            - `accountNumber` string, nullable — Bank account number.
            - `routingNumber` string, nullable — US ABA routing number.
            - `virtualAccountId` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — Payout originates from an on-chain address.
          - `type` 'blockchain', required — Type discriminator.
          - `blockchainAddress` string — On-chain address.
          - `network` string — Network identifier.
          - `txHash` string — On-chain transaction hash.
          - `custodian` string — Custodian holding the funds.
    - object
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'card', required — Type discriminator.
      - `category` 'fiatAccount', required — High-level grouping: `fiatAccount` for bank or card accounts, `crypto` for wallets.
      - `details` CardDetails, required — Card instrument details.
        - `id` string — Unique identifier.
        - `asset` 'usd' — Canonical asset identifier.
        - `network` 'card' — Network identifier.
        - `cardNumberLast4` string — Last four digits of the card number.
        - `cardProvider` string — Card network/provider.
        - `memo` string — Payment memo.
      - `payoutOrigin` union — Where last-mile delivery is sent *from*. Tiered: Quote & Deposit Address echo the choice only; the Transaction carries full detail (`accountNumber`/`routingNumber`/`txHash`). At launch all payouts route through a single provider, so the field is forward-compatible but single-valued.
        - object — Payout originates from a bank account. the response wraps the fields in a `details` envelope (matches the `precursor` shape). `accountNumber`/`routingNumber` are full sending-account detail rendered on the Transaction only, null on Quote/Deposit Address (choice-only).
          - `type` 'bank', required — Type discriminator.
          - `details` PayoutOriginBankDetails, required — Bank payout-origin detail. `accountHolder`(+`Name`) is the chosen sender identity (echoed on Quote/DA too); `accountNumber`/`routingNumber` are the full sending-account coordinates (Transaction only, else null); `virtualAccountId` is the VA the funds were pulled from.
            - `accountHolder` 'customer' — Who holds the payout bank account (OMS closed enum). `customer` is the only valid value.
            - `accountHolderName` string — Name of the sending account holder.
            - `accountNumber` string, nullable — Bank account number.
            - `routingNumber` string, nullable — US ABA routing number.
            - `virtualAccountId` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — Payout originates from an on-chain address.
          - `type` 'blockchain', required — Type discriminator.
          - `blockchainAddress` string — On-chain address.
          - `network` string — Network identifier.
          - `txHash` string — On-chain transaction hash.
          - `custodian` string — Custodian holding the funds.
    - object
      - `party` union
        - object — The owning OMS customer is on this side.
          - `relationship` 'customer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — A different OMS customer is on this side.
          - `relationship` 'otherCustomer', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `customerId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
        - object — A registered counterparty (saved third party) is on this side.
          - `relationship` 'externalRegistered', required — Relationship discriminator.
          - `entityType` 'individual' | 'business'
          - `counterpartyId` string, required — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
        - object — An unrecognized external party (no saved record) is on this side. There is no OMS record behind it, so it carries no entityType.
          - `relationship` 'externalUnregistered', required — Relationship discriminator.
          - `name` string, nullable — Display name.
          - `address` Address — A postal address. country is an ISO 3166-1 alpha-2 country code.
            - `line1` string — Street address, line 1.
            - `line2` string — Street address, line 2.
            - `city` string — City.
            - `state` string — State / province / region.
            - `country` string — ISO 3166-1 alpha-2
            - `zipCode` string — ZIP / postal code.
      - `type` 'cash', required — Type discriminator.
      - `category` 'cash', required — High-level grouping: always `cash` for cash pickups and drops.
      - `details` CashDetails, required — Cash pickup/drop instrument details.
        - `asset` string — Canonical asset identifier.
        - `cashLocationId` string — Cash location ID from `GET /cash-locations`.
        - `cashLocationReference` string — Provider reference for the location, from `GET /cash-locations`.
        - `code` string — Machine-readable code.
        - `expiresAt` string, date-time — Expiration time.
        - `locationName` string — Display name of the retail location.
        - `locationAddress` string — Street address of the retail location.
      - `payoutOrigin` union — Where last-mile delivery is sent *from*. Tiered: Quote & Deposit Address echo the choice only; the Transaction carries full detail (`accountNumber`/`routingNumber`/`txHash`). At launch all payouts route through a single provider, so the field is forward-compatible but single-valued.
        - object — Payout originates from a bank account. the response wraps the fields in a `details` envelope (matches the `precursor` shape). `accountNumber`/`routingNumber` are full sending-account detail rendered on the Transaction only, null on Quote/Deposit Address (choice-only).
          - `type` 'bank', required — Type discriminator.
          - `details` PayoutOriginBankDetails, required — Bank payout-origin detail. `accountHolder`(+`Name`) is the chosen sender identity (echoed on Quote/DA too); `accountNumber`/`routingNumber` are the full sending-account coordinates (Transaction only, else null); `virtualAccountId` is the VA the funds were pulled from.
            - `accountHolder` 'customer' — Who holds the payout bank account (OMS closed enum). `customer` is the only valid value.
            - `accountHolderName` string — Name of the sending account holder.
            - `accountNumber` string, nullable — Bank account number.
            - `routingNumber` string, nullable — US ABA routing number.
            - `virtualAccountId` string — Public TypeID, e.g. `txn_01h455vb4pex5vsknk084sn02q`; legacy UUID suffixes are accepted until non-v7 rows are retired.
        - object — Payout originates from an on-chain address.
          - `type` 'blockchain', required — Type discriminator.
          - `blockchainAddress` string — On-chain address.
          - `network` string — Network identifier.
          - `txHash` string — On-chain transaction hash.
          - `custodian` string — Custodian holding the funds.
  - `pricing` Pricing, required — Consolidated economics for a quote/transaction: per-side amounts + fees, the rate pair, and gas sponsorship, all in one place.
    - `source` PricingSide — Per-side economics for the `pricing` object: the side carries identity, the amounts and fees live here.
      - `asset` string — Currency these amounts are in. Same as the side's instrument asset, repeated here so pricing is self-contained.
      - `amountGross` string — Amount on this side before fees are applied.
      - `amountNet` string — Amount after fees: what is actually pulled from a source, or delivered to a destination.
      - `feesDeducted` FeesDeducted — Per-side breakdown of fees deducted in-line from the transaction. End-of-month billable fees will be reported separately in the future (planned `feesInvoice` sibling). Denominated in that side's asset.
        - `total` string, required
        - `developer` string, required — Per-side aggregated developer fee total in this side's asset. Always "0" in alpha - alpha invariant, mirrors the gas line.
        - `oms` string, required
        - `gas` string, required
    - `destination` PricingSide — Per-side economics for the `pricing` object: the side carries identity, the amounts and fees live here.
      - `asset` string — Currency these amounts are in. Same as the side's instrument asset, repeated here so pricing is self-contained.
      - `amountGross` string — Amount on this side before fees are applied.
      - `amountNet` string — Amount after fees: what is actually pulled from a source, or delivered to a destination.
      - `feesDeducted` FeesDeducted — Per-side breakdown of fees deducted in-line from the transaction. End-of-month billable fees will be reported separately in the future (planned `feesInvoice` sibling). Denominated in that side's asset.
        - `total` string, required
        - `developer` string, required — Per-side aggregated developer fee total in this side's asset. Always "0" in alpha - alpha invariant, mirrors the gas line.
        - `oms` string, required
        - `gas` string, required
    - `pair` string — Asset pair, e.g. "usdc/usd".
    - `exchangeRate` string — Mid-market rate between source and destination assets. Identity: source.amountNet × exchangeRate = destination.amountGross.
    - `effectiveRate` string — All-in rate including all fees. Identity: source.amountGross × effectiveRate = destination.amountNet.
    - `fixedAmountSide` 'source' | 'destination' — The side you set `amount` on when creating the quote. OMS calculated the other side.
    - `sponsorGas` boolean — When true, OMS absorbs the destination gas cost. Currently always true.
    - `sponsorGasCost` string — Gas absorbed by the developer when sponsorGas is true. Currently always `0.00`.
  - `expiresAt` string, date-time — When the locked pricing expires.
  - `createdAt` string, date-time — When the quote was created.
  - `metadata` object — Free-form key-value pairs supplied at creation or update.

---

[API](https://skmtc.net/polygon-technology/apis/polygon-oms-public-api.md) · [All operations](https://skmtc.net/polygon-technology/apis/polygon-oms-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/polygon-technology/polygon-oms-public-api/revisions/18fdaebf64e5/schema)
