logo
Conversões

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.

Avatar for undefined
CodeQR Team
Equipe de Conteúdo

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çõesIntegraçõesStripe, mais o script no seu site.

Antes de começar

Passos

  1. Abra ConfiguraçõesIntegrações, encontre o Stripe em Payments e conecte.
  2. No seu site, acrescente ?codeqr_client_reference_id=1 ao link de checkout do Stripe:
<a href="https://buy.stripe.com/xxxxxxxx?codeqr_client_reference_id=1">Comprar agora</a>
  1. Quando o visitante clica, a CodeQR reescreve esse parâmetro para o client_reference_id do Stripe, levando o ID do clique para dentro da sessão.
  2. 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.

Artigos relacionados