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

# Decode PIX Code

> Lê um código copia e cola (BR Code) e devolve o que há dentro dele SEM mover dinheiro: destino, valor, se o valor é fixo e a taxa que será somada. É o passo recomendado antes de POST /v1/payouts com method "pix_code": o pagamento é imediato e não tem cancelamento, então descobrir destino e valor pela resposta do pagamento é tarde. Usa o mesmo escopo do pagamento (saques.pix). Não disponível em sandbox.



## OpenAPI

````yaml /api-reference/openapi.yaml post /v1/payouts/decode
openapi: 3.1.0
info:
  title: PurinCash API
  version: 1.0.0
servers:
  - url: https://api.purincash.com
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Cartao
    description: Pagamentos no cartao de credito.
  - name: Cobrancas
    description: Cobrancas PIX avulsas com valor livre.
  - name: Entregas
    description: Conteudo entregue automaticamente apos o pagamento.
  - name: Disputas
    description: Contestacoes (MED) e envio de evidencias.
  - name: Pagamentos
    description: Pagamentos PIX e LTC vinculados ou nao a um produto.
  - name: Saques
    description: Saques em PIX, LTC e USDT.
  - name: Produtos
    description: Produtos de cobranca criados pela API.
  - name: Sandbox
    description: Simulacao de pagamentos e saldo de teste.
  - name: Splits
    description: Cobrancas divididas entre varias contas.
  - name: Loja
    description: Produtos da loja do Discord (somente leitura).
  - name: Subcontas
    description: Ledger de saldo por cliente do integrador.
  - name: Assinaturas
    description: PIX recorrente.
  - name: Carteira
    description: Saldo, retencoes e valores a liberar.
paths:
  /v1/payouts/decode:
    post:
      tags:
        - Saques
      summary: Decode PIX Code
      description: >-
        Lê um código copia e cola (BR Code) e devolve o que há dentro dele SEM
        mover dinheiro: destino, valor, se o valor é fixo e a taxa que será
        somada. É o passo recomendado antes de POST /v1/payouts com method
        "pix_code": o pagamento é imediato e não tem cancelamento, então
        descobrir destino e valor pela resposta do pagamento é tarde. Usa o
        mesmo escopo do pagamento (saques.pix). Não disponível em sandbox.
      operationId: decodePayoutCode
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - brCode
              properties:
                brCode:
                  type: string
                  description: O copia e cola completo, como veio do recebedor.
            example:
              brCode: 00020126580014BR.GOV.BCB.PIX0136...
      responses:
        '200':
          description: Código lido.
          content:
            application/json:
              schema:
                type: object
                properties:
                  valid:
                    type: boolean
                    description: Sempre true nesta resposta.
                  isDynamic:
                    type: boolean
                    description: >-
                      true quando o código aponta para uma cobrança no banco em
                      vez de carregar os dados. Nesse caso é a leitura que
                      resolve valor e destino.
                  amount:
                    type:
                      - number
                      - 'null'
                    description: >-
                      Valor do código em BRL. null quando o código não traz
                      valor e a leitura também não resolveu.
                  amountLocked:
                    type: boolean
                    description: >-
                      O código fixa o valor. Quando false, é você quem informa
                      amount no pagamento.
                  dynamicResolved:
                    type: boolean
                    description: >-
                      Em código dinâmico, indica se o valor veio de fonte
                      autoritativa. false com amount null significa "não deu
                      para ler agora", diferente de "não tem valor".
                  dynamicError:
                    type: string
                    description: Motivo da leitura não ter resolvido, quando houver.
                  fee:
                    type: number
                    description: >-
                      Taxa que será SOMADA ao valor do código. O débito do
                      pagamento é amount + fee.
                  pixKey:
                    type: string
                    description: Chave de destino, quando o código a carrega.
                  merchantName:
                    type: string
                    description: Nome no código.
                  merchantCity:
                    type: string
                    description: Cidade no código.
                  receiverName:
                    type: string
                    description: Nome de quem recebe, confirmado na leitura.
                  receiverDocument:
                    type: string
                    description: >-
                      Documento de quem recebe, MASCARADO (ex.
                      12.***.***/0001-**). Serve para a pessoa conferir o
                      destino na tela, não para cadastro.
                  payerName:
                    type: string
                    description: Pagador indicado na cobrança
                    quando houver.: null
                  payerDocument:
                    type: string
                    description: Documento do pagador indicado
                    quando houver.: null
                  txid:
                    type: string
                    description: Identificador da cobrança
                    quando o código o carrega.: null
                  description:
                    type: string
                    description: Descrição no código
                    quando houver.: null
                  createdAt:
                    type: string
                    description: Criação da cobrança
                    quando informada.: null
                  expiresAt:
                    type: string
                    description: Vencimento da cobrança
                    quando informado.: null
                  chargeStatus:
                    type: string
                    description: Situação da cobrança no banco
                    quando informada.: null
              example:
                valid: true
                isDynamic: false
                amount: 149.9
                amountLocked: true
                pixKey: financeiro@fornecedor.com
                merchantName: FORNECEDOR LTDA
                receiverName: FORNECEDOR LTDA
                receiverDocument: 12.***.***/0001-**
                txid: PEDIDO123
                expiresAt: ''
                dynamicResolved: false
                dynamicError: ''
                fee: 1
        '400':
          description: >-
            Código inválido, destino que não pode ser pago por aqui (blocked
            true), ou chamada com chave ps_test_ (não disponível em sandbox).
          content:
            application/json:
              schema:
                type: object
                properties:
                  valid:
                    type: boolean
                  blocked:
                    type: boolean
                  blockReason:
                    type: string
                  error:
                    type: string
              example:
                valid: false
                error: Código PIX inválido.
        '401':
          description: Chave de API ausente, inválida ou sem o escopo saques.pix.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Chave de API gerada no dashboard da PurinCash (ps_live_ ou ps_test_).

````