Changelog
2026-10-16
v0.32.0 — App: dados para saque no celular, e saque com a chave Pix
O app ganhou a tela Dados para saque: cadastre sua chave Pix e sua conta bancária no CPF/CNPJ da loja sem sair do celular. A aba Financeiro libera o saque quando os dados estão completos, inclusive só com a chave Pix, e mostra para onde vai o dinheiro antes de você confirmar.
2026-10-16
v0.31.1 — Estorno de uma parcela de assinatura não conta mais como falha
Um estorno ou um chargeback de uma parcela paga de assinatura no cartão não conta mais como falha de pagamento: seu cliente não recebe e-mail de "pagamento falhou", e a assinatura não chega mais perto do fim por isso.
2026-10-16
v0.31.0 — Dados para saque: sua chave Pix e sua conta, no nome da loja
Agora você diz para onde vai o dinheiro dos seus saques em Configurações › Dados para saque: uma chave Pix, uma conta bancária ou as duas, sempre no CPF/CNPJ da sua loja. Se você já tinha uma conta cadastrada, complete o que falta antes do próximo saque.
2026-10-16
v0.30.3 — Saques com o status de verdade e assinaturas que param de cobrar
Cada saque agora mostra o status de verdade, no site e no app. E uma assinatura no cartão que falha de vez para de ser cobrada na Celcoin, e você recebe o webhook subscription.cancelled.
2026-10-15
v0.30.1 — Estorno parcial no saldo certo e cada pagamento na venda certa
Um estorno parcial agora tira do seu saldo só o valor devolvido, e o resto da venda segue retido até a data de liberação. Cada pagamento confirmado pela Celcoin entra na venda dele. E o estorno de um pagamento de assinatura Celcoin passa a ser recusado com um erro claro.
2026-10-14
v0.30.0 — Assinatura com cartão e Pix Automático, e o Pix Automático no seu saldo
Uma assinatura agora é paga com cartão ou Pix Automático, e você escolhe quais no produto. A sessão de checkout também oferece o Pix Automático. As vendas pagas com Pix Automático entram no seu saldo e no extrato. E a Garu passou a conferir os dados bancários e as URLs de retorno.
2026-10-02
v0.29.0 — Cobrança agendada recorrente: seu cliente paga com cartão pelo link
Seu cliente pode pagar a cobrança agendada recorrente com cartão. O e-mail do vencimento leva a uma página com o nome da sua loja, o valor do ciclo e o vencimento; ele digita o cartão e paga em 1x. O cartão fica salvo e as próximas cobranças da assinatura vão nele sozinhas.
2026-10-01
v0.28.3 — Convite para a equipe só vale para o e-mail convidado
Um convite para a equipe agora só pode ser aceito por quem entra com a conta do e-mail convidado. Se o link for encaminhado para outra pessoa, ou aberto com outra conta, a Garu não deixa entrar na equipe e mostra para qual e-mail o convite foi enviado.
2026-09-30
v0.28.0 — Tirar alguém da equipe ou trocar a senha encerra o acesso na hora
Quando você tira alguém da equipe, a pessoa perde o acesso ao painel da sua conta no próximo clique. Uma nova função vale na próxima ação de quem foi alterado. E trocar a senha encerra as sessões abertas nos outros aparelhos; você continua conectado onde trocou.
2026-09-30
v0.27.1 — Taxas certas na página de preços e valor mínimo nas cobranças agendadas
A página de preços agora mostra a taxa que a Garu cobra: 8,99% + R$ 2,49 por venda aprovada, no PIX, no cartão e no boleto. E uma cobrança agendada nova precisa ser de pelo menos R$ 5,00, pelo painel ou pela API.
2026-09-30
v0.27.0 — Preço mínimo de R$ 5,00
Todo preço que você define agora precisa ser de pelo menos R$ 5,00: o de um produto, o de uma oferta e o de um plano de assinatura, pelo painel ou pela API. Pela API, um produto ainda pode ficar sem preço, com R$ 0,00. Produtos que já custam menos de R$ 5,00 continuam vendendo normalmente.
2026-09-30
v0.26.1 — Um centavo a menos em alguns preços, e comissão de 0% que virava 10%
Alguns preços saíam para o processador com um centavo a menos: um produto de R$ 19,99 era cobrado como R$ 19,98, e um de R$ 19,90 como R$ 19,89. Agora o valor cobrado é exatamente o preço. E um produto com comissão de afiliado de 0% pagava 10% a quem se afiliava criando a conta pelo link do convite. Agora 0% é 0% em todos os caminhos.
2026-09-29
v0.26.0 — Cobrança agendada avulsa: seu cliente paga com PIX pelo link
O e-mail do dia do vencimento leva o cliente a uma página de pagamento com o nome da sua loja, o valor e a descrição. Ele gera um PIX válido por 48 horas e paga no app do banco; a página confirma sozinha. O valor entra no seu saldo como uma venda por PIX, com a parte dos coprodutores, e pausar ou marcar como paga cancela o PIX em aberto.
2026-09-30
v0.25.1 — O saque cobra a taxa de saque que aparece na sua tela
A tela de saque mostra a sua taxa de saque, inclusive quando ela foi negociada, mas o saque cobrava R$ 3,50 de todo mundo. Agora ele cobra a taxa mostrada. Se você nunca negociou a taxa de saque, nada muda: continua R$ 3,50.
2026-09-29
v0.25.0 — Saque mínimo de R$ 10,00
Todo saque agora precisa ser de pelo menos R$ 10,00, contados antes da taxa. O painel mostra o mínimo embaixo do campo de valor e avisa na hora quando o valor não passa. Quem pede menos recebe a explicação em português, e não uma mensagem técnica em inglês.
2026-09-29
v0.25.0 — Novo link de confirmação de e-mail, e agora dá para pedir outro
O e-mail de confirmação de cadastro traz agora um link próprio, que vale por 24 horas e só pode ser usado uma vez. Se o seu e-mail ainda não está confirmado, um aviso no painel e em Minha Conta oferece o botão Reenviar e-mail de confirmação. Os links de confirmação enviados antes desta versão deixam de funcionar.
2026-09-29
v0.25.0 — Novos links de convite para afiliados, e agora dá para cancelar um convite
Cada convite para afiliado tem agora um link próprio, que vale por 7 dias e só pode ser usado uma vez. Reenviar o convite troca o link, o X na lista de afiliados cancela o convite, e cancelar um convite já aceito encerra a afiliação. Os links enviados antes desta versão deixam de funcionar: é só convidar de novo.
2026-09-29
v0.25.0 — Equipe e senha: ninguém tira o próprio acesso sem querer
Um administrador podia se rebaixar, se desativar ou se remover da própria equipe e perder o acesso de que precisaria para desfazer. Agora o menu some na sua linha, o servidor recusa, e a conta nunca fica sem administrador ativo. Trocar a senha pelo painel aceitava a mesma senha de antes; agora a nova precisa ser diferente e seguir a regra do cadastro. E a Auditoria volta a abrir e exportar para administradores, analistas e quem só visualiza.
2026-09-13
v0.24.0 — Chaves sk_test_ deixam de funcionar na API pública
O ambiente gravado numa chave de API (test ou live) nunca era consultado: uma chave sk_test_ lia e alterava os mesmos dados que uma sk_live_, e como não existe sandbox, uma cobrança criada com ela era uma cobrança real na conta real — enquanto a nossa documentação prometia o contrário. Chaves sk_test_ passam a responder 403 na API pública.
2026-09-12
v0.23.3 — Sua chave de idempotência agora manda
A trava contra cobrança repetida estava ignorando o seu X-Idempotency-Key. Se você mandasse uma chave nova e distinta — dizendo que era outra venda — e fosse o mesmo cliente, produto e valor dentro de 60 segundos, a API respondia 200 com a cobrança anterior. Sucesso na resposta, uma venda a menos na conciliação, nada no log. Agora chaves diferentes são vendas diferentes, e a mesma chave continua sendo uma cobrança só.
2026-09-11
v0.23.0 — Ofertas: vários preços e vários links para o mesmo produto
Até agora um produto tinha um preço só. Quem queria vender o mesmo curso por R$497 na página de vendas e por R$97 para a lista de e-mail precisava duplicar o produto — e com isso dividia as vendas, os afiliados e os relatórios entre dois cadastros que deveriam ser um. Agora dá para criar quantas ofertas quiser em cima do mesmo produto, cada uma com seu preço e seu link. O link antigo continua valendo e continua cobrando o preço padrão.
2026-09-10
v0.22.0 — A trava contra cobrança repetida agora vale também para o checkout
A trava contra cobrança repetida da v0.21.1 conferia se já existia uma cobrança igual antes de falar com a adquirente — mas a cobrança só é gravada depois de duas idas e voltas até lá. Quem tentasse de novo no meio desse intervalo passava batido. Agora a chave é reservada no banco antes de qualquer chamada externa, e o Postgres recusa a segunda tentativa. A trava passou a valer também na página de pagamento, onde duas abas abertas ainda geravam duas cobranças de verdade.
2026-09-09
v0.21.1 — Venda no cartão depois das 21h aprova na hora (e não vira cobrança repetida)
Toda venda no cartão feita entre 21h e meia-noite era agendada para o dia seguinte, em vez de ir para a operadora na hora. O comprador não via nada na fatura, achava que tinha dado erro e pagava de novo — foi assim que uma paciente pagou três vezes a mesma mensalidade. A data agora é calculada no horário de Brasília, o botão de pagar trava enquanto a cobrança está em andamento, e a API passou a recusar uma segunda cobrança idêntica dentro de 60 segundos. Quem integra via SDK deve atualizar para o @garuhq/node 5.0.0.
2026-08-27
v0.21.0 — App: aba Produtos, com o link de afiliada no bolso
O link de afiliada só existia no painel web. Agora o app tem a aba Produtos, com dois modos: seus produtos (para copiar o link de pagamento) e suas afiliações (com o link que paga sua comissão, o saldo de comissões e os convites pendentes, que dá para aceitar por ali mesmo). Produto de assinatura pede qual plano o link vende, em vez de deixar o checkout escolher. Junto foi uma correção de paginação que fazia a lista de produtos devolver páginas incompletas.
2026-08-16
v0.20.1 — Aceitar convite de afiliado voltou a funcionar (e a página cabe no celular)
O botão "Aceitar convite" da página de afiliado devolvia erro para todo mundo — desde novembro, silenciosamente. A causa era um detalhe de compilação que desligava a validação daquela rota e descartava o corpo da requisição inteiro. Junto foram as correções de layout no celular (convite e cadastro), o link do app na App Store no rodapé, e respostas de erro que agora dizem a verdade.
2026-08-15
v0.20.0 — Carnê: venda parcelada no boleto, com o líquido na tela
Agora dá para vender um produto em até 12 boletos mensais. Cada parcela é emitida 7 dias antes do vencimento, o cliente vê o custo do parcelamento como manda o CDC, e o painel mostra quanto você recebeu de verdade — não quanto o cliente pagou. Junto vão quatro correções de dinheiro, incluindo comissão de afiliado que sumia em toda venda por link.
2026-07-28
v0.19.0 — Pix Automático virou configurável por produto (e o Descritor da Fatura saiu)
A chave Pix Automático do formulário de produto podia ser desligada, salvava com sucesso e voltava ligada ao recarregar — o campo nunca era gravado por rota nenhuma. Agora a chave funciona, e POST e PATCH /api/v1/products aceitam pixAutomatic de verdade. Na outra ponta, o campo Descritor da Fatura saiu do formulário: ele nunca chegou a lugar nenhum.
2026-07-28
v0.18.0 — Programa de afiliados voltou a salvar, e PATCH /products virou atualização parcial de verdade
Ativar afiliação em um produto falhava com 400 para todo mundo — a tela reenviava a tabela de parcelas onde a API espera um número. Junto veio a correção de escopo: PATCH e DELETE de produtos agora verificam que o produto é seu, comissão fora de 0–100% é recusada, e uma atualização parcial não apaga mais suas tags.
2026-07-24
v0.17.3 — Cancelamento de cobrança retorna { canceled: true }
Correção cosmética: DELETE /api/v1/charges/{uuid} agora retorna { "canceled": true } (booleano), como sempre foi documentado, em vez de { "canceled": { "type": true } } — resquício da resposta crua do provedor.
2026-07-24
v0.17.2 — Estorno de PIX (Celcoin) retorna erro claro de "não suportado"
Cobranças PIX processadas pela Celcoin não podem ser estornadas via API — a Celcoin não expõe devolução de PIX. Agora o endpoint de estorno recusa esse caso na hora, com HTTP 422 e o código pix_refund_unsupported, em vez do 409 pix_not_settled (que sugeria, incorretamente, que bastava tentar de novo mais tarde).
2026-07-24
v0.17.1 — Estorno de PIX ainda não liquidado devolve erro claro e reenviável
Ao tentar estornar um PIX que foi pago mas ainda não foi conciliado/liquidado pelo provedor, a API agora responde 409 com o código pix_not_settled e uma mensagem acionável, em vez de repassar um erro genérico. É um estado temporário: basta tentar de novo após a liquidação.
2026-07-22
v0.17.0 — Checkout transparente com /api/v1/charges
Novo recurso /api/v1/charges: crie cobranças PIX, boleto e cartão pela API e receba o código PIX copia-e-cola para renderizar o QR Code dentro do seu próprio checkout. Consultar, listar, estornar e cancelar também entram no v1.
2026-07-19
v0.16.0 — Criação de produtos idempotente
POST /api/v1/products agora aceita X-Idempotency-Key: reenviar a mesma requisição (retry, timeout, duplo clique) devolve o produto já criado em vez de duplicar. O SDK @garuhq/node já manda a chave sozinho.
2026-07-03
v0.15.0 — Aba Taxas simplificada
A aba Taxas passa a focar no que você efetivamente paga. O campo informativo installmentMdr foi removido da resposta de GET /api/seller-config/me — suas taxas efetivas continuam em effective.
2026-07-03
v0.14.3 — Correções no processo de cobrança
Correções no processo de cobrança para deixar o processamento de pagamentos mais preciso e confiável.
2026-06-22
v0.14.2 — Correção: assinatura Pix Automático falhando fora do dia 30
Assinaturas via Pix Automático só conseguiam ser criadas no dia 30 de cada mês — em qualquer outro dia o cliente esbarrava em 'Não foi possível iniciar o Pix Automático'. O dia da cobrança agora é calculado na hora, no fuso de São Paulo, então a assinatura funciona em qualquer dia.
2026-05-31
v0.14.1 — Toggle de Pix Automático no produto + página de Métodos de pagamento
Dois acabamentos que faltavam da v0.14.0: o toggle para ligar/desligar Pix Automático por produto chega no painel, e a nova página pública /metodos-de-pagamento explica em uma só tela como Cartão, Pix, Boleto e Pix Automático se comparam.
2026-05-29
v0.14.0 — Pix Automático nas assinaturas: o cliente assina direto pelo checkout do produto
Pix Automático agora vive dentro do funil de assinaturas: o cliente que entra na página do produto pode escolher Pix Automático ao lado de Cartão e autorizar uma única vez no app do banco. As próximas mensalidades são debitadas sozinhas. É o caminho que finalmente leva a recorrência 'configura e esquece' para a parte do produto que de fato gera receita recorrente.
2026-05-27
v0.13.0 — Pix Automático: assinatura recorrente no débito do banco
Cobranças recorrentes agora aceitam Pix Automático: o cliente autoriza uma única vez no app do banco e os ciclos seguintes são debitados sozinhos — o mesmo 'configura e esquece' do cartão, agora no Pix.
2026-05-25
v0.12.0 — Cobrança resiliente: recuperação automática, skips visíveis e 'Cobrar agora'
O billing de cobranças agendadas deixou de depender de acertar o dia exato: cobranças que perderam o disparo agora são recuperadas automaticamente dentro de uma janela configurável por cobrança, todo skip vira evento visível na timeline (e alerta no Sentry), e o novo botão 'Cobrar agora' dispara a cobrança e a notificação na hora, sem esperar o vencimento.
2026-05-20
v0.11.1 — Cobranças agendadas sem gate silencioso + visual refinado
Removida a flag `scheduled_charges_enabled` que estava silenciosamente bloqueando o disparo de e-mails de cobrança agendada para quase todos os vendedores. A página de detalhes de cobrança agendada também recebeu um polimento alinhado ao restante do painel.
2026-05-18
v0.10.1 — `/api/customers` agora aceita api-key
Todas as rotas de `/api/customers` agora aceitam `sk_live_` / `sk_test_` além do JWT do painel. O controller tinha ficado de fora do rollout de api-key em outras rotas parceiras (c1a478c) e devolvia 401 quando integrações server-to-server tentavam cadastrar um cliente para depois criar uma cobrança recorrente.
2026-05-17
v0.10.0 — Configuração de portal por produto aceita UUID
Endpoints de configuração de portal por produto agora aceitam o UUID do produto além do id numérico legado. UUID é o caminho recomendado — é o identificador não-enumerável retornado por `list_products`. Também substituímos `parseInt` silencioso por validação real: entradas inválidas devolvem 400 em vez de 500.
2026-05-15
v0.9.1 — Correções internas: cron de vínculo de afiliado, observabilidade e ordenação de cobranças
Três correções que não mudam a superfície pública mas estavam minando a confiabilidade do backend: o cron de expiração de vínculos de afiliado voltou a rodar (estava silenciosamente falhando há quatro meses), o filtro global de exceções agora captura erros não tratados, e a ordenação de tentativas de cobrança recorrente passou a usar os nomes corretos das colunas.
2026-05-05
v0.9.0 — Log por tentativa para auditoria de billing recorrente
Cada tentativa de cobrança recorrente agora vira uma linha de log auditável — ciclo 1 interativo, cada cobrança silenciosa, cada retry, cada mark-paid. Inclui endpoint GET /:id/attempts e wrappers de SDK + MCP. Fecha a SPEC §3.1 / §4.2 da v0.8.0.
2026-05-05
v0.8.1 — Endpoint HTTP do gatilho manual de webhook
Expõe o serviço `dispatchManualTestEvent` da v0.8.0 via HTTP — sellers podem disparar payloads de exemplo de qualquer evento já inscrito para validar a integração antes de tráfego real.
2026-05-05
v0.8.0 — Recorrência B2B2C: códigos de falha, vencimento de cartão e portal por produto
Falhas com código normalizado, ciclo de vida de cartão (vencimento + expiração automática), portal customizado por produto para plataformas B2B2C, e gatilho manual de webhook para acelerar integração.
2026-05-05
v0.7.0 — Cobranças recorrentes com cartão e período de teste
Cobranças recorrentes saíram do plano de futuro: cartão salvo no ciclo 1, cobrança silenciosa nos ciclos seguintes, retry e fallback automáticos, período de teste, e ações de ciclo de vida (cancelar recorrência, trocar cartão, marcar ciclo como pago).
2026-05-04
v0.6.0 — Portal do cliente em /minha-area
Seu cliente agora pode ver e pagar todas as cobranças agendadas em um só lugar — sem login, com um link mágico de 24h enviado por e-mail.
2026-05-02
v0.5.0 — Cobranças agendadas
Agende cobranças PIX e Boleto para datas futuras. A Garu manda o e-mail no vencimento, alerta seu time se atrasar, e expõe ações de adiar / pausar / retomar / marcar como paga.
2026-04-30
v0.4.0 — Cadastro de clientes com e-mail de cobrança próprio
Nova página /clientes com cadastro explícito e e-mail de cobrança configurável por cliente — primeiro passo da capacidade de cobranças agendadas.
2026-04-27
v0.3.0 — Veja suas taxas negociadas direto no dashboard
Nova aba Taxas dentro do Financeiro: PIX, cartão, boleto, internacional, chargeback, saque e tabela padrão de MDR por bandeira — tudo o que você negociou, em um só lugar.
2026-04-14
v0.2.2 — Landing animada, docs próprias e páginas /mcp e /cli reescritas
Mural animado na landing, migração de docs para docs.garu.com.br, /mcp e /cli reescritas como páginas de marketing minimalistas, install.sh servido direto de garu.com.br.
2026-04-13
v0.2.0 — Public beta: the agent-first surface is live
Landing page redesign, llms.txt, MCP discovery, 8 per-tool integration pages, full Mintlify docs with agent tools section. Phase 2 complete.
2026-04-09
Phase 1 complete — Agent-first developer surface
Shipped @garuhq/node v0.2.0, @garuhq/cli v0.1.2, @garuhq/mcp v0.1.0, and the garu-skills bundle. The core developer surface is live on npm.