A GSTR 9 Return is the annual GST return for one GSTIN and one financial year. GST-return provisioning creates it as Draft for every active registration that is not an Input Service Distributor, once per GSTIN and year, linked to the year's annual GST fiscal period. Compute GSTR9 builds the statutory rows (GSTR 9 Summary) by rolling up the year's Filed GSTR-1 and GSTR-3B returns and the GSTR-2B portal ITC summary into the Computed lane, your tax ledger into the Books lane of five rows, and Table 17 from the filed GSTR-1 HSN summaries; rows no monthly return carries are created as zeros for you to enter. Entries and overrides need a reason, flow into the dependent sub-totals and survive recompute; 6A, 8A and Table 9 are locked. Status moves Draft, Computed, Validated (pre-file checklist passed, which needs all twelve months filed), Filed. A Validated return is filed through the GSTN integration (Save GSTR-9 to GSTN, File GSTR-9 on GSTN) or recorded with File To GSTN after filing on the portal; a Filed return is frozen. The same record carries the GSTN requests for GSTR-9A and GSTR-9C, which xMatix does not compute; the GSTN fields that support this are described on the Annual returns page.
Fields
| Field | Label | Type | Required | What it does |
AATO | AATO | Currency | | Annual aggregate turnover for the year. The taxpayer's own declaration, which the statutory thresholds depend on; provisioning and Compute GSTR9 never fill it. Included in the Export GSTR9 JSON output. |
ARN | ARN | Text | | Acknowledgement number of the GSTR-9 filing, at most 120 characters. Written automatically when File GSTR-9 on GSTN succeeds. The standard File To GSTN dialog does not ask for it. |
ComputedAt | Computed At | Date | | When Compute GSTR9 last built the return's rows. |
CreatedById | Created By | Lookup → UserAccount | | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
FiledOn | Filed On | Date | | When the return was filed. Stamped by File To GSTN (the moment it is confirmed) or by a successful File GSTR-9 on GSTN. |
FinancialYear | Financial Year | Text | | The financial year the return covers, written like 2025-26. Required when a return is created by hand; xMatix then links or creates the year's annual GST fiscal period and normalises the spelling. Decides which twelve months are rolled up and which year's form definition is used. Cannot be moved to another year once the return is past Draft. |
GSTIN | GSTIN | Text | | The GSTIN the annual return is for. Must be a well-formed 15-character GSTIN; only one GSTR-9 is allowed per GSTIN and financial year. Decides which monthly returns and tax ledger lines are read. |
GSTRegistrationId | GST Registration | Lookup | | The GST Registration the return is filed under, set by provisioning. Its GSTN session is used by the GSTN actions, and its GSTIN must match the return's. |
Id | Id | Guid | Yes | |
IsFiled | Is Filed | Boolean | | Yes once the return is filed by either route, set together with Status Filed. A filed return cannot be recomputed, overridden, saved or filed again. |
LegalName | Legal Name | Text | | The registered legal name of the taxpayer. Not filled by provisioning. |
ModifiedById | Modified By | Lookup → UserAccount | | |
Name | Name | Text | Yes | The record name. Provisioning names it GSTR9-<GSTIN>-<financial year>. |
OTP | OTP | Number | | No longer stored on the return. The GSTN session used by the GSTN actions comes from the GST Registration's OTP authentication. |
OwnerId | Owner | Lookup → UserAccount | | |
PeriodFrom | Period From | Date | | Start of the coverage period, filled with 1 April of the financial year. With Period To it sets the document-date range read into the Books lane. |
PeriodTo | Period To | Date | | End of the coverage period, filled with 31 March after the financial year starts. |
PrerequisiteStatus | Prerequisite Status | Text | | Written by Compute GSTR9: whether every one of the twelve months has a Filed GSTR-1 and GSTR-3B, for example 'Complete: 12/12 GSTR-1 and 12/12 GSTR-3B filed.' or 'Incomplete: 11/12 GSTR-1 and 12/12 GSTR-3B filed.'. The pre-file checklist blocks unless it starts with Complete. |
RecordTypeId | Record Type | Guid, hidden | | |
Status | Status | PickList | | Lifecycle written by the actions: Draft (created), Computed (Compute GSTR9 ran; computing again after validation returns here), Validated (pre-file checklist passed with no blocking findings), Filed (frozen statutory snapshot). Filing by either route needs Validated. Do not set it by hand, whatever values the form's list offers. Values: Draft, Filed, Locked. |
SubscriptionKey | Subscription Key | Guid, hidden | Yes | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
ComputeGSTR9 | Compute GSTR9 | ServerAction (ComputeGSTR9) | Roll up the annual GSTR-9 summary from the filed GSTR-1/3B, GSTR-2B and the books ledger. |
Edit | Edit | Edit | Edit |
EditInLine | Edit | UIAction | Edit |
ExportGSTR9Json | Export GSTR9 JSON | ServerAction (ExportGSTR9Json) | Emit the GSTN offline-utility JSON payload for the GSTR-9 return. |
FileToGSTN | File To GSTN | ServerAction (FileToGSTN) | Push to GSTRN |
GetGSTR9 | Get GSTR9 | ServerAction (GetGSTR9) | Get the GSTR-9 table-wise summary (blocks/rows). |
New | New | New | New GSTR 9 Return |
OverrideGSTR9Line | Override GSTR9 Line | ServerAction (OverrideGSTR9Line) | Override a GSTR-9 summary line with a mandatory reason (audit trail). |
PerformGSTR9Summary | Get Records | ServerAction (PerformGSTR9Summary) | Computes the annual return (legacy name kept as an alias of the compute): wipes and rebuilds the non-overridden GSTR9Summary rows for this header from the tenant's GSTR9Config catalog - rolling up the filed monthly GSTR-1/GSTR-3B returns into the Computed lane and the TaxTransaction books ledger into the Books lane, materializing the variance and rebuilding the HSN tables from the filed GSTR-1 HSN summaries. Overridden rows are preserved and the row version is bumped; a Filed return is refused. Requires the header to exist with a valid GSTIN and financial year. |
ValidateGSTR9 | Validate GSTR9 | ServerAction (ValidateGSTR9) | Run the GSTR-9 pre-file checklist and lock the portal-owned rows. |