Changelog
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.