xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Finance & Accounting/The GST console
CONCEPT · Last reviewed

The GST console

The GST Console behavior is implemented by the first-party TaxCenterWidget. When a tenant AppPage embeds that widget, it answers a narrow operational question: for the selected GST registration and financial year, which return records exist and what state do their stored values indicate? It links to return records and scoped lists; it does not process, reconcile or file a return by itself.

The widget's route is not universal because AppPage provisioning is tenant configuration. This page is therefore intentionally text-only rather than showing a route that may not exist for the reader's tenant. If a Tax Center URL returns Not Found, use the underlying GSTR entity lists and actions until an administrator provisions and grants the AppPage.

Choose the scope

The console uses three coordinates:

  • GST registration. The picker loads GSTRegistration records and keeps those that are active and have a nonblank GSTIN. The current query does not separately prove that a registration is the tenant's own filing registration, so administrators must keep the registration master accurate and select the filer GSTIN deliberately.
  • Financial year. The picker is built from the tenant's stored GSTFiscalPeriod rows, grouped into Indian April-to-March financial years and ordered newest first. It is not a fixed current-year-plus-or-minus list. If no fiscal-period rows exist, the control falls back to the current financial year.
  • Filing period. The timeline shows the annual row first and available months in descending order. When no stored periods exist for the selected year, the console generates a twelve-month navigation scaffold; that scaffold does not mean return records have been provisioned.

Changing any coordinate refreshes the filing cards. Always confirm the GSTIN and displayed period before opening a card, particularly in a tenant with several registrations.

Read the filing cards

For a regular monthly period, the console presents:

CardValues summarized
GSTR-1The matching return's processing value and filing state
GSTR-2BThe matching statement's value and whether its generation date indicates Generated or still awaiting generation
GSTR-3BThe matching return's liability and filing state

For an active registration flagged as an Input Service Distributor, the monthly set is GSTR-6 instead of the regular trio. The annual row presents GSTR-9.

When exactly matching records exist, a card opens the corresponding record. If no exact record can be resolved, it opens the entity list scoped to the selected GSTIN and period so the absence is visible rather than silently inventing a record. A GSTR-2B card's Generated/Pending display is derived from its generation date because the GSTR-2B header has no filing-status field.

The recent-filing activity table reads GSTR-3B records. Filing date, acknowledgment and return status come from those records; Filed By is currently displayed as a dash because the widget does not resolve a filing user.

Where records come from

Return provisioning is available as a server action on a GST registration and through a scheduled job. Provisioning is existence-checked, so repeating it for the same registration and period does not create duplicate headers.

  • A regular monthly period provisions GSTR-1, GSTR-2B and GSTR-3B.
  • An ISD monthly period provisions GSTR-6.
  • Provisioning any normal-filer month also ensures that one GSTR-9 exists for that financial year; repeated months are no-ops for the annual header.
  • The scheduled job targets its configured period and, by default, the previous calendar month; it does not pre-create every month and year merely because the console was opened.

There is one current edge case to understand: the widget presents an annual GSTR-9 card even for an ISD registration, while the provisioning service does not create GSTR-9 for an ISD. That card can therefore lead to an empty scoped list. Treat that as absence of a provisioned annual record, not as a completed filing.

  1. Select the filer registration and verify its GSTIN and registration type.
  2. Select a financial year derived from the stored fiscal periods.
  3. Select the annual row or the required month; do not mistake a generated timeline scaffold for provisioned returns.
  4. Read each card as a summary only, then open it and verify the record's own GSTIN and period.
  5. Run processing, reconciliation and filing-record actions from the return surface described on that return's documentation page.
  6. Return to the console and refresh to confirm the summary changed as expected.

Common questions

Why is the GSTIN picker empty?

No active GSTRegistration record with a nonblank GSTIN was returned. Correct or create the registration master and verify the user's permission to read it.

Why is a financial year missing?

The normal choices come from stored GSTFiscalPeriod rows. Provision or create the required fiscal periods; the single fallback year shown when no rows exist is only a navigation default.

Why do I see months but no return record?

The console can synthesize the twelve-month timeline when fiscal-period data is absent, and a card can fall back to a scoped list when no exact header exists. Run the appropriate provisioning action or scheduled job for the required registration and period.

Why does GSTR-2B say Pending when it has rows?

The console derives the card state from GenerationDate, not from row count. Verify that the statement header records the correct portal generation date.