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

# Consultar saque

> Retorna um saque criado pela conta autenticada. A chave precisa ter permissão de leitura de saque.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/withdrawals/{withdrawalId}
openapi: 3.1.0
info:
  title: TroqPay API
  description: >-
    API da TroqPay para criar cobranças Pix, ler saldo, solicitar saques em
    produção e processar eventos por webhook.
  version: 1.0.0
servers:
  - url: https://api.troqpay.com
    description: >-
      Use a mesma URL-base para teste e produção. O ambiente é definido pela
      chave utilizada (`trq_test_` ou `trq_live_`).
security:
  - bearerAuth: []
tags:
  - name: Checkouts
    description: Criação e consulta de cobranças Pix.
  - name: Payment Links
    description: >-
      Criação, listagem e consulta de links de pagamento a partir de produtos
      cadastrados.
  - name: Saldo
    description: >-
      Leitura do saldo agregado da conta TroqPay (valores em decimal, todos em
      BRL).
  - name: Saques
    description: Criação e consulta de saques em produção.
  - name: Webhooks
    description: Eventos enviados pela TroqPay quando um checkout muda de estado.
  - name: Status
    description: Endpoints públicos para verificar disponibilidade da API.
paths:
  /v1/withdrawals/{withdrawalId}:
    get:
      tags:
        - Saques
      summary: Consultar saque
      description: >-
        Retorna um saque criado pela conta autenticada. A chave precisa ter
        permissão de leitura de saque.
      operationId: getWithdrawal
      parameters:
        - name: withdrawalId
          in: path
          required: true
          description: Identificador do saque retornado na criação.
          schema:
            type: string
            example: wdr_4a8b3c1d5e6f2a9b0c1d
        - $ref: '#/components/parameters/RequestIdHeader'
      responses:
        '200':
          description: Saque encontrado.
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestIdResponseHeader'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Withdrawal'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            A chave não tem permissão para consultar saques ou não tem acesso à
            produção.
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestIdResponseHeader'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Saque não encontrado.
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestIdResponseHeader'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                notFound:
                  summary: Saque inexistente
                  value:
                    error:
                      type: not_found_error
                      code: withdrawal_not_found
                      message: withdrawal not found
                      requestId: req_4a8b3c1d5e6f2a9b0c1d2e3f
        '429':
          $ref: '#/components/responses/RateLimited'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >-
            curl https://api.troqpay.com/v1/withdrawals/wdr_4a8b3c1d5e6f2a9b0c1d
            \
              -H "Authorization: Bearer trq_live_xxx"
        - lang: JavaScript
          label: JavaScript
          source: |-
            const response = await fetch(
              "https://api.troqpay.com/v1/withdrawals/wdr_4a8b3c1d5e6f2a9b0c1d",
              { headers: { "Authorization": "Bearer trq_live_xxx" } }
            );

            const withdrawal = await response.json();
components:
  parameters:
    RequestIdHeader:
      name: Request-Id
      in: header
      required: false
      description: >-
        Identificador opcional fornecido pelo cliente para correlação. A API
        aceita também `X-Request-Id`. O valor é ecoado de volta no header de
        resposta `Request-Id`. Se nenhum dos dois é enviado, a API gera `req_<24
        hex>`.
      schema:
        type: string
        example: req_4a8b3c1d5e6f2a9b0c1d2e3f
  headers:
    RequestIdResponseHeader:
      description: >-
        Identificador da requisição. Sempre presente. Ecoa o valor enviado em
        `Request-Id` ou `X-Request-Id`, ou um identificador gerado pela API no
        formato `req_<24 hex>`.
      schema:
        type: string
        example: req_4a8b3c1d5e6f2a9b0c1d2e3f
  schemas:
    Withdrawal:
      type: object
      required:
        - id
        - livemode
        - rail
        - currency
        - status
        - requestedAmount
        - destination
        - quote
        - requestedAt
        - approvedAt
        - processingAt
        - completedAt
        - failedAt
        - cancelledAt
        - failure
      properties:
        id:
          type: string
          description: Identificador público do saque.
          example: wdr_4a8b3c1d5e6f2a9b0c1d
        livemode:
          type: boolean
          description: Sempre `true` para saques criados pela API.
          example: true
        rail:
          type: string
          enum:
            - BRL_PIX
            - USDT_WALLET
          example: BRL_PIX
        currency:
          type: string
          enum:
            - BRL
          example: BRL
        status:
          $ref: '#/components/schemas/WithdrawalStatus'
        requestedAmount:
          type: string
          description: Valor bruto solicitado em BRL.
          example: '100.00'
        destination:
          $ref: '#/components/schemas/WithdrawalDestination'
        quote:
          anyOf:
            - $ref: '#/components/schemas/WithdrawalQuote'
            - type: 'null'
        requestedAt:
          type: string
          format: date-time
        approvedAt:
          type:
            - string
            - 'null'
          format: date-time
        processingAt:
          type:
            - string
            - 'null'
          format: date-time
        completedAt:
          type:
            - string
            - 'null'
          format: date-time
        failedAt:
          type:
            - string
            - 'null'
          format: date-time
        cancelledAt:
          type:
            - string
            - 'null'
          format: date-time
        failure:
          anyOf:
            - $ref: '#/components/schemas/WithdrawalFailure'
            - type: 'null'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
    WithdrawalStatus:
      type: string
      description: >-
        Estado atual do saque. `INDETERMINATE` indica um saque cujo pagamento
        ficou incerto (por exemplo, timeout ou falha após um passo irreversível)
        e que aguarda confirmação manual.
      enum:
        - REQUESTED
        - APPROVED
        - PROCESSING
        - INDETERMINATE
        - COMPLETED
        - FAILED
        - CANCELLED
    WithdrawalDestination:
      type: object
      required:
        - summary
        - label
      description: Resumo mascarado do destino usado no saque.
      properties:
        summary:
          type: string
          description: Destino mascarado para exibição segura.
          example: Pix CPF • 1234...7890
        label:
          type:
            - string
            - 'null'
          description: Rótulo ou nome associado ao destino, quando disponível.
          example: Maria Silva
    WithdrawalQuote:
      type: object
      required:
        - sourceAmount
        - sourceCurrency
        - withdrawalFeeAmount
        - withdrawalFeeCurrency
        - netSourceAmount
        - netSourceCurrency
        - destinationAmount
        - destinationCurrency
        - quotedRateBrlPerUsdt
        - quotedAt
        - quoteSource
        - network
      description: Resumo financeiro usado para calcular o valor do saque.
      properties:
        sourceAmount:
          type: string
          example: '100.00'
        sourceCurrency:
          type: string
          enum:
            - BRL
        withdrawalFeeAmount:
          type: string
          example: '0.00'
        withdrawalFeeCurrency:
          type: string
          enum:
            - BRL
        netSourceAmount:
          type: string
          example: '100.00'
        netSourceCurrency:
          type: string
          enum:
            - BRL
        destinationAmount:
          type: string
          example: '100.00'
        destinationCurrency:
          type: string
          enum:
            - BRL
            - USDT
        quotedRateBrlPerUsdt:
          type:
            - string
            - 'null'
          description: Taxa BRL/USDT quando o saque for em USDT.
          example: null
        quotedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: Momento da cotação quando aplicável.
        quoteSource:
          type: string
          description: Identificador da regra/cotação aplicada.
          example: BRL_PIX_TERMS_V1
        network:
          type:
            - string
            - 'null'
          description: Rede usada quando o destino for carteira USDT.
          example: null
    WithdrawalFailure:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          example: insufficient_balance
        message:
          type:
            - string
            - 'null'
          example: available balance is insufficient for this withdrawal
    ErrorBody:
      type: object
      required:
        - type
        - code
        - message
        - requestId
      description: >-
        Corpo padronizado de erro da API. As mensagens em `message` chegam em
        inglês — é o que a API emite literalmente.
      properties:
        type:
          type: string
          description: Categoria do erro.
          enum:
            - auth_error
            - validation_error
            - business_error
            - not_found_error
            - conflict_error
            - provider_error
            - rate_limit_error
            - internal_error
          example: validation_error
        code:
          type: string
          description: Código estável para tratar a falha no seu backend.
          example: invalid_request_body
        message:
          type: string
          description: Mensagem legível do erro (em inglês, literal).
          example: Number must be greater than 0
        requestId:
          type: string
          description: Identificador da requisição para logs e investigação.
          example: req_4a8b3c1d5e6f2a9b0c1d2e3f
  responses:
    Unauthorized:
      description: >-
        Chave ausente, mal formatada, inválida ou revogada. A API sempre devolve
        `code: "unauthorized"` em 401.
      headers:
        Request-Id:
          $ref: '#/components/headers/RequestIdResponseHeader'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unauthorized:
              summary: Bearer ausente ou inválido
              value:
                error:
                  type: auth_error
                  code: unauthorized
                  message: invalid or missing bearer token
                  requestId: req_4a8b3c1d5e6f2a9b0c1d2e3f
    RateLimited:
      description: Limite de requisições excedido. Faça retry com backoff.
      headers:
        Request-Id:
          $ref: '#/components/headers/RequestIdResponseHeader'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            rateLimited:
              summary: Limite excedido
              value:
                error:
                  type: rate_limit_error
                  code: rate_limit_exceeded
                  message: Too many requests. Please retry with backoff.
                  requestId: req_4a8b3c1d5e6f2a9b0c1d2e3f
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````