[IMP] l10n_in: adopt new tax return mechanism and add GSTR-2B report

In community PR odoo/odoo#223358 and enterprise PR odoo/enterprise#92173.
we introduce the new tax return mechanism. This includes filing returns directly
from the Tax Returns dashboard, validation checks before submission
and an improved reconciliation flow.

This commit updates the Indian GST documentation to reflect these changes and
also adds the GSTR-2B report inside the Tax Reports section.

task- 5097904

closes odoo/documentation#14728

X-original-commit: 2fb17957f5
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
Signed-off-by: Smit Patel (pasm) <pasm@odoo.com>
This commit is contained in:
Smit Patel
2025-07-14 12:35:39 +00:00
committed by afma-odoo
parent 6904aa3e12
commit 0edad61248
23 changed files with 123 additions and 118 deletions

View File

@@ -425,153 +425,146 @@ Username`.
File-in GST Return File-in GST Return
------------------ ------------------
When the :guilabel:`GST E-Filing & Matching Feature` is enabled, you can file your GST return. Go To file a GST return, make sure the :ref:`GST E-Filing & Matching Feature
to :menuselection:`Accounting --> Reporting --> India --> GST Return periods` and create a new <india/indian-configuration>` is enabled. Then, go to the Accounting dashboard and click
**GST Return Period** if it does not exist. GST Return file-in is done in **three steps** in Odoo: :guilabel:`Tax Returns` on the :guilabel:`Tax Returns` journal. In the
:guilabel:`Accounting Periods` window, fill in the following fields.
- :guilabel:`Opening Date`: Starting date from which tax return periods are created.
- :guilabel:`Fiscal Year End`: End date of the fiscal year (e.g., :guilabel:`31 March`).
- :guilabel:`GSTIN Periodicity`: Frequency of return filing (e.g., :guilabel:`Monthly`).
.. tip::
Alternatively, go to :menuselection:`Accounting --> Reporting --> Tax Report`, click
:icon:`fa-book` :guilabel:`Report:` and select :guilabel:`GSTR-1 (IN)`. Then, click
:guilabel:`Returns` to file the return.
.. note:: .. note::
**Tax Return Periodicity** can be To reconcile vendor bills with GST portal data, go to
:doc:`configured <../accounting/reporting/tax_returns>` according to the user's :menuselection:`Accounting --> Reporting --> Tax Report`, click :icon:`fa-book`
needs. :guilabel:`Report:` and select :guilabel:`GSTR-2B`, and click :guilabel:`Reconcile`.
.. _india/gstr-1: .. _india/gstr-1:
Send GSTR-1 Filing GSTR-1 tax return
~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
#. Click :guilabel:`GSTR-1 Report` to verify the :ref:`GSTR-1 <india/gstr-1_report>` report before To file a GSTR-1 tax return, follow these steps:
uploading it to the **GST portal**.
.. image:: india/gst-gstr-1-verify.png #. Click the suitable :guilabel:`GSTR-1` report for the desired period to open the filing view.
:alt: GSTR-1 verify
.. image:: india/gst-gstr-1-file.png
:alt: GSTR-1 filing view
.. note:: .. note::
The system performs basic validations to ensure compliance with the GST portal's requirements. It is recommended to file the return **five days before the filing date** to avoid any
Possible issues include: penalties.
- **Incorrect Tax Application:** The tax type does not match the :guilabel:`Fiscal Position` #. Odoo automatically performs validation checks before submission to ensure compliance with GST
(:guilabel:`CGST/SGST` applied instead of :guilabel:`IGST` for interstate transactions, or portal requirements that must be addressed before filing.
:guilabel:`IGST` applied instead of :guilabel:`CGST/SGST` for intrastate transactions).
- **Missing HSN Code:** No HSN Code is defined for the product.
- **Invalid HSN Code for Services:** The HSN Code for a service does not start with "99" or is
incorrect.
- **Non-compliant UQC:** The Unit Quantity Code (UQC) does not meet Indian GST standards.
If any validation fails, the system alerts users with a warning, highlighting the .. note::
discrepancies and providing a direct link to the affected lines. The following types of validation issues can be raised:
.. image:: india/gst-gstr-1-validation.png - :guilabel:`Apply Appropriate Tax`: :guilabel:`IGST` is not applicable for intra-state
:alt: GSTR-1 validation warning transactions.
- :guilabel:`Wrong CGST/SGST on Inter-State Transactions`: :guilabel:`CGST/SGST` cannot be
applied on inter-state transactions.
- :guilabel:`Fiscal Year Reversed Move`: Credit Notes for invoices issued in a given financial
year should not be included in GSTR-1 after **November 30th**; remove tax from these lines.
- :guilabel:`Invalid HSN Codes`:
- For products (non-services), HSN codes must not begin with `99`.
- For services, HSN codes must begin with `99`.
- :guilabel:`Missing HSN Codes`: Some product lines do not have HSN codes for journal
items.
- :guilabel:`Invalid UQC Codes`: The Unit Quantity Code (UQC) must comply with Indian GST
standards.
- :guilabel:`Missing Document Summary`: Document summary lines are mandatory for GSTR-1. This
check is always marked as :guilabel:`Anomaly` initially. After reviewing the summary by
clicking the relevant check, it changes to :guilabel:`Reviewed`.
- :guilabel:`Missing E-Invoice`: Some invoices are not linked to an e-invoice.
- :guilabel:`Unlinked Unregistered Credit Notes`: Credit Notes have been issued without
referencing an invoice.
#. Click :guilabel:`Generate` to view the report in **Spreadsheet view**. Validation checks have four stages:
.. image:: india/gst-gstr-1-generate.png - :guilabel:`To Review`: Check requires review.
:alt: GSTR-1 generate - :guilabel:`Reviewed`: Check has been reviewed.
- :guilabel:`Supervised`: Check is supervised, and a supervisor is assigned.
- :guilabel:`Anomaly`: Check has failed.
.. image:: india/gst-gstr-1-spreadsheet-view.png Click on any individual check to view and resolve the corresponding issue.
:alt: GSTR-1 Spreadsheet View
#. If the **GSTR-1** report is correct, then click :guilabel:`Push to GSTN` to send it to the **GST .. tip::
portal**. The status of the :guilabel:`GSTR-1` report changes to :guilabel:`Sending`. A tax return can only be validated when all checks are in the :guilabel:`Reviewed` or
:guilabel:`Supervised` stage.
.. image:: india/gst-gstr-1-sending.png After reviewing the checks, click :guilabel:`Validate`. The :guilabel:`Review` stage appears in
:alt: GSTR-1 in the Sending Status green then.
#. After a few seconds, the status of the **GSTR-1** report changes to :guilabel:`Waiting for #. Click :guilabel:`GSTR-1 (IN)` to review the report.
Status`. It means that the **GSTR-1** report has been sent to the :guilabel:`GST Portal` and is
being verified on the :guilabel:`GST Portal`;
.. image:: india/gst-gstr-1-waiting.png #. Click :guilabel:`Submit`, and click :guilabel:`Push Data` in the
:alt: GSTR-1 in the Waiting for Status :guilabel:`Submission Instructions` window to send the report to the GST portal.
#. Once more, after a few seconds, the status either changes to :guilabel:`Sent` or :guilabel:`Error During this step, GST portal credentials must be verified. As the data is being sent, the
in Invoice`. The status :guilabel:`Error in Invoice` indicates that some of the invoices are not :guilabel:`Send` stage in the progress bar appears orange. Once the GST portal confirms receipt,
correctly filled out to be validated by the **GST portal**; the stage turns green. If an error occurs, the :guilabel:`Send` stage changes to red.
- If the state of the **GSTR-1** is :guilabel:`Sent`, it means your **GSTR-1** report is ready to .. note::
be filed on the **GST portal**. Click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the relevant :guilabel:`GSTR-1`
line to display additional options:
.. image:: india/gst-gstr-1-sent.png - :guilabel:`Generate XLSX`: Download the GSTR-1 report as an XLSX file.
:alt: GSTR-1 Sent - :guilabel:`Reset`: Clear the current state and revert the return to the initial stage.
- If the state of the **GSTR-1** is :guilabel:`Error in Invoice`, invoices can be checked for #. Click :guilabel:`Check Status` to retrieve the current status from the GST portal.
errors in the chatter. Once issues have been resolved, the user can click Once the confirmation is received, the :guilabel:`Review` stage in the progress bar turns green.
:guilabel:`Push to GSTN` to submit the file again on the **GST portal**. Then, click :guilabel:`Mark as Filed` to finalize and submit the return as filed.
.. image:: india/gst-gstr-1-error.png .. important::
:alt: GSTR-1 Error in Invoice Once a return is marked as **Filed**, it cannot be reset or filed again.
#. Click :guilabel:`Mark as Filed` after filing the **GSTR-1** report on the **GST portal**. The .. _india/gstr-2b:
status of the report changes to :guilabel:`Filed` in **Odoo**.
.. image:: india/gst-gstr-1-filed.png Receive GSTR-2B tax reconciliation
:alt: GSTR-1 in the Filed Status ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. _india/gstr-2B: #. Select the relevant :guilabel:`GSTR-2B` report for the desired period that needs to be
reconciled.
Receive GSTR-2B #. In the validation checks view, click :guilabel:`Fetch E-Invoice` to retrieve vendor e-invoice
~~~~~~~~~~~~~~~ data for the reconciliation period. The check is initially marked as :guilabel:`Anomaly` and
changes to :guilabel:`Reviewed` after fetching. Then, click :guilabel:`Validate` to confirm and
mark the :guilabel:`Review` stage as green.
Users can retrieve the **GSTR-2B Report** from the **GST portal**. This automatically reconciles .. important::
the **GSTR-2B** report with your Odoo bills; The :guilabel:`Fetch E-Invoice` check only turns green if the e-invoice data is fetched
**two days after the end of the last month's reconciliation period**.
#. Click :guilabel:`Fetch GSTR-2B Summary` to retrieve the **GSTR-2B** summary. After a few seconds, #. Click :guilabel:`Fetch GSTR-2B` to retrieve all invoices from the GST portal. Once the data is
the status of the report changes to :guilabel:`Waiting for Reception`. This means Odoo is trying fetched, the :guilabel:`Fetch` stage in the progress bar turns green. To view the raw report
to receive the **GSTR-2B** report from the **GST portal**; data, click :guilabel:`GSTR-2B (IN)`.
.. image:: india/gst-gstr-2b-waiting.png #. The fetched invoices are automatically matched with the E-invoices. Click :guilabel:`View Bills`
:alt: GSTR-2B in Waiting for Reception to see detailed matching results.
#. Once more, after a few seconds, the status of the **GSTR-2B** changes to the :guilabel:`Being .. note::
Processed`. It means Odoo is reconciling the **GSTR-2B** report with your Odoo bills; The :guilabel:`Match` stage indicates the reconciliation status:
.. image:: india/gst-gstr-2b-processed.png - Orange: Partially matched (some bills require correction).
:alt: GSTR-2B in Waiting for Reception - Green: Fully matched (all bills reconciled).
#. Once it is done, the status of the **GSTR-2B** report changes to either :guilabel:`Matched` or In case of mismatches, correct the affected bills, then click the :icon:`fa-ellipsis-v`
:guilabel:`Partially Matched`; :guilabel:`(ellipsis)` icon to access additional options:
- If the status is :guilabel:`Matched`: - :guilabel:`Re-Match`: Re-run the matching process after making corrections.
- :guilabel:`Reset`: Reset the reconciliation to the :guilabel:`Match` stage.
.. image:: india/gst-gstr-2b-matched.png #. After all bills are fully matched, click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon
:alt: GSTR-2B Matched and select :guilabel:`Mark as Complete`.
The :guilabel:`Complete` stage in the progress bar turns green, finalizing the bill
- If the status is :guilabel:`Partially Matched`, you can review and modify the bills by reconciliation.
clicking :guilabel:`View Reconciled Bills`. This will display categorized discrepancies, such
as bills missing in Odoo or GSTR-2. After making the necessary corrections, click
:guilabel:`re-match` to update the reconciliation and ensure accuracy before finalizing the
report.
.. image:: india/gst-gstr-2b-partially.png
:alt: GSTR-2B Partially Matched
.. _india/gstr-3:
GSTR-3 report
~~~~~~~~~~~~~
The :ref:`GSTR-3 <india/gstr-3_report>` report is a monthly summary of **sales** and **purchases**.
This return is auto-generated by extracting information from **GSTR-1** and **GSTR-2**.
#. Users can compare the **GSTR-3** report with the **GSTR-3** report available on the
**GST portal** to verify if they match by clicking :guilabel:`GSTR-3 Report`;
#. Once the **GSTR-3** report has been verified by the user and the tax amount on the **GST portal**
has been paid. Once paid, the report can be **closed** by clicking :guilabel:`Closing Entry`;
.. image:: india/gst-gstr-3-not_filed.png
:alt: GSTR-3
#. In :guilabel:`Closing Entry`, add the tax amount paid on the **GST portal** using challan, and
click :guilabel:`POST` to post the :guilabel:`Closing Entry`;
.. image:: india/gst-gstr-3-post.png
:alt: GSTR-3 Post Entry
#. Once posted, the **GSTR-3** report status changes to :guilabel:`Filed`.
.. image:: india/gst-gstr-3-filed.png
:alt: GSTR-3 Filed
.. _india/gstr_reports: .. _india/gstr_reports:
@@ -587,23 +580,35 @@ The :guilabel:`GSTR-1` report is divided into sections. It displays the :guilabe
:abbr:`CGST (Central Goods and Services Tax)`, :abbr:`SGST (State Goods and Service Tax)`, :abbr:`CGST (Central Goods and Services Tax)`, :abbr:`SGST (State Goods and Service Tax)`,
:abbr:`IGST (Integrated Goods and Services Tax)`, and :guilabel:`CESS` for each section. :abbr:`IGST (Integrated Goods and Services Tax)`, and :guilabel:`CESS` for each section.
.. image:: india/gst-gstr-1-sale-report.png .. image:: india/gst-gstr-1-report.png
:alt: GSTR-1 Report :alt: GSTR-1 Report
.. _india/gstr-3_report: .. _india/gstr-2b_report:
GSTR-3 report GSTR-2B report
------------- --------------
The :guilabel:`GSTR-3` report contains different sections: The :guilabel:`GSTR-2` report is divided into sections. It displays the :guilabel:`Base` amount,
:abbr:`CGST (Central Goods and Services Tax)`, :abbr:`SGST (State Goods and Service Tax)`,
:abbr:`IGST (Integrated Goods and Services Tax)`, and :guilabel:`CESS` for each section.
.. image:: india/gst-gstr-2b-report.png
:alt: GSTR-2B Report
.. _india/gstr-3b_report:
GSTR-3B report
--------------
The :guilabel:`GSTR-3B` report contains different sections:
- Details of inward and outward supply subject to a **reverse charge**; - Details of inward and outward supply subject to a **reverse charge**;
- Eligible :abbr:`ITC (Income Tax Credit)`; - Eligible :abbr:`ITC (Income Tax Credit)`;
- Values of **exempt**, **Nil-rated**, and **non-GST** inward supply; - Values of **exempt**, **Nil-rated**, and **non-GST** inward supply;
- Details of inter-state supplies made to **unregistered** persons. - Details of inter-state supplies made to **unregistered** persons.
.. image:: india/gst-gstr-3-report.png .. image:: india/gst-gstr-3b-report.png
:alt: GSTR-3 Report :alt: GSTR-3B Report
Profit and Loss (IN) report Profit and Loss (IN) report
--------------------------- ---------------------------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB