{"openapi":"3.1.0","info":{"title":"CTC in Hand API","version":"0.3.0","summary":"Indian salary, income tax and savings calculators, FY 2026-27","description":"The same engine as https://ctcinhand.in: CTC to in hand, both tax regimes, EPF, HRA, gratuity, bonus, RSU, freelance, retirement and loan maths for India. Free, no key, read-only, stateless. Amounts are annual rupees unless a field says monthly. Results are estimates, not tax advice. Every response carries a summary sentence and a url to the interactive breakdown.","termsOfService":"https://ctcinhand.in/terms","contact":{"url":"https://ctcinhand.in/developers"},"license":{"name":"Free to use with attribution","url":"https://ctcinhand.in/terms"}},"servers":[{"url":"https://mcp.ctcinhand.in"}],"tags":[{"name":"salary","description":"Salary and offers"},{"name":"tax","description":"Income tax"},{"name":"savings","description":"PF, savings, retirement and loans"},{"name":"reference","description":"Reference tables"}],"paths":{"/v1/calculate_in_hand_salary":{"post":{"operationId":"calculate_in_hand_salary","summary":"CTC to in hand salary (India)","description":"Convert an Indian CTC (cost to company) into monthly in-hand / take-home salary. Computes income tax under both the new and old regime (slabs, standard deduction, section 87A rebate with marginal relief, surcharge, 4% cess), employee and employer EPF, gratuity and professional tax, and says which regime pays less tax. Use when someone asks what a CTC or LPA figure means per month, how much tax they pay on a salary, or whether the new or old regime is better for them.","tags":["salary"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ctc":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual cost to company in rupees, e.g. 1200000 for 12 LPA"},"basic_percent":{"default":50,"description":"Basic salary as a percentage of CTC (30-60, default 50, the Labour Codes wage floor)","type":"number","minimum":30,"maximum":60},"employer_pf_in_ctc":{"default":true,"description":"Whether the employer EPF contribution is counted inside CTC","type":"boolean"},"pf_capped":{"default":false,"description":"Whether EPF is computed on the 25,000/month statutory wage ceiling (3,000/month cap)","type":"boolean"},"gratuity_in_ctc":{"default":false,"description":"Whether a gratuity provision (4.81% of basic) is counted inside CTC","type":"boolean"},"professional_tax":{"default":2400,"description":"Annual professional tax in rupees; 0 for Delhi/Haryana, about 2,400-2,500 in Karnataka/Maharashtra","type":"number","minimum":0,"maximum":2500},"variable_pay":{"default":0,"description":"Annual variable or bonus pay inside CTC; excluded from the monthly figure and reported separately","type":"number","minimum":0,"maximum":100000000},"old_regime_deductions":{"default":0,"description":"Other old-regime deductions not listed separately (LTA, 80E, 80G, 80TTA)","type":"number","minimum":0,"maximum":10000000},"hra_percent_of_basic":{"default":40,"description":"HRA component as a percentage of basic (default 40)","type":"number","minimum":0,"maximum":50},"monthly_rent":{"default":0,"description":"Rent paid per month, for the old-regime HRA exemption","type":"number","minimum":0,"maximum":1000000},"metro_city":{"default":true,"description":"Whether the person lives in Delhi, Mumbai, Kolkata, Chennai, Bengaluru, Hyderabad, Pune or Ahmedabad (50% HRA limit from FY 2026-27) rather than any other city (40%)","type":"boolean"},"section_80c":{"default":0,"description":"Section 80C investments per year (EPF, PPF, ELSS, LIC), capped at 1,50,000","type":"number","minimum":0,"maximum":150000},"nps_80ccd1b":{"default":0,"description":"Own NPS contribution under 80CCD(1B), capped at 50,000","type":"number","minimum":0,"maximum":50000},"section_80d":{"default":0,"description":"Health insurance premiums under 80D","type":"number","minimum":0,"maximum":100000},"home_loan_interest":{"default":0,"description":"Home loan interest under 24(b), capped at 2,00,000","type":"number","minimum":0,"maximum":200000},"employer_nps_percent":{"default":0,"description":"Employer NPS contribution as a percentage of basic (80CCD(2), deductible in both regimes)","type":"number","minimum":0,"maximum":14}},"required":["ctc"]},"example":{"ctc":1200000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"better_regime":{"type":"string","enum":["new","old"]},"annual_tax_saving":{"type":"number","description":"Tax saved per year by the better regime"},"new_regime":{"type":"object","properties":{"gross_salary":{"type":"number"},"basic":{"type":"number"},"employer_pf":{"type":"number"},"gratuity":{"type":"number"},"taxable_income":{"type":"number"},"income_tax_total":{"type":"number"},"income_tax_rebate_87a":{"type":"number"},"surcharge":{"type":"number"},"cess":{"type":"number"},"employee_pf":{"type":"number"},"professional_tax":{"type":"number"},"annual_in_hand":{"type":"number"},"monthly_in_hand":{"type":"number"},"variable_pay":{"type":"number"},"variable_in_hand_after_tax":{"type":"number"},"hra_exemption":{"type":"number"},"total_deductions":{"type":"number"},"deductions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"allowed":{"type":"number"}},"required":["id","label","allowed"],"additionalProperties":false}}},"required":["gross_salary","basic","employer_pf","gratuity","taxable_income","income_tax_total","income_tax_rebate_87a","surcharge","cess","employee_pf","professional_tax","annual_in_hand","monthly_in_hand","variable_pay","variable_in_hand_after_tax","hra_exemption","total_deductions","deductions"],"additionalProperties":false},"old_regime":{"type":"object","properties":{"gross_salary":{"type":"number"},"basic":{"type":"number"},"employer_pf":{"type":"number"},"gratuity":{"type":"number"},"taxable_income":{"type":"number"},"income_tax_total":{"type":"number"},"income_tax_rebate_87a":{"type":"number"},"surcharge":{"type":"number"},"cess":{"type":"number"},"employee_pf":{"type":"number"},"professional_tax":{"type":"number"},"annual_in_hand":{"type":"number"},"monthly_in_hand":{"type":"number"},"variable_pay":{"type":"number"},"variable_in_hand_after_tax":{"type":"number"},"hra_exemption":{"type":"number"},"total_deductions":{"type":"number"},"deductions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"allowed":{"type":"number"}},"required":["id","label","allowed"],"additionalProperties":false}}},"required":["gross_salary","basic","employer_pf","gratuity","taxable_income","income_tax_total","income_tax_rebate_87a","surcharge","cess","employee_pf","professional_tax","annual_in_hand","monthly_in_hand","variable_pay","variable_in_hand_after_tax","hra_exemption","total_deductions","deductions"],"additionalProperties":false},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["better_regime","annual_tax_saving","new_regime","old_regime","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ctc_for_in_hand_salary":{"post":{"operationId":"ctc_for_in_hand_salary","summary":"CTC needed for a monthly in hand (India)","description":"Work backwards from a target monthly in-hand (take-home) salary to the annual CTC an employer must offer to pay it, after income tax, EPF and professional tax. Use when someone knows the take-home they need and asks what CTC or LPA to ask for.","tags":["salary"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthly_in_hand":{"type":"number","minimum":0,"maximum":5000000,"description":"Target monthly take-home salary in rupees"},"regime":{"default":"new","description":"Income tax regime; new is the default from FY 2023-24","type":"string","enum":["new","old"]},"old_regime_deductions":{"default":0,"description":"Other old-regime deductions not listed separately (LTA, 80E, 80G, 80TTA)","type":"number","minimum":0,"maximum":10000000},"basic_percent":{"default":50,"description":"Basic salary as a percentage of CTC (30-60, default 50, the Labour Codes wage floor)","type":"number","minimum":30,"maximum":60},"employer_pf_in_ctc":{"default":true,"description":"Whether the employer EPF contribution is counted inside CTC","type":"boolean"},"pf_capped":{"default":false,"description":"Whether EPF is computed on the 25,000/month statutory wage ceiling (3,000/month cap)","type":"boolean"},"gratuity_in_ctc":{"default":false,"description":"Whether a gratuity provision (4.81% of basic) is counted inside CTC","type":"boolean"},"professional_tax":{"default":2400,"description":"Annual professional tax in rupees; 0 for Delhi/Haryana, about 2,400-2,500 in Karnataka/Maharashtra","type":"number","minimum":0,"maximum":2500}},"required":["monthly_in_hand"]},"example":{"monthly_in_hand":100000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"ctc":{"type":"number"},"lpa":{"type":"number"},"monthly_in_hand":{"type":"number","description":"Monthly in hand at that CTC, at or just above the target"},"regime":{"type":"string","enum":["new","old"]},"breakdown":{"type":"object","properties":{"gross_salary":{"type":"number"},"basic":{"type":"number"},"employer_pf":{"type":"number"},"gratuity":{"type":"number"},"taxable_income":{"type":"number"},"income_tax_total":{"type":"number"},"income_tax_rebate_87a":{"type":"number"},"surcharge":{"type":"number"},"cess":{"type":"number"},"employee_pf":{"type":"number"},"professional_tax":{"type":"number"},"annual_in_hand":{"type":"number"},"monthly_in_hand":{"type":"number"},"variable_pay":{"type":"number"},"variable_in_hand_after_tax":{"type":"number"},"hra_exemption":{"type":"number"},"total_deductions":{"type":"number"},"deductions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"allowed":{"type":"number"}},"required":["id","label","allowed"],"additionalProperties":false}}},"required":["gross_salary","basic","employer_pf","gratuity","taxable_income","income_tax_total","income_tax_rebate_87a","surcharge","cess","employee_pf","professional_tax","annual_in_hand","monthly_in_hand","variable_pay","variable_in_hand_after_tax","hra_exemption","total_deductions","deductions"],"additionalProperties":false},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["ctc","lpa","monthly_in_hand","regime","breakdown","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/salary_hike_in_hand":{"post":{"operationId":"salary_hike_in_hand","summary":"Salary hike to in hand (India)","description":"Show how a CTC hike changes monthly in-hand salary: in hand before and after, the monthly increase, and how much of the hike is lost to higher tax. Give either hike_percent or new_ctc. Use for appraisal, promotion or job-switch questions.","tags":["salary"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current_ctc":{"type":"number","minimum":0,"maximum":100000000,"description":"Current annual CTC in rupees"},"hike_percent":{"description":"Percentage hike on CTC, e.g. 15","type":"number","minimum":0,"maximum":100},"new_ctc":{"description":"New annual CTC in rupees, instead of hike_percent","type":"number","minimum":0,"maximum":100000000},"regime":{"default":"new","description":"Income tax regime; new is the default from FY 2023-24","type":"string","enum":["new","old"]}},"required":["current_ctc"]},"example":{"current_ctc":1200000,"hike_percent":20}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"current_ctc":{"type":"number"},"new_ctc":{"type":"number"},"hike_percent":{"type":"number"},"monthly_in_hand_before":{"type":"number"},"monthly_in_hand_after":{"type":"number"},"monthly_increase":{"type":"number"},"in_hand_growth_percent":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["current_ctc","new_ctc","hike_percent","monthly_in_hand_before","monthly_in_hand_after","monthly_increase","in_hand_growth_percent","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/compare_salary_offers":{"post":{"operationId":"compare_salary_offers","summary":"Compare job offers by in hand (India)","description":"Compare two to five Indian job offers by what they actually pay per month in hand, each on its own salary structure (basic share, variable pay, professional tax, PF), taking the better tax regime for each. Use when someone weighs offers with different CTCs or structures.","tags":["salary"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"offers":{"minItems":2,"maxItems":5,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":60,"description":"Name of the offer, e.g. the company"},"ctc":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual cost to company in rupees, e.g. 1200000 for 12 LPA"},"basic_percent":{"default":50,"description":"Basic salary as a percentage of CTC (30-60, default 50, the Labour Codes wage floor)","type":"number","minimum":30,"maximum":60},"variable_pay":{"default":0,"description":"Annual variable pay inside this CTC","type":"number","minimum":0,"maximum":100000000},"professional_tax":{"default":2400,"description":"Annual professional tax in rupees; 0 for Delhi/Haryana, about 2,400-2,500 in Karnataka/Maharashtra","type":"number","minimum":0,"maximum":2500},"employer_pf_in_ctc":{"default":true,"description":"Whether the employer EPF contribution is counted inside CTC","type":"boolean"}},"required":["label","ctc"]}}},"required":["offers"]},"example":{"offers":[{"label":"Offer A","ctc":1800000},{"label":"Offer B","ctc":2000000,"variable_pay":300000,"basic_percent":50}]}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"best_offer":{"type":"string","description":"Label of the offer with the highest monthly in hand"},"offers":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"ctc":{"type":"number"},"better_regime":{"type":"string","enum":["new","old"]},"monthly_in_hand":{"type":"number"},"annual_in_hand":{"type":"number"},"variable_in_hand_after_tax":{"type":"number"},"income_tax":{"type":"number"},"employee_pf":{"type":"number"}},"required":["label","ctc","better_regime","monthly_in_hand","annual_in_hand","variable_in_hand_after_tax","income_tax","employee_pf"],"additionalProperties":false}},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["best_offer","offers","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/bonus_tax":{"post":{"operationId":"bonus_tax","summary":"Tax on a bonus (India)","description":"Income tax on a one-off bonus, joining bonus or variable payout on top of a salary: the extra tax at the person's marginal rate (including surcharge and cess), what reaches the bank, and the share kept.","tags":["salary"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ctc":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual CTC excluding the bonus, in rupees"},"bonus":{"type":"number","minimum":0,"maximum":100000000,"description":"Bonus amount in rupees"},"regime":{"default":"new","description":"Income tax regime; new is the default from FY 2023-24","type":"string","enum":["new","old"]},"old_regime_deductions":{"default":0,"description":"Other old-regime deductions not listed separately (LTA, 80E, 80G, 80TTA)","type":"number","minimum":0,"maximum":10000000}},"required":["ctc","bonus"]},"example":{"ctc":1500000,"bonus":200000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"bonus":{"type":"number"},"tax":{"type":"number"},"in_hand":{"type":"number"},"marginal_rate":{"type":"number","description":"Tax on the bonus as a share of it, 0-1"},"kept_share":{"type":"number","description":"Share of the bonus kept after tax, 0-1"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["bonus","tax","in_hand","marginal_rate","kept_share","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/notice_period_buyout":{"post":{"operationId":"notice_period_buyout","summary":"Notice period buyout cost (India)","description":"Cost of buying out the unserved part of a notice period: days left after days served and leave set off, the daily rate on the pay basis the employer uses, and, if a new CTC is given, the gross reimbursement a new employer must pay so the person is whole after tax.","tags":["salary"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthly_pay":{"type":"number","minimum":0,"maximum":10000000,"description":"Monthly pay the buyout is computed on (basic or gross, per the employment contract), in rupees"},"notice_days":{"type":"number","minimum":0,"maximum":180,"description":"Total notice period in days"},"served_days":{"default":0,"description":"Notice days already served","type":"number","minimum":0,"maximum":180},"leave_set_off":{"default":0,"description":"Earned leave days the employer lets you set off against notice","type":"number","minimum":0,"maximum":180},"day_divisor":{"default":30,"description":"Days the monthly pay is divided by for a daily rate (30, 26 or days in the month)","type":"integer","minimum":26,"maximum":31},"new_ctc":{"description":"New employer CTC, to compute a tax-neutral buyout reimbursement","type":"number","minimum":0,"maximum":100000000}},"required":["monthly_pay","notice_days"]},"example":{"monthly_pay":100000,"notice_days":90,"served_days":30}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"days_to_buy":{"type":"number"},"daily_rate":{"type":"number"},"amount":{"type":"number"},"reimbursement_gross":{"description":"Gross reimbursement the new employer pays so the buyout is covered after tax; null without new_ctc","type":["number","null"]},"reimbursement_tax":{"type":["number","null"]},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["days_to_buy","daily_rate","amount","reimbursement_gross","reimbursement_tax","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/freelance_vs_salary":{"post":{"operationId":"freelance_vs_salary","summary":"Freelance (44ADA) vs salary (India)","description":"Compare freelance or consulting income taxed under presumptive section 44ADA (50% of receipts deemed profit) with a salaried job: freelance take-home after tax and expenses, what the same amount pays as a CTC, and the CTC that matches the freelance take-home. Notes the ₹75 lakh 44ADA limit and the ₹20 lakh GST threshold.","tags":["salary"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"receipts":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual gross professional receipts in rupees"},"expenses":{"default":0,"description":"Actual business expenses paid per year (not deductible under 44ADA, but they reduce cash in hand)","type":"number","minimum":0,"maximum":100000000},"old_regime_deductions":{"default":0,"description":"Other old-regime deductions not listed separately (LTA, 80E, 80G, 80TTA)","type":"number","minimum":0,"maximum":10000000}},"required":["receipts"]},"example":{"receipts":2400000,"expenses":100000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"presumptive_income":{"type":"number"},"regime":{"type":"string","enum":["new","old"]},"income_tax":{"type":"number"},"freelance_annual_in_hand":{"type":"number"},"freelance_monthly_in_hand":{"type":"number"},"presumptive_allowed":{"type":"boolean","description":"Receipts within the ₹75 lakh 44ADA limit (with 95% digital receipts)"},"gst_registration_needed":{"type":"boolean"},"salaried_monthly_in_hand_same_ctc":{"type":"number","description":"Monthly in hand if the same amount were a salaried CTC"},"equivalent_ctc":{"type":"number","description":"Salaried CTC that pays the same monthly in hand as the freelance income"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["presumptive_income","regime","income_tax","freelance_annual_in_hand","freelance_monthly_in_hand","presumptive_allowed","gst_registration_needed","salaried_monthly_in_hand_same_ctc","equivalent_ctc","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/income_tax_on_salary":{"post":{"operationId":"income_tax_on_salary","summary":"Income tax on a salary (India)","description":"Income tax on an annual gross salary in India under the chosen regime: taxable income after the standard deduction, slab tax, 87A rebate, surcharge, cess, total tax and monthly TDS. Use when the gross salary (not CTC) is known.","tags":["tax"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gross_salary":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual gross salary in rupees (before the standard deduction)"},"regime":{"default":"new","description":"Income tax regime; new is the default from FY 2023-24","type":"string","enum":["new","old"]},"deductions":{"default":0,"description":"Old-regime deductions (80C, 80D, HRA exemption and others); ignored for the new regime","type":"number","minimum":0,"maximum":10000000}},"required":["gross_salary"]},"example":{"gross_salary":1500000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"regime":{"type":"string","enum":["new","old"]},"standard_deduction":{"type":"number"},"taxable_income":{"type":"number"},"slab_tax":{"type":"number"},"rebate_87a":{"type":"number"},"surcharge":{"type":"number"},"cess":{"type":"number"},"total_tax":{"type":"number"},"monthly_tds":{"type":"number"},"effective_rate":{"type":"number","description":"Total tax as a share of taxable income, 0-1"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["regime","standard_deduction","taxable_income","slab_tax","rebate_87a","surcharge","cess","total_tax","monthly_tds","effective_rate","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/old_regime_break_even":{"post":{"operationId":"old_regime_break_even","summary":"New vs old regime break-even (India)","description":"The total old-regime deductions (80C, 80D, HRA exemption, home loan interest and others, beyond the standard deduction) a salary needs before the old regime pays less tax than the new regime. Use for \"should I switch to the old regime\" questions when deductions are unknown.","tags":["tax"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ctc":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual cost to company in rupees, e.g. 1200000 for 12 LPA"}},"required":["ctc"]},"example":{"ctc":2000000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"ctc":{"type":"number"},"break_even_deductions":{"description":"Deductions needed for the old regime to win; 0 if it already wins, null if it never does","type":["number","null"]},"new_regime_tax":{"type":"number"},"old_regime_tax_without_deductions":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["ctc","break_even_deductions","new_regime_tax","old_regime_tax_without_deductions","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/hra_exemption":{"post":{"operationId":"hra_exemption","summary":"HRA exemption (India, old regime)","description":"House rent allowance exemption under section 10(13A): the least of HRA received, rent paid minus 10% of basic, and 50% (metro) or 40% (non-metro) of basic. Old regime only.","tags":["tax"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"basic_salary":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual basic salary plus dearness allowance in rupees"},"hra_received":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual HRA received in rupees"},"monthly_rent":{"type":"number","minimum":0,"maximum":1000000,"description":"Rent paid per month in rupees"},"metro_city":{"default":false,"description":"Delhi, Mumbai, Kolkata, Chennai, Bengaluru, Hyderabad, Pune, Ahmedabad (metro from FY 2026-27)","type":"boolean"}},"required":["basic_salary","hra_received","monthly_rent"]},"example":{"basic_salary":480000,"hra_received":192000,"monthly_rent":10000,"metro_city":true}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"exemption":{"type":"number"},"hra_received":{"type":"number"},"rent_minus_10_percent_basic":{"type":"number"},"basic_share_limit":{"type":"number"},"taxable_hra":{"type":"number"},"old_regime_only":{"type":"boolean"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["exemption","hra_received","rent_minus_10_percent_basic","basic_share_limit","taxable_hra","old_regime_only","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/rsu_tax":{"post":{"operationId":"rsu_tax","summary":"RSU and ESPP tax (India)","description":"Tax on RSUs for a salaried Indian resident: perquisite tax at vesting at the person's marginal slab rate, then capital gains tax on sale (Indian-listed shares long term after 12 months at 12.5% above ₹1.25 lakh, foreign shares long term after 24 months at 12.5%, short term foreign gains at slab).","tags":["tax"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ctc":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual CTC in rupees, which sets the slab the vest is taxed at"},"vest_value":{"type":"number","minimum":0,"maximum":1000000000,"description":"Market value of the shares on the vesting date in rupees"},"sale_value":{"type":"number","minimum":0,"maximum":1000000000,"description":"Sale proceeds in rupees"},"held_months":{"type":"number","minimum":0,"maximum":600,"description":"Months held between vesting and sale"},"listed_in_india":{"default":false,"description":"True for shares listed on an Indian exchange, false for US or other foreign listings","type":"boolean"}},"required":["ctc","vest_value","sale_value","held_months"]},"example":{"ctc":4000000,"vest_value":1000000,"sale_value":1300000,"held_months":18}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"vest_tax":{"type":"number","description":"Perquisite tax at vesting"},"vest_marginal_rate":{"type":"number","description":"0-1"},"capital_gain":{"type":"number"},"long_term":{"type":"boolean"},"capital_gains_rate_percent":{"type":"number"},"capital_gains_exemption":{"type":"number"},"capital_gains_tax":{"type":"number"},"taxed_at_slab":{"type":"boolean"},"net_after_tax":{"type":"number","description":"Sale value minus both taxes"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["vest_tax","vest_marginal_rate","capital_gain","long_term","capital_gains_rate_percent","capital_gains_exemption","capital_gains_tax","taxed_at_slab","net_after_tax","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/income_tax_slabs":{"post":{"operationId":"income_tax_slabs","summary":"Income tax slabs (India)","description":"The current income tax slabs for salaried individuals in India under the new and old regimes, with the standard deduction, section 87A rebate limits, surcharge bands and cess. Use when someone asks for the slab rates rather than tax on a specific figure.","tags":["tax"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"regime":{"default":"both","type":"string","enum":["new","old","both"]}}},"example":{}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"regimes":{"type":"array","items":{"type":"object","properties":{"regime":{"type":"string","enum":["new","old"]},"slabs":{"type":"array","items":{"type":"object","properties":{"from":{"type":"number"},"up_to":{"description":"Upper bound of the slab; null for the top slab","type":["number","null"]},"rate_percent":{"type":"number"}},"required":["from","up_to","rate_percent"],"additionalProperties":false}},"standard_deduction":{"type":"number"},"rebate_87a_income_cap":{"type":"number"},"rebate_87a_max":{"type":"number"},"rebate_marginal_relief":{"type":"boolean"},"surcharge":{"type":"array","items":{"type":"object","properties":{"above":{"type":"number"},"rate_percent":{"type":"number"}},"required":["above","rate_percent"],"additionalProperties":false}},"cess_percent":{"type":"number"}},"required":["regime","slabs","standard_deduction","rebate_87a_income_cap","rebate_87a_max","rebate_marginal_relief","surcharge","cess_percent"],"additionalProperties":false}},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["regimes","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/epf_corpus_projection":{"post":{"operationId":"epf_corpus_projection","summary":"EPF corpus at retirement (India)","description":"Project an Employees Provident Fund balance to retirement from monthly basic, age, interest rate and salary growth, with the 8.33% EPS pension diversion carved out of the employer share.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"basic_monthly":{"type":"number","minimum":0,"maximum":10000000,"description":"Current monthly basic salary plus DA in rupees"},"current_age":{"type":"integer","minimum":18,"maximum":70,"description":"Current age in years"},"retirement_age":{"default":60,"description":"Retirement age","type":"integer","minimum":18,"maximum":70},"interest_rate":{"default":8.25,"description":"EPF interest rate percent (8.25 for FY 2025-26)","type":"number","minimum":0,"maximum":12},"salary_growth":{"default":5,"description":"Expected yearly raise in basic, percent","type":"number","minimum":0,"maximum":20},"opening_balance":{"default":0,"description":"Existing EPF balance in rupees","type":"number","minimum":0,"maximum":100000000}},"required":["basic_monthly","current_age"]},"example":{"basic_monthly":40000,"current_age":30}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"corpus":{"type":"number"},"total_employee":{"type":"number"},"total_employer_epf":{"type":"number"},"total_interest":{"type":"number"},"total_eps":{"type":"number","description":"Employer contribution diverted to the EPS pension scheme, not in the corpus"},"years":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["corpus","total_employee","total_employer_epf","total_interest","total_eps","years","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/vpf_impact":{"post":{"operationId":"vpf_impact","summary":"Voluntary PF (VPF) impact (India)","description":"Effect of a Voluntary Provident Fund contribution: the drop in monthly in hand, tax saved under 80C (old regime), the VPF corpus after a number of years, and whether contributions cross the ₹2.5 lakh a year limit above which EPF interest is taxable.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ctc":{"type":"number","minimum":0,"maximum":100000000,"description":"Annual cost to company in rupees, e.g. 1200000 for 12 LPA"},"vpf_percent":{"type":"number","minimum":0,"maximum":88,"description":"VPF as a percentage of basic, on top of the mandatory 12%"},"years":{"default":20,"description":"Years the VPF stays invested","type":"integer","minimum":0,"maximum":45},"basic_percent":{"default":50,"description":"Basic salary as a percentage of CTC","type":"number","minimum":30,"maximum":60},"regime":{"default":"new","description":"Income tax regime; new is the default from FY 2023-24","type":"string","enum":["new","old"]},"other_section_80c":{"default":0,"description":"Other 80C investments per year besides EPF and VPF","type":"number","minimum":0,"maximum":150000},"interest_rate":{"default":8.25,"description":"EPF interest rate percent","type":"number","minimum":0,"maximum":12}},"required":["ctc","vpf_percent"]},"example":{"ctc":1800000,"vpf_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"annual_vpf":{"type":"number"},"monthly_in_hand_drop":{"type":"number"},"tax_saved":{"type":"number"},"employee_contribution":{"type":"number","description":"EPF plus VPF per year"},"taxable_interest_excess":{"type":"number","description":"Contribution above ₹2.5 lakh a year whose interest is taxable"},"tax_free_vpf_percent":{"type":"number","description":"Highest VPF percent that stays within the ₹2.5 lakh limit"},"corpus":{"type":"number"},"contributed":{"type":"number"},"interest":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["annual_vpf","monthly_in_hand_drop","tax_saved","employee_contribution","taxable_interest_excess","tax_free_vpf_percent","corpus","contributed","interest","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/gratuity_amount":{"post":{"operationId":"gratuity_amount","summary":"Gratuity (India)","description":"Gratuity under the Payment of Gratuity Act: 15/26 of last drawn basic per completed year after five years of service, with the six-month rounding rule and the ₹20 lakh tax-free limit.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"last_basic_monthly":{"type":"number","minimum":0,"maximum":10000000,"description":"Last drawn monthly basic plus DA in rupees"},"years_served":{"type":"integer","minimum":0,"maximum":45,"description":"Completed years of service"},"extra_months":{"default":0,"description":"Months beyond completed years; 6 or more rounds up","type":"integer","minimum":0,"maximum":11}},"required":["last_basic_monthly","years_served"]},"example":{"last_basic_monthly":50000,"years_served":7,"extra_months":8}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"eligible":{"type":"boolean"},"counted_years":{"type":"number"},"amount":{"type":"number"},"tax_free":{"type":"number"},"taxable":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["eligible","counted_years","amount","tax_free","taxable","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/retirement_plan":{"post":{"operationId":"retirement_plan","summary":"Retirement corpus plan (India)","description":"Retirement plan in rupees: the corpus a monthly SIP and existing savings grow to, the corpus needed to fund today's monthly expenses (inflated) until life expectancy, the gap, and the monthly SIP that closes it.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current_age":{"type":"integer","minimum":18,"maximum":70,"description":"Current age in years"},"retirement_age":{"default":60,"description":"Planned retirement age","type":"integer","minimum":18,"maximum":70},"life_expectancy":{"default":85,"description":"Age the money must last to","type":"integer","minimum":60,"maximum":100},"monthly_expense_today":{"type":"number","minimum":0,"maximum":10000000,"description":"Today's monthly household expenses in rupees"},"monthly_sip":{"default":0,"description":"Current monthly investment in rupees","type":"number","minimum":0,"maximum":10000000},"sip_step_up_percent":{"default":0,"description":"Yearly increase in the SIP, percent","type":"number","minimum":0,"maximum":20},"existing_corpus":{"default":0,"description":"Existing retirement savings in rupees","type":"number","minimum":0,"maximum":1000000000},"expected_return_percent":{"default":12,"description":"Expected yearly return before retirement, percent","type":"number","minimum":0,"maximum":30},"inflation_percent":{"default":6,"description":"Expected yearly inflation, percent","type":"number","minimum":0,"maximum":30},"post_retirement_return_percent":{"default":7,"description":"Expected yearly return after retirement, percent","type":"number","minimum":0,"maximum":30}},"required":["current_age","monthly_expense_today"]},"example":{"current_age":30,"monthly_expense_today":60000,"monthly_sip":25000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"years_to_retire":{"type":"number"},"projected_corpus":{"type":"number"},"from_sip":{"type":"number"},"from_existing":{"type":"number"},"monthly_expense_at_retirement":{"type":"number"},"required_corpus":{"type":"number"},"gap":{"type":"number"},"monthly_sip_needed":{"type":"number"},"sustainable_monthly_income":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["years_to_retire","projected_corpus","from_sip","from_existing","monthly_expense_at_retirement","required_corpus","gap","monthly_sip_needed","sustainable_monthly_income","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/fire_number":{"post":{"operationId":"fire_number","summary":"FIRE number and timeline (India)","description":"Financial independence (FIRE) target corpus from annual expenses and a safe withdrawal rate, with lean and fat FIRE targets, the savings rate, and the year net worth reaches the inflating target.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current_age":{"type":"integer","minimum":18,"maximum":70,"description":"Current age in years"},"annual_expenses":{"type":"number","minimum":0,"maximum":100000000,"description":"Current annual expenses in rupees"},"annual_savings":{"type":"number","minimum":0,"maximum":100000000,"description":"Amount invested per year in rupees"},"net_worth":{"default":0,"description":"Current invested net worth in rupees","type":"number","minimum":0,"maximum":1000000000},"expected_return_percent":{"default":12,"description":"Expected yearly return, percent","type":"number","minimum":0,"maximum":30},"inflation_percent":{"default":6,"description":"Expected yearly inflation, percent","type":"number","minimum":0,"maximum":30},"withdrawal_rate_percent":{"default":4,"description":"Safe withdrawal rate, percent","type":"number","minimum":2,"maximum":6}},"required":["current_age","annual_expenses","annual_savings"]},"example":{"current_age":30,"annual_expenses":900000,"annual_savings":900000,"net_worth":2000000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"target_corpus":{"type":"number","description":"FIRE corpus in today's rupees"},"lean_target":{"type":"number"},"fat_target":{"type":"number"},"savings_rate":{"type":"number","description":"0-1"},"years_to_fire":{"description":"Null when the target is not reached within 60 years","type":["number","null"]},"fire_age":{"type":["number","null"]},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["target_corpus","lean_target","fat_target","savings_rate","years_to_fire","fire_age","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/sip_future_value":{"post":{"operationId":"sip_future_value","summary":"SIP future value (India)","description":"Future value of a monthly SIP (systematic investment plan) at an expected return, with an optional yearly step-up, split into amount invested and gains.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthly_amount":{"type":"number","minimum":0,"maximum":10000000,"description":"Monthly investment in rupees"},"years":{"type":"number","minimum":0,"maximum":45,"description":"Investment period in years"},"expected_return_percent":{"default":12,"description":"Expected yearly return, percent","type":"number","minimum":0,"maximum":30},"step_up_percent":{"default":0,"description":"Yearly increase in the SIP amount, percent","type":"number","minimum":0,"maximum":20}},"required":["monthly_amount","years"]},"example":{"monthly_amount":10000,"years":15}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"future_value":{"type":"number"},"invested":{"type":"number"},"gains":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["future_value","invested","gains","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/home_loan_emi":{"post":{"operationId":"home_loan_emi","summary":"Loan EMI (India)","description":"Monthly EMI on a home, car or personal loan from principal, interest rate and tenure, with total interest and total repayment.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"number","minimum":0,"maximum":1000000000,"description":"Loan amount in rupees"},"interest_rate":{"default":8.5,"description":"Yearly interest rate, percent","type":"number","minimum":0,"maximum":30},"years":{"default":20,"description":"Loan tenure in years","type":"number","minimum":1,"maximum":30}},"required":["principal"]},"example":{"principal":5000000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"emi":{"type":"number"},"total_interest":{"type":"number"},"total_payment":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["emi","total_interest","total_payment","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/home_loan_affordability":{"post":{"operationId":"home_loan_affordability","summary":"Home loan affordability (India)","description":"Largest home loan a monthly in-hand salary can support, keeping the EMI within a share of take-home (lenders typically allow 40-50%). Pair with calculate_in_hand_salary when only the CTC is known.","tags":["savings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthly_in_hand":{"type":"number","minimum":0,"maximum":5000000,"description":"Monthly take-home salary in rupees"},"emi_share_percent":{"default":40,"description":"Share of take-home allowed for the EMI, percent","type":"number","minimum":10,"maximum":60},"interest_rate":{"default":8.5,"description":"Yearly interest rate, percent","type":"number","minimum":0,"maximum":30},"years":{"default":20,"description":"Loan tenure in years","type":"number","minimum":1,"maximum":30}},"required":["monthly_in_hand"]},"example":{"monthly_in_hand":150000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"emi":{"type":"number"},"principal":{"type":"number"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["emi","principal","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/professional_tax_by_state":{"post":{"operationId":"professional_tax_by_state","summary":"Professional tax by state (India)","description":"Professional tax a salaried employee pays in an Indian state: monthly and annual amount at the top slab, the salary threshold and slab notes, or the full list when no state is given. States with no professional tax (Delhi, Haryana, Uttar Pradesh and others) are reported as zero.","tags":["reference"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"description":"State name or two-letter code, e.g. Karnataka or KA; omit for every state","type":"string","maxLength":60}}},"example":{"state":"Karnataka"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"states":{"type":"array","items":{"type":"object","properties":{"code":{"type":["string","null"]},"name":{"type":"string"},"monthly":{"type":"number"},"annual":{"type":"number"},"threshold_monthly":{"description":"Monthly gross above which the top slab applies","type":["number","null"]},"note":{"type":"string"}},"required":["code","name","monthly","annual","threshold_monthly","note"],"additionalProperties":false}},"constitutional_cap":{"type":"number"},"found":{"type":"boolean"},"financial_year":{"type":"string","description":"Indian financial year the rules apply to"},"url":{"type":"string","description":"ctcinhand.in page with the full interactive breakdown"},"summary":{"type":"string","description":"Plain-language answer to quote"}},"required":["states","constitutional_cap","found","financial_year","url","summary"],"additionalProperties":false}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["invalid_input","not_found","rate_limited","unsupported_media_type"]},"message":{"type":"string"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}},"externalDocs":{"url":"https://ctcinhand.in/developers"}}