Home / Help Center / pos-app / Money & Accounts / TDS / TCS
🧾 Money & Accounts

TDS / TCS

TDS/TCS Management handles Indian Tax Deducted at Source obligations that arise from your purchases and expenses — recording deductions, issuing Form 16A-style certificates to parties, filing quarterly returns, and configuring the section rates you deduct at.

📍 Menu path: Money & Accounts → TDS / TCS
👤 Who uses it: Managers/Owners with GST/tax access (India only)
🏷️ Plan tier: advanced+

Overview

This single page has four tabs reachable from the sidebar as separate sub-items (TDS Entries, Certificates, Quarterly Returns, TDS Types) which are really just query-string views of the same component: /tds-management?tab=transactions|certificates|returns|sections.

TDS transactions themselves are not created manually here — they are automatically recorded when you create purchases or expenses that fall under a configured TDS section; this page is for reviewing, certifying, and filing what has already been deducted.

The page is India-specific: if your store's configured country is not India, the entire page is replaced with a "Not available for your region" notice and none of the tabs load.

Before You Start

Step-by-Step Guide

1 Review and filter TDS transactions (TDS Entries tab)

  1. Open the Transactions tab (menu item "TDS Entries", ?tab=transactions).
  2. Filter by Status (Pending, Deposited, Filed, Completed) and/or a From/To date range.
  3. Click Clear to reset all filters, or Refresh to re-fetch with the current filters.
  4. Each row shows Transaction (number + date), Party (name + PAN), Section badge, Gross Amount, TDS Amount, Status badge, and an action to issue a certificate.
  5. Use the Export button above the table to download the full filtered list (transaction type, number, date, financial year, quarter, party name/PAN/category, TDS section, gross amount, rate, TDS amount, net payable, status, certificate number/issued flag, challan number, deposited flag).

2 Issue and share a TDS certificate

  1. On the Transactions tab, find a transaction with no certificate yet and click Issue Certificate.
  2. The certificate is generated server-side and the row updates to show View and Download links instead.
  3. Switch to the Certificates tab (menu item "Certificates", ?tab=certificates) to see every certificate issued so far, with summary tiles for Total Certificates, Total TDS Deducted, and Gross Amount.
  4. Select one or more certificates using the row checkboxes (or the header checkbox to select all), then use Download Selected to save each one, or Email Selected to send them in bulk to the parties on file.
  5. For a single certificate, use the row-level View, Download, or Send (email) actions instead of the bulk toolbar.
💡 Bulk download fetches each certificate file sequentially with a short delay between downloads to avoid overwhelming the browser.

3 Generate and file a quarterly TDS return

  1. Open the Quarterly Returns tab (menu item "Quarterly Returns", ?tab=returns).
  2. Choose the Financial Year from the dropdown (2023-24 through 2026-27).
  3. For a quarter with no return yet, click Generate — this creates a draft return (Form 24Q) summarising TDS Deducted, Deductees and Transactions for that quarter.
  4. For a DRAFT return, click File Return, then enter the Acknowledgment Number and, optionally, a Token in the prompts — the return status changes to Filed and records the filed date and acknowledgment number.
  5. To discard a draft you generated by mistake, click Delete and confirm.
  6. Click View Transactions on any quarter with transactions to jump straight to the filtered Transactions tab for that data.

4 Review TDS section rates (TDS Types tab)

  1. Open the TDS Types tab (menu item "TDS Types", ?tab=sections).
  2. Each card shows a TDS section code, its deduction rate percentage, a description, its threshold amount, category, and whether it is Active or Inactive.
  3. This tab is read-only in this view — it is where you confirm which section a transaction was categorised under.

Every Field & Button, Explained

Field / ButtonWhat it does
Transactions tab / TDS EntriesFilterable, exportable list of every TDS deduction recorded from purchases/expenses.
Status filterPending, Deposited, Filed, or Completed — narrows the transactions list.
From / To date filtersRestrict transactions to a transaction-date range.
Issue CertificateGenerates a certificate for a transaction that does not have one yet.
Certificates tabRegister of every issued certificate with bulk select, bulk download, and bulk email.
Download Selected / Email SelectedBulk actions on the certificates tab, active only when at least one certificate checkbox is selected.
View / Download / Send (row actions)Per-certificate actions: open in a new tab, save the file, or email it to the party.
Quarterly Returns tabPer-quarter (Q1–Q4) cards showing TDS Deducted, Deductees, Transactions, due date, and filing status for the selected Financial Year.
Generate (return)Creates a DRAFT Form 24Q return for a quarter that has no return yet.
File ReturnMarks a DRAFT return as FILED after you supply the government Acknowledgment Number (required) and Token (optional).
Delete (return)Removes a DRAFT return only — filed returns cannot be deleted from this screen.
View Transactions (return card)Jumps to the Transactions tab pre-scoped to that quarter's data.
TDS Types tab / TDS SectionsReference cards of each configured TDS section: rate %, description, threshold, category, active/inactive.

Tips & Best Practices

Troubleshooting & FAQ

The whole page shows "Not available for your region".
TDS/TCS is India-specific tax law. This message appears whenever the store's configured country is not India — it is expected behaviour for non-Indian stores, not an error.
No TDS transactions appear even though I have made purchases.
TDS transactions are only created automatically when a purchase/expense matches a configured TDS section and crosses its threshold. Check the TDS Types tab to confirm the relevant section exists and is Active.
I cannot delete a return.
Only returns in DRAFT status can be deleted from this page. A FILED return has already been submitted to the government and cannot be deleted here.
Certificate download opens a blank or broken file.
Certificates are served from the backend at a stored file path; if the backend origin differs from the app's configured API base URL (e.g. local dev on a different port), the file link can 404. Confirm the backend is reachable at the same origin the app is using.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/packages/pos-react-lib/src/pages/TDSManagement.jsx

Backend endpoints used:

  • GET /tds/tds/transactions
  • GET /tds/sections/tds
  • GET /tds/returns/summary
  • POST /tds/tds/transactions/:id/issue-certificate
  • POST /tds/tds/transactions/:id/send-certificate
  • POST /tds/tds/certificates/bulk-send
  • POST /tds/returns/generate
  • POST /tds/returns/:id/file
  • DELETE /tds/returns/:id

Related tables (db-core repositories):

  • TDSTransaction
  • TDSSection
  • TDSReturn

Redux slices:

  • react-router useSearchParams (tab= query param drives the active tab, no Redux slice)

Feature flag key: gst (requires advanced plan tier or above)

The four sidebar sub-items (TDS Entries, Certificates, Quarterly Returns, TDS Types) all route to the same /tds-management component with a different ?tab= value, synced via useSearchParams so the URL and active tab always match, including on browser back/forward. Certificate downloads fetch the file client-side as a Blob and trigger a synthetic <a download> click rather than navigating away. "File Return" and "Delete Return" reuse window.prompt/window.confirm instead of a modal.