Criadores, infoprodutos e checkouts
Trocar de checkout sem perder a relação com o cliente
Eventos comuns, deduplicação e identidade entre contato e compra reduzem a reconstrução da operação.
Trocar de checkout move o acesso do cliente e deixa a relação comercial para trás. O aluno importado por arquivo na Hotmart entra na área de membros sem transação atrelada e fica fora dos relatórios de vendas. Base de compradores, histórico de pedidos e lista de assinaturas saem em CSV nas sete plataformas brasileiras verificadas, e cartão tokenizado e mandato de cobrança recorrente não saem em nenhuma: o assinante recontrata. A Stripe publica o procedimento inverso, com PCI DSS Level 1, atestado de conformidade e chave PGP de 4096 bits do lado receptor, e recomenda virar por coexistência, sem corte. O prazo manda no cronograma: a disputa de recorrência tem 120 dias nas regras de Visa e Mastercard, o histórico de webhook da Hotmart dura 60, e a parcela do plano anual continua sendo cobrada mesmo depois do cancelamento.
17 minutos de leitura Revisão em Brasil GEO, responsável editorial
O aluno chega do outro lado sem passado
A troca de checkout é planejada como troca de fornecedor de cobrança. Exporta-se a base num arquivo, importa-se do outro lado, redireciona-se o link de venda e avisa-se a lista. A operação que nasce do outro lado tem os mesmos nomes e os mesmos e-mails. O que ela perde é o registro que fazia daquele nome um comprador.
A Hotmart descreve essa perda no artigo em que ensina a importar alunos por arquivo. O usuário que entra por importação existe na área de membros e não existe no relatório de vendas. Ele recebe o conteúdo, e a operação nova não consegue dizer quanto ele já pagou, quando, por qual oferta, nem se pediu reembolso alguma vez.
O que atravessa a virada e o que fica para trás
-
Sai nas sete plataformas
Exportação publicada em CSV ou XLS
- Nome e endereço de e-mail do comprador
- Histórico de pedidos, com status e valor
- Lista de assinaturas ativas, como lista de registros
- Acesso do aluno à área de membros, por importação de arquivo
-
Sai quando foi coletado
O campo existe na especificação e pode não existir no dado
- Documento, CPF ou CNPJ
- Telefone com código de área
- Endereço completo
- Identificador do comprador no seu próprio sistema, publicado por duas das sete
-
Não sai em nenhuma
Sem procedimento publicado de saída
- Cartão tokenizado do assinante
- Mandato de cobrança da assinatura ativa
- O histórico comercial do aluno importado, que chega sem transação
A coluna do meio depende do checkout de origem: os campos de identidade existem na especificação e só chegam ao dado se tiverem sido pedidos na página de pagamento.
A frase que define o problema
A Hotmart publica, no artigo sobre importar alunos: "Usuários importados, por não possuir uma transação atrelada, não são mostrados nos relatórios de vendas. Detalhes destes usuários são mostrados apenas na gestão de usuários da área de membros ou do curso ao qual foram importados."
O mesmo artigo acrescenta duas restrições operacionais. A linha sem nome ou e-mail não entra no arquivo, e a correção posterior do e-mail depende do atendimento: "Caso seja necessário alterar o e-mail ou dados de um aluno importado, apenas a equipe de atendimento pode fazer isso."
Quem importa mil alunos assume, portanto, mil cadastros que ninguém do time consegue corrigir sozinho, e nenhum deles conta como venda em relatório.
A consequência aparece no primeiro relatório do mês seguinte. Quem separava clientes por faixa de gasto, por recência de compra ou por número de produtos comprados perde os três critérios de uma vez, e a segmentação da automação passa a operar sobre uma lista plana. A régua de pós-venda dispara para quem já comprou de novo, e a oferta de entrada chega a quem tem quatro anos de casa.
Teto por lote nas duas importações de acesso que publicam número
Registros aceitos por lote de importação
Cada número é o teto de um lote. Uma base de milhares exige repetir o lote várias vezes. A Monetizze avisa que "a migração não acontece de forma automática".
Nenhuma das duas importações cria cobrança. Elas entram e-mail e liberam conteúdo, e por isso o assinante importado precisa comprar de novo para voltar a pagar. Essa recompra é a parte mais cara da virada.
Assinatura ativa não migra: o cliente recontrata
A cobrança recorrente já contratada não continua rodando na plataforma nova. Ela termina onde nasceu, e cada assinante precisa digitar o cartão outra vez, em checkout novo, para voltar a pagar. A Pagar.me explica o mecanismo com precisão: "Cada carteira é exclusiva de um lojista (Account). Desta forma, um lojista não tem acesso à carteira de outro mesmo que estejam dentro de um mesmo cliente (Merchant) no Pagar.me." O cartão não trafega nem entre duas contas da mesma empresa.
As demais confirmam o modelo pelo caminho que oferecem para trocar o meio de pagamento. Na Greenn, o produtor gera um link de checkout novo e o envia ao cliente, que executa a troca. A API da Eduzz cancela assinatura em massa e dispara o e-mail que pede o cartão ao cliente. Criar assinatura ela não faz. A plataforma não move o token: ela convoca o titular.
O caminho real da virada, etapa por etapa
-
1
Exportar a base
CSV ou XLS no checkout velho, com nome, e-mail e histórico de pedidos.
-
2
Importar o acesso
Entra e-mail e libera conteúdo, em lotes de 100 ou 200 registros.
-
3
Recontratar a cobrança
O cliente digita o cartão de novo, em checkout novo, e aceita de novo.
-
4
Conviver com a cauda
Reembolso, disputa e parcelas remanescentes seguem chegando pelo checkout velho.
-
5
Só então desligar
O corte da conta antiga vem depois do último prazo aplicável.
A etapa 3 é a única que depende de ação do cliente, e é ela que define a perda da virada.
O efeito financeiro dessa etapa é imediato e assimétrico. A base de assinantes sai do relatório de receita recorrente no dia do corte e volta no ritmo da captação, com o custo de aquisição vigente aplicado a clientes que já eram seus no mês anterior. É esse valor que decide se a virada compensa, com peso maior que o da mensalidade da plataforma.
Peça o procedimento de saída antes de assinar a entrada
Antes de contratar a plataforma nova, peça por escrito o que ela faz com a base de assinantes de quem sai: existe exportação de credencial de cartão para processador certificado, existe janela de coexistência, existe prazo.
A resposta mais provável é que não existe procedimento. Registrada por escrito, ela deixa de ser surpresa e vira linha de orçamento: a receita recorrente inteira precisa ser reconquistada ao custo de aquisição do momento da virada.
Com esse número na mão, a comparação entre plataformas muda de eixo. Mensalidade e taxa por transação são custo de operação; ausência de saída para a recorrência é custo de troca, e ele só é cobrado uma vez, de uma vez só.
A norma do cartão não é o obstáculo
A explicação corrente para a assinatura não migrar é a norma do setor de cartões: dado de cartão é regulado, tokenizado, intransferível. A Stripe publica o procedimento de saída do cartão do cliente para outro processador, com requisitos nomeados e conferíveis, e abre a página com uma declaração de posição: "We believe our customers own the sensitive data they entrust to Stripe."
- O processador que vai receber precisa ter certificação PCI DSS Level 1, e a Stripe declara que só transfere para quem a tem.
- Ele apresenta o Attestation of Compliance vigente, ou comprova listagem no Visa Global Registry of Service Providers.
- Ele publica uma chave pública PGP de 4096 bits ou mais, servida por HTTPS em domínio referenciado no próprio atestado ou na listagem da Visa.
- A Stripe prepara um arquivo JSON criptografado com os dados do cartão, os endereços de e-mail e os metadados anexados.
- As credenciais salvas via Link ficam de fora, e a exclusão está declarada na mesma página.
Certificação de nível 1, atestado de conformidade e chave pública de 4096 bits são requisitos que qualquer adquirente ou instituição de pagamento brasileira pode cumprir ou exigir. O que separa a Stripe das sete plataformas verificadas é ter um procedimento escrito, com contraparte nomeada e critério de aceitação. O obstáculo à portabilidade da recorrência está no que se publica. A norma do cartão já tem caminho aberto.
A virada por coexistência, no desenho que a Stripe publica
-
1
Cliente novo entra no checkout novo
A cobrança nova nasce inteira na plataforma de destino.
-
2
Cliente antigo segue no checkout velho
A recorrência já contratada continua sendo cobrada onde nasceu.
-
3
A migração do dado sensível corre em paralelo
Solicitação formal, executada de forma compatível com a norma de cartões.
A frase que interessa ao cronograma está na mesma página: "Esse processo permite aceitar e cobrar novos clientes na Stripe e continuar cobrando os clientes atuais com o processador atual até que a migração seja concluída. Seus clientes não incorrem em nenhum tempo de inatividade." Mesmo sem transferência de credencial, a arquitetura de dois checkouts em paralelo é reproduzível em qualquer plataforma, e resolve de saída a janela de risco que o corte seco abre.
Cinco eventos, sete vocabulários diferentes
A integração entre checkout e automação se apoia em cinco eventos: compra aprovada, reembolso, chargeback, assinatura cancelada e carrinho abandonado. Trocar de checkout sem reconstruir a automação depende de os cinco existirem dos dois lados, com nome próprio e payload estável. Esse vocabulário mínimo não é universal.
| Plataforma | Compra aprovada | Reembolso | Chargeback | Assinatura cancelada | Carrinho abandonado |
|---|---|---|---|---|---|
| Hotmart | PURCHASE_APPROVED | PURCHASE_REFUNDED | PURCHASE_CHARGEBACK, além de PURCHASE_PROTEST | SUBSCRIPTION_CANCELLATION | PURCHASE_OUT_OF_SHOPPING_CART |
| Kiwify | compra_aprovada | compra_reembolsada | chargeback | subscription_canceled | carrinho_abandonado |
| Greenn | paid | refunded | chargedback | contractUpdated com canceled | checkoutAbandoned |
| Eduzz | Evento de fatura paga | Sim | Sim | Chega como motivo de evento de contrato | Evento próprio de abandono |
| Monetizze | Evento 2 | Evento 4, "Devolvida" | Sem código próprio, cai no evento 4 | Evento 103 | Evento 7 |
| Pagar.me | order.paid, charge.paid, invoice.paid | charge.refunded | charge.chargedback | subscription.canceled | Não se aplica, é gateway |
| Nuvemshop | order/paid | Não há, existem order/cancelled e order/voided | Não há na lista de eventos | Só subscription/updated | Não há, só por consulta periódica |
A leitura por linha mostra quatro plataformas cobrindo os cinco eventos. A leitura por coluna mostra onde a reconstrução acontece. Chargeback tem evento próprio em quatro das sete, e a Nuvemshop deixa de fora reembolso, chargeback e carrinho abandonado de uma vez, com o carrinho acessível apenas por consulta periódica ao recurso de checkout abandonado.
Quantos dos cinco eventos mínimos cada plataforma nomeia
Eventos com nome próprio publicado, de cinco
A meia unidade da Nuvemshop registra que subscription/updated avisa que a assinatura mudou, sem nomear o cancelamento.
Duas armadilhas que travam a integração no primeiro dia
A grafia do chargeback na Pagar.me é charge.chargedback, no particípio. Quem assina charge.chargeback no painel fica com um endpoint mudo. As duas páginas da própria Pagar.me divergem entre si: o guia lista order.create e planitem.created, e a referência de API lista plan_item.created. Copie a grafia da referência de API.
Na Monetizze, reembolso e chargeback chegam no mesmo evento 4, "Devolvida", e a central confirma que esse status reúne "as vendas que foram estornadas pela autorização do produtor ou foi realizado o Chargeback". Quem migra de lá para uma plataforma que separa os dois não reconstrói a série histórica, porque o passado não distingue o que o futuro vai distinguir.
Vale planejar o corte da série no relatório: o histórico antigo responde "devolvida" e o novo responde "reembolso" ou "chargeback", e comparar os dois períodos exige agrupar de volta.
Deduplicação separa quem publica de quem cala
Endpoint que recebe o mesmo evento duas vezes dispara a mesma automação duas vezes. O cliente recebe o e-mail em duplicata, a etiqueta é aplicada de novo, o contador de vendas sobe sozinho. Evitar isso depende de duas coisas publicadas pelo emissor: uma chave estável que identifique o disparo e uma política de retentativa que diga quantas vezes ele volta.
| Plataforma | Chave para deduplicar | Garantia declarada | Retentativa publicada | Espera pela confirmação |
|---|---|---|---|---|
| Nuvemshop | id do webhook | Declara que não garante ordem e que a mensagem repete | Quatro primeiras em cerca de 5, 10 e 15 minutos, depois fator 1,4, até 16 tentativas em 48 horas | 3 segundos |
| Eduzz | id no envelope {id, event, data, sentDate} | Espera resposta 2xx | Três erros seguidos levam a tentativas a cada 1 minuto por 2 dias, e então a configuração é inativada | Não publicada |
| Monetizze | id, exclusivo por disparo, repetido no reenvio | Declara que não garante disparo único | Não publicada | Não publicada |
| Kiwify | Nenhuma publicada | Espera resposta 2xx | Até 5 reenvios, sem intervalo publicado | 40 segundos |
| Hotmart | id, "Código único de identificação do evento recebido" | Nenhuma declarada | Não publicada, com histórico de 60 dias | Não publicada |
| Pagar.me | hook_… identifica o objeto webhook, não o disparo | Nenhuma declarada | Configurável pelo lojista, com reenvio manual | Não publicada |
| Greenn | Nenhuma publicada | Só "Retorne 2xx para confirmar o recebimento" | Não publicada | Não publicada |
A assimetria é o achado da tabela. Publicar política de entrega é escolha editorial do fornecedor, e o contraexemplo está na mesma coluna: a Nuvemshop publica tempo de espera, curva de retentativa, teto de tentativas, janela total, cabeçalho de assinatura e a advertência de que a ordem não é garantida. A Greenn não publica nem a chave.
Três contratos de entrega, do mais completo ao mais silencioso
-
Nuvemshop publica tudo
Dá para escrever o consumidor a partir da documentação
- Chave de deduplicação: o
iddo webhook - Espera 2XX com tempo limite de 3 segundos
- Quatro primeiras tentativas: imediata, cerca de 5, 10 e 15 minutos
- Depois multiplica a espera por 1,4 dentro de 48 horas, até 16 tentativas
- Assinatura HMAC-SHA256 no cabeçalho
x-linkedstore-hmac-sha256 - Declara que a ordem de entrega não é garantida
- Chave de deduplicação: o
-
Monetizze avisa e não numera
O melhor contrato de idempotência do grupo, sem os números
- "Importante: não garantimos disparo único por evento"
- O
idé exclusivo de cada disparo - O reenvio do mesmo evento traz o mesmo
id - Quantas vezes reenvia: não publicado
- Em que intervalo e por quanto tempo: não publicado
- Qual código HTTP dispara o reenvio: não publicado
-
Greenn não publica nem a chave
A lacuna mais grave do grupo para quem troca de checkout
- Única regra publicada: "Retorne 2xx para confirmar o recebimento"
- Nenhum identificador de disparo
- O que existe é
sale.id,contract.idelead.id, que identificam o objeto - O mesmo objeto dispara várias vezes ao longo do ciclo de vida
- Autenticidade por token
X-Webhook-Tokenno cabeçalho - O objeto
webhooksdo arquivo OpenAPI está vazio
Ter a chave também não basta, e a Monetizze mostra por quê. Ela declara a semântica de entrega repetida, nomeia o campo certo e garante que o reenvio traz o mesmo identificador, e ainda assim não diz quantas vezes reenvia nem por quanto tempo. Sem esse prazo, quem recebe não sabe por quanto tempo precisa lembrar de um disparo já processado, e acaba guardando o histórico inteiro para sempre.
A armadilha tem nome, e ela custa venda
O payload da Monetizze traz um campo chamado chave_unica. O nome sugere chave de evento e a função é outra. A documentação avisa: "Não confunda com o campo chave_unica, que identifica a sua conta/integração (produtor ou afiliado) e é igual em todos os webhooks da conta, ele não serve para deduplicar."
Deduplicar por esse campo descarta toda venda a partir da segunda, porque o valor se repete em todos os disparos da conta. O defeito passa despercebido em teste com um pedido só e aparece no primeiro lançamento com volume.
A chave_unica é segredo compartilhado de reconhecimento: ela identifica quem mandou e deixa o corpo da mensagem sem prova de integridade.
O tempo que cada emissor espera pela confirmação define quanto trabalho cabe dentro do tratador. Três segundos exigem responder antes de processar, com fila própria do lado de quem recebe. Quarenta segundos toleram um processamento síncrono simples. Migrar entre plataformas com esperas diferentes obriga a reescrever essa parte, além de remapear nomes de campo.
Quanto tempo o emissor espera pela sua confirmação
Segundos até o emissor considerar a notificação não recebida
As cinco barras sem tinta não valem zero: elas marcam que a documentação daquela plataforma não publica o tempo de espera.
O modo de falha mais duro na virada está na Eduzz. Três erros seguidos colocam a configuração em modo de backup, com tentativas a cada minuto por dois dias, e ao fim desse prazo, na frase da própria documentação, "a mesma será inativada e os eventos em backup serão apagados". Endpoint novo que sobe torto durante a migração não deixa fila para reprocessar depois.
A ponte entre contato e comprador quase sempre é o e-mail
Ligar o contato que está na automação ao comprador que está no checkout exige um campo comum aos dois lados. Documento e telefone seriam candidatos melhores que o e-mail, porque mudam menos ao longo da vida do cliente. A documentação das sete plataformas mostra por que raramente é assim que funciona.
| Plataforma | Campo de e-mail | Documento | Identificador do seu sistema | Onde o campo falha |
|---|---|---|---|---|
| Hotmart | buyer.email | buyer.document e buyer.document_type | buyer.ucode identifica o comprador na Hotmart, não no seu sistema | Todo o objeto buyer depende do que o produtor pediu no checkout |
| Pagar.me | customer.email, chave forte, porque reenviar o mesmo e-mail atualiza o cliente | customer.document | customer.code e metadata no pedido | Para cliente do modelo PSP, o objeto de cliente é obrigatório por inteiro |
| Nuvemshop | email no cliente, contact_email no pedido | identification e contact_identification | Campo extra no cliente e no pedido | Documento e telefone só vêm preenchidos se houve compra |
| Eduzz | Sim, em data.buyer | Obrigatório no webhook de venda e ausente no de assinatura | Não publicado | A API de compradores devolve nome, e-mail e telefone, sem documento |
| Kiwify | customer.email, na API | customer.cpf ou customer.cnpj, alternando | Não publicado | O payload do webhook vive em documentação externa, sem dicionário de campos |
| Monetizze | comprador.email | comprador.cnpj_cpf | Não publicado | A documentação não marca nenhum campo como obrigatório |
| Greenn | client.email | client.document, com cpf_cnpj duplicado | Não publicado | No lead de carrinho abandonado, e-mail, CPF e telefone são todos anuláveis |
Duas das sete publicam um campo para o identificador do seu próprio sistema, o que permite carimbar cada pedido com a chave que a sua base já usa. Nas outras cinco, a ponte entre o contato e o comprador é o e-mail, ou não existe. E o e-mail é justamente o campo que o cliente troca ao mudar de emprego, de provedor ou de celular.
Quantas plataformas deixam você carimbar o pedido com a sua própria chave
-
2 de 7
publicam campo para o seu identificador externo:
customer.codeemetadatana Pagar.me,extrana Nuvemshop -
5 de 7
em que a ligação entre o contato da automação e o comprador do checkout é o e-mail, ou não tem campo publicado
O critério é campo publicado para identificador externo do lojista. O ucode da Hotmart fica de fora porque identifica o comprador dentro da Hotmart.
A Hotmart explicita a condição que agrava o problema. O objeto do comprador só chega ao webhook com o que foi pedido na página de pagamento, e quem pede menos campo converte mais. Quem enxugou o checkout para ganhar conversão migra, anos depois, com uma base que tem só e-mail.
O campo existe na especificação e pode não existir no dado
A documentação da Hotmart diz: "buyer object. Mostra os dados do comprador. As informações somente serão retornadas caso o comprador tenha disponibilizado os dados no ato da compra do produto. Os dados solicitados são definidos pelo Produtor nas configurações da Página de Pagamentos (Checkout)."
A Nuvemshop diz o equivalente sobre o arquivo de clientes: o campo de CPF ou CNPJ "só estará com informações quando seu cliente tiver finalizado a compra de um produto em sua loja", e o telefone "estará obrigatoriamente preenchido somente quando o cliente finalizar um pedido". Inscrito de newsletter sai do arquivo sem nenhum dos dois.
Na Greenn, o lead de checkout abandonado tem e-mail, CPF e telefone declarados como anuláveis, e o registro só nasce a partir da segunda etapa do checkout. Conferir o preenchimento real de cada coluna do arquivo exportado é trabalho de antes da virada.
A decisão que sai daqui vale mesmo sem virada nenhuma. Se a plataforma publica campo de identificador externo, use-o desde a primeira venda, com a chave que a sua base já adota. Se não publica, colete documento no checkout e trate a queda de conversão como prêmio de seguro, porque documento é o único campo de identidade que sobrevive à troca de e-mail.
A parcela tem a cauda mais longa da virada
Desligar o checkout velho é um ato de calendário, e o calendário não é o da migração de conteúdo. Depois do corte, continuam chegando pedidos de reembolso, contestações de bandeira e parcelas de compras antigas. Cada um desses eventos tem prazo próprio, e o mais longo deles passa de um ano e meio.
O que ainda chega pelo checkout velho depois do corte
-
7 dias
Arrependimento do consumidor
em curso
Art. 49 do Código de Defesa do Consumidor, a contar da assinatura ou do recebimento.
-
30 dias
Teto da garantia escolhida na Hotmart
previsto
O produtor escolhe entre 7, 15, 21 e 30 dias, e em assinatura o prazo vale só para a primeira cobrança.
-
60 dias
Fim do histórico de webhook consultável na Hotmart
previsto
Depois disso o evento não é mais recuperável pela ferramenta da conta.
-
90 dias
Carrinho abandonado apagado na Nuvemshop
previsto
A consulta já não alcança abandonos de mais de 30 dias.
-
120 dias
Disputa de transação recorrente na Visa e na Mastercard
previsto
Contagem a partir da data de processamento ou de liquidação da transação.
-
150 dias
Teto do pedido de reembolso no cartão na Eduzz
previsto
Prazo do comprador, publicado pela plataforma.
-
185 dias
Retenção de dados do cliente na Nuvemshop após a última venda
previsto
A plataforma espera esse prazo mesmo com pedido de anonimização, por causa da janela de reembolso.
-
300 dias
Reembolso manual ainda aceito no cartão na Kiwify
previsto
No boleto e no Pix o teto publicado é de 90 dias.
-
540 dias
Teto de contestação da Mastercard em motivos específicos
previsto
Serviço interrompido e reembolso não processado, no doméstico brasileiro.
Os prazos correm de datas diferentes: da compra, da data do desacordo, da liquidação ou da última venda. A linha ordena por duração.
O prazo que mais engana é o do meio da lista. A Hotmart guarda o histórico de eventos de webhook por até 60 dias, e a disputa de transação recorrente tem 120 dias nas regras de Visa e de Mastercard. Quando a contestação chega, o evento que sustentaria a defesa já saiu da ferramenta que o emitiu.
A disputa dura o dobro do tempo em que o evento fica consultável
Dias corridos
A distância entre as duas barras é o intervalo em que a defesa fica sem lastro na origem, e é por isso que o evento precisa estar guardado em banco próprio.
A parcela, porém, tem a cauda mais longa de todas. Cancelar assinatura em massa para migrar não zera a cobrança do checkout velho quando o plano anual foi parcelado no cartão. As duas plataformas que publicam a regra dizem a mesma coisa, e o cliente vê duas cobranças no mesmo mês: a parcela antiga e a assinatura nova.
O que continua sendo cobrado depois de cancelar um plano anual parcelado
- Três parcelas pagas antes do cancelamento R$ 300
- Nove parcelas que continuam sendo cobradas depois do cancelamento R$ 900
- Plano anual contratado R$ 1.200
A divisão entre parcelas pagas e parcelas remanescentes segue a frase da fonte, "se ele cancelar após o terceiro mês".
As duas frases que derrubam o corte seco
A Eduzz publica: "o cliente contratou um plano anual de R$ 1.200 em 12x de R$ 100. Se ele cancelar após o terceiro mês, o próximo ano não será renovado, mas as parcelas restantes referentes à compra anual continuam sendo cobradas." E remata: "O cancelamento ou a suspensão da assinatura não interrompe as parcelas da compra anual vigente."
A Hotmart diz o equivalente para o comprador: "o cancelamento impede que o plano seja renovado para o ano seguinte. No entanto, as parcelas restantes do ano atual continuam sendo cobradas na sua fatura até terminar o pagamento." Só um reembolso dentro do prazo interrompe a série.
Numa base de mil assinantes anuais parcelados, cada um pode ver por até nove meses a parcela do checkout velho e a assinatura nova na mesma fatura. O atendimento recebe essa conta antes do financeiro, e o roteiro de resposta precisa existir no dia do corte.
Na Pagar.me há um agravante para quem opera assinatura. O chargeback em cobrança de assinatura cancela a assinatura de forma automática, e "será necessário criar uma nova assinatura utilizando um novo cartão". O mesmo documento avisa que o chargeback muda o status da cobrança e não o do pedido, o que deixa cego quem reconcilia pelo pedido.
O que decidir antes de desligar o checkout velho
A decisão de virada depende de duas variáveis, e nenhuma delas é a mensalidade. A primeira é quanto da receita vem de assinatura ativa, porque é essa parte que precisa ser recontratada uma a uma. A segunda é quanto a plataforma de origem publica sobre entrega repetida, porque é isso que determina se a fila de eventos da transição pode ser reprocessada.
Que virada cabe na sua operação
recorrênciaPeso da assinatura ativa na receitavenda avulsa
-
Coexistência longa, com registro próprio
Rode os dois checkouts em paralelo e guarde cada evento no seu banco desde o primeiro dia, porque a origem não publica como reenvia. É o cenário de quem tem recorrência na Greenn ou na Monetizze.
-
Coexistência com fila reprocessável
Rode em paralelo pelo prazo da cauda, e use a política publicada para reprocessar o que falhar na transição. É o cenário de quem tem recorrência na Nuvemshop ou na Eduzz.
-
Corte curto, com chave derivada do pedido
Sem chave de disparo publicada, derive a sua a partir do identificador do pedido e do tipo de evento, e trate reentrega como certa.
-
Corte curto, com deduplicação pelo identificador publicado
Deduplique pelo campo que a plataforma nomeia, confirme a grafia na referência de API e siga para o corte assim que o prazo de reembolso passar.
não publica nem chave de deduplicaçãoO que a plataforma publica sobre entrega repetidapublica chave, retentativa e tempo de espera
O eixo horizontal usa o que está publicado. Política existente e não publicada não entra em cronograma, porque não tem prazo nem garantia oponível.
Os quatro quadrantes têm o mesmo primeiro passo, e ele não depende de plataforma. A base de eventos precisa morar em casa antes da virada, porque a documentação de webhook descreve notificação, e o armazenamento fica com quem recebe. A Hotmart escreve isso na própria página de boas práticas.
- Guarde cada evento recebido num banco seu, com o identificador de disparo, o carimbo de tempo e o corpo completo. A Hotmart declara que "um sistema de Webhook não tem como objetivo servir de base de dados, consulta ou alteração de dados".
- Exporte a base do checkout velho antes de qualquer aviso ao mercado, e confira coluna a coluna quais campos de identidade vieram preenchidos de verdade.
- Confirme com a plataforma de destino se existe campo para o seu identificador externo, e passe a carimbá-lo em toda venda nova.
- Mapeie os cinco eventos mínimos nos dois vocabulários, com a grafia copiada da referência de API, e teste chargeback e reembolso separadamente.
- Escreva o consumidor idempotente antes de ligar o endpoint, e derive a chave do pedido quando a plataforma não publicar identificador de disparo.
- Ligue o checkout novo para cliente novo e mantenha a recorrência antiga onde ela nasceu, na arquitetura de coexistência que a Stripe publica.
- Combine com o atendimento a resposta para a fatura com parcela antiga e assinatura nova no mesmo mês, antes que a primeira ligação chegue.
- Marque o desligamento da conta antiga pelo maior prazo aplicável ao seu meio de pagamento. O fim da migração de conteúdo chega cedo demais para servir de data.
O critério que resume tudo cabe numa frase de negociação. Antes de assinar a plataforma nova, peça o procedimento de saída dela, com prazo e escopo. Quem responde com um procedimento nomeado está vendendo um custo de troca conhecido, e quem responde que o assunto é tratado caso a caso está vendendo um custo de troca que só aparece no dia em que você quiser sair.
O que fazer nesta semana, com o checkout que você já tem
Abra a página de pagamento e confira quais campos de identidade são pedidos hoje. Se o documento não estiver entre eles, a sua base futura terá só e-mail, e incluí-lo vale mais que qualquer plano de migração.
Baixe o histórico de eventos disponível na ferramenta da plataforma e guarde-o em banco próprio. Na Hotmart, a janela é de 60 dias, o que significa que o evento de abril já não existe em agosto.
Levante quanto da receita do último trimestre veio de assinatura ativa. Esse número é o custo de recontratação que qualquer virada vai cobrar, e ele entra na comparação de plataformas com o mesmo peso que a fatura mensal do checkout.
Perguntas que aparecem depois desta leitura
A assinatura ativa migra de uma plataforma para outra?
Não. O cliente recontrata, e digita o cartão de novo no checkout novo. A Pagar.me explica o mecanismo: "Cada carteira é exclusiva de um lojista (Account). Desta forma, um lojista não tem acesso à carteira de outro mesmo que estejam dentro de um mesmo cliente (Merchant) no Pagar.me." As demais confirmam pelo caminho que oferecem para trocar cartão: na Greenn, um link de checkout novo enviado ao cliente; na Eduzz, um e-mail que pede o cartão ao titular.
O que exatamente a Hotmart diz sobre o aluno importado?
O usuário que entra por importação nasce sem transação atrelada e por isso fica fora dos relatórios de vendas. A frase publicada é: "Detalhes destes usuários são mostrados apenas na gestão de usuários da área de membros ou do curso ao qual foram importados." O acesso viaja, e o histórico comercial fica para trás.
Dá para deduplicar o webhook da Monetizze pelo campo chave_unica?
Não, e a documentação avisa: "Não confunda com o campo chave_unica, que identifica a sua conta/integração (produtor ou afiliado) e é igual em todos os webhooks da conta, ele não serve para deduplicar." O campo correto é o id, exclusivo de cada disparo e repetido quando o mesmo evento é reenviado. Deduplicar pela chave errada descarta toda venda a partir da segunda.
Por quanto tempo o checkout velho continua recebendo reembolso e disputa?
De 7 a 540 dias, conforme o meio de pagamento e a regra aplicável. São 7 dias de arrependimento no art. 49 do Código de Defesa do Consumidor, até 30 dias de garantia escolhida pelo produtor na Hotmart, 120 dias de disputa de transação recorrente nas regras de Visa e Mastercard, 150 dias de teto do pedido de reembolso no cartão na Eduzz, 185 dias de retenção de dados na Nuvemshop, 300 dias de reembolso manual no cartão na Kiwify e 540 dias de teto de contestação da Mastercard em motivos específicos.
Cancelar as assinaturas antes de migrar resolve a cobrança dupla?
Não, quando o plano anual foi parcelado no cartão. A Eduzz publica que "o cancelamento ou a suspensão da assinatura não interrompe as parcelas da compra anual vigente", e a Hotmart diz o mesmo ao comprador: "as parcelas restantes do ano atual continuam sendo cobradas na sua fatura até terminar o pagamento". Só um reembolso dentro do prazo interrompe a série.
Qual é o primeiro passo técnico de quem vai trocar de checkout?
Guardar cada evento de webhook em banco próprio, com identificador de disparo, carimbo de tempo e corpo completo. A Hotmart declara que "um sistema de Webhook não tem como objetivo servir de base de dados, consulta ou alteração de dados", e o histórico dela dura 60 dias, contra 120 dias de prazo de disputa de transação recorrente nas regras de Visa e Mastercard.
De onde vêm os números desta página
Cada dado abaixo tem origem nomeada e data de consulta. Número sem fonte publicada não entra no texto; quando a fonte não publica o valor, a página diz isso na frase.
- Hotmart, Central de Ajuda, "Como importar alunos para minha área de membros ou curso online?", com a exigência de nome e e-mail no arquivo e a declaração de que o usuário importado não aparece no relatório de vendas por não ter transação atrelada. Consulta em 23 de agosto de 2026.
- Hotmart, Central de Ajuda, "Como funciona o relatório de vendas?", com as colunas de nome, e-mail, telefone e documento do comprador e os formatos CSV e XLS de exportação. Consulta em 23 de agosto de 2026.
- Hotmart Developers, "Eventos de pedido" na versão 2.0.0 do webhook, com os nomes literais dos eventos, o campo de identificação única do evento e a advertência de que os dados do comprador dependem do que o produtor pediu na página de pagamento. Consulta em 23 de agosto de 2026.
- Hotmart Developers, "Sobre Webhooks", com o histórico de eventos armazenado por até 60 dias. Consulta em 23 de agosto de 2026.
- Hotmart Developers, tutorial de boas práticas de uso de Webhooks e APIs, com a declaração de que um sistema de webhook não tem como objetivo servir de base de dados. Consulta em 23 de agosto de 2026.
- Hotmart, Central de Ajuda, "Como cancelar minha assinatura?", com a regra de que as parcelas restantes do ano atual continuam sendo cobradas na fatura até terminar o pagamento. Consulta em 23 de agosto de 2026.
- Hotmart, Central de Ajuda, "Como ajustar o prazo de garantia do produto que criei?", com as opções de 7, 15, 21 e 30 dias e a regra de que em assinatura o prazo vale só para a primeira cobrança. Consulta em 23 de agosto de 2026.
- Kiwify, Central de Ajuda, "Até quanto tempo depois da venda posso fazer um reembolso?", com os 7 dias corridos do art. 49 do Código de Defesa do Consumidor e os tetos de reembolso manual de 300 dias no cartão e 90 dias em boleto e Pix. Consulta em 23 de agosto de 2026.
- Kiwify, Central de Ajuda, "Como adicionar ou remover alunos manualmente?", com o limite de 100 e-mails por importação em massa e o processo declarado em até dez minutos. Consulta em 23 de agosto de 2026.
- Kiwify, documentação da API pública, endpoint de consulta de venda, com o objeto de cliente que traz e-mail, celular e o documento alternando entre os campos de CPF e de CNPJ. Consulta em 23 de agosto de 2026.
- Eduzz Developers, Webhook, seção "Backup de eventos", com os três erros seguidos, a retentativa a cada 1 minuto por 2 dias e a inativação da configuração com apagamento dos eventos em backup. Consulta em 23 de agosto de 2026.
- Eduzz, especificação OpenAPI pública, com o cancelamento em massa de assinaturas, a reativação e o envio de e-mail de troca de cartão, e sem rota de criação de assinatura. Consulta em 23 de agosto de 2026.
- Eduzz, Central de Ajuda, "Como suspender ou cancelar a assinatura de um cliente?", com o exemplo do plano anual de R$ 1.200 em 12 parcelas de R$ 100 e a regra de que o cancelamento não interrompe as parcelas da compra anual vigente. Consulta em 23 de agosto de 2026.
- Monetizze, documentação oficial de webhooks, com a declaração de que a plataforma não garante disparo único por evento, o campo de identificação exclusivo de cada disparo e a advertência de que a chave única identifica a conta e não serve para deduplicar. Consulta em 23 de agosto de 2026.
- Monetizze, Central de Ajuda, "Como migrar meu curso, produto e alunos para a nova Membertizze", com o limite de 200 alunos por arquivo e a ressalva de que o tutorial não vale para produtos de recorrência. Consulta em 23 de agosto de 2026.
- Monetizze, Central de Ajuda, "Relatório de vendas na Monetizze", com o status "Devolvida" reunindo estorno autorizado pelo produtor e chargeback. Consulta em 23 de agosto de 2026.
- Greenn, Central de Ajuda, "Atualizando o Cartão do Cliente em uma Assinatura", com a instrução de enviar um novo link de checkout ao cliente para que ele mesmo faça a alteração. Consulta em 23 de agosto de 2026.
- Greenn, API pública v1, webhook de checkout abandonado, com e-mail, CPF e telefone do lead declarados como campos anuláveis e a etapa do checkout em que o abandono ocorreu. Consulta em 23 de agosto de 2026.
- Pagar.me, Guides, "Carteira de Cartões", com a declaração de que cada carteira é exclusiva de um lojista e de que um lojista não acessa a carteira de outro nem dentro do mesmo cliente. Consulta em 23 de agosto de 2026.
- Pagar.me, "Chargeback: novo status na cobrança", com o cancelamento automático da assinatura, a exigência de criar assinatura nova com cartão novo e a advertência de que o status muda na cobrança e não no pedido. Consulta em 23 de agosto de 2026.
- Nuvemshop, documentação de API, recurso Webhook na versão 2025-03, com o tempo de espera de 3 segundos, as quatro primeiras retentativas, o fator de 1,4 dentro de 48 horas, o teto de 16 tentativas e o cabeçalho de assinatura HMAC-SHA256. Consulta em 23 de agosto de 2026.
- Nuvemshop, Central de Atendimento, "Como exportar minha lista de clientes na Nuvemshop?", com os campos do arquivo CSV e a ressalva de que CPF, CNPJ e telefone só vêm preenchidos quando houve compra finalizada. Consulta em 23 de agosto de 2026.
- Nuvemshop, Central de Atendimento, artigo sobre anonimizar dados pessoais do cliente segundo a LGPD, com a espera de até 185 dias após a data da venda justificada pela possibilidade de reembolso. Consulta em 23 de agosto de 2026.
- Nuvemshop, documentação de API, recurso Abandoned Checkout, com a consulta limitada a 30 dias, o apagamento definitivo aos 90 dias e o registro criado só a partir da segunda etapa do checkout. Consulta em 23 de agosto de 2026.
- Stripe, documentação oficial, "Request a payment data export", com a exigência de PCI DSS Level 1 no processador receptor, o Attestation of Compliance ou a listagem no Visa Global Registry of Service Providers e a chave pública PGP de 4096 bits ou mais. Consulta em 23 de agosto de 2026.
- Stripe, documentação oficial, "Solicite uma importação de dados de pagamentos", com a arquitetura de cobrar clientes novos na plataforma nova e manter os atuais no processador antigo até a migração terminar, sem tempo de inatividade para o cliente. Consulta em 23 de agosto de 2026.
- Mercado Pago Developers, documentação de Webhooks, com o tempo de espera de 22 segundos pela confirmação e o reenvio a cada 15 minutos até receber resposta. Consulta em 23 de agosto de 2026.
- Visa, "Visa Core Rules and Visa Product and Service Rules", edição de 18 de abril de 2026, com o prazo de 120 dias corridos para a disputa de transação recorrente cancelada, na condição 13.2. Consulta em 23 de agosto de 2026.
- Mastercard, "Chargeback Guide, Merchant Edition", edição de 19 de maio de 2026, com os 120 dias corridos para contestação de transação recorrente contados da data de liquidação e os tetos maiores em motivos específicos. Consulta em 23 de agosto de 2026.
- Brasil, Lei nº 8.078, de 11 de setembro de 1990, Código de Defesa do Consumidor, art. 49, com o prazo de 7 dias para desistir de contrato fechado fora do estabelecimento comercial. Consulta em 23 de agosto de 2026.
- Portal Leadlovers 2026, artigo "O checkout conhece a compra, a automação conhece o cliente". Consulta em 23 de agosto de 2026.