endToEndId, depois executa o pagamento com esse identificador.
Esse fluxo serve tanto para QR Codes Estáticos quanto para QR Codes Dinâmicos (imediatos e com vencimento). O que muda entre eles é o initiationType que você usa no segundo passo — e a API já te diz qual usar na resposta do primeiro passo.
Passo a passo
1
Inicialize o pagamento com o payload do QR Code
Envie o payload (o conteúdo textual do QR Code, também chamado de “copia e cola”) para o endpoint de inicialização. A API decodifica o payload, valida a cobrança e retorna os dados necessários para executar o pagamento.
Guarde os valores
endToEndId, transactionId e initiationType da resposta — você vai precisar dos três no próximo passo. O initiationType já está no formato correto para usar diretamente na transferência.2
Confirme os dados da cobrança
Antes de executar o pagamento, valide os dados retornados:
statusdeve serACTIVE. Se forCONCLUDED, o QR Code já foi pago. Se forREMOVED_BY_THE_RECEIVERouREMOVED_BY_PSP, ele foi cancelado.amounté o valor da cobrança. SeallowChangeAmountfortrue, o pagador pode alterar o valor.beneficiary— confirme que o recebedor é quem você espera.expirationTime— para QR Codes Dinâmicos, verifique se o código ainda está dentro do prazo.
3
Execute a transferência
Com os dados da inicialização em mãos, execute o pagamento. Use o
initiationType exatamente como veio na resposta anterior.Mapeamento do initiationType
O campotype retornado pela inicialização indica o tipo do QR Code. O campo initiationType já traz o valor pronto para usar no transfer — mas é importante entender o mapeamento:
Use sempre o
initiationType que veio na resposta da inicialização — não derive o valor pelo type.
Referência da API
Inicializar pagamento por QR Code
POST /pix/qrcode/payment-initializationExecutar transferência
POST /transfers
