---
title: "Get a quote snapshot"
method: GET
path: "/v0/quotes/{id}"
tags: ["Quotes"]
---

# Get a quote snapshot

`GET /v0/quotes/{id}`

## Request

- Base URL: `https://orchestration.seismic.systems/api`
- URL: `https://orchestration.seismic.systems/api/v0/quotes/{id}`
- Auth: API key in header `Api-Key`

Re-read a stored snapshot — poll until `status` leaves `pending`.

## Path parameters

- `id` string, uuid, required

## Response `200`

Quote snapshot.

- AsyncQuoteSnapshot: View of a stored quote request: its lifecycle `status`, the ranked `quotes[]` priced so far, and an echo of the resolved request.
  - `best_quote_id` string, uuid, nullable: `id` of the server's recommended quote. Matches `quotes[0].id` today (the array is ranked) — exposed explicitly so clients don't have to depend on the ordering invariant.
  - `created_at` string, date-time, required
  - `id` string, uuid, required
  - `quotes` ApiQuote[], required: Ranked best-first across every eligible rail.
    - `expires_at` string, date-time, nullable
    - `fees` QuoteFees, required: Fee breakdown attached to a quote. `total` is the sum across `items`, denominated in `currency` (typically the source leg's currency — what the caller pays in). When no per-item breakdown is available, `items` is empty and the fee is implicit in the quote's `rate`.
      - `currency` string, required
      - `items` QuoteFeeItem[], required
        - union: Single fee line item on a quote. The `type` field discriminates the variants.
          - object
            - `amount` string, required
            - `currency` string, required
            - `description` string, nullable
            - `type` 'flat', required
          - object
            - `amount` string, required
            - `bps` integer, required
            - `currency` string, required
            - `description` string, nullable
            - `type` 'percentage', required
          - object
            - `amount` string, required
            - `currency` string, required
            - `description` string, nullable
            - `type` 'network', required
          - object
            - `amount` string, required
            - `currency` string, required
            - `description` string, required
            - `type` 'other', required
      - `total` string, required
    - `id` string, uuid, required
    - `in` Leg, required: Resolved leg of a trade — one side, fully materialized. Returned inside a quote's `in` / `out`. `account_id` is always present. A nil UUID means no settlement-ready account backs this leg yet — re-quote with registered accounts before accepting.
      - `account_id` string, uuid, required
      - `address` string, nullable
      - `amount` string, required
      - `currency` string, required
      - `rail` string, required
    - `out` Leg, required: Resolved leg of a trade — one side, fully materialized. Returned inside a quote's `in` / `out`. `account_id` is always present. A nil UUID means no settlement-ready account backs this leg yet — re-quote with registered accounts before accepting.
      - `account_id` string, uuid, required
      - `address` string, nullable
      - `amount` string, required
      - `currency` string, required
      - `rail` string, required
    - `rate` string, required
    - `supported_expired_quote_behaviors` ExpiredQuoteBehavior[], required: Expired-quote behaviors `accept` will honor for this quote via `expired_quote_behavior`. Empty when only the default — the payment is refunded on expiry — applies.
    - `acceptance_requirements` QuoteAcceptanceRequirements, required: Known requirements for accepting this specific quote.
      - `files_required` boolean, required: Attach at least one supporting document in the accept body's `files` when true. Additional documents may be requested during processing.
      - `source_account_number_required` boolean, required: Send the payer's bank account number as the accept body's `source_account_number` when true. When false, accept rejects `source_account_number`.
    - `is_named` boolean, required: Whether this is a named payout: the payment reaches the beneficiary under the end customer's own legal name rather than an intermediary's. Pass `?named=1` when creating the quote to receive only named options.
  - `request` QuoteRequestEcho, required: Echo of the original request carried on the quote snapshot. Legs come back resolved rather than in whichever of the request forms produced them.
    - `amount` string, required
    - `amount_leg` 'source' | 'destination', required: Which leg a quote request's `amount` is denominated in. `Source` fixes what the customer pays ("exact-in", the default); `Destination` fixes what the recipient receives ("exact-out") and prices the required source amount.
    - `destination` QuoteRequestEchoLeg, required: One side of the snapshot's `request` echo: the resolved corridor (`currency` + `rails`), plus the registered account when the leg was account-backed. `account_id` is absent on inline source legs.
      - `account_id` string, uuid, nullable
      - `currency` string, required
      - `rails` string[], required
    - `end_customer_id` string, uuid, required
    - `end_customer_type` 'individual' | 'business' | 'business_individual' | 'org', required
    - `named` boolean, required: Whether the quote was created with `?named=1`. When `true`, `quotes` holds only named options and accept takes only a named one.
    - `payer` QuotePayer: Who is paying a pay-in, as the quote body names them.
      - `bank_code` string, nullable: The code of the bank the payer pays from, in the scheme's own bank list.
      - `document_number` string, nullable: The number of the payer's identity document.
      - `document_type` 'CC' | 'CE' | 'NIT' | 'PASS' | 'PEP': The identity document a Colombian beneficiary is known by. The receiving bank matches the holder against it, so the kind travels with the number.
      - `email` string, nullable
      - `full_name` string, nullable: The payer's full legal name.
      - `phone` string, nullable: The payer's mobile number in E.164 form.
      - `tax_id` string, nullable: The payer's tax id, for rails that credit only a transfer sent under it. ARS: the payer's CUIT/CUIL, 11 digits with no separators (`20123456786`).
    - `source` QuoteRequestEchoLeg, required: One side of the snapshot's `request` echo: the resolved corridor (`currency` + `rails`), plus the registered account when the leg was account-backed. `account_id` is absent on inline source legs.
      - `account_id` string, uuid, nullable
      - `currency` string, required
      - `rails` string[], required
  - `status` 'pending' | 'ready' | 'expired', required

## Other responses

- `401`: Missing or invalid API key.
- `404`: Snapshot id unknown.
- `422`: The snapshot was created with `?named=1` and finished without a named option (`NoNamedQuote`); create a new quote. A named route that failed returns its own error instead.
- `503`: The snapshot is final but could not be fully priced (an unverifiable minimum, or a route that was briefly unavailable). No `Retry-After` is sent: create a new quote.

---

[API](https://skmtc.dev/seismic/apis/seismic-orchestration-api.md) - [All operations](https://skmtc.dev/seismic/apis/seismic-orchestration-api/llms.txt) - [OpenAPI document](https://skmtc.dev/seismic/apis/seismic-orchestration-api/revisions/08ada1f159fa?raw)
