TDS Configuration

Thresholds, rates and statutory references for TDS on deposit interest, per financial year, and the GL account deducted tax is credited to. The TDS reports, the Form 121 register and each customer's Form 121 tab compute from these figures only — a year not set up here is a year they refuse to compute.

@if (errorMsg) {
{{ errorMsg }}
} @if (successMsg) {
{{ successMsg }}
} @if (loading) {
Loading…
} @else {

GL account

Only postable liability accounts are listed. Nothing is preselected: the right account differs per chart of accounts.

@for (role of glRoles; track role.configKey) {
{{ role.label }} {{ role.configKey }}
@if (role.glAccountId) { {{ role.glCode }} · {{ role.glAccountName }} } @else { Not mapped }

{{ role.description }}

GL account — Not mapped — @for (o of glAccountOptions; track o.id) { {{ o.glCode }} · {{ o.name }} }
}

Financial years

One entry per year, because the Finance Act fixes TDS per year and a return for an earlier year must keep quoting that year's figures. Add the next year before 01 April, or TDS screens stop computing on that date.

@for (y of years; track y.fy) { } @if (isNew) { } @else { }
@if (draft) { @if (draft.seedDefault && !isNew) {
These figures were carried over from the values previously built into the application. Check them against the Finance Act for FY {{ draft.fy }} and save to confirm.
} @if (isNew) {
Financial year @if (!fyValid) { Format: 2027-28 } @else if (fyTaken) { FY {{ draft.fy }} is already configured }
}

Thresholds & rates

@for (f of rateFields; track f.key) { {{ f.label }} @if (f.hint) { {{ f.hint }} } }
@if (noPanBelowRate) {
The rate without PAN cannot be lower than the rate with PAN.
}

Declaration (Form 121 / 15G / 15H)

@for (f of declarationFields; track f.key) { {{ f.label }} @if (f.kind === 'select') { @for (o of f.options; track o.value) { {{ o.label }} } } @else { } @if (f.hint) { {{ f.hint }} } }

Statutory references

Printed on the reports, certificates and returns for this year.

@for (f of statuteFields; track f.key) { {{ f.label }} @if (f.kind === 'select') { @for (o of f.options; track o.value) { {{ o.label }} } } @else { } }
@if (isNew) { } @else if (years.length > 1) { } @if (draft.updatedOn && !isNew) { Last saved {{ draft.updatedOn | slice: 0 : 16 }} }
} @else {
No financial year is configured. Every TDS screen is unable to compute until one is added.
}
}