Skip to main content

Visão geral

O cash-out por QR Code processa um pagamento a partir de uma string EMV (pix copia e cola) — o código que começa com 000201.... O ciclo de vida e os webhooks são idênticos ao cash-out por chave; a diferença está no payload de criação. Use este fluxo quando:
  • O destinatário fornece um QR Code estático ou dinâmico.
  • Você precisa pagar uma cobrança Pix emitida por terceiros.
  • O valor já está codificado na string EMV.

Criar o pagamento

curl -X POST https://api.clearpago.com.br/api/pix/cash-out-qrcode \
  -H "Authorization: Bearer <seu_api_token>" \
  -H "Content-Type: application/json" \
  -H "X-Correlation-ID: req-qrpay-001" \
  -d '{
    "value": 99.90,
    "externalId": "pagamento-qr-456",
    "qrCode": "00020101021226870014br.gov.bcb.pix2565...",
    "description": "Pagamento via QR Code",
    "name": "Loja XYZ",
    "document": "00.000.000/0001-00"
  }'
Resposta 201:
{
  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "status": "CREATED",
  "externalId": "pagamento-qr-456"
}

Campos

CampoObrigatórioNotas
valueSimValor em BRL a pagar. Deve ser consistente com o QR.
externalIdSimÚnico por operação. 409 em duplicata.
qrCodeSimString EMV completa (pix copia e cola).
descriptionNãoDescrição interna da operação.
nameNãoNome do beneficiário para referência.
documentNãoCPF/CNPJ do beneficiário.
Atenção ao campo value: O valor informado deve ser coerente com o valor codificado no QR Code. QR Codes com valor fixo não permitem alteração. TODO: confirmar validação de consistência de valor com a spec.

Diferenças em relação ao cash-out por chave

AspectoCash-out por chaveCash-out por QR Code
RotaPOST /api/pix/cash-outPOST /api/pix/cash-out-qrcode
Estrutura do corpotransaction + recipient aninhadoscampos na raiz
EndereçamentopixKey + pixKeyTypeqrCode (string EMV)
Ciclo de vidaIdênticoIdêntico
Webhookspix_cash_out, pix_cash_out_reversalpix_cash_out, pix_cash_out_reversal

Ciclo de vida e webhooks

O ciclo de vida é o mesmo do cash-out por chave:
  1. 201 com estado inicial (CREATED, RESERVED, etc.).
  2. Despacho ao BaaS.
  3. Webhook pix_cash_out com CONFIRMED ou FAILED.
  4. Em caso de reversão posterior: webhook pix_cash_out_reversal com REVERSED.
Consulte Enviar Pix por chave para detalhes do pipeline, estados ambíguos e reconciliação.

Cuidados práticos

  • QR expirado: se o QR Code já expirou, a criação falhará com 4xx ou o BaaS rejeitará. Obtenha uma nova string EMV junto ao emissor.
  • QR já pago: QR Codes dinâmicos de uso único são rejeitados se já foram liquidados.
  • Não reutilize externalId: cada tentativa de pagamento deve usar um externalId distinto.

Referências