Como Integrar Paddle e Lemon Squeezy ao Seu SaaS Criado no Lovable

Aprenda o passo a passo técnico para integrar Paddle e Lemon Squeezy ao seu SaaS construído no Lovable usando Supabase e Edge Functions.

Como Integrar Paddle e Lemon Squeezy ao Seu SaaS Criado no Lovable

Construir a interface e a lógica de um Software as a Service (SaaS) com o Lovable tornou-se um processo extremamente ágil. No entanto, quando chega a hora de monetizar o produto internacionalmente, muitos fundadores enfrentam a complexidade fiscal de vender para múltiplos países. É aqui que plataformas atuando como Merchant of Record (MoR), como Paddle e Lemon Squeezy, se tornam indispensáveis: elas recolhem impostos locais automaticamente e lidam com a conformidade tributária global.

Se a sua aplicação está rodando na stack do Lovable (Lovable + Supabase), você não precisa reconstruir seu backend do zero para conectar esses provedores de pagamento. A seguir, entenda a arquitetura ideal e o passo a passo para orquestrar checkouts, webhooks e sincronização de assinaturas com segurança.


A Arquitetura de Pagamentos no Ecossistema Lovable

O Lovable gera aplicações front-end modernas em React/Vite integradas nativamente ao Supabase como camada de dados e lógica de servidor. Integrar gateways MoR envolve três pilares essenciais:

  1. Front-end (Interface Lovable): Onde o usuário visualiza os planos, escolhe entre faturamento mensal/anual e aciona o checkout (via redirect ou modal overlay do Paddle/Lemon Squeezy).
  2. Backend Serverless (Supabase Edge Functions): Responsável por gerar links seguros de checkout (quando necessário) e, fundamentalmente, receber os webhooks que notificam sobre pagamentos confirmados, cancelamentos e renovações.
  3. Banco de Dados (Supabase Auth & Tables): Onde armazenamos o status da assinatura (active, canceled, past_due), o ID do cliente no gateway e o nível de acesso (role/tier).

Passo 1: Estruturando o Banco de Dados no Supabase

Antes de acionar a IA do Lovable para criar a tela de preços, sua base de dados precisa estar preparada. Acesse o painel do Supabase conectado ao seu projeto Lovable e configure a tabela de assinaturas:

sql
create table public.subscriptions (
id uuid primary key default genrandomuuid(),
userid uuid references auth.users(id) on delete cascade not null,
customer
id text,
subscriptionid text unique,
variant
id text,
status text not null default ‘inactive’,
currentperiodend timestamptz,
created_at timestamptz default now()
);

alter table public.subscriptions enable row level security;

create policy “Usuários podem ler apenas sua própria assinatura”
on public.subscriptions for select
using (auth.uid() = user_id);

Essa estrutura garante que a interface gerada pelo Lovable possa consultar o status em tempo real respeitando as diretrizes de Row Level Security (RLS).


Passo 2: Criando a Edge Function de Webhook

Tanto o Lemon Squeezy quanto o Paddle operam orientados a eventos via webhooks. Nunca confie no front-end para atualizar status de pagamento. A confirmação deve vir diretamente do servidor do gateway para uma Edge Function no Supabase.

  1. Crie uma Edge Function chamada handle-payment-webhook no Supabase.
  2. No painel do Lemon Squeezy ou Paddle, registre a URL da sua Edge Function (https://<seu-projeto>.supabase.co/functions/v1/handle-payment-webhook).
  3. Configure a assinatura de webhook (Webhook Secret) nos Secrets do Supabase para validar a autenticidade das requisições.
  4. Na função, intercepte eventos críticos como subscription_created, subscription_updated e subscription_cancelled, atualizando a tabela subscriptions com o user_id correspondente.

Passo 3: Engenharia de Prompt e Interface no Lovable

Com o backend estruturado, você pode instruir o Lovable a montar a experiência do usuário. Em projetos Lovable que implemento, costumo separar a instrução em etapas claras no chat da plataforma:

Exemplo de Prompt para a Tela de Preços:

“Crie uma página de Pricing moderna conectada ao Supabase Auth. Adicione dois cartões de planos: ‘Pro Mensal’ e ‘Pro Anual’. Ao clicar em ‘Assinar’, o sistema deve verificar se o usuário está logado. Se estiver, chame o SDK do Lemon Squeezy abrindo o checkout overlay passando o e-mail do usuário e o user_id no campo custom_data. Verifique a tabela subscriptions para mostrar o status ‘Plano Ativo’ caso o usuário já possua assinatura ativa.”

Carregamento do Script Externo:

Peça ao Lovable para injetar o script do provedor no index.html ou criar um hook customizado (useLemonSqueezy ou usePaddle) para inicializar o SDK assim que a página carregar:

“Adicione o script oficial do Lemon Squeezy (https://assets.lemonsqueezy.com/lemon.js) no cabeçalho e inicialize o LemonSqueezy.Setup() assim que o componente de checkout for montado.”


Passo 4: Proteção de Rotas Baseada em Assinatura

Para garantir que áreas pagas do seu SaaS só sejam acessadas por membros ativos, utilize o contexto de autenticação do Lovable. Crie uma verificação que consulta o status na tabela subscriptions:

  • Se status === 'active', renderize o conteúdo da funcionalidade.
  • Se o status for nulo ou diferente de active, redirecione o usuário para a rota /pricing com um alerta contextual.

Ao documentar essa lógica no arquivo Knowledge do seu projeto no Lovable, você impede que prompts futuros quebrem a barreira de acesso durante iterações na UI.


Boas Práticas e Erros Comuns a Evitar

  • Não expor Chaves de API Secretas no Lovable: Chaves de API de produção do Paddle/Lemon Squeezy nunca devem constar nos prompts ou variáveis de ambiente públicas do front-end (VITE_). Mantenha-as apenas no cofre de segredos do Supabase.
  • Passagem de Metadata: Sempre envie o user_id do Supabase dentro do objeto de metadados do checkout. Sem esse identificador, sua Edge Function não saberá qual usuário liberar após a confirmação do pagamento.
  • Ambiente Sandbox: Antes de publicar em produção, teste todos os cenários de ciclo de vida (falha de cartão, renovação e cancelamento) utilizando os ambientes de teste oficiais de ambos os provedores.

Leve Seu SaaS Lovable ao Mercado Global

Integrar soluções completas como Paddle e Lemon Squeezy coloca o seu SaaS em condições reais de competir globalmente, faturando em moedas fortes sem dores de cabeça regulatórias. A combinação do Lovable para front-end rápido e Supabase para processamento seguro oferece a robustez necessária para escalar.

Se você precisa estruturar a arquitetura de pagamentos do seu SaaS, configurar webhooks à prova de falhas e garantir que a sua aplicação no Lovable opere com padrão profissional, entre em contato para uma consultoria especializada. Vamos colocar sua monetização para rodar de forma segura e escalável.

Preencha o formulário abaixo para que eu consiga entrar em contato com você.