susheelhbti / laravel-itr
Laravel REST API package for ITR-1 (Sahaj) filing assistance — AY 2025-26
Requires
- php: ^8.1
- illuminate/auth: ^10.0|^11.0
- illuminate/database: ^10.0|^11.0
- illuminate/routing: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- tymon/jwt-auth: ^2.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2026-06-03 04:18:29 UTC
README
Laravel REST API Package for Indian Income Tax Return (ITR) Filing — AY 2026-27
Supports ITR-1, ITR-2, ITR-3, ITR-4 · New Regime Only · JSON generation for portal upload · No direct e-filing
Table of Contents
- Overview
- What This Package Does
- AY 2026-27 Key Changes
- Installation
- Configuration
- Authentication
- ITR-1 — Salaried Individuals
- ITR-2 — Capital Gains & Multiple Properties
- ITR-3 — Full Business Income
- ITR-4 — Presumptive Taxation
- JSON Upload & Import from Portal
- Form 26AS / AIS Reconciliation
- Penalty Calculator
- Bulk Filing (CSV)
- Webhooks
- Eligibility Validation
- Complete API Reference
- Database Tables
- Tax Calculation — New Regime AY 2026-27
- Complete Workflow Guides
1. Overview
susheelhbti/laravel-itr provides a complete REST API backend for ITR filing assistance in India.
How it works:
- User enters income / deduction data via the API
- Package calculates tax (New Regime — AY 2026-27)
- Package generates an IT Dept–compatible JSON file
- User downloads the JSON and manually uploads it at incometax.gov.in
There is no direct e-filing integration. This package is a data preparation tool.
2. What This Package Does
| Feature | ITR-1 | ITR-2 | ITR-3 | ITR-4 |
|---|---|---|---|---|
| New Regime tax (only regime) | ✅ | ✅ | ✅ | ✅ |
| Standard deduction ₹75,000 | ✅ | ✅ | ✅ | ✅ |
| JSON generation (portal upload) | ✅ | ✅ | ✅ | ✅ |
| JSON upload & parse from portal | ✅ | ✅ | ✅ | ✅ |
| LTCG u/s 112A (up to ₹1.25L) | ✅ | ✅ | ✅ | ✅ |
| Capital gains (full STCG/LTCG) | ❌ | ✅ | ✅ | ❌ |
| House properties | up to 2 | multiple | multiple | 1 |
| Presumptive income (44AD/ADA/AE) | ❌ | ❌ | ❌ | ✅ |
| Business income (P&L, balance sheet) | ❌ | ❌ | ✅ | ❌ |
| Depreciation schedule | ❌ | ❌ | ✅ | ❌ |
| F&O trading (separate futures/options) | ❌ | ❌ | ✅ | ❌ |
| 26AS / AIS reconciliation | ✅ | ✅ | ✅ | ✅ |
| Penalty calculator (234A/B/C/F) | ✅ | ✅ | ✅ | ✅ |
| Bulk CSV filing | ✅ | ❌ | ❌ | ✅ |
| Webhooks | ✅ | ✅ | ✅ | ✅ |
| Eligibility validation | ✅ | ❌ | ❌ | ✅ |
3. AY 2026-27 Key Changes
Old Regime has been removed. Only the New Regime is supported from AY 2026-27.
| Item | AY 2025-26 | AY 2026-27 |
|---|---|---|
| Standard deduction | ₹50,000 | ₹75,000 |
| Nil slab | Up to ₹3L | Up to ₹4L |
| Rebate 87A (income limit) | ₹7 lakh | ₹12 lakh |
| Rebate 87A (max amount) | ₹25,000 | ₹60,000 |
| 44AD digital limit | ₹2 crore | ₹3 crore (≥95% digital) |
| 44ADA digital limit | ₹50 lakh | ₹75 lakh (≥95% digital) |
| 44AE HGV rate | ₹7,500/vehicle | ₹1,000/ton/month |
| LTCG 112A in ITR-1/4 | ❌ | ✅ up to ₹1.25L |
| ITR-1 house properties | 1 | up to 2 |
| 80G donation | Optional IFSC | IFSC + TXN ref mandatory |
| 80GGC political donation | Basic | Party name + PAN mandatory |
| F&O turnover (ITR-3) | Combined | Separate futures/options |
| MSME interest (Sec 43B(h)) | Not tracked | New disallowance field |
| Due date (non-audit) | July 31 | July 31, 2026 |
| Due date (ITR-3 no audit) | July 31 | August 31, 2026 |
| Schema version | Ver1.0 | Ver2.0 |
4. Installation
composer require susheelhbti/laravel-itr
Publish & Migrate
php artisan vendor:publish --tag=itr-config php artisan vendor:publish --tag=itr-migrations php artisan migrate
JWT Setup
php artisan jwt:secret
Add to config/auth.php:
'guards' => [ 'itr' => ['driver' => 'jwt', 'provider' => 'itr_users'], ], 'providers' => [ 'itr_users' => [ 'driver' => 'eloquent', 'model' => \Susheelhbti\LaravelItr\Models\ItrUser::class, ], ],
5. Configuration
config/itr.php key values:
'assessment_year' => '2026-27', 'standard_deduction' => 75000, // ₹75,000 'rebate_87a' => ['max_income' => 1200000, 'rebate' => 60000], 'ltcg_112a_exemption' => 125000, 'presumptive' => [ '44AD' => ['cash_limit' => 20000000, 'digital_limit' => 30000000, 'cash_rate' => 8, 'digital_rate' => 6], '44ADA' => ['cash_limit' => 5000000, 'digital_limit' => 7500000, 'rate' => 50], '44AE' => ['max_vehicles' => 10, 'hgv_rate_per_ton_month' => 1000, 'lgv_rate_per_vehicle' => 7500], ], 'due_dates' => [ 'non_audit' => '2026-07-31', 'business_no_audit' => '2026-08-31', 'audit' => '2026-10-31', ],
6. Authentication
POST /api/itr/register { "name": "Susheel Kumar", "email": "susheelhbti@gmail.com", "password": "secret123", "password_confirmation": "secret123", "pan": "ABCDE1234F", "dob": "1990-05-15", "mobile": "9876543210" }
Returns access_token. Use as Authorization: Bearer <token> on all protected routes.
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/itr/register |
Register |
| POST | /api/itr/login |
Login |
| GET | /api/itr/me |
Profile |
| PUT | /api/itr/me |
Update profile |
| POST | /api/itr/logout |
Logout |
| POST | /api/itr/refresh |
Refresh token |
7. ITR-1 — Salaried Individuals
Use for: Salary only, income ≤ ₹50L, up to 2 house properties, LTCG ≤ ₹1.25L u/s 112A.
Create Filing
POST /api/itr/filings { "gross_salary": 1200000, "tds_salary": 100000, "savings_interest": 8000, "fd_interest": 5000, "advance_tax": 0, "ltcg_112a": 50000, "bank_ifsc": "SBIN0001234", "bank_account_number": "12345678901", "bank_name": "State Bank of India", "bank_account_type": "SB", "extra_flags": { "is_director": false, "holds_unlisted_shares": false, "has_foreign_assets": false }, "donation_80g_ifsc": "HDFC0001234", "donation_80g_txn_ref": "TXN20251201" }
Complete Flow
POST /api/itr/filings → Create (status: draft)
GET /api/itr/filings/{id}/eligibility → Verify ITR-1 eligibility
POST /api/itr/filings/{id}/calculate → Compute tax
GET /api/itr/filings/{id}/summary → View summary
POST /api/itr/filings/{id}/generate-json → Build JSON
GET /api/itr/filings/{id}/download-json → Download file → Upload to portal
Calculate Response
{
"data": {
"regime": "new",
"gross_salary": 1200000,
"standard_deduction": 75000,
"net_salary": 1125000,
"taxable_income": 1138000,
"tax_before_cess": 57200,
"rebate_87a": 0,
"cess": 2288,
"total_tax": 59488,
"total_tax_paid": 100000,
"refund": 40512,
"balance_tax_due": 0
}
}
8. ITR-2 — Capital Gains & Multiple Properties
Use for: Salary + capital gains + multiple house properties, no business income.
House Properties
POST /api/itr/filings/{id}/house-properties { "property_type": "let_out", "address": "123 MG Road, Bangalore", "annual_rent_received": 240000, "municipal_taxes_paid": 12000, "interest_on_loan_24b": 150000 }
property_type: self_occupied | let_out | deemed_let_out
POST /api/itr/filings/{id}/house-properties/calculate
Capital Gains
POST /api/itr/filings/{id}/capital-gains { "asset_type": "equity_shares", "gain_type": "ltcg", "asset_name": "Reliance Industries", "purchase_date": "2022-03-15", "sale_date": "2025-09-20", "purchase_price": 250000, "sale_price": 420000, "transfer_expenses": 2000, "indexation_applicable": false }
asset_type: equity_shares | equity_mf | debt_mf | gold | property | bonds | other
GET /api/itr/cii-table ← Cost Inflation Index table POST /api/itr/filings/{id}/capital-gains/calculate
ITR-2 Extra Income & Generate
POST /api/itr/filings/{id}/itr2/details { "family_pension": 0, "dividend_income": 15000, "lottery_winnings": 0, "deduction_80e": 50000, "deduction_80g": 10000, "deduction_80eea": 0 } POST /api/itr/filings/{id}/calculate POST /api/itr/filings/{id}/itr2/generate-json GET /api/itr/filings/{id}/download-json
9. ITR-3 — Full Business Income
Use for: Individuals with business/profession income, F&O traders, partners in firms.
Business Income
POST /api/itr/filings/{id}/business { "business_name": "Raj Consulting", "nature_of_business": "0101", "gross_turnover": 3500000, "purchases": 800000, "direct_expenses": 200000, "wages_salaries": 400000, "rent_rates_taxes": 120000, "other_expenses": 80000, "msme_interest_disallowance": 25000 }
Add itemized expenses:
POST /api/itr/filings/{id}/business/{bid}/expenses { "expense_type": "electricity", "expense_label": "Office electricity bills", "amount": 48000, "is_allowable": true }
Depreciation
GET /api/itr/tax/depreciation-blocks ← Available blocks: plant_40 (40%), vehicles_15 (15%), etc.
POST /api/itr/filings/{id}/depreciation
{
"asset_block": "plant_40",
"asset_description": "Computers",
"wdv_opening": 200000,
"additions": 80000,
"additional_dep_applicable": true
}
POST /api/itr/filings/{id}/depreciation/calculate
F&O Trading (AY 2026-27: separate fields)
POST /api/itr/filings/{id}/fno { "total_turnover": 5000000, "fno_futures_turnover": 3000000, "fno_options_turnover": 2000000, "profit_loss": 125000, "fno_futures_profit_loss": 80000, "fno_options_profit_loss": 45000, "brokerage": 15000, "other_expenses": 5000 }
Brought Forward Losses
POST /api/itr/filings/{id}/losses { "loss_type": "business_non_speculative", "assessment_year": "2024-25", "amount": 75000 }
loss_type: house_property | business_non_speculative | business_speculative | short_term_capital | long_term_capital | other_sources
Complete ITR-3 Flow
POST /filings → POST /business → POST /business/{id}/expenses
→ POST /depreciation → POST /fno → POST /losses
→ POST /calculate → POST /calculate-business → POST /depreciation/calculate
→ POST /generate-json-itr3 → GET /download-json
10. ITR-4 — Presumptive Taxation
Use for: Business/professional income under presumptive scheme (44AD/44ADA/44AE), income ≤ ₹50L.
AY 2026-27 Limits
GET /api/itr/tax/presumptive-limits
| Section | Category | Limit | Rate |
|---|---|---|---|
| 44AD | Cash receipts | ₹2 crore | 8% |
| 44AD | ≥95% digital | ₹3 crore | 6% |
| 44ADA | Cash | ₹50 lakh | 50% |
| 44ADA | ≥95% digital | ₹75 lakh | 50% |
| 44AE | HGV (>12,000 kg) | max 10 | ₹1,000/ton/month |
| 44AE | Other vehicles | max 10 | ₹7,500/vehicle/month |
Section 44AD (Business)
POST /api/itr/filings/{id}/presumptive { "section": "44AD", "business_name": "Raj Traders", "nature_of_business": "0101", "turnover_or_receipts": 25000000, "digital_receipts_percentage": 97 }
Response:
{
"section": "44AD",
"digital_threshold_met": true,
"limit_applied": 30000000,
"rate_applied": 6,
"presumptive_income": 1500000,
"note": "6% of ₹25000000 = ₹1500000 (≥95% digital receipts)"
}
Section 44ADA (Professional)
{
"section": "44ADA",
"business_name": "Dr. Sharma Clinic",
"turnover_or_receipts": 7000000,
"digital_receipts_percentage": 98
}
→ ₹75L limit applies (≥95% digital) → 50% = ₹35,00,000 presumptive income
Section 44AE (Goods Transport)
{
"section": "44AE",
"vehicles_count": 4,
"vehicle_type": "LGV",
"months_operated": 11
}
→ 4 vehicles × 11 months × ₹7,500 = ₹3,30,000
ITR-4 Complete Flow
POST /filings → POST /filings/{id}/presumptive
→ POST /filings/{id}/calculate
→ POST /filings/{id}/calculate-presumptive
→ POST /filings/{id}/generate-json-itr4
→ GET /filings/{id}/download-json → Upload to portal
11. JSON Upload & Import from Portal
Upload a JSON file you downloaded from incometax.gov.in. The package parses it and creates a filing.
Upload
POST /api/itr/upload-json Content-Type: multipart/form-data Authorization: Bearer <token> json_file: [your ITR JSON file, .json, max 5MB]
{
"data": {
"upload_id": 5,
"filing_type": "ITR-1",
"pan": "ABCDE1234F",
"validation_status": "valid",
"warnings": {},
"extracted_summary": {
"gross_salary": 1200000,
"tds_salary": 100000,
"total_tax": 59488,
"refund_due": 40512
}
}
}
Import to Filing
POST /api/itr/uploads/5/import
→ Creates ItrUser (by PAN), ItrFiling, capital gains, house properties automatically.
Compare Portal vs Your Entry
GET /api/itr/compare/1
{
"summary": { "mismatches": 1, "status": "has_mismatches" },
"field_comparison": {
"tds_salary": {
"your_filing": 90000,
"portal_json": 100000,
"match": false,
"difference": 10000
}
},
"suggestions": [
"TDS on Salary: Portal shows ₹1,00,000. Update to claim full credit."
]
}
12. Form 26AS / AIS Reconciliation
POST /api/itr/import/26as { "import_type": "ais_json", "filename": "AIS_FY2025_26.json", "data": { ...raw AIS JSON from portal... } }
POST /api/itr/import/{id}/reconcile { "filing_id": 5 }
Response includes:
- Total TDS in 26AS vs your filing
- Mismatch list with ₹ differences
- Undeclared income found in AIS
13. Penalty Calculator
POST /api/itr/filings/{id}/penalty/calculate { "filing_date": "2026-08-15" }
{
"data": {
"due_date": "2026-07-31",
"is_late": true,
"234a": { "months": 1, "interest": 1190, "note": "1% per month on unpaid tax" },
"234b": { "shortfall": 0, "interest": 0 },
"234c": { "interest": 0 },
"234f": { "fee": 5000, "note": "₹5,000 (income > ₹5 lakh)" },
"total_interest_penalty": 6190,
"tips": ["File before July 31 to avoid 234A.", "234F fee is non-refundable."]
}
}
14. Bulk Filing (CSV)
Process multiple ITR-1 records from a CSV file.
GET /api/itr/bulk/template ← Download CSV template
POST /api/itr/bulk/upload ← Upload filled CSV (max 5MB)
GET /api/itr/bulk/{job_id}/status
GET /api/itr/bulk/{job_id}/errors
GET /api/itr/bulk/{job_id}/download-csv-summary
Required CSV columns:
name, email, pan, dob, gross_salary, tds_salary, deduction_80c, deduction_80d, bank_ifsc, bank_account_number
Each valid row → creates user + filing + computes tax + generates JSON automatically.
15. Webhooks
POST /api/itr/webhooks { "url": "https://your-app.com/itr-events", "secret": "hmac-secret-key", "events": ["filing.calculated", "filing.json_generated"] }
Events: filing.created | filing.calculated | filing.json_generated | filing.downloaded | penalty.calculated | bulk.completed | bulk.failed
Each delivery sends X-ITR-Signature: sha256=<hmac> for verification. Auto-retries 3 times on failure.
GET /api/itr/webhooks/events ← List all event types
POST /api/itr/webhooks/{id}/test ← Send test ping
GET /api/itr/webhooks/{id}/logs ← Delivery history
16. Eligibility Validation
Set extra_flags when creating a filing:
{
"extra_flags": {
"is_director": false,
"holds_unlisted_shares": false,
"esop_tax_deferred": false,
"has_foreign_assets": false,
"tds_194n": false,
"agricultural_income": 0
}
}
GET /api/itr/filings/{id}/eligibility?form_type=ITR-1
GET /api/itr/tax/eligibility-criteria
| Condition | ITR-1 | ITR-4 |
|---|---|---|
| Director in a company | ❌ Cannot | ❌ Cannot |
| Holds unlisted shares | ❌ Cannot | ❌ Cannot |
| Foreign assets | ❌ Cannot | ❌ Cannot |
| ESOP tax deferral | ❌ Cannot | ❌ Cannot |
| TDS u/s 194N | ❌ Cannot | ✅ Can |
| Agricultural income > ₹5,000 | ✅ Can | ❌ Cannot |
| Income > ₹50 lakh | ❌ Cannot | ❌ Cannot |
If ineligible, generate-json returns 422 with clear reasons.
17. Complete API Reference
Public (No Auth)
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/itr/register |
Register user |
| POST | /api/itr/login |
Login, get JWT |
| GET | /api/itr/tax/slabs |
New Regime slabs AY 2026-27 |
| POST | /api/itr/tax/calculate |
Quick tax preview |
| GET | /api/itr/tax/eligibility-criteria |
Eligibility rules reference |
| GET | /api/itr/tax/presumptive-limits |
44AD/44ADA/44AE limits |
| GET | /api/itr/tax/depreciation-blocks |
Depreciation asset blocks |
| GET | /api/itr/bulk/template |
CSV template download |
| GET | /api/itr/cii-table |
Cost Inflation Index table |
Auth
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/itr/me |
Profile |
| PUT | /api/itr/me |
Update profile |
| POST | /api/itr/logout |
Logout |
| POST | /api/itr/refresh |
Refresh JWT |
Filings (All Forms)
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/itr/filings |
List |
| POST | /api/itr/filings |
Create |
| GET/PUT/DELETE | /api/itr/filings/{id} |
Read / Update / Delete |
| POST | /api/itr/filings/{id}/calculate |
Compute tax |
| GET | /api/itr/filings/{id}/summary |
Summary |
| GET | /api/itr/filings/{id}/eligibility |
Eligibility check |
| POST | /api/itr/filings/{id}/generate-json |
Generate ITR-1 JSON |
| GET | /api/itr/filings/{id}/download-json |
Download JSON |
ITR-2
| Method | Endpoint |
|---|---|
| GET/POST | /api/itr/filings/{id}/house-properties |
| PUT/DELETE | /api/itr/filings/{id}/house-properties/{prop} |
| POST | /api/itr/filings/{id}/house-properties/calculate |
| GET/POST | /api/itr/filings/{id}/capital-gains |
| PUT/DELETE | /api/itr/filings/{id}/capital-gains/{entry} |
| POST | /api/itr/filings/{id}/capital-gains/calculate |
| POST | /api/itr/filings/{id}/itr2/details |
| POST | /api/itr/filings/{id}/itr2/generate-json |
ITR-3
| Method | Endpoint |
|---|---|
| GET/POST | /api/itr/filings/{id}/business |
| PUT/DELETE | /api/itr/filings/{id}/business/{bid} |
| POST | /api/itr/filings/{id}/business/{bid}/expenses |
| DELETE | /api/itr/filings/{id}/business/{bid}/expenses/{eid} |
| GET/POST | /api/itr/filings/{id}/depreciation |
| POST | /api/itr/filings/{id}/depreciation/calculate |
| POST | /api/itr/filings/{id}/fno |
| GET/POST | /api/itr/filings/{id}/losses |
| DELETE | /api/itr/filings/{id}/losses/{lid} |
| POST | /api/itr/filings/{id}/calculate-business |
| POST | /api/itr/filings/{id}/generate-json-itr3 |
ITR-4
| Method | Endpoint |
|---|---|
| GET/POST | /api/itr/filings/{id}/presumptive |
| DELETE | /api/itr/filings/{id}/presumptive/{pid} |
| POST | /api/itr/filings/{id}/calculate-presumptive |
| POST | /api/itr/filings/{id}/generate-json-itr4 |
Upload & Compare
| Method | Endpoint |
|---|---|
| POST | /api/itr/upload-json |
| GET | /api/itr/uploads |
| GET/DELETE | /api/itr/uploads/{id} |
| POST | /api/itr/uploads/{id}/import |
| GET | /api/itr/compare/{filing_id} |
26AS / AIS
| Method | Endpoint |
|---|---|
| GET | /api/itr/import |
| POST | /api/itr/import/26as |
| GET | /api/itr/import/{id} |
| POST | /api/itr/import/{id}/reconcile |
Penalty
| Method | Endpoint |
|---|---|
| POST | /api/itr/filings/{id}/penalty/calculate |
| GET | /api/itr/filings/{id}/penalty |
Bulk
| Method | Endpoint |
|---|---|
| POST | /api/itr/bulk/upload |
| GET | /api/itr/bulk/{job_id}/status |
| GET | /api/itr/bulk/{job_id}/errors |
| GET | /api/itr/bulk/{job_id}/download-csv-summary |
Webhooks
| Method | Endpoint |
|---|---|
| GET | /api/itr/webhooks/events |
| GET/POST | /api/itr/webhooks |
| DELETE | /api/itr/webhooks/{id} |
| POST | /api/itr/webhooks/{id}/test |
| GET | /api/itr/webhooks/{id}/logs |
18. Database Tables
| Table | Purpose |
|---|---|
itr_users |
Taxpayer accounts |
itr_filings |
Core filing data (all forms) |
capital_gain_entries |
STCG/LTCG per transaction |
house_properties |
Multiple properties |
itr2_details |
ITR-2 extra incomes & deductions |
presumptive_details |
44AD/ADA/AE (ITR-4) |
business_incomes |
Business P&L (ITR-3) |
business_expenses |
Itemized expenses |
depreciation_entries |
Block-wise WDV depreciation |
fno_trading |
F&O trading (with futures/options split) |
loss_brought_forward |
Carry-forward losses |
balance_sheet_assets |
BS assets (ITR-3) |
balance_sheet_liabilities |
BS liabilities (ITR-3) |
penalty_calculations |
234A/B/C/F results |
form26as_imports |
AIS/26AS data |
itr_json_uploads |
Portal JSON uploads |
bulk_filing_jobs |
CSV bulk jobs |
bulk_filing_errors |
Per-row bulk errors |
webhook_subscriptions |
Webhook URLs |
webhook_delivery_logs |
Delivery history |
19. Tax Calculation — New Regime AY 2026-27
Slabs
| Income Range | Rate |
|---|---|
| Up to ₹4,00,000 | 0% |
| ₹4,00,001 – ₹8,00,000 | 5% |
| ₹8,00,001 – ₹12,00,000 | 10% |
| ₹12,00,001 – ₹16,00,000 | 15% |
| ₹16,00,001 – ₹20,00,000 | 20% |
| ₹20,00,001 – ₹24,00,000 | 25% |
| Above ₹24,00,000 | 30% |
Health & Education Cess: 4% on tax amount
Rebate u/s 87A: Full rebate (max ₹60,000) if total income ≤ ₹12,00,000 → effective zero tax
Standard Deduction: ₹75,000 automatically applied from salary
Not allowed: 80C, 80D, 80TTA, HRA exemption, Home Loan Principal repayment
Example: ₹12L Salary
Gross Salary: ₹12,00,000
Standard Deduction: ₹ 75,000
Net Salary: ₹11,25,000
Taxable Income: ₹11,25,000
Tax (slabs): ₹ 57,500
Rebate 87A: ₹ 57,500 (income ≤ ₹12L → full rebate)
Tax After Rebate: ₹ 0
Cess: ₹ 0
Total Tax: ₹ 0
Example: ₹15L Salary
Gross Salary: ₹15,00,000
Standard Deduction: ₹ 75,000
Net Salary: ₹14,25,000
Taxable Income: ₹14,25,000
Tax (slabs): ₹ 93,750
Rebate 87A: ₹ 0 (income > ₹12L)
Cess @ 4%: ₹ 3,750
Total Tax: ₹ 97,500
20. Complete Workflow Guides
ITR-1 (Salaried)
POST /register → POST /login → POST /filings
→ GET /filings/{id}/eligibility?form_type=ITR-1
→ POST /filings/{id}/calculate
→ GET /filings/{id}/summary
→ POST /filings/{id}/generate-json
→ GET /filings/{id}/download-json
Upload ITR1_PAN_202627_ID.json at incometax.gov.in
ITR-4 (Presumptive)
POST /filings → POST /filings/{id}/presumptive
→ POST /filings/{id}/calculate
→ POST /filings/{id}/calculate-presumptive
→ POST /filings/{id}/generate-json-itr4
→ GET /filings/{id}/download-json
ITR-3 (Business)
POST /filings
→ POST /filings/{id}/business (add each business)
→ POST /filings/{id}/business/{id}/expenses
→ POST /filings/{id}/depreciation (add asset blocks)
→ POST /filings/{id}/fno (if F&O trader)
→ POST /filings/{id}/losses (if carry-forward losses)
→ POST /filings/{id}/calculate
→ POST /filings/{id}/calculate-business
→ POST /filings/{id}/depreciation/calculate
→ POST /filings/{id}/generate-json-itr3
→ GET /filings/{id}/download-json
Portal JSON → Import → Reconcile
GET /bulk/template → fill CSV → POST /bulk/upload
POST /upload-json → POST /uploads/{id}/import
POST /import/26as → POST /import/{id}/reconcile
GET /compare/{filing_id}
Important Notes
- Amounts: All in INR as integers (no paise/decimals)
- PAN format:
AAAAA9999A(5 letters, 4 digits, 1 letter) - IFSC format:
ABCD0123456(4 letters, 0, 6 alphanumeric) - No direct e-filing: Generated JSON must be uploaded manually at incometax.gov.in
- New Regime only: Old Regime removed as of AY 2026-27
- Due dates AY 2026-27: July 31, 2026 (ITR-1/2/4) | August 31, 2026 (ITR-3 no audit)
License
MIT © Susheel Kumar