Atribuir pagamentos do Stripe ao link certo
Leve o ID do clique da CodeQR até o Stripe Checkout para que o pagamento concluído seja creditado ao link ou QR code que o gerou, sem escrever código.

O checkout acontece no domínio do Stripe, então o ID do clique precisa viajar junto com o cliente. A CodeQR faz isso pelo próprio client_reference_id do Stripe, o que permite creditar um pagamento a um link sem você escrever código de rastreamento.
Disponibilidade
- Plano: Pro ou superior, ou o teste de 14 dias.
- Onde: Configurações → Integrações → Stripe, mais o script no seu site.
Antes de começar
- Monitoramento de conversão ligado no link ou QR code — Configurar o rastreamento de conversão no seu site.
- Script da CodeQR instalado, para o cookie
cq_idexistir no seu site. - Uma conta Stripe que você possa conectar.
Passos
- Abra Configurações → Integrações, encontre o Stripe em Payments e conecte.
- No seu site, acrescente
?codeqr_client_reference_id=1ao link de checkout do Stripe:
<a href="https://buy.stripe.com/xxxxxxxx?codeqr_client_reference_id=1">Comprar agora</a>
- Quando o visitante clica, a CodeQR reescreve esse parâmetro para o
client_reference_iddo Stripe, levando o ID do clique para dentro da sessão. - Concluído o pagamento, o Stripe avisa a CodeQR e a venda é atribuída.
Nada além disso: você não chama a API nem precisa guardar o ID do clique por conta própria.
Se você monta a sessão de checkout no código
Defina o client_reference_id você mesmo, no formato que a CodeQR lê:
const session = await stripe.checkout.sessions.create({
mode: 'payment',
line_items: [{ price: 'price_123', quantity: 1 }],
client_reference_id: `codeqr_id_${clickId}`,
success_url: 'https://example.com/obrigado',
})clickId é o valor do cookie cq_id no seu site.
O Stripe só aceita letras, números, - e _ nesse campo, com até 200 caracteres, e descarta qualquer outra coisa sem avisar. O formato codeqr_id_… está dentro da regra; um valor com e-mail ou URL não está, e aí o pagamento chega sem origem nenhuma.
O que fica registrado
Um pagamento concluído cria uma venda atribuída ao clique, com o valor e a moeda que o Stripe informa. Se o cliente ainda não tinha um lead, um é criado para a cadeia não ficar quebrada.
Outras plataformas de pagamento
A ideia é a mesma em outros lugares, com outro nome de campo. A Kiwify tem integração própria em Payments. Para o restante — Hotmart, Eduzz, Nuvemshop, checkout próprio — envie a venda pelo seu servidor assim que o pagamento for confirmado, como em Enviar eventos de lead e venda pelo seu servidor.
Verifique se funcionou
Faça um pagamento real pequeno pelo fluxo e confira o link:
curl -sS "https://api.codeqr.io/links/info?domain=go.example.com&key=verao" \ -H "Authorization: Bearer codeqr_xxxxxxxxxxxxxxxxxxxxxxxx"
{ "key": "verao", "clicks": 1, "leads": 1, "sales": 1, "saleAmount": 4990 }Depois abra Clientes: o comprador aparece com a linha do tempo terminando na compra.
Solução de problemas
O pagamento passou e nenhuma venda foi registrada
Confira o client_reference_id na sessão do Stripe. Se estiver vazio, o parâmetro nunca chegou lá — em geral porque o link de checkout foi aberto de uma página que a pessoa alcançou sem passar por um link rastreado, ou porque o seu site remove parâmetros desconhecidos.
O client_reference_id está preenchido, mas em outro formato
O Stripe descarta valores com caracteres fora de letras, números, - e _. Qualquer coisa que a CodeQR não consiga ler como codeqr_id_<clickId> é ignorada.
A venda foi atribuída à campanha errada
O ID do clique no navegador é o mais antigo dentro da janela. Como a CodeQR decide qual clique recebe a venda explica a regra.
O cliente pagou semanas depois de clicar
Funciona, desde que o clique esteja dentro dos trinta dias e o cookie tenha sobrevivido. Safari e bloqueadores encurtam isso na prática — veja Corrigir conversões que não estão sendo registradas.