> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spherepay.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Quote Status

> Mark an active quote as used or expired. Only active quotes can be updated.

Manually transition a quote out of the `active` state. Most quote transitions happen automatically — a quote becomes `used` when redeemed by [Create Transfer](/api-reference/transfer/post), and becomes `expired` when its `expiresAt` timestamp passes. Use this endpoint when you need to explicitly void a quote (e.g. customer abandoned the flow) or mark it consumed by a downstream system that doesn't redeem through `/v2/transfer`.

<Warning>
  Only quotes with status `active` can be updated. Attempting to update a quote that's already `used` or `expired` returns a `422` validation error.
</Warning>


## OpenAPI

````yaml openapi/spherepay.yaml PUT /v2/quote/{id}
openapi: 3.0.0
info:
  contact: {}
  description: The Sphere REST API for payments, transfers, and accounts.
  title: Sphere API
  version: '2'
servers:
  - description: Production
    url: https://api.spherepay.co
security:
  - bearer: []
tags: []
paths:
  /v2/quote/{id}:
    put:
      summary: Update Quote Status
      description: >-
        Mark an active quote as used or expired. Only active quotes can be
        updated.
      operationId: putV2QuoteById
      parameters:
        - description: The unique quote ID.
          in: path
          name: id
          required: true
          schema:
            example: quote_d243ab2b1de4447d8a046d87fefe58cf
            pattern: ^quote_[a-z0-9]+$
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateQuoteStatusDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetQuoteResponseDto'
          description: ''
        '400':
          content:
            application/json:
              examples:
                Bad Request:
                  summary: Bad Request
                  value:
                    code: address/invalid
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
                    detail: Invalid request parameters
                    status: 400
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
          description: Bad Request
        '404':
          content:
            application/json:
              examples:
                Not Found:
                  summary: Not Found
                  value:
                    code: resource/not-found
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
                    detail: Resource not found
                    status: 404
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
          description: Not Found
        '422':
          content:
            application/json:
              examples:
                Validation Error:
                  summary: Validation Error
                  value:
                    code: validation/failed
                    correlationId: 28c61e885c6e5eaa78c1a2183a9b883c
                    detail: Validation failed
                    errors:
                      - detail: Invalid email format
                        pointer: /email
                      - detail: Name is required
                        pointer: /name
                    status: 422
              schema:
                $ref: '#/components/schemas/ProblemDetailsDto'
          description: Unprocessable Entity - Validation Error
components:
  schemas:
    UpdateQuoteStatusDto:
      properties:
        status:
          description: The new status for the quote. Only active quotes can be updated.
          enum:
            - used
            - expired
          example: used
          type: string
      required:
        - status
      type: object
    GetQuoteResponseDto:
      properties:
        created:
          description: The datetime the quote was created.
          example: '2025-01-01T00:00:00.000Z'
          format: date-time
          type: string
        customerId:
          description: The customer ID.
          example: customer_d243ab2b1de4447d8a046d87fefe58cf
          type: string
        destination:
          properties:
            amount:
              description: The destination amount after exchange.
              example: '545.50'
              type: string
            currency:
              description: The destination currency.
              enum:
                - usdc
                - usdt
                - eurc
                - usd
                - eur
                - brl
                - mxn
                - mxn
              example: brl
              type: string
            exchangeRate:
              description: The exchange rate applied to convert source to destination.
              example: '5.455'
              type: string
            network:
              description: The destination network.
              example: pix
              oneOf:
                - description: A blockchain network.
                  enum:
                    - sol
                    - fogo
                    - ethereum
                    - arbitrum
                    - polygon
                    - base
                    - avalanche
                    - sui
                    - noble
                    - sei
                    - tron
                    - starknet
                    - aptos
                    - hyperliquid
                  example: polygon
                  type: string
                - enum:
                    - wire
                    - ach
                    - achPush
                    - achPull
                    - achSameDay
                    - swift
                    - sepa
                    - pix
                    - spei
                    - spei
                  type: string
          required:
            - currency
            - network
            - amount
            - exchangeRate
          type: object
        expiresAt:
          description: The datetime when this quote expires.
          example: '2025-01-01T00:01:00.000Z'
          format: date-time
          type: string
        fees:
          properties:
            integratorFee:
              description: The integrator fee portion.
              example:
                bpsRate: '0'
                currency: usdc
                fixedAmount: '0.00'
                totalAmount: '0.00'
              properties:
                bpsAmount:
                  description: >-
                    The sum of the individually rounded percentage-based fee
                    components.
                  example: '0.10'
                  type: string
                bpsRate:
                  description: The BPS rate of the fee.
                  example: '10'
                  type: string
                currency:
                  description: The currency of the fee.
                  enum:
                    - usdc
                    - usdt
                    - eurc
                    - usd
                    - eur
                    - brl
                    - mxn
                    - mxn
                  example: brl
                  type: string
                fixedAmount:
                  description: The fixed amount of the fee.
                  example: '1.00'
                  type: string
                totalAmount:
                  description: The total amount of the fee applied to the source amount.
                  example: '1.10'
                  type: string
              required:
                - fixedAmount
                - bpsRate
                - bpsAmount
                - totalAmount
                - currency
              type: object
            platformFee:
              description: The platform fee portion.
              example:
                bpsRate: '20'
                currency: usdc
                fixedAmount: '0.00'
                totalAmount: '2.00'
              properties:
                bpsAmount:
                  description: >-
                    The sum of the individually rounded percentage-based fee
                    components.
                  example: '0.10'
                  type: string
                bpsRate:
                  description: The BPS rate of the fee.
                  example: '10'
                  type: string
                currency:
                  description: The currency of the fee.
                  enum:
                    - usdc
                    - usdt
                    - eurc
                    - usd
                    - eur
                    - brl
                    - mxn
                    - mxn
                  example: brl
                  type: string
                fixedAmount:
                  description: The fixed amount of the fee.
                  example: '1.00'
                  type: string
                totalAmount:
                  description: The total amount of the fee applied to the source amount.
                  example: '1.10'
                  type: string
              required:
                - fixedAmount
                - bpsRate
                - bpsAmount
                - totalAmount
                - currency
              type: object
          required:
            - integratorFee
            - platformFee
          type: object
        id:
          description: A unique identifier for the quote.
          example: quote_d243ab2b1de4447d8a046d87fefe58cf
          pattern: ^quote_[a-z0-9]+$
          type: string
        quoteDurationSeconds:
          description: RFQ-only quote duration in seconds.
          example: 45
          exclusiveMinimum: true
          minimum: 0
          type: integer
        referenceSide:
          description: RFQ-only side whose amount was referenced for pricing.
          enum:
            - source
            - destination
          example: source
          type: string
        source:
          properties:
            amount:
              description: The source amount.
              example: '100.00'
              type: string
            currency:
              description: The source currency.
              enum:
                - usdc
                - usdt
                - eurc
                - usd
                - eur
                - brl
                - mxn
                - mxn
              example: usdc
              type: string
            network:
              description: The source network.
              example: polygon
              oneOf:
                - description: A blockchain network.
                  enum:
                    - sol
                    - fogo
                    - ethereum
                    - arbitrum
                    - polygon
                    - base
                    - avalanche
                    - sui
                    - noble
                    - sei
                    - tron
                    - starknet
                    - aptos
                    - hyperliquid
                  example: polygon
                  type: string
                - enum:
                    - wire
                    - ach
                    - achPush
                    - achPull
                    - achSameDay
                    - swift
                    - sepa
                    - pix
                    - spei
                    - spei
                  type: string
          required:
            - currency
            - network
            - amount
          type: object
        status:
          description: The current status of the quote.
          enum:
            - active
            - used
            - expired
          example: active
          type: string
        type:
          description: The transfer type this quote is for.
          enum:
            - on_ramp
            - off_ramp
            - fiat_to_fiat
          example: off_ramp
          type: string
        updated:
          description: The datetime the quote was last updated.
          example: '2025-01-01T00:00:30.000Z'
          format: date-time
          type: string
      required:
        - id
        - status
        - type
        - customerId
        - fees
        - source
        - destination
        - expiresAt
        - created
        - updated
      type: object
    ProblemDetailsDto:
      properties:
        code:
          type: string
        correlationId:
          type: string
        detail:
          type: string
        errors:
          items:
            properties:
              detail:
                type: string
              header:
                type: string
              parameter:
                type: string
              pointer:
                type: string
            required:
              - detail
            type: object
          type: array
        status:
          type: integer
        title:
          type: string
      required:
        - status
        - detail
      type: object
  securitySchemes:
    bearer:
      bearerFormat: JWT
      scheme: bearer
      type: http

````