Skip to main content
A BukioPay utiliza transações do tipo PIX_IN para processar cobranças PIX de forma simples e segura. Esta página explica o ciclo de vida completo de uma transação PIX, incluindo as mudanças de status, os campos mais importantes da resposta e as melhores práticas para integrar os pagamentos.

O que é uma transação PIX

Uma transação PIX_IN é uma solicitação de pagamento que gera dois recursos para o cliente:
  • QR Code — imagem que pode ser escaneada pelo aplicativo bancário.
  • Código Copia e Cola — código de texto que pode ser inserido manualmente no aplicativo bancário.
A transação é criada usando:
No corpo da requisição, envie type: "PIX_IN". Após o pagamento, a confirmação é recebida pela BukioPay e o status da transação é atualizado para COMPLETED.
Pagamentos PIX no Brasil normalmente são confirmados em segundos e funcionam 24 horas por dia, 7 dias por semana, incluindo feriados.

Ciclo de vida

Toda transação PIX possui um status que representa sua situação atual. O fluxo mais comum é:
Quando uma cobrança não paga é cancelada:
Quando a criação falha definitivamente:
Nunca libere um produto, serviço ou acesso apenas porque a transação foi criada. Libere somente após receber o evento payment.paid ou confirmar que o status da transação é COMPLETED.

Campos importantes

Ao criar ou consultar uma transação, a API retorna os seguintes campos principais dentro do objeto data:
Os endpoints de consulta e cancelamento exigem o UUID interno retornado no campo data.id. Não utilize externalReference como parâmetro :id.

Exemplo de resposta

Exibindo o QR Code

O campo payment.qrcodeUrl contém uma Data URL completa e pode ser utilizado diretamente no atributo src de uma imagem:
Se você utilizar payment.qrCodeBase64, adicione o prefixo data:image/png;base64,:
Quando include_qr_image for false na criação da transação, os campos relacionados à imagem podem ser null. O campo payment.copyPaste continua disponível para pagamento.

Exibindo o código Copia e Cola

Para facilitar o pagamento, exiba o código em um campo somente leitura com um botão de cópia:

Consultando uma transação

Para consultar uma transação específica, utilize o UUID interno retornado em data.id:
Exemplo:
A API Key precisa ter o escopo transaction.verify.

Cancelando uma transação

Para cancelar uma transação que ainda não foi concluída, utilize:
Exemplo:
A API Key precisa ter o escopo transaction.create.
Não é possível cancelar uma transação com status COMPLETED. O cancelamento também não representa o estorno de um pagamento concluído.

Confirmação por webhook

Utilize webhooks para receber atualizações em tempo real sobre a transação. Os principais eventos são:
Use o evento payment.paid como forma principal de confirmação. A consulta por GET /api/v1/transactions/:id deve ser utilizada para conferência e reconciliação, não para polling contínuo.

Boas práticas

Nunca libere um produto, serviço ou acesso apenas porque a transação foi criada. Aguarde o evento payment.paid ou confirme que o status retornado por GET /api/v1/transactions/:id é COMPLETED.
O mesmo evento pode ser entregue novamente. Registre o identificador da entrega e ignore reprocessamentos para evitar liberar o mesmo pedido mais de uma vez.
Utilize webhooks para receber atualizações em tempo real. Consulte o endpoint de detalhes apenas quando precisar conferir ou reconciliar uma transação.
Após o cancelamento ou a expiração, não exiba novamente o mesmo código Copia e Cola. Crie uma nova transação para gerar um novo pagamento.
Se a criação retornar PaymentCreationUnknown, a cobrança pode ter sido criada e permanecerá em reconciliação. Consulte a transação retornada em data.id e não crie outra imediatamente.

Pronto para começar? Consulte a referência completa dos endpoints de Transações PIX. Ver endpoint para criar uma Transação PIX →