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

# Cotação rápida

> Alternativa de cotação via query params (útil para integrações client-side simples). Equivalente a `POST /quote/payin` ou `POST /quote/payout`.



## OpenAPI

````yaml GET /orders/quote
openapi: 3.1.0
info:
  title: Astron Pay API
  version: 1.0.0
  description: >-
    API B2B para integração de câmbio crypto ↔ BRL via PIX. Autentique com
    `x-api-key` + `x-api-secret`.
  contact:
    name: Astron Pay
    url: https://astronpay.co
    email: dev@astronpay.co
servers:
  - url: https://api.astronpay.co/api/v1
    description: Production
security:
  - apiKey: []
    apiSecret: []
  - bearerAuth: []
tags:
  - name: Fee Tiers
    description: Consulta e atualização das taxas do merchant.
  - name: Receivers
    description: CRUD, KYC, limites e wallet signing dos receivers.
  - name: Quote
    description: Cotações de payin e payout.
  - name: Payin
    description: Ordens de entrada (BRL → crypto).
  - name: Payout
    description: Ordens de saída (crypto → BRL).
  - name: Orders
    description: Consulta genérica de ordens.
  - name: Merchant Wallet
    description: Assinatura de transações com a wallet gerenciada do merchant.
  - name: Ledger
    description: Saldos, entries e liquidações.
  - name: Webhook Config
    description: Configuração de webhook e listagem de eventos.
paths:
  /orders/quote:
    get:
      tags:
        - Orders
      summary: Cotação rápida via query params
      description: >-
        Alternativa de cotação via query params (útil para integrações
        client-side simples). Equivalente a `POST /quote/payin` ou `POST
        /quote/payout`.
      parameters:
        - name: type
          in: query
          required: true
          schema:
            type: string
            enum:
              - PAYIN
              - PAYOUT
        - name: receiverId
          in: query
          schema:
            type: string
            format: uuid
        - name: amountBrl
          in: query
          schema:
            type: number
          description: Obrigatório se type=PAYIN.
        - name: amountCrypto
          in: query
          schema:
            type: number
          description: Obrigatório se type=PAYOUT.
        - name: targetToken
          in: query
          schema:
            type: string
            enum:
              - USDC
              - SOL
          description: Token de destino (PAYIN).
        - name: sourceToken
          in: query
          schema:
            type: string
            enum:
              - USDC
              - SOL
          description: Token de origem (PAYOUT).
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PayinQuote'
                  - $ref: '#/components/schemas/PayoutQuote'
                description: >-
                  Formato depende do parâmetro `type`: PAYIN retorna PayinQuote,
                  PAYOUT retorna PayoutQuote.
        '400':
          description: Parâmetros inválidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PayinQuote:
      type: object
      required:
        - quoteId
        - merchantId
        - receiverId
        - amountBrl
        - commercialRate
        - ratePlatform
        - amountToken
        - targetToken
        - expiresAt
      properties:
        quoteId:
          type: string
          format: uuid
        merchantId:
          type: string
          format: uuid
        receiverId:
          type: string
          format: uuid
        amountBrl:
          type: number
          example: 1000
        commercialRate:
          type: string
          description: >-
            Taxa de câmbio comercial (BRL por 1 unidade do token), sem spread da
            plataforma. Valor informativo.
          example: '5.01'
        ratePlatform:
          type: string
          description: >-
            Taxa all-in efetiva (BRL por 1 unidade do token), já incluindo o
            spread da plataforma. É o que determina `amountToken`.
          example: '5.11'
        amountToken:
          type: string
          description: Quantidade do token que o receiver recebe ao final do payin.
          example: '195.69'
        targetToken:
          type: string
          enum:
            - USDC
            - SOL
          example: USDC
        expiresAt:
          type: string
          format: date-time
          description: A cotação expira ~30 segundos após a criação.
    PayoutQuote:
      type: object
      required:
        - quoteId
        - merchantId
        - receiverId
        - amountCrypto
        - sourceToken
        - commercialRate
        - ratePlatform
        - netAmountBrl
        - expiresAt
      properties:
        quoteId:
          type: string
          format: uuid
        merchantId:
          type: string
          format: uuid
        receiverId:
          type: string
          format: uuid
        amountCrypto:
          type: string
          description: Quantidade do token que o receiver depositará.
          example: '200.00'
        sourceToken:
          type: string
          description: 'Token depositado pelo receiver (ex.: USDC, SOL).'
          example: USDC
        commercialRate:
          type: string
          description: Taxa de câmbio comercial (BRL por 1 unidade do token), sem spread.
          example: '5.01'
        ratePlatform:
          type: string
          description: >-
            Taxa all-in efetiva (BRL por 1 unidade do token), já incluindo o
            spread da plataforma. É o que determina `netAmountBrl`.
          example: '4.92'
        netAmountBrl:
          type: string
          description: Valor líquido em BRL que o receiver recebe via PIX.
          example: '984.00'
        expiresAt:
          type: string
          format: date-time
          description: A cotação expira ~30 segundos após a criação.
    Error:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          example: VALIDATION_ERROR
        message:
          type: string
          example: Campo 'amountBrl' é obrigatório
        details:
          type: object
          additionalProperties: true
        requestId:
          type: string
          example: req_abc123
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
    apiSecret:
      type: apiKey
      in: header
      name: x-api-secret
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````