FICA tax calculator
FICA is the United States payroll tax that funds Social Security and Medicare. People who search for a FICA tax calculator want the tax owed from gross wages, not a generic withholding percent and not a full Form 1040 estimate.
Run — free
This calculator applies the 2026 employee Social Security rate of 6.2 percent to wages up to the Social Security wage base of 184500 dollars, the 1.45 percent Medicare rate to every dollar of wages, and the 0.9 percent Additional Medicare Tax to wages above the filing-status threshold. Negative wages are rejected with invalid_input. Zero wages return zero tax. The same deterministic arithmetic runs in the free browser widget and on the API at $0.002 per successful call, with no network, no clock, and no random seed.
How to use it
Enter your values in the form above. The tool checks them before calculating and shows the result on the same page.
Check your inputs
Use the labels and units shown next to each field. If something is missing or outside the allowed range, the page points to the field to fix.
Use it again or automate it
Use the browser tool for individual checks and the API when you need the same capability in an automated workflow.
What you can do with it
Get an answer now
Enter one set of values and see the result without building a spreadsheet or script.
Compare scenarios
Change one value at a time and rerun the calculation to understand what affects the result.
Automate repeated work
Use the API when the same calculation needs to run inside your product or workflow.
FAQ
How is FICA tax calculated from gross wages?
Employee FICA for 2026 is 6.2 percent Social Security tax on wages up to 184500 dollars, plus 1.45 percent Medicare tax on all wages, plus 0.9 percent Additional Medicare Tax on wages above the filing-status threshold. The API returns those pieces and the total tax owed.
What is the 2026 Social Security wage base?
The Social Security Administration set the 2026 contribution and benefit base at 184500 dollars. Wages above that cap are not subject to the 6.2 percent employee Social Security tax. Medicare has no wage cap.
What happens if wages are negative?
The task fails with invalid_input. FICA tax is computed from gross wages, so a negative amount is rejected and is not billed.
Does Medicare tax have a wage cap?
No. Regular Medicare tax of 1.45 percent applies to all wages. Additional Medicare Tax of 0.9 percent applies only to wages above 200000 dollars for single filers (250000 married filing jointly, 125000 married filing separately).
What does the FICA tax calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.
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/fica-tax \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"wages":60000}'const res = await fetch("https://api.kit.forhosting.com/fin/fica-tax", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"wages": 60000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/fica-tax",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"wages": 60000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/fica-tax", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"wages":60000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"wages":60000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/fica-tax", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"wages": 60000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.fica_tax",
"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.
Limits
max_abs | 1000000000000 |
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. |