Pular para o conteúdo

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.

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-tenant

Salve 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"] }
  }
}
ToolPra quê
infi_onboardPerguntas → conta preparada → setup → link para finalizar o cadastro
infi_bootstrapProvisionamento direto + infi.company.ts + sync + doctor
infi_claim_createSó provisiona o tenant claimable
infi_doctorSaúde do setup (JSON + fix commands)
infi_go_live_statusGuidance claim → KYC → sk_live_
infi_sync_plan / infi_sync_applyDry-run / apply do company file
infi_set_app_urlAtualiza origens do app
infi_pullBackend → infi.company.ts