Business loan calculator
Borrowing 50,000 for your business at 8% over 36 months means a monthly payment of 1,566.82, 56,405.52 repaid in total and 6,405.52 of interest. Enter the figures from any term sheet or equipment note to compare offers. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Principal amount
- 50,000
- Annual rate
- 8
- Term months
- 36
- Monthly rate
- 0.0066666667
- Monthly payment
- 1,566.82
- Total repayment
- 56,405.52
- Total interest
- 6,405.52
Business owners rarely compare term sheets by the headline rate alone: a working-capital note, equipment installment, or term facility is judged by the cash that leaves the account every month and by how much will have been repaid when the last installment clears. A naive split of principal by months ignores compound interest on a reducing balance and understates the true cash commitment. This business loan calculator accepts a positive principal, an annual nominal interest rate as a percent, and a term as a whole number of months, applies the standard amortizing installment formula, and returns the monthly payment together with total repayment, total interest, and a compact payment breakdown.
How a business loan payment is worked out
A term loan, a working-capital note or an equipment installment is usually repaid with the same payment every month. That payment is set so that, month by month, it covers the interest on what you still owe and pays down the rest, until the balance reaches zero on the last installment. The annual rate is turned into a monthly rate by dividing it by twelve, and the term is counted in whole months. When the rate is zero, as with a vendor note that genuinely charges no interest, the payment is simply the amount divided by the number of months. Results are rounded to cents.
When to use it and the usual mistakes
Owners compare term sheets by the cash that leaves the account each month and by how much they will have repaid in the end, not by the headline rate alone. Running each offer through the same calculation puts them on equal footing. The most common mistake is dividing the amount by the months and forgetting interest. Another is leaving out fees that are actually financed: if a fee is added to the loan, add it to the amount you enter, otherwise leave it out. A balloon payment at the end is not modelled here.
What you can do with it
Compare term sheets
Turn principal, annual rate, and term in months into monthly payment, total repayment, and total interest before signing a working-capital or equipment note.
SMB finance landing pages
Let visitors enter a requested amount, published rate, and term to see the monthly business-loan payment next to each product card.
FAQ
What happens if principal is not positive?
Principal must be a finite number strictly greater than zero. Zero, negatives, and non-numeric values are rejected and not billed.
Does a 0% vendor note work?
Total interest is then zero aside from rounding.
Are origination fees and balloon residuals included?
No. Add any financed fees to principal if they go into the note; otherwise leave them out.
Why is the business loan payment higher than the amount divided by the months?
Because interest is charged every month on the balance still owed. Splitting the principal evenly across the months ignores that interest and understates the real cash that leaves your account.
How is each payment split between interest and principal?
Each installment first covers the interest on the balance still outstanding, and the rest reduces the balance. As the balance falls, the interest share shrinks and the principal share grows, while the payment itself never changes.
Related tools
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/fin/business-loan \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"principal":50000,"annual_rate":8,"term_months":36}'const res = await fetch("https://api.kit.forhosting.com/fin/business-loan", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"principal": 50000,
"annual_rate": 8,
"term_months": 36
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/business-loan",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"principal": 50000,
"annual_rate": 8,
"term_months": 36
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/business-loan", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"principal":50000,"annual_rate":8,"term_months":36}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"principal":50000,"annual_rate":8,"term_months":36}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/business-loan", 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": 50000,
"annual_rate": 8,
"term_months": 36
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.business_loan",
"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. |
Technical notes
Principal that is not strictly positive fails with invalid_input instead of inventing a schedule.
What a business loan monthly payment means and how the amortizing formula works
A business-loan monthly payment is the constant installment a borrower sends so that a principal P at annual nominal rate i percent is fully amortised in n months on a reducing-balance schedule. Money fields round to two decimal places so they match currency. Origination fees, packing, and balloon residuals are not invented: add financed fees to principal if they go into the note, otherwise leave them out of the principal. The monthly rate r is the annual percent divided by twelve hundred: r equals annual_rate divided by twelve divided by one hundred. When r is greater than zero the closed form is monthly_payment equals P times r times (1 plus r) to the n, divided by (1 plus r) to the n minus one. That identity is the standard amortizing installment banks, credit unions, and SBA-style lenders publish for term facilities and equipment notes: each installment covers interest on the outstanding principal first, then reduces the balance, so the interest share falls and the principal share rises even though the cash payment never changes. When the annual rate is zero the denominator would be zero, so the calculator switches to the honest special case monthly_payment equals P divided by n, which is how genuine interest-free vendor notes are billed. The response also reports total_repayment, which is monthly_payment times term_months, and total_interest, which is total_repayment minus principal, so an owner can see the true extra cost of stretching a thirty-six-month note to sixty months.
Input contract, response shape, and error behaviour
Principal is the field the product contract singles out: it must be strictly positive. Zero, negatives, and non-numeric values never produce a fake schedule. POST a JSON body with three required fields: principal, the financed amount as a finite number strictly greater than zero (aliases amount and loan_amount); annual_rate, the annual nominal interest as a percent such as eight for eight percent per year, finite and at least zero (aliases rate and interest_rate); and term_months, the term as a positive integer number of months from one through three hundred sixty (aliases months, term, and tenure). Each numeric field may arrive as a JSON number or as a numeric string. Missing fields, empty strings, non-finite values, a non-positive principal, a negative annual_rate, and any term_months that is not a positive integer—zero, a fraction such as twelve point five, a boolean, or a non-numeric string—fail with invalid_input naming the field and are not billed. On success the body echoes principal, annual_rate, and term_months, and adds monthly_rate (annual_rate divided by twelve hundred), monthly_payment, total_repayment, total_interest, and a formula string restating the amortizing identity and the zero-rate special case. Example: principal fifty thousand, annual_rate eight, term_months thirty-six yields a monthly rate of one twelfth of eight percent and a monthly payment rounded to two decimals, with total_repayment equal to that payment times thirty-six. Pair the figure with your own fee table if the lender adds documentation charges outside the loan; this endpoint computes installment math only and does not emit an amortization schedule row by row.
Where a business loan calculator earns its keep
Educators teaching amortizing versus interest-only or merchant-cash-advance quotes can seed classroom examples that fail loudly when principal is not positive, instead of silently treating a zero principal as a free lunch. Failed validation does not consume balance. Keep principal strictly positive, pin the rounded money fields in tests, and you get reproducible business-loan payments for widgets, LMS modules, and edge workers without a loan-origination stack of your own. Quote tools and CRM pipelines can call the same pure module from the browser for free previews and from the API when storing a scenario, guaranteeing that the payment a visitor saw on a landing page matches the payment stored after they save a quote. Controllers and bookkeepers already know the financed amount; posting principal, annual_rate, and term_months fills a card with monthly payment, total repayment, and total interest so a founder can see whether sixty months is cheaper in cash than thirty-six at a higher monthly hit. Content teams can illustrate zero-percent vendor financing with annual_rate zero, where monthly_payment collapses to principal over term_months without a divide-by-zero.
Integration use cases
Quote and CRM pipelines
Store principal, annual_rate, and term_months in a quote tool whose API payment matches the free browser preview byte for byte.
Technical questions
How is the business loan monthly payment calculated?
Send principal (>0), annual_rate as a percent (≥0), and term_months as a positive integer of months. The payment uses the amortizing formula P·r·(1+r)^n/((1+r)^n−1) with r=annual_rate/12/100. If the rate is zero, the payment is principal/term_months.
What does the business loan calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.