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));
    }

}