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

# Pré-visualizar pagamento por QR Pix

> Valida um QR Pix e retorna os dados financeiros para revisão antes do pagamento.

## Caso de uso

Use esta operação para obter os dados do QR Pix e revisar o pagamento antes de confirmá-lo.

## Autenticação

* `x-client-id`
* `x-client-secret`
* `x-turbofy-timestamp`
* `x-turbofy-signature`
* Escopo `payout:write`

A assinatura HMAC é obrigatória em todos os ambientes, inclusive local e teste. Assine o corpo exato que enviar.

## Requisitos

* O merchant e o tipo de QR precisam estar habilitados após homologação.
* `qrCode` contém o texto lido do QR Pix.
* `qrCode` aceita até 4096 caracteres.
* `amountCents`, quando enviado, deve ser um inteiro positivo de até `1500000` centavos.

Corpo mínimo:

```json theme={null}
{
  "qrCode": "<conteudo-do-QR-Pix>"
}
```

## Resposta

Em `200`, a resposta contém `previewId`, `expiresAt`, `qrType`, `recipient.name`, `recipient.documentMasked`, `amountCents`, `feeCents`, `totalDebitedCents` e `currency`. O documento do recebedor é mascarado. A moeda é `BRL`.

O campo `qrType` identifica o tipo como `STATIC`, `DYNAMIC_IMMEDIATE` ou `DYNAMIC_DUE_DATE`. A API só aceita QR Codes cujos dados sejam coerentes e cujo merchant e tipo estejam habilitados após homologação.

## Erros

* `409`: prévia expirada ou divergência encontrada ao usar a prévia.
* `422 PIX_QR_UNVERIFIED`: QR inválido, não verificado, não suportado ou ambíguo.
* `422 PIX_QR_AMOUNT_MISMATCH`: o valor enviado diverge do valor identificado no QR.
* `422 PIX_QR_EXPIRED`: o QR expirou.
* `422 PIX_QR_TYPE_UNAVAILABLE`: o tipo de QR não está disponível.
* `422 PIX_QR_AMOUNT_OUT_OF_RANGE`: o valor está fora do intervalo permitido.
* `503 PIX_QR_UNAVAILABLE`: serviço indisponível ou recurso desabilitado para o merchant ou tipo de QR.

## Próximos passos

1. Revise o recebedor, o valor, a tarifa e o total debitado na prévia.
2. Após a confirmação do cliente, use [Solicitar pagamento por QR Pix](https://docs.turbofypay.com/pages/reference/payouts/solicitar-pagamento-qr-pix.md).


## OpenAPI

````yaml POST /v1/payouts/pix-qr/preview
openapi: 3.0.3
info:
  title: Turbofy Public API
  version: 2.0.0
  description: >-
    Especificacao publica da API TurbofyPay para Cobranca PIX, Saldo, Saques,
    Webhooks e Payouts.
  contact:
    name: Turbofy Team
    email: suporte@turbofy.com
    url: https://turbofy.com
  license:
    name: Proprietary
    url: https://turbofy.com/terms
servers:
  - url: http://localhost:3030
    description: Development Server
  - url: https://api.turbofypay.com
    description: Production Server
security: []
tags:
  - name: Cobranca PIX
    description: Operacoes de cobranca PIX para integradores.
  - name: Saques
    description: Operacoes de saque para sellers.
  - name: Webhooks
    description: Cadastro e consulta de webhooks.
  - name: Payouts
    description: Gestao de lotes de payout.
  - name: Saldo
    description: Consulta do proprio saldo com credenciais de integracao.
externalDocs:
  description: Documentação completa
  url: https://docs.turbofy.com
paths:
  /v1/payouts/pix-qr/preview:
    post:
      tags:
        - Payouts
      summary: Pré-visualizar pagamento Pix por QR Code
      description: >-
        Gera uma prévia do pagamento por QR Pix. Requer o escopo payout:write e
        assinatura HMAC válida em todos os ambientes, inclusive local e teste.
      operationId: previewPixQrPayment
      parameters:
        - $ref: '#/components/parameters/XClientId'
        - $ref: '#/components/parameters/XClientSecret'
        - $ref: '#/components/parameters/XTurbofyTimestamp'
        - $ref: '#/components/parameters/XTurbofySignature'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                qrCode:
                  type: string
                  minLength: 1
                  maxLength: 4096
                amountCents:
                  type: integer
                  minimum: 1
                  maximum: 1500000
              required:
                - qrCode
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  previewId:
                    type: string
                    format: uuid
                  expiresAt:
                    type: string
                    format: date-time
                  qrType:
                    type: string
                    enum:
                      - STATIC
                      - DYNAMIC_IMMEDIATE
                      - DYNAMIC_DUE_DATE
                  recipient:
                    type: object
                    additionalProperties: false
                    properties:
                      name:
                        type: string
                      documentMasked:
                        type: string
                    required:
                      - name
                      - documentMasked
                  amountCents:
                    type: integer
                    minimum: 0
                  feeCents:
                    type: integer
                    minimum: 0
                  totalDebitedCents:
                    type: integer
                    minimum: 0
                  currency:
                    type: string
                    enum:
                      - BRL
                required:
                  - previewId
                  - expiresAt
                  - qrType
                  - recipient
                  - amountCents
                  - feeCents
                  - totalDebitedCents
                  - currency
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '409':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
        '503':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  error:
                    type: object
                    additionalProperties: false
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
      security:
        - clientCredentials: []
          clientSecret: []
components:
  parameters:
    XClientId:
      name: x-client-id
      in: header
      required: true
      schema:
        type: string
      description: Identificador do integrador.
    XClientSecret:
      name: x-client-secret
      in: header
      required: true
      schema:
        type: string
      description: Segredo de autenticacao do integrador.
    XTurbofyTimestamp:
      name: x-turbofy-timestamp
      in: header
      required: true
      schema:
        type: string
      description: Timestamp utilizado na assinatura HMAC.
    XTurbofySignature:
      name: x-turbofy-signature
      in: header
      required: true
      schema:
        type: string
      description: Assinatura HMAC SHA-256 da requisicao.
  securitySchemes:
    clientCredentials:
      type: apiKey
      in: header
      name: x-client-id
      description: Client ID fornecido pela TurbofyPay.
    clientSecret:
      type: apiKey
      in: header
      name: x-client-secret
      description: Client Secret fornecido pela TurbofyPay.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.