Comparador de empréstimos
Pegar 25.000 a 5,5% em 36 meses custa 2.176,4 de juros; a 7,9% em 48 meses custa 4.239,2, mesmo com parcela 145,75 menor. Compare duas propostas pelos juros totais, não pela taxa anunciada. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Principal A
- 25.000
- Taxa anual A
- 5,5
- Prazo em meses A
- 36
- Principal B
- 25.000
- Taxa anual B
- 7,9
- Prazo em meses B
- 48
- Pagamento mensal A
- 754,9
- Reembolso total A
- 27.176,4
- Total de juros A
- 2.176,4
- Pagamento mensal B
- 609,15
Duas ofertas de empréstimo não se ordenam olhando só a taxa anual anunciada. Um percentual menor em um prazo mais longo pode custar mais juros do que um percentual um pouco maior quitado antes, e uma parcela mensal menor pode esconder um custo total do crédito maior. Este comparador de empréstimos aceita um principal, uma taxa de juros nominal anual em percentual e um prazo como número inteiro de meses para cada um de dois empréstimos, aplica aos dois a fórmula padrão de parcela sobre saldo decrescente e devolve a parcela mensal e os juros totais de cada um, junto com qual sai mais barato em juros totais.
O que significa comparar dois empréstimos e como se calculam a parcela mensal e os juros totais
Uma comparação de empréstimos parte de duas notas amortizáveis independentes, não de um percentual de capa. O número de pagamentos n é o prazo em meses inteiros. Essa identidade é a parcela sobre saldo decrescente que os credores publicam: cada vencimento cobre primeiro os juros do capital em aberto e depois reduz o saldo, de modo que a fatia de juros cai embora o caixa da parcela não mude.
Campos de dinheiro arredondam para duas casas decimais para coincidir com a moeda. O empréstimo mais barato é o de menores juros totais, o verdadeiro custo extra do crédito; se os dois totais arredondados coincidem, o resultado é um empate. Uma parcela mensal menor não vence sozinha: alongar a nota pode cortar o vencimento e ao mesmo tempo subir os juros pagos ao longo da vida do empréstimo.
Tarifas de abertura, pontos de desconto e seguro não são inventados: some-os a principal se forem financiados; caso contrário, deixe-os fora da comparação.
Onde um comparador de empréstimos agrega valor
Planilhas de capacidade de pagamento já conhecem dois valores financiados; enviar ambos os principais, taxas e prazos preenche um cartão com parcela mensal, juros totais e qual empréstimo é mais barato, para que um consultor veja se uma nota mais longa a taxa menor custa mesmo mais juros do que uma mais curta. Educadores que ensinam crédito amortizável versus só juros podem semear exemplos de aula que falhem alto quando qualquer prazo não é um inteiro positivo, em vez de tratar em silêncio um mês fracionário como um empréstimo válido.
Validação falha, inclusive um prazo que não é um inteiro positivo, não consome saldo. Mantenha ambos os principais estritamente positivos e ambos os prazos como números inteiros de meses, fixe os campos de dinheiro arredondados nos testes e obtenha comparações reproduzíveis para widgets, módulos LMS e workers na borda sem um stack próprio de originação.
Casos de uso
Confrontar duas ofertas de empréstimo pessoal
Transforme dois principais, taxas anuais e prazos em meses em parcelas mensais, juros totais e qual empréstimo sai mais barato antes de assinar.
Landings de credores e marketplaces
Permita que os visitantes informem dois produtos anunciados e vejam a parcela mensal, os juros totais e o empréstimo mais barato ao lado de cada cartão.
Perguntas frequentes
O que acontece se um prazo não for um inteiro positivo?
Frações, zero, booleanos e valores não numéricos são rejeitados e não cobrados.
Os dois empréstimos podem ter principais ou prazos diferentes?
Sim. Cada empréstimo é amortizado por conta própria. Valores e prazos distintos são válidos; cheaper continua a seguir os juros totais, então um principal menor ou um prazo mais curto pode vencer mesmo com taxa mais alta.
Uma taxa 0% em um ou nos dois empréstimos funciona?
Os juros totais daquele lado ficam em zero salvo o arredondamento.
Por que o empréstimo com a parcela menor pode sair mais caro?
Porque um prazo maior divide a dívida em mais parcelas, cada uma menor, enquanto os juros continuam se acumulando. No exemplo, o empréstimo de 48 meses economiza 145,75 por mês, mas custa 2.062,8 a mais de juros.
Devo incluir tarifas na comparação?
Só as que forem financiadas junto com o empréstimo: nesse caso, some-as ao valor emprestado. Tarifas de abertura, pontos ou seguros pagos à parte ficam fora, e a calculadora não inventa nenhum custo extra.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/fin/loan-comparison \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"principal_a":25000,"annual_rate_a":5.5,"term_months_a":36,"principal_b":25000,"annual_rate_b":7.9,"term_months_b":48}'const res = await fetch("https://api.kit.forhosting.com/fin/loan-comparison", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"principal_a": 25000,
"annual_rate_a": 5.5,
"term_months_a": 36,
"principal_b": 25000,
"annual_rate_b": 7.9,
"term_months_b": 48
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/loan-comparison",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"principal_a": 25000,
"annual_rate_a": 5.5,
"term_months_a": 36,
"principal_b": 25000,
"annual_rate_b": 7.9,
"term_months_b": 48
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/loan-comparison", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"principal_a":25000,"annual_rate_a":5.5,"term_months_a":36,"principal_b":25000,"annual_rate_b":7.9,"term_months_b":48}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"principal_a":25000,"annual_rate_a":5.5,"term_months_a":36,"principal_b":25000,"annual_rate_b":7.9,"term_months_b":48}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/loan-comparison", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"principal_a": 25000,
"annual_rate_a": 5.5,
"term_months_a": 36,
"principal_b": 25000,
"annual_rate_b": 7.9,
"term_months_b": 48
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.loan_comparison",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_term_months | 600 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Um prazo que não seja um inteiro positivo falha com invalid_input em vez de inventar um cronograma.
O que significa comparar dois empréstimos e como se calculam a parcela mensal e os juros totais
Em cada empréstimo a taxa mensal r é o percentual nominal anual dividido por mil e duzentos: r é igual a annual_rate dividido por doze e por cem. Quando r é maior que zero, a forma fechada é monthly_payment igual a P vezes r vezes (1 mais r) elevado a n, dividido por (1 mais r) elevado a n menos um. Quando a taxa anual é zero o denominador seria zero, então a calculadora passa ao caso especial honesto monthly_payment igual a P dividido por n. O total a pagar é monthly_payment vezes n, e os juros totais são esse total menos o principal.
Contrato de entrada, a regra do prazo inteiro positivo e o formato da resposta
Zero, uma fração como trinta e seis ponto cinco, um booleano ou uma string não numérica nunca produzem um cronograma fictício, porque um prazo que não seja um número inteiro de meses não é uma entrada válida de comparação. Envie por POST um corpo JSON com seis campos obrigatórios. Para o empréstimo A: principal_a, o valor financiado como número finito estritamente maior que zero (aliases amount_a e loan_amount_a); annual_rate_a, o juro nominal anual como percentual —5.5 para cinco e meio por cento ao ano—, finito e pelo menos zero (aliases rate_a e interest_rate_a); e term_months_a, o prazo como inteiro positivo de meses de um a seiscentos (aliases term_a e months_a). Para o empréstimo B os três campos análogos são principal_b, annual_rate_b e term_months_b, com os aliases correspondentes. Cada campo numérico pode chegar como número JSON ou como string numérica. Campos ausentes, strings vazias, valores não finitos, um principal não positivo e uma taxa anual negativa falham com invalid_input nomeando o campo e não são cobrados. A regra distintiva do produto é o prazo: term_months_a e term_months_b devem ser cada um um inteiro positivo. Em caso de sucesso o corpo ecoa ambos os principais, taxas e prazos, e acrescenta monthly_payment, total_repayment e total_interest de cada lado, mais cheaper (loan_a, loan_b ou tie), interest_difference, monthly_difference e uma string de fórmula que reafirma a identidade de amortização. Exemplo: principal vinte e cinco mil nos dois lados, annual_rate_a 5.5 com term_months_a 36 versus annual_rate_b 7.9 com term_months_b 48 produz duas parcelas arredondadas e uma marca cheaper no lado com menores juros totais.
Onde um comparador de empréstimos agrega valor
Ferramentas de cotação e CRMs de originação podem chamar o mesmo módulo puro no navegador para prévias gratuitas e na API ao gravar um cenário, garantindo que a marca de mais barato que um visitante viu coincida com a armazenada depois de salvar um par de ofertas. Equipes de conteúdo podem ilustrar financiamento do vendedor a zero por cento de um lado com annual_rate zero, em que monthly_payment se reduz a principal sobre term_months sem divisão por zero. Como a implementação é parse pura de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo nem rede de saída.
Casos de integração
Fluxos de cotação e CRM
Armazene duas notas em uma ferramenta de cotação cuja marca de mais barato na API coincida byte a byte com a prévia gratuita do navegador.
Perguntas técnicas
Como o comparador de empréstimos decide qual sai mais barato?
Calcula uma parcela amortizável para cada empréstimo a partir de principal, annual_rate como percentual e term_months, e então os juros totais como (parcela mensal × prazo) menos principal. cheaper é loan_a ou loan_b conforme o menor juro total arredondado, ou tie se esses totais coincidem. Uma parcela mensal menor não vence sozinha.
Quanto custa o comparador de empréstimos?
A ferramenta do navegador é gratuita. As solicitações API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida, inclusive um prazo que não seja um inteiro positivo, não é cobrada.