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:
- 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).
- 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.
- 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,
customerid text,
subscriptionid text unique,
variantid 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.
- Crie uma Edge Function chamada
handle-payment-webhookno Supabase. - No painel do Lemon Squeezy ou Paddle, registre a URL da sua Edge Function (
https://<seu-projeto>.supabase.co/functions/v1/handle-payment-webhook). - Configure a assinatura de webhook (Webhook Secret) nos Secrets do Supabase para validar a autenticidade das requisições.
- Na função, intercepte eventos críticos como
subscription_created,subscription_updatedesubscription_cancelled, atualizando a tabelasubscriptionscom ouser_idcorrespondente.
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_idno campocustom_data. Verifique a tabelasubscriptionspara 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/pricingcom 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_iddo 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.


