Como integrar PIX → stablecoin no Lovable ou Replit
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.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.