localization · BC29official - Microsoftreviewed - checked by Opus

India (IN)

India (IN) localization adds GST (including Cess, ISD, TDS/TCS on GST), e-invoice, gate entry, subcontracting, voucher interface, fixed asset depreciation by block and shift, and stale check handling. It answers which objects implement Indian tax and compliance features and where Learn documents them.

BC29 · country layer against W1 · Learn: local functionality · narrative reviewed (checked by Opus)

Overview

The India layer is almost entirely additive: 1,262 own objects and no changes to W1 objects listed. Most of it is GST, built on a tax engine with use case and tax type setup codeunits (GST, Cess, GST TDS/TCS), plus table and page extensions that add GST fields to sales, purchase, service, inventory, pricing, resource, company and bank objects. Codeunits cover posting, settlement, journals, reconciliation, input service distribution, e-invoice JSON handling and QR generation.

Beyond GST, the layer provides gate entry (inward and outward, with posted entries and a Gate Entry report), subcontracting with delivery challans and GST liability, charge assignment for purchases, a voucher interface with Day Book, Bank Book, Cash Book, Ledger and Voucher Register reports, and fixed asset depreciation with blocks, shifts and an income tax accounting period. Related TDS and TCS use case import codeunits are also present.

Learn documents the setup and the posting scenarios on its India local functionality pages. These include purchases, sales, returns, imports, exports, advance payments, bank charges, reconciliation, settlement, e-invoice, e-way bill, gate entry, depreciation and subcontracting.

Key points

  • GST is configured through tax engine use case and tax type codeunits (GST, Cess, GST TDS/TCS) and covers sales, purchases, services, transfers, journals and bank charges.
  • e-Invoice codeunits (e-Invoice Management, e-Invoice Json Handler, plus service and transfer shipment variants) generate JSON and import signed responses; Learn also covers E-Way Bill.
  • GST settlement, reconciliation with GSTR-2A, credit adjustment journals and Input Service Distribution have their own codeunits.
  • Gate entry provides inward and outward entries, posted entries, comments, attachments and a Gate Entry report.
  • Subcontracting adds delivery challan handling and GST liability creation when materials are not returned in time.
  • Voucher interface adds posting setup tables, narration, and Day Book, Bank Book, Cash Book, Ledger and Voucher Register reports, plus stale check support.
  • Fixed assets get depreciation books, FA blocks, shifts and an income tax accounting period, with Calculate FA Depreciation and Create FA Fiscal Year reports.
  • Posting number series by location and document type, and charge group assignment for purchases are local setup features.

Narrative written by Sonnet from the code diff and 60 Learn page summaries. In numbers: India (IN) localization of Business Central in BC29: 1262 objects of its own, 0 W1 objects changed (0 fields and 0 events added). From the code; country apps outside the Base Application are not included yet.

By area

Area W1 objects changed Own objects Fields added
Finance 0 804 0
Sales 0 133 0
Purchases 0 98 0
Warehouse 0 52 0
Bank 0 43 0
FixedAssets 0 43 0
Service 0 35 0
Inventory 0 23 0
Foundation 0 17 0
(no namespace) 0 3 0
Manufacturing 0 3 0
Pricing 0 3 0
Projects 0 2 0
QRGeneration 0 2 0
Security 0 1 0

Finance

The core GST engine lives here: tax type and use case setup, GST posting management, settlement, journals, reconciliation matching, distribution (ISD), e-invoice management and JSON handlers, plus Cess and GST TDS/TCS configuration. Hundreds of own tables, pages, reports and queries support these.

Why: Learn documents GST setup, settlement of net payment liability, reconciliation with GSTR-2A, Cess calculation, ISD and e-invoice as Indian compliance features.

Objects: codeunit/18000 “GST Use Case Config” (own), codeunit/18015 “GST Posting Management” (own), codeunit/18318 “GST Settlement” (own), codeunit/18146 “e-Invoice Management” (own), codeunit/18147 “e-Invoice Json Handler” (own), codeunit/18280 “GST Reconcilation Match” (own), codeunit/18200 “GST Distribution” (own), codeunit/18017 “GST Tax Configuration” (own).

All 804 objects of Finance in the diff

Sales

Page extensions add GST fields to sales documents, subforms, statistics, archives, customer card and ledger entries, ship-to address and finance charge memos. Posting logic sits in Finance codeunits.

Why: Learn covers GST on sales to registered and unregistered customers, exports, exempted sales and sales returns.

Objects: pageextension/18150 “GST Sales Order Ext” (own), pageextension/18148 “GST Sales Invoice Ext” (own), pageextension/18146 “GST Sales Credit Memo Ext” (own), pageextension/18142 “GST Customer Card Ext” (own), pageextension/18144 “GST Posted Sales Invoice Ext” (own), pageextension/18156 “GST Sales Setup Ext” (own), pageextension/18141 “GST Cust. Ledger Entries Ext” (own), pageextension/18155 “GST Sales Return Order Ext” (own).

All 133 objects of Sales in the diff

Purchases

Page extensions add GST and charge assignment fields to purchase documents, vendor card, ledger entries, order address, statistics and archives.

Why: Learn documents GST and TDS on purchases from registered, unregistered, SEZ, composite and foreign vendors, with reverse charge.

Objects: pageextension/18084 “GST Purchase Order Ext” (own), pageextension/18083 “GST Purchase invoice Ext” (own), pageextension/18082 “GST Purchase Credit Memo Ext” (own), pageextension/18092 “GST Vendor Card Ext” (own), pageextension/18088 “GST Purchases Setup Ext” (own), pageextension/18523 “Charge Purchase Order Ext” (own), pageextension/18081 “GST Posted Purch. Invoice Ext” (own), pageextension/18093 “GST Vendor Ledger Entries Ext” (own).

All 98 objects of Purchases in the diff

Warehouse

Gate entry tracking: inward and outward gate entry pages, posted entries, comments, attachments, posting codeunits, enums for source type and status, and a Gate Entry report. Warehouse receipt pages are extended.

Why: Learn describes gate entry as a record of material entrance and exit tied to purchase, sales, transfer and return orders.

Objects: codeunit/18602 “Gate Entry Post” (own), codeunit/18601 “Gate Entry Handler” (own), page/18605 “Inward Gate Entry” (own), page/18608 “Outward Gate Entry” (own), page/18614 “Posted Inward Gate Entry” (own), page/18617 “Posted Outward Gate Entry” (own), report/18601 “Gate Entry” (own), pageextension/18607 “Gate Entry Whse Rcpt” (own).

All 52 objects of Warehouse in the diff

Bank

Voucher interface with debit and credit posting setup tables, narration, journal voucher setup, plus Day Book, Bank Book, Cash Book, Ledger, Voucher Register and Check reports. Also extends bank account and check ledger objects for stale check and GST.

Why: Learn describes vouchers for journal, bank, cash and contra transactions, and the stale check setup.

Objects: report/18929 “Day Book” (own), report/18930 “Bank Book” (own), report/18931 “Cash Book” (own), report/18933 “Voucher Register” (own), table/18930 “Journal Voucher Posting Setup” (own), page/18930 “Journal Voucher Posting Setup” (own), codeunit/18929 “Narration Posting Events” (own), report/18935 “Check Report” (own).

All 43 objects of Bank in the diff

FixedAssets

India depreciation: FA blocks, shifts, income tax accounting periods, depreciation method and book extensions, normal depreciation calculation, fiscal year close and the Calculate FA Depreciation report.

Why: Learn explains depreciation under the Income Tax Act 1961 and Companies Act 2013 with block codes and additional depreciation.

Objects: codeunit/18631 “Calc Normal Depreciation” (own), report/18631 “Calculate FA Depreciation” (own), report/18632 “Create FA Fiscal Year” (own), table/18632 “Fixed Asset Block” (own), table/18633 “Fixed Asset Shift” (own), table/18631 “FA Accounting Period Inc. Tax” (own), tableextension/18631 “Depreciation Book Ext” (own), tableextension/18632 “FA Depreciation Book Ext” (own).

All 43 objects of FixedAssets in the diff

Service

Table and page extensions add GST fields to service headers, lines, contracts, shipments, invoices, credit memos and archives, with posting handled in Finance codeunits.

Why: Learn covers GST on service orders, invoices and credit memos with GST group and HSN/SAC codes.

Objects: tableextension/18440 “GST Service Header” (own), tableextension/18441 “GST Service Line” (own), pageextension/18440 “GST Service Order” (own), pageextension/18441 “GST Service Lines” (own), tableextension/18442 “GST Service Mgt Setup” (own), pageextension/18442 “GST Service Invoice” (own), pageextension/18444 “GST Service Credit Memo” (own), tableextension/18449 “GST Service Contract Header” (own).

All 35 objects of Service in the diff

Inventory

GST fields on items, item charges, locations, item templates and inventory setup, plus gate entry and TCS fields on location and transfer pages, and subcontracting item ledger extensions.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: tableextension/18008 “GST Item Ext.” (own), pageextension/18007 “GST Item Card Ext” (own), tableextension/18009 “GST Location Ext” (own), pageextension/18009 “GST Location Card Ext” (own), tableextension/18006 “GST Inventory Setup Ext” (own), tableextension/18007 “GST Item Charge Ext” (own), tableextension/18546 “LocationExt” (own), tableextension/18467 “Subcon Item Ledger Entry Ext” (own).

All 23 objects of Inventory in the diff

Foundation

Extensions to company information, source code setup and shipping agents for GST, TCS, TDS and voucher features.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: tableextension/18001 “GST Company Information Ext” (own), pageextension/18002 “GST Company Information Ext” (own), tableextension/18012 “GST Source Code Setup Ext” (own), tableextension/18156 “GST Shipping Agent Ext” (own), tableextension/18543 “CompanyInformation” (own), tableextension/18807 “CompayInformationTCSExt” (own), tableextension/18930 “Source Code Setup Ext.” (own), pageextension/18543 “CompanyInformation” (own).

All 17 objects of Foundation in the diff

(no namespace)

Codeunits that import GST, TDS and TCS use case definitions for the tax engine.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: codeunit/18022 “Import GST Use Case” (own), codeunit/18662 “Import TDS Use Case” (own), codeunit/18816 “Import TCS Use Case” (own).

All 3 objects of (no namespace) in the diff

Manufacturing

Subcontracting extensions on production order lines and components.

Why: Learn covers subcontracting setup with delivery challans and job work return periods.

Objects: tableextension/18469 “Subcon Prod. Order Line” (own), tableextension/18468 “Subcon Prod.Order Component” (own), pageextension/18466 “Subcon ProdOrder Line Ext” (own).

All 3 objects of Manufacturing in the diff

Pricing

GST fields on price list lines and price worksheet lines.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: tableextension/18163 “GST Price List Line Ext” (own), tableextension/18164 “GST Price Worksh. Line Ext” (own), pageextension/18169 “GST Price List Lines Ext” (own).

All 3 objects of Pricing in the diff

Projects

GST fields on the resource table and resource card.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: tableextension/18010 “GST Resource Ext” (own), pageextension/18011 “GST Resource Card Ext” (own).

All 2 objects of Projects in the diff

QRGeneration

A QR Generator codeunit with a .NET component, used for e-invoice QR codes.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: codeunit/18650 “QR Generator” (own), dotnet/ “” (own).

All 2 objects of QRGeneration in the diff

Security

A permission set extension for India TDS added to D365 BASIC.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: permissionsetextension/18661 “D365 BASIC - India TDS” (own).

All 1 objects of Security in the diff

Objects of its own

1262 objects only this country has.

Other versions

  • BC30: 1262 objects differ from W1 (0 fields, 0 events added)

Source: country layer of the Base Application compared with W1 of the same version (data/code/diffs/country/).