APP FEITO COM IA · INTEGRAÇÃO SEGURA

Como integrar PIX → stablecoin no Lovable ou Replit

Peça ao agente para criar uma função de servidor, nunca uma chamada direta do navegador. A chave lun_live_… fica em um secret do backend. O frontend chama apenas a sua função, recebe o PIX copia e cola e acompanha um estado sanitizado.
LovableReplitSupabase Edge FunctionServer-side secretOpenAPI vivo

Arquitetura correta

navegador
  └─ POST /api/checkout-pix   (sem chave Lunium)
       └─ sua função de servidor
            ├─ lê LUNIUM_API_KEY do secret manager
            ├─ chama POST /cashin/preview
            ├─ chama POST /cashin/charge
            └─ persiste external_id + cashin_id

Lunium ──webhook assinado──> sua função de webhook
                               └─ atualiza o pedido

Prompt pronto para o agente

Adicione checkout PIX com liquidação em USDT/USDC usando
https://api.luniumpay.com/openapi.json como contrato.

Regras obrigatórias:
1. Toda chamada com X-API-Key deve acontecer no servidor.
2. Guarde LUNIUM_API_KEY somente no secret manager.
3. Nunca envie a chave ao browser, console, URL ou analytics.
4. Antes da cobrança, consulte /cashin/limits para o pagador.
5. Use external_id estável por pedido e persista antes da chamada.
6. Trate delayed como PIX pago e retido, não como falha.
7. Valide assinatura e timestamp do webhook antes de processar.
8. Faça o consumidor do webhook idempotente.
9. Use consulta de status apenas para reconciliação.
10. Mostre o diff e os testes; não use chave real nos testes.

O prompt não substitui a revisão do código gerado. Verifique se nenhum bundle do frontend, resposta HTTP ou log contém a chave.

Passos de implementação

Crie uma função de servidor

Edge Function, server action ou rota backend. Se o ambiente só oferece frontend estático, ele não é suficiente para guardar uma chave financeira.

Cadastre o secret

Use o cofre do ambiente. O nome pode ser LUNIUM_API_KEY; o valor nunca entra no repositório.

Implemente o pedido idempotente

Gere e persista external_id no seu banco antes de chamar a API. Em timeout, reutilize o mesmo valor.

Implemente o webhook

Receba o corpo bruto, valide assinatura e aplique uma transição de estado apenas uma vez.

Teste sem dinheiro e revise produção

No cash-out, use a sandbox para o ciclo completo. No cash-in, valide contrato, catálogo, limites e prévia; depois faça o menor PIX real permitido com chave de produção e reconcilie antes de aumentar volume.

Checklist de vazamento

Bundle

Busque por lun_live_ nos arquivos gerados. O resultado deve ser zero.

Rede

O navegador nunca chama a Lunium usando sua chave; ele chama o seu backend.

Logs

Registre request_id e IDs da operação, não headers ou payloads sensíveis.

Git

Secret e arquivos locais estão ignorados; secret scanning roda antes de publicar.

Seu agente pode começar pelo contrato vivo

Abra o quickstart, copie o prompt e peça que ele implemente primeiro a sandbox. Para revisar o desenho, envie somente o diff sem segredos.