API & MCP
Calculadora no seu site
Dois caminhos, conforme quem cuida do site.
Sem código: a sua página de captação dentro do site
Cole no site o código que fica em Página de captação, bloco "Embutir no seu site" (nas contas com o motor novo, a tela se chama Sua página). É a sua página num quadro: o visitante informa o consumo (nas contas com o motor novo, diz quanto paga de luz por mês, manda a foto da conta ou digita o kWh), vê o sistema e o preço pela sua formação de preço (nas contas com o motor novo, do jeito que você escolheu publicar) e, se quiser a proposta, deixa o contato e aceita o registro dos dados. O pedido vira proposta em Propostas, como vinda da página de captação, e você recebe o aviso por e-mail. Não precisa de chave.
<iframe src="https://app.ionluz.com.br/o/seu-endereco?embed=1" width="100%" height="1000" style="border:0;border-radius:12px"></iframe>O ?embed=1 tira as margens de fora da página, que somariam com as do seu site. Funciona em qualquer plano: no Grátis, a página orça sozinha por 14 dias ou 20 orçamentos, o que vier primeiro, e depois passa a pedir só o contato; na Máquina, não tem limite.
Com código: a sua calculadora chamando a API
O modo preview foi feito para isso: cotar sem criar lead. A chave nunca vai ao navegador, porque qualquer visitante a leria (vale também para a chave de teste, ilz_test_, que gasta a cota diária da conta). O padrão seguro é uma rota no seu servidor que injeta a chave:
<!-- Calculadora no seu site. A chave nunca vai ao navegador:
o formulário chama o SEU servidor, e o seu servidor chama o ionluz. -->
<form id="calc">
<input name="consumo" type="number" placeholder="Consumo mensal (kWh)" required>
<input name="cidade" placeholder="Cidade">
<select name="uf"><option>SP</option><option>MG</option><option>RJ</option></select>
<button>Simular economia</button>
</form>
<p id="resultado"></p>
<script>
document.getElementById("calc").onsubmit = async (e) => {
e.preventDefault();
const f = e.target;
const r = await fetch("/minha-cotacao", {
method: "POST", headers: { "Content-Type": "application/json" },
body: JSON.stringify({ consumoKwhMes: +f.consumo.value, cidade: f.cidade.value, uf: f.uf.value }),
});
const c = await r.json();
document.getElementById("resultado").textContent = c.ok
? "Sistema de " + c.potenciaKwp + " kWp, " + c.preco + ", economia de R$ " + c.economiaMes1 + " no primeiro mês."
: "Para esse pedido, deixe o seu contato que a gente responde.";
};
</script>// /minha-cotacao no SEU servidor (Node, Next, Express)
export async function POST(req) {
const { consumoKwhMes, cidade, uf } = await req.json();
const r = await fetch("https://app.ionluz.com.br/api/v1/quote", {
method: "POST",
headers: { "Authorization": "Bearer " + process.env.IONLUZ_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ consumoKwhMes, cidade, uf, preview: true }),
});
const j = await r.json();
// faixa "não atendo" e cliente fora do raio: a conta pede contato
if (!j.ok) return Response.json({ ok: false, error: j.error }, { status: r.status });
const publicado = j.preco && j.preco.publicado;
return Response.json({
ok: true,
potenciaKwp: j.orcamento.potenciaKwp,
economiaMes1: j.orcamento.economiaMes1,
cobrePct: j.orcamento.cobrePct,
// o preço como a conta publica (nas contas com o motor novo), senão o valor
preco: publicado ? publicado.rotulo : "R$ " + Math.round(j.orcamento.valorFinal).toLocaleString("pt-BR"),
});
}Se o visitante não sabe o consumo, pergunte quanto ele paga de luz por mês e mande valorContaBrl no lugar de consumoKwhMes: a resposta traz consumoEstimado: true e o consumo estimado em consumoKwhMes. Mostre que o número veio do valor da conta (veja Pelo valor da conta de luz).
Quando o visitante quiser falar com você, repita a chamada com preview: false, consent: true e o nome, o e-mail ou o telefone: a proposta é gravada, o lead entra no seu painel e a resposta traz os links. Gravar pela API é do plano Máquina.
requestId ao escrever para suporte@ionluz.com.br.