Thursday, 24 August 2017

How to Validate GSTIN Number in ax 2012

How to Validate GSTIN Number in ax 2012

What is GSTIN - Goods & Services Tax Identification Number?

All the business entities registering under GST will be provided a unique identification number known as GSTIN or GST Identification Number. 

Currently any dealer registered under state VAT law has a unique TIN number assigned to him by state tax authorities. Similarly, service tax registration number is assigned to a service provider by Central Board of Excise and Customs (CBEC). 

Under GST regime, all these parties will come under one single authority and the different identification numbers will be replaced by a single type of registration number for everyone (GSTIN). This will ensure better administration by the authority and greater compliance by taxpayers and hopefully improve tax collection.

Let’s understand the structure of GST Identification Number:

Every taxpayer will be assigned a state-wise PAN-based Goods and Services Taxpayer Identification Number (GSTIN) which will be 15 digit long.
The first two digits of GSTIN will represent the state code according to Indian Census 2011. Each state has a unique two digit code like “27” for Maharashtra and “10” for Bihar.
The next ten digits of GSTIN will be the PAN number of the taxpayer.
13th digit indicates the number of registrations an entity has within a state for the same PAN. 

It will be an alpha-numeric number (first 1-9 and then A-Z) and will be assigned on the basis of number of registrations a legal entity (having the same PAN) has within one state. 

For example, if a legal entity has single or one registration only within a state then it will be assigned the number “1” as 13th digit of the GSTIN. If the same legal entity gets another or second registration for a second business vertical within the same state, then the 13th digit of GSTIN assigned to this entity will become “2”. Similarly, if an entity has 11 registrations in the same state then it will be assigned letter “B” in the 13th place. This way up to 35 business verticals of any legal entity can be registered within a state using this system.
The fourteenth digit currently has no use and therefore will be “Z” by default.
The last digit will be a check code which will be used for detection of errors.


Will existing taxpayers under Central Excise or Service Tax or State VAT have to apply for fresh registration under GST?

The answer is no. All the taxpayers with PAN validated from CBDT’s database are not required to apply for fresh registration under GST. They can get provisional GSTIN from GST portal with a validity of 6 months so that they can provide relevant data as per GST registration form. 

Once they complete data filing process, their provisional registration will get converted into regular registration. After this, further notification by relevant tax authorities will be issued for giving timelines. 

However, the service tax assesses having centralized registration will have to apply for a fresh registration in the respective states wherever they operate their businesses.

static void ValidateGSTIN(Args _args)
{
    str RegistrationNumber;

    RegistrationNumber ="24AACHA6869P1Z1";

    #define.alphabets('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
    #define.numbers('0123456789')
    #define.15(15)
    #define.20(20)

    if(
    (strkeep(substr(RegistrationNumber, 1, 2), #numbers) != substr(RegistrationNumber, 1, 2)) ||
    (strkeep(substr(RegistrationNumber, 3, 5), #alphabets)   != substr(RegistrationNumber, 3, 5)) ||
    (strkeep(substr(RegistrationNumber, 8, 4), #numbers) != substr(RegistrationNumber, 8, 4)) ||
    (strkeep(substr(RegistrationNumber, 12, 1), #alphabets)   != substr(RegistrationNumber, 12, 1)) ||
    (strlen(RegistrationNumber)   != #15 ) ||
    (strkeep(substr(RegistrationNumber, 13, 1), #numbers)   != substr(RegistrationNumber, 13, 1)) ||
    (strkeep(substr(RegistrationNumber, 14, 1), #alphabets)   != substr(RegistrationNumber, 14, 1))
    //Number or Charactor
    //(strkeep(substr(RegistrationNumber, 15, 1), #numbers)   != substr(RegistrationNumber, 15, 1))
    //(strkeep(substr(RegistrationNumber, 15, 1), #alphabets)   != substr(RegistrationNumber, 15, 1))
    )
    {
        info("Registration Number must be 2 Number, 5 Charactors, 4 Numbers, 1 Charactor, 1 Number, 1 Charactor, Last Char Number or Alpha");
    }
    else
    {
        info(strFmt("Valid GSTTIN Numbet - %1",RegistrationNumber));
    }

}

No comments:

Post a Comment

Labels

#veryusefulcode (1) AIF (8) AOT Maps (1) Args (1) Ax 2009 Reports (2) AX 2012 navigation (1) Ax 2012 Interview Questions (1) AX 7 (2) AX Architecture (1) Ax Backup (1) AX Workflow (2) AX2012 (1) AX2012 R2 (1) Ax2012R3 (1) AX2012R3 Dynamics Connector Step by Step Installation and Configuration (1) AX2012R3 EP Step by Step Installation and Configuration EP R3 (1) AX2012R3 HelpServer Step by Step Installation and Configuration (1) AX2012R3 Rapid Start Connector Step by Step Installation and Configuration (1) AX2012R3 Report Server and Analysis Server Step by Step Installation and Configuration (1) AX7 (1) Best practices (1) Blocking user to enter (1) Collection Classes (1) Container (1) D365FO (3) Data Migration Frame Work ax 2012R3 (1) Deleting duplicate Record from Table – Ax2012 (1) Delivery due date notification workflow in Ax 2012 (1) Development Steps EP (1) Dimensions (1) DIXF (1) DMF in Ax 2012 R3 (1) Dynamics Ax 2012 Interview Questions (1) DYNAMICS AX 2012 INTERVIEW QUESTIONS PART 2 (1) DYNAMICS AX 7 (1) EDT relation Migration Tool (1) EP AX 2012 (1) Ep Lookup (1) Error (1) Event Handler (1) F5 (1) File Handling (4) Filter on AX2012 Listpage (1) filtering (2) financial dimensions in AX 2012 (3) form (1) images (1) Installation and Configration (4) Installation and Configuration (11) Installation of Management Reporter 2012 for AX 2012 (1) Interaction class in ax 2012 (1) Interview Question (1) Interview Questions For Ax 2012 (1) Invent DIm (1) Jobs (2) license (1) List page and form menuitem enable code (1) Methods (1) microsoft Dynamics AX 365FO (1) Number Sequence Generation – AX 2012 (5) Number Sequence2012 (1) OLTP-OLAP (1) Passing Args (1) Passing form caller and menu item caller in ax 2012 (1) Passing Multiple Records Args (1) Posting in Ax 2012 (1) POSTING PURCHASE ORDER (1) Query (1) Query Filter Form (2) Query Ranges in X++ (1) Question and Answer (1) Report (1) Reports Controller class (1) RLS in ax 2009 (1) SALES ORDER IMPORT/EXPORT FRAMEWORK BY DMF (1) Security (1) security roles (1) Security Sysqueryrangeutil (1) Sharepoint 2016 (1) SQL SERVER (1) SSRS (2) SSRS Reports Controller class (2) Table collections & Virtual company (1) Time (1) TIPS AND TRICKS (1) Web service AIF (3) Web Services on IIS (AIF) Step by Step Installation and Configuration (1) workflow ax2012 (1) Workflow installation (1) Workflow Method (3) X++ (1)