Integração
Lovable
Conecte seu app do Lovable ao Infi: chave por HTTP e SDK no servidor.
Dois caminhos: MCP ou uma chamada HTTP
Use infi_onboard pelo MCP stdio (npx -y @beinfi/mcp) quando o editor
suportar esse transporte. Sem shell ou MCP, o agente provisiona pela API abaixo.
O guia de cadastro pelo agente descreve
as versões necessárias, as perguntas e a retomada da mesma conta.
1. Prepare a conta
O agente primeiro procura uma integração Infi no app. Se já houver, reutiliza a
conta. Para uma integração nova, pergunta email, nome do app e forma de cobrança.
Com as respostas, chama infi_onboard ou faz o POST abaixo com os dados reais:
curl -X POST https://api-sandbox.beinfi.com/public/v1/claimables \
-H 'Content-Type: application/json' \
-d '{"ref":"lovable","email":"[email protected]","accountName":"Acme"}'A resposta traz apiKeySecret (sk_test_*, uma única vez), publishableKey
(pk_test_*), accountName, tenantSlug, expiresAt, productId do seed e a claimUrl
(https://app-sandbox.beinfi.com/claim/{id}). O ref: "lovable" é o que marca o
signup_source do tenant. Detalhes de cada campo em
início rápido.
2. Guarde o link para finalizar depois
O agente entrega a claimUrl e continua a integração no sandbox. Com a atualização
de email de claim, informar o endereço também enfileira um aviso com nome da conta,
link e prazo. O envio é assíncrono, limitado a um aviso por endereço a cada 24 horas.
O email não contém as chaves; 201 confirma a criação, não a entrega da mensagem.
Você entra na Infi depois, pelo link da conversa ou do email, e assume a mesma
conta. O prazo padrão é de 30 dias; vale o expiresAt retornado. O nome já está
preenchido e produtos, chaves e slug são preservados. Não crie outra conta se o
email demorar. Detalhes em Claim.
3. Env no app Lovable
INFI_SECRET_KEY=sk_test_...
INFI_PUBLISHABLE_KEY=pk_test_...
INFI_TENANT_SLUG=seu-tenantSalve a INFI_SECRET_KEY nos secrets das funções de servidor. Só a
INFI_PUBLISHABLE_KEY pode ser exposta no browser quando uma API cliente exigir;
ela é da Infi, não do provedor de pagamento. Nunca exponha a secret em uma variável
VITE_*. O agente não precisa da sua senha nem de código de verificação.
Não sete INFI_AUTH_BASE_URL / INFI_PAY_BASE_URL — são legado e nada os lê. Os
hosts saem do prefixo da chave.
4. Crie o produto
O produto seed não serve pra vender nem pra medir (versão em draft, sem meter).
Crie e publique o seu — três chamadas em
catálogo. Guarde o productId: ele entra em
link de pagamento, checkout() e em cada evento de uso.
5. Integre o SDK
A Infi não faz o login do seu usuário — use o auth que o app já tem (Supabase, no caso típico do Lovable) e passe esse id pra Infi.
// servidor — inscrição + medição de uso
import { Infi } from "@beinfi/sdk";
const infi = new Infi({ secretKey: process.env.INFI_SECRET_KEY! });
// seuUserId vem do SEU auth (ex.: Supabase)
const enrollment = await infi.products.enroll(productId, {
externalId: seuUserId,
email: emailDoUsuario,
});
await infi.track({
customerId: enrollment.id,
productId, // obrigatório com mais de um produto no tenant
meter: "tokens",
value: "1200",
});Pra cobrar, mande um link de pagamento.
Pra saber que pagaram, polling em sandbox — o
registro de webhook responde 503 com chave de teste.
Tools do MCP
Referência do que o servidor MCP expõe. Aponte seu cliente MCP pra ele assim:
{
"mcpServers": {
"infi": { "command": "npx", "args": ["-y", "@beinfi/mcp"] }
}
}| Tool | Pra quê |
|---|---|
infi_onboard | Perguntas → conta preparada → setup → link para finalizar o cadastro |
infi_bootstrap | Provisionamento direto + infi.company.ts + sync + doctor |
infi_claim_create | Só provisiona o tenant claimable |
infi_doctor | Saúde do setup (JSON + fix commands) |
infi_go_live_status | Guidance claim → KYC → sk_live_ |
infi_sync_plan / infi_sync_apply | Dry-run / apply do company file |
infi_set_app_url | Atualiza origens do app |
infi_pull | Backend → infi.company.ts |