Calculate loan monthly payment with interest
Calculate the fixed monthly payment for an amortizing loan by entering the amount borrowed, the nominal annual interest rate, and the repayment term in months.
Run — free
The calculator converts the annual percentage rate into a monthly rate and applies the standard amortization formula used for equal-payment loans. It also handles zero-interest borrowing correctly, dividing the principal evenly across the selected term. The result is rounded to two decimal places so it can be read as a practical currency payment estimate.
Enter the three parts of the loan
Start with the principal, which is the amount financed before interest. Enter the annual interest rate as a percentage: for example, an input of 6.5 means 6.5 percent per year, not the decimal 0.065. Finally, enter the full repayment term as a positive whole number of months. A fifteen-year term therefore becomes 180 months, while a thirty-year term becomes 360 months. Keeping the term in months avoids uncertainty about partial years and matches the payment frequency used by the formula. The calculator assumes one payment every month and a fixed nominal interest rate throughout the term. It does not add taxes, insurance, service fees, origination charges, optional products, or an initial down payment. If those amounts are financed, include them in the principal; if they are paid separately, leave them out. Using the actual financed balance rather than a purchase price produces a payment estimate that is much closer to the lender's principal-and-interest figure.
Understand the amortization calculation
For a loan with interest, the calculation first divides the annual percentage rate by twelve and by one hundred to obtain a monthly decimal rate. It then applies the standard fixed-payment amortization formula: principal multiplied by the monthly rate, divided by one minus the factor of one plus that rate raised to the negative number of payments. This structure creates one equal scheduled payment even though the composition of that payment changes over time. Early payments generally contain more interest and less principal; later payments contain less interest and more principal. When the annual rate is exactly zero, the usual formula would divide by zero, so the calculator uses the mathematically correct limit instead and divides principal by term. The displayed answer is rounded to two decimal places. A lender may use additional day-count rules, intermediate rounding, payment dates, or fee treatment, so its final schedule can differ slightly even when the headline rate and term appear identical.
Use the result for comparisons and planning
The monthly payment is most useful when every scenario is entered on the same basis. You can compare different terms while holding principal and rate constant to see the cash-flow effect of repaying faster, or compare rates while holding the balance and term constant to understand the value of a better offer. You can also work backward informally by trying several principal amounts until the payment fits a target budget. Remember that this result covers fixed principal and interest only. A real housing payment may also include property tax, insurance, association dues, or mortgage insurance, while vehicle and personal loans may include financed fees or optional products. Add those separate obligations when evaluating affordability. The calculation is deterministic and runs without network access, so the same inputs always produce the same rounded result. Browser use is available directly on the page, and automated API requests use the published base price of $0.002 per request.
What you can do with it
Compare loan offers
Enter each lender's principal, rate, and term on the same basis to compare the fixed principal-and-interest payment.
Test a shorter repayment term
See how moving from a longer term to fewer months changes the required monthly cash flow.
Plan an affordable borrowing amount
Try several principal amounts to identify a payment range that fits a monthly budget before requesting quotes.
FAQ
Which loan formula does this calculator use?
It uses the standard fixed-payment amortization formula for a loan with equal monthly payments and a constant nominal annual interest rate.
How should I enter the annual interest rate?
Enter it as a percentage. For example, enter 6.5 for an annual interest rate of 6.5%, not 0.065.
What happens when the interest rate is zero?
The principal is divided evenly by the number of months, avoiding the division by zero in the interest-bearing formula.
Does the payment include taxes, insurance, or fees?
No. The result is the fixed monthly principal-and-interest payment. Include any financed fees in principal and account for separate charges independently.
Why might a lender show a slightly different payment?
A lender may apply different intermediate rounding, day-count conventions, payment dates, or fee treatment that this standard estimate does not model.
What does an API calculation cost?
The published API base price is $0.002 per request. The same deterministic calculation can also run in your browser.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/calc2/loan-monthly-payment \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"principal":250000,"annual_interest_rate":6.5,"term_months":360}'const res = await fetch("https://api.kit.forhosting.com/calc2/loan-monthly-payment", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"principal": 250000,
"annual_interest_rate": 6.5,
"term_months": 360
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/loan-monthly-payment",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"principal": 250000,
"annual_interest_rate": 6.5,
"term_months": 360
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/loan-monthly-payment", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"principal":250000,"annual_interest_rate":6.5,"term_months":360}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"principal":250000,"annual_interest_rate":6.5,"term_months":360}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/loan-monthly-payment", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"principal": 250000,
"annual_interest_rate": 6.5,
"term_months": 360
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.loan_monthly_payment",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |