Skip to main content

GSTR 2 Structural and Business Rules

Structural rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

val

Amount of Total invoice value should not be less than 0.

val >=0

Error

Total Invoice/Note Amt should not be negative.

txval

Amount of Taxable value should not be less than 0.

txval>=0

Error

Total Taxable Amt should not be negative.

iamt

IGST Tax Amount should not be less than 0.

iamt>=0

Error

IGST Tax Amt should not be negative.

camt

CGST Tax Amount should not be less than 0.

camt>=0

Error

CGST Tax Amt should not be negative.

samt

SGST Tax Amount should not be less than 0.

samt>=0

Error

SGST Tax Amt should not be negative.

csamt

CESS Tax Amount should not be less than 0.

csamt>=0

Error

CESS Tax Amt should not be negative.

tx_i

IGST ITC Amount should not be less than 0.

tx_i>=0

Error

IGST ITC Amt should not be negative.

tx_c

CGST ITC Amount should not be less than 0.

tx_c>=0

Error

CGST ITC Amt should not be negative.

tx_s

SGST ITC Amount should not be less than 0.

tx_s>=0

Error

SGST ITC Amt should not be negative.

tx_cs

CESS ITC Amount should not be less than 0.

tx_cs>=0

Error

CESS ITC Amt should not be negative.

idt

Invoice Date should not greater than return period

If dty = RI/BS, idt <= fp

Error

Invoice Date should not be greater than return period.

idt

Invoice Date should not be 18 months older

If dty = RI/BS, idt not older than 18 months

Error

Invoice Date should not be 18 months older.

idt

Invoice Date should be on or after the date of registration.

If dty = RI/BS, idt >= Registration date

Error

Invoice Date should be on or after the date of registration.

idt

Invoice Date should be on or after 1st July 2017

If dty = RI/BS, idt >= 1st July 2017

Error

Invoice Date should be on or after 1st July 2017

nt_dt

Credit/Debit note date should not be greater then the return period

If dty = C/D/R, nt_dt <= fp

Error

Credit/Debit note date should not be greater then the return period.

nt_dt

Credit/Debit note Date should be on or after the invoice date

If dty = C/D/R, nt_dt >= idt

Error

Credit/Debit note Date should be on or after the invoice date.

nt_dt

Credit/Debit note date should be on or after the date of registration.

If dty = C/D/R, nt_dt >= Registration date

Error

Credit/Debit note date should be on or after the date of registration.

nt_dt

Credit/Debit note date should be on or after 1st July 2017

If dty = C/D/R, nt_dt >= 1st July 2017

Error

Credit/Debit note date should be on or after 1st July 2017.

sbdt

Bill of entry date should not be greater than return period.

If dty = IMG, sbdt <= fp

Error

Bill of entry date should not be greater than return period.

dty

If Invoice type is IMG, then \ dty always = RI

inv_typ = IMG then dty = RI or BS

Error

In case of import of goods, credit note or debit note is not acceptable.

nt_num

For Credit note, debit note and refund voucher, Note/voucher number is mandatory

If dty = C/D/R, nt_num ≠ blank

Error

Note/Voucher number is required in case of a credit note, debit note or refund voucher.

nt_dt

For Credit note, debit note and refund voucher, Note/voucher date is mandatory

If dty = C/D/R, nt_num ≠ blank

Error

Note/Voucher date is required in case of a credit note, debit note or refund voucher.

inum

If invoice type is B2B/SEWP/SEWOP/IMS/RCM/ B2BUR/DE, then invoice number is required

If inv_typ = B2B/SEWP/SEWOP/IMS/RCM/B2BUR/DE, then inum ≠ blank

Error

Invoice number is required in case of all invoices except for import of goods.

reflnum

In case of credit debit note, the reference invoice number should be present

If dty = C/D/R, reflnum ≠ blank

Error

Invoice number is required in case of all invoices except for import of goods.

inum

If invoice type is IMG, then invoice number is not required

If inv_typ = IMG, then inum = blank

Error

Invoice number is not required for import of goods.

idt

If invoice type is B2B/SEWP/SEWOP/IMS/ RCM/B2BUR/DE, then invoice date is required

If inv_typ = B2B/SEWP/SEWOP/IMS/RCM/ B2BUR/DE, then idt ≠ blank

Error

Invoice date is required in case of all invoices except for import of goods.

refldt

In case of credit debit note, the reference invoice date should be present

If dty = C/D/R, refIdt≠ blank

Error

Invoice date is required in case of all invoices except for import of goods.

idt

If invoice type is IMG, then invoice date is not is required

If inv_typ = IMG, then idt blank

Error

Invoice date is not required for import of goods.

idt

For Credit note, debit note if pre-GST regime is yes then invoice value should be before 1st july.

If dty = C/D and p_gst=Y then idt<1st july

Error

If credit/debit note is related to Pre GST then Invoice date should be before 1st July.

idt

For Credit note, debit note if pre-GST regime is No then invoice value should be on or after 1st july.

If dty = C/D and p_gst=N then idt>=1st july

Error

If credit/debit note is not related to Pre-GST invoice then Invoice date should be on or after 1st July.

sbnum

For import of goods Bill of Entry Number is required

If inv_typ = IMG, then sbnum ≠ blank

Error

Bill of Entry number is required in case of import of goods.

sbdt

For imports of goods Bill of Entry date is required

If inv_typ = IMG, then sbdt≠ blank

Error

Bill of Entry date is required in case of import of goods.

sbpcode

For imports of goods port code is required

If inv_typ = IMG, then sbpcode ≠ blank

Error

Port code is required in case of import of goods.

pos

If Invoice type is B2B/RCM/SEWP/SEWOP/DE, then POS is mandatory.

If inv_typ = B2B/RCM/SEWP/SEWOP/DE/IMS then pos ≠ blank

Error

POS is mandatory.

Business rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

iamt

Amount of IGST should be taxable value multiplied by rate of IGST

iamt= txval*irt (Rounding off range -1 to +1)

Warning

Amount of IGST should be taxable value multiplied by rate of IGST.

camt

Amount of CGST should be taxable value multiplied by rate of CGST

camt=txval*crt (Rounding off range -1 to +1)

Warning

Amount of CGST should be taxable value multiplied by rate of CGST.

samt

Amount of SGST should be taxable value multiplied by rate of SGST

samt=txval*srt (Rounding off range -1 to +1)

Warning

Amount of SGST should be taxable value multiplied by rate of SGST.

txval

Amount of taxable value should always be more than 0.

txval>0

Warning

Taxable value should always be greater than 0.

inv_typ

For composite dealers, invoice type should always be B2B

If rtpy = CD, then inv_typ = B2B

Error

For composite dealers, invoice type should always be B2B as these are registered dealers.

sply_ty

If invoice type is SEWP/SEWOP/DE/IMS/IMG, then supply type should always be interstate

If inv_typ = SEWP/SEWOP/DE/IMS/IMG, then sply_ty = Inter

Error

Imports, SEZ and deemed imports are considered to be inter-state supplies.

If type of registered counter-party is SEZ then supply type should always be interstate

If rtpy = SEZ, then sply_ty = Inter

Error

Supplies received from SEZ are considered to be inter-state supplies.

If POS is different than the first two digits of GSTIN of the supplier, the supply type should always be inter

If inv_typ = B2B and POS ≠ first two digits ctin, then sply_ty = Inter

Error

When place of supply is different from the location of supplier, then it should be an interstate supply.

If supply type is intra, then POS should be same as the first two digits of GSTIN of the supplier

If inv_typ = B2B and POS = first two digits ctin, then sply_ty = Intra

Warning

In case of intra-state supply, the place of supply should be same as the location of supplier.

ctpy

Type of counter-party needs to be Registered in case if gstin of counter-party is provided.

If ctin ≠ blank, then ctpy = R

Warning

Type of counter-party needs to be Registered in case if gstin of counter-party is provided.

Type of counter-party needs to be unregistered in case if gstin of counter-party is not provided.

If ctin = blank, then ctpy = U

Warning

Type of counter-party needs to be unregistered in case if gstin of counter-party is not provided.

rtpy

Type of registered counter-party is mandatory in case if counter-party is registered.

If inv_typ= B2B, then rtpy ≠ blank

Warning

Type of registered counter-party is mandatory in case if counter-party is registered.

Type of registered counter-party shall always be regular dealer or blank in case of unregistered counter-party

If = U, then rtpy = RD or blank

Warning

Type of registered counter-party shall always be regular dealer or blank in case of unregistered counter-party.

Registered counter-party cannot be composite dealer in case of SEZ and Deemed Export supplies

If inv_typ= SEWP/SEWOP/DE, then rtpy ≠ CD

Error

Registered counter-party cannot be composite dealer in case of SEZ and Deemed Export supplies.

In case of import of goods from SEZ, the type of registered counter-party should be SEZ

If inv_typ= IMG and ctpy = R, then rtpy = SEZ

Error

In case of import of goods from SEZ, the type of registered counter-party should be SEZ.

If type of registered counter-party is CD then tax rates and amounts should not be filled

If rtpy = CD, then irt, iamt,crt,camt,srt,samt,csrt,csamt = blank or 0

Warning

Tax rates and amounts should not be present for purchases from composition dealers.

ctin

For registered counter-party, gstin/uin of the counter-party should be present and it should be different from GSTIN of taxpayer

If inv_typ= B2B/SEWP/SEWOP/DE then ctin ≠ blank and ctin ≠ gstin

Error

GSTIN/uin is required for registered counter-party in case of B2B, SEZ and Deemed Export transactions.

For import of services or for unregistered counter-party, gstin/uin of the counter-party should not be present

If inv_typ= IMS/RCM/B2BUR then ctin= blank

Error

In case of import of services or if counter-party is unregistered, GSTIN/uin should not be present.

ctin

For import of goods from SEZ, gstin/uin of the counter-party should be present

If inv_typ= IMG and rtpy = SEZ then ctin ≠ blank and ctin ≠ gstin

Error

GSTIN/uin is required for import of goods from SEZ

For import of goods from other than SEZ, gstin/uin of the counter-party should be present

If inv_typ= IMG and rtpy ≠ SEZ then ctin = blank

Error

In case of import of goods from other than SEZ, GSTIN/UIN should not be present

rsn

For Credit note, debit note and refund voucher, reason for issuance of note/voucher is required

If dty = C/D/R, rsn ≠ blank

Warning

Reason for issuance of note/voucher is required in case of a credit note, debit note or refund voucher.

p_gst

Information is required whether credit note, debit note or refund voucher is related to pre-GST regime.

If dty = C/D/R, p_gst ≠ blank

Warning

Whether credit note, debit note or refund voucher is related to pre-GST regime is required

ont_num

If document status is revised, then original note/voucher number should be present

If dty= C/D/R and dst=R then ont_num ≠ blank

Warning

Original note/voucher number is required in case of a revised note/voucher.

If document status is original, then original note/voucher number should not be present

If dty= C/D/R and dst=O or blank then ont_num = blank

Warning

Original note/voucher number is required only in case of a revised note/voucher.

ont_dt

If document status is revised, then original note/voucher date should be present

If dty = C/D/R and dst=R then ont_dt ≠ blank

Warning

Original note/voucher date is required in case of a revised note/voucher.

If document status is original, then original note/voucher date should not be present

If dty = C/D/R and dst=O or blank then ont_dt = blank

Warning

Original note/voucher date is required only in case of a revised note/voucher.

oinum

If document status is revised, then original invoice number should be present

If If inv_typ = B2B/SEWP/SEWOP/IMS/RCM/B2BUR/DE and dst=R then oinum ≠ blank

Warning

Original invoice number is required in case of a revised invoice.

If document status is original, then original invoice number should not be present

If dst=O or blank then oinum = blank

Warning

Original invoice number is required only in case of a revised invoice.

oidt

If document status is revised, then original invoice date should be present

If If inv_typ = B2B/SEWP/SEWOP/IMS/RCM/B2BUR/DE and dst=R then oidt ≠ blank

Warning

Original invoice date is required in case of a revised invoice.

If document status is original, then original invoice number should not be present

If dst=O or blank then oidt = blank

Warning

Original invoice date is required only in case of a revised invoice

hsn_sc

HSN code should be minimum of 4 digit but should not exceed 8 digits if gross turnover in previous financial year is greater than Rs 5 crore

If gt>50000000 in fp, hsn_sc ≠ blank and hsn_sc>= 4 digits but hsn_sc <=8 digits

Warning

HSN should be minimum length 4 digits and maximum length 8 digits if gross turnover in previous financial period is greater than Rs 5 crore.

HSN code should be minimum of 2 digit but should not exceed 8 digits if gross turnover in previous financial year is equal to or greater than Rs 1.5 crore and less than 5 crore

If gt>15000000 and gt <=50000000 in fp, hsn_sc ≠ blank and hsn_sc>= 2 digits but hsn_sc <=8 digits

Warning

HSN should be minimum length 2 digits and maximum length 8 digits if gross turnover in previous financial year is equal to or greater than Rs 1.5 crore and less than 5 crore.

HSN code is not mandatory but should not exceed 8 digits if gross turnover in previous financial year is less than Rs 1.5 crore

If gt<=15000000 in fp, hsn_sc >=0 digits but hsn_sc <=8 digits hsn_sc can be bank

Warning

HSN code is not mandatory but should not exceed 8 digits if gross turnover in previous financial year is less than Rs 1.5 crore.

desc

In case if HSN is not provided, description is mandatory

If hsn_sc = blank, then desc ≠ blank

Warning

In case if HSN is not provided, description is mandatory.

ugc

If type = G, then unit quantity code (UQC) is mandatory

If type = G, then ugc ≠ blank

Warning

In case of supply of goods, unit quantity code of the goods sold is mandatory.

qty

If type = G, then total Quantity is mandatory

If type = G, then qty ≠ blank

Warning

In case of supply of goods, quantity of the goods sold is mandatory.

irt

IGST rate should be filled when supply type is inter-state and tax applicability is T and type of registered dealer is not composite dealer

If sply_ty = Inter, txp = T or blank and inv_typ = B2B/B2BUR/SEWP/DE/IMG/IMS and rtpy ≠ CD, then irt >=0

Error

IGST rate should be filled for taxable inter-state supply.

IGST rate should not be filled when supply type is intra-state

If sply_ty = Intra then irt = blank or 0

Error

IGST rate should not be filled for intra-state supply.

IGST rate should be zero when invoice type is SEZ imports without payment

If inv_typ = SEWOP then irt = 0

Error

IGST rate should be zero when invoice type is SEZ imports without payment

iamt

IGST amount should be filled when supply type is inter-state and tax applicability is T and type of registered dealer is not composite dealer

If sply_ty = Inter, txp = T or blank and inv_typ = B2B/B2BUR/SEWP/DE/IMG/IMS and rtpy ≠ CD, then iamt >= 0

Error

IGST amount should be filled for taxable inter-state supply.

IGST amount should not be filled when supply type is intra-state

If sply_ty = Intra then iamt = blank or 0

Error

IGST amount should not be filled for intra-state supply.

IGST amount should be zero when invoice type is SEZ imports without payment

If inv_typ = SEWOP then iamt = 0

Error

IGST amount should be zero when invoice type is SEZ imports without payment.

crt

CGST rate should be filled when supply type is intra-state and tax applicability is T and type of registered dealer is not composite dealer

If sply_ty = Intra, txp = T or blank and rtpy ≠ CD, then crt >= 0

Error

CGST rate should be filled for taxable intra-state supply.

CGST rate should not be filled when supply type is inter-state

If sply_ty = Inter, then crt = blank or 0

Error

CGST rate should not be filled for inter-state supply.

camt

CGST amount should be filled when supply type is intra-state and tax applicability is T and type of registered dealer is not composite dealer

If sply_ty = Intra, txp = T or blank and rtpy ≠ CD, then camt >= 0

Error

CGST amount should be filled for taxable intra-state supply.

CGST amount should not be filled when supply type is inter-state

If sply_ty = Inter, then camt = blank or 0

Error

CGST amount should not be filled for inter-state supply.

srt

SGST rate should be filled when supply type is intra-state and tax applicability is T and type of registered dealer is not composite dealer

If sply_ty = Intra, txp = T or blank and rtpy ≠ CD, then srt >= 0

Error

SGST rate should be filled for taxable intra-state supply.

SGST rate should not be filled when supply type is inter-state

If sply_ty = Inter, then srt = blank or 0

Error

SGST rate should not be filled for inter-state supply.

samt

SGST amount should be filled when supply type is intra-state and tax applicability is T and type of registered dealer is not composite dealer

If sply_ty = Intra, txp = T or blank and rtpy ≠ CD, then samt >= 0

Error

SGST amount should be filled for taxable intra-state supply.

SGST amount should not be filled when supply type is inter-state

If sply_ty = Inter, then samt = blank or 0

Error

SGST amount should not be filled for inter-state supply.

elg

In case of import of services, the eligibility should always be either is/no

If invtyp = IMS, then elg = is/no

Error

In case of import of services, the eligibility should always be either is/no

In case of import of goods, the eligibility should always be either ip/cp/no

If invtyp= IMG, then elg = ip/cp/no

Error

In case of import of goods, the eligibility should always be either ip/cp/no

In case where IGST tax amount is blank, then eligibility for ITC should always be None

If sply_ty = Inter and iamt = 0 or blank, then elg = no

Error

Eligibility for ITC should always be None for non-taxable supply transactions.

In case where CGST and SGST tax amount is blank, then eligibility for ITC should always be None

If sply_ty = Intra and camt = 0 or blank and samt = 0 or blank, then elg = no

Warning

Eligibility for ITC should always be None for non-taxable supply transactions.

In case of SEWP and SEWOP invoice types, Eligibility of ITC should always be none

If invtyp = SEWP/SEWOP, then elg = no

Warning

Eligibility should be none and ITC amounts should not be present as SEZ taxpayer cannot claim ITC on purchase made other than by way of import i.e when invoice type is SEWP and SEWOP.

If POS is different than the gstin of taxpayer, then eligibility for ITC should always be None

If invtyp = B2B/DE/IMS/RCM and POS ≠ first two digits of gstin then elg = no

Warning

If POS is different than the gstin of taxpayer, then eligibility for ITC should always be None.

tx_i

If IGST amount is present and eligibility is other than None, then total tax available as ITC IGST should be less than or equal to IGST Amount

If sply_ty = Inter and iamt ≠ blank or 0 and elg ≠ no, then tx_i ≠ blank and tx_i <= iamt

Warning

Total tax available as IGST ITC should be present and should be less than or equal to IGST amount.

If IGST amount is present and eligibility for ITC is none , then total tax available as ITC IGST should be “0”

If sply_ty = Inter and iamt ≠ blank or 0 and elg = no, then tx_i ≠ blank and tx_i = 0

Warning

Total tax available as IGST ITC should be 0 as eligibility is None.

If IGST amount is not present, then total tax available as ITC IGST should be 0″

If sply_ty = Inter and iamt = blank or 0, then tx_i = 0

Warning

Total tax available as IGST ITC should be 0 as IGST tax amount is blank or 0.

IGST ITC amount should not be filled for intra-state supply.

If sply_ty = Intra then tx_i = blank or 0

Warning

IGST ITC amount should not be filled for intra-state supply.

tx_c

If CGST amount is present and eligibility is other than None, then total tax available as ITC CGST should be less than or equal to CGST Amount

If sply_ty = Intra and camt ≠ blank or 0 and elg ≠ no, then tx_c ≠ blank and tx_c <= camt

Warning

Total tax available as CGST ITC should be present and should be less than or equal to CGST amount.

If CGST amount is present and eligibility for ITC is none, then total tax available as ITC CGST should be blank or “0”

If sply_ty = Intra and camt ≠ blank or 0 and elg = no, then tx_c ≠ blank and tx_c = 0

Warning

Total tax available as CGST ITC should be blank or 0 as eligibility is None.

If CGST amount is not present, then total tax available as ITC CGST should be blank or “0”

If sply_ty = Intra and camt = blank or 0, then tx_c = 0

Warning

Total tax available as CGST ITC should be 0 as CGST tax amount is blank or 0.

CGST ITC amount s hould not be filled for inter-state supply.

If sply_ty = Intra then tx_c = blank or 0

Warning

CGST ITC amount should not be filled for inter-state supply.

tx_s

If SGST amount is present and eligibility is other than None, then total tax available as ITC SGST should be less than or equal to SGST Amount

If sply_ty = Intra and samt ≠ blank or 0 and elg ≠ no, then tx_s ≠ blank and tx_s <= samt

Warning

Total tax available as SGST ITC should be present and should be less than or equal to SGST amount.

If SGST amount is present and eligibility for ITC is none , then total tax available as ITC SGST should be blank or “0”

If sply_ty = Intra and samt ≠ blank or 0 and elg = no, then tx_s ≠ blank and tx_s = 0

Warning

Total tax available as SGST ITC should be blank or 0 as eligibility is None.

If SGST amount is not present, then total tax available as ITC SGST should be blank or “0”

If sply_ty = Intra and samt = blank or 0, then tx_s = 0

Warning

Total tax available as SGST ITC should be 0 as SGST tax amount is blank or 0.

SGST ITC amount should not be filled for inter-state supply.

If sply_ty = Inter then tx_s = blank or 0

Warning

SGST ITC amount should not be filled for inter-state supply.

tx_cs

If CESS amount is present and eligibility is other than None, then total tax available as ITC CESS should be less than or equal to CESS Amount

If csamt ≠ blank or 0 and elg ≠ no and tx_cs ≠ blank or 0, then tx_cs <= csamt

Warning

Total tax available as CESS ITC should be less than or equal to CESS amount.

If CESS amount is present and eligibility for ITC is none, then total tax available as ITC CESS should be blank or “0”

If csamt ≠ blank or 0 and elg = no, then tx_cs = 0

Warning

Total tax available as CESS ITC should be 0 as eligibility is None.

If CESS amount is not present, then total tax available as ITC CESS should be blank or “0”

If csamt = blank or 0, then tx_cs = blank or 0

Warning

Total tax available as CESS ITC should be blank or 0 as there is no CESS amount.

txp

If tax applicability is Nil, Exempt and Non-GST then tax rates and amounts should not be filled

If txp = L/E/N, then irt, iamt,crt,camt,srt,samt,csrt,csamt = blank or 0

Warning

Tax rates and amounts should not be present for Nil exempt and Non-GST supplies.

If document type is “BS” then tax applicability cannot be T

If dty = BS then txp ≠ T or blank

Error

Bill of supply cannot be raised in case if even a single line item is taxable.

If invoice type is “B2BUR” then tax applicability cannot be T

If invtyp = B2BUR then txp ≠ T or blank

Error

In case of unregistered counter-party for B2BUR invoice type, tax applicability cannot be Taxable

If invoice type is “RCM” then tax applicability always as T

If invtyp = RCM then txp = T

Error

In case of unregistered counter-party for RCM invoice type, tax applicability shall always be Taxable

Structural rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

inum

If document type is ISD Invoice,then ISD Invoice Number is required

If dty = ISD RI, then inum ≠ blank

Error

ISD invoice number is required in case of ISD invoice.

idt

If document type is ISD Invoice, then ISD Invoice date is required

If dty = ISD RI, then idt ≠ blank

Error

ISD invoice date is required in case of ISD invoice.

nt_num

If document type is ISD Credit Note, then ISD Credit Note Number is required

If dty = ISD CN, then nt_num ≠ blank

Error

ISD credit note number is required in case of ISD credit note.

nt_dt

If document type is ISD Credit Note, then ISD Credit Note date is required

If dty = ISD CN, then nt_dt ≠ blank

Error

ISD credit note date is required in case of ISD credit note.

Business rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

GSTIN_ISD

GSTIN of ISD should be present and it should be different from GSTIN of taxpayer

GSTIN_ISD must have data and GSTIN_ISD ≠ gstin

Error

GSTIN of ISD is mandatory and it should be different from GSTIN of taxpayer.

ig_cr

If ISD Credit for CGST and SGST is not present, then ISD credit for IGST has to be present

If cg_cr = blank or 0 and sg_cr = blank or 0 , then ig_cr ≠ blank or 0

Warning

ISD credit for CGST and SGST is not present, so IGST should not be blank.

cg_cr

If ISD Credit for IGST is not present, then ISD credit for CGST has to be present

If ig_cr = blank or 0 , then cg_cr ≠ blank or 0

Warning

ISD credit for IGST is not present, so CGST should not be blank.

sg_cr

If ISD Credit for IGST is not present, then ISD credit for SGST has to be present

If ig_cr = blank or 0 , then sg_cr ≠ blank or 0

Warning

ISD credit for IGST is not present, so SGST should not be blank.

tx_i

If amount of ISD credit received as IGST is present, then amount of eligible ITC IGST should be less than or equal to ISD credit received as IGST

If ig_cr ≠ blank, then tx_i ≠ blank and tx_i <= ig_cr

Error

Amount of eligible IGST ITC should be present and should be less than or equal to ISD credit received as IGST amount.

tx_i

If amount of ISD credit received as IGST is not present, then amount of eligible ITC IGST should be blank.

If ig_cr = blank, then tx_i = blank

Error

Amount of eligible IGST ITC should not be present as there is not ISD credit received as IGST amount.

tx_c

If amount of ISD credit received as CGST is present, then amount of eligible ITC CGST should be less than or equal to ISD credit received as CGST

If cg_cr ≠ blank or 0 , then tx_c <= cg_cr

Error

Amount of eligible CGST ITC should be present and should be less than or equal to ISD credit received as CGST amount.

tx_c

If amount of ISD credit received as CGST is not present, then amount of eligible ITC CGST should be blank.

If cg_cr = blank, then tx_c = blank

Error

Amount of eligible CGST ITC should not be present as there is not ISD credit received as CGST amount.

tx_s

If amount of ISD credit received as SGST is present, then amount of eligible ITC SGST should be less than or equal to ISD credit received as SGST

If sg_cr ≠ blank or 0 , then tx_s <= sg_cr

Error

Amount of eligible SGST ITC should be present and should be less than or equal to ISD credit received as SGST amount.

tx_s

If amount of ISD credit received as SGST is not present, then amount of eligible ITC SGST should be blank.

If sg_cr = blank, then tx_s = blank

Error

Amount of eligible SGST ITC should not be present as there is not ISD credit received as SGST amount.

tx_cs

If amount of ISD credit received as CESS is present, then amount of eligible ITC CESS should be less than or equal to ISD credit received as CESS

If csamt ≠ blank or 0 , then tx_cs <= csamt

Error

Amount of eligible CESS ITC should be present and should be less than or equal to ISD credit received as CESS amount.

tx_cs

If amount of ISD credit received as CESS is not present, then amount of eligible ITC CESS should be blank.

If csamt = blank, then tx_cs = blank

Error

Amount of eligible CESS ITC should not be present as there is not ISD credit received as CESS amount.

Structural rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

ad_amt

Gross Advance Paid/Adjusted Amount should not be less than 0.

ad_amt >=0

Error

Total Amount of Gross Advance Paid/Adjusted should not be negative.

iamt

IGST Tax Amount should not be less than 0.

iamt>=0

Error

IGST Amt should not be negative.

camt

CGST Tax Amount should not be less than 0.

camt>=0

Error

CGST Amt should not be negative.

samt

SGST Tax Amount should not be less than 0.

samt>=0

Error

SGST Amt should not be negative.

csamt

CESS Tax Amount should not be less than 0.

csamt>=0

Error

CESS Amt should not be negative.

doc_dt

Document Date should not be greater than return period.

If dty = PV, doc_dt <= fp

Error

Document Date should not be greater than return period.

doc_dt

Document Date should be on or after the date of registration.

If dty = PV, doc_dt > = Registration date

Error

Document Date should be on or after the date of registration.

doc_dt

Document Date should be on or after 1st July 2017

If dty = PV, doc_dt >= 1st July 2017

Error

Document Date should be on or after 1st July 2017

idt

Invoice Date should not greater than return period

If dty = TP, idt <= fp

Error

Invoice Date should not be greater than return period.

idt

Invoice Date should not be 18 months older

If dty = TP, idt not older than 18 months

Error

Invoice Date should not be 18 months older.

idt

Invoice Date should be on or after the date of registration.

If dty = TP, idt >= Registration date

Error

Invoice Date should be on or after the date of registration.

idt

Invoice Date should be on or after 1st July 2017

If dty = TP, idt >= 1st July 2017

Error

Invoice Date should be on or after 1st July 2017

doc_num

For payment voucher, document number is mandatory

If dty = PV, then doc_num ≠ blank

Error

In case of advance paid, payment voucher number should be present.

doc_dt

For payment voucher, document date is mandatory

If dty = PV, then doc_dt ≠ blank

Error

In case of advance paid, payment voucher date should be present.

inum

For tax paid adjustment, invoice number is mandatory

If dty = TP, then inum ≠ blank

Error

In case of tax paid adjusted against advance payment, invoice number should be present.

idt

For tax paid adjustment, invoice date is mandatory

If dty = TP, then idt ≠ blank

Error

In case of tax paid adjusted against advance payment, invoice date should be present.

Business rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

iamt

Amount of IGST should be taxable value multiplied by rate of IGST

iamt= ad_amt*irt (Rounding off range -1 to +1)

Warning

Amount of IGST should be taxable value multiplied by rate of IGST.

camt

Amount of CGST should be taxable value multiplied by rate of CGST

camt=ad_amt*crt (Rounding off range -1 to +1)

Warning

Amount of CGST should be taxable value multiplied by rate of CGST.

samt

Amount of SGST should be taxable value multiplied by rate of SGST

samt=ad_amt*srt (Rounding off range -1 to +1)

Warning

Amount of SGST should be taxable value multiplied by rate of SGST.

ad_amt

Advance amount should always be greater than 0.

ad_amt > 0

Error

Advance amount should always be greater than 0.

irt

IGST rate should be filled when supply type is inter-state

If sply_ty = Inter then irt > 0

Error

IGST rate should be filled for taxable inter-state supply.

IGST rate should not be filled when supply type is intra-state

If sply_ty =Intra then irt = blank or 0

Error

IGST rate should not be filled for intra-state supply.

iamt

IGST amount should be filled when supply type is inter-state

If sply_ty = Inter then iamt > 0

Error

IGST amount should be filled for taxable inter-state supply.

IGST amount should not be filled when supply type is intra-state

If sply_ty =Intra then iamt = blank or 0

Error

IGST amount should not be filled for intra-state supply.

crt

CGST rate should be filled when supply type is intra-state

If sply_ty =Intra then crt > 0

Error

CGST rate should be filled for taxable intra-state supply.

CGST rate should not be filled when supply type is inter-state

If sply_ty = Inter then crt = blank or 0

Error

CGST rate should not be filled for inter-state supply.

camt

CGST amount should be filled when supply type is intra-state

If sply_ty =Intra then camt > 0

Error

CGST amount should be filled for taxable intra-state supply.

CGST amount should not be filled when supply type is inter-state

If sply_ty = Inter then camt = blank or 0

Error

CGST amount should not be filled for inter-state supply.

srt

SGST rate should be filled when supply type is intra-state

If sply_ty =Intra then srt > 0

Error

SGST rate should be filled for taxable intra-state supply.

SGST rate should not be filled when supply type is inter-state

If sply_ty = Inter then srt = blank or 0

Error

SGST rate should not be filled for inter-state supply.

samt

SGST amount should be filled when supply type is intra-state

If sply_ty =Intra then samt > 0

Error

SGST amount should be filled for taxable intra-state supply.

SGST amount should not be filled when supply type is inter-state

If sply_ty = Inter then samt = blank or 0

Error

SGST amount should not be filled for inter-state supply.

Structural rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

ad_amt

Gross Advance Paid/Adjusted Amount should not be less than 0.

ad_amt >=0

Error

Total Amount of Gross Advance Paid/Adjusted should not be negative.

iamt

IGST Tax Amount should not be less than 0.

iamt>=0

Error

IGST Amt should not be negative.

camt

CGST Tax Amount should not be less than 0.

camt>=0

Error

CGST Amt should not be negative.

samt

SGST Tax Amount should not be less than 0.

samt>=0

Error

SGST Amt should not be negative.

csamt

CESS Tax Amount should not be less than 0.

csamt>=0

Error

CESS Amt should not be negative.

Business rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

iamt

Amount of IGST should be taxable value multiplied by rate of IGST

iamt= ad_amt*irt (Rounding off range -1 to +1)

Warning

Amount of IGST should be taxable value multiplied by rate of IGST.

camt

Amount of CGST should be taxable value multiplied by rate of CGST

camt=ad_amt*crt (Rounding off range -1 to +1)

Warning

Amount of CGST should be taxable value multiplied by rate of CGST.

samt

Amount of SGST should be taxable value multiplied by rate of SGST

samt=ad_amt*srt (Rounding off range -1 to +1)

Warning

Amount of SGST should be taxable value multiplied by rate of SGST.

ad_amt

Advance amount should always be greater than 0.

ad_amt > 0

Error

Advance amount should always be greater than 0.

irt

IGST rate should be filled when supply type is inter-state

If sply_ty = inter then irt > 0

Error

IGST rate should be filled for taxable inter-state supply.

IGST rate should not be filled when supply type is intra-state

If sply_ty = intra then irt = blank or 0

Error

IGST rate should not be filled for intra-state supply.

iamt

IGST amount should be filled when supply type is inter-state

If sply_ty = inter then iamt > 0

Error

IGST amount should be filled for taxable inter-state supply.

IGST amount should not be filled when supply type is intra-state

If sply_ty = intra then iamt = blank or 0

Error

IGST amount should not be filled for intra-state supply.

crt

CGST rate should be filled when supply type is intra-state

If sply_ty =Intra then crt > 0

Error

CGST rate should be filled for taxable intra-state supply.

CGST rate should not be filled when supply type is inter-state

If sply_ty = inter then crt = blank or 0

Error

CGST rate should not be filled for inter-state supply.

camt

CGST amount should be filled when supply type is intra-state

If sply_ty =Intra then camt > 0

Error

CGST amount should be filled for taxable intra-state supply.

CGST amount should not be filled when supply type is inter-state

If sply_ty = inter then camt = blank or 0

Error

CGST amount should not be filled for inter-state supply.

srt

SGST rate should be filled when supply type is intra-state

If sply_ty =Intra then srt > 0

Error

SGST rate should be filled for taxable intra-state supply.

SGST rate should not be filled when supply type is inter-state

If sply_ty = inter then srt = blank or 0

Error

SGST rate should not be filled for inter-state supply.

samt

SGST amount should be filled when supply type is intra-state

If sply_ty =Intra then samt > 0

Error

SGST amount should be filled for taxable intra-state supply.

SGST amount should not be filled when supply type is inter-state

If sply_ty = inter then samt = blank or 0

Error

SGST amount should not be filled for inter-state supply.

Structural rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

rtpy

Type of registered counter-party is mandatory in case if counter-party is registered.

If ctpy = R, then rtpy ≠ blank

Error

Type of registered counter-party is mandatory in case if counter-party is registered.

Type of registered counter-party shall always be Regular dealer or blank in case of unregistered counter-party

If ctpy = U, then rtpy = RD or blank

Error

Type of registered counter-party shall always be Regular dealer or blank in case of unregistered counter-party.

txp

If type of registered counter-party is CD, then tax applicability will always be E.

If rtpy = CD, then txp = E

Error

In case of composite dealer, tax applicability will always be E.

Structural rules are as follows:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

iamt

IGST ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

If rev_code = rule2_2, rule7_1_m, rule8_1_h, rule7_2_a, rule7_2_b, revitc, then iamt >=0 or blank

Error

IGST ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

camt

CGST ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

If rev_code = rule2_2, rule7_1_m, rule8_1_h, rule7_2_a, rule7_2_b, revitc, then camt >=0 or blank

Error

CGST ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

samt

SGST ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

If rev_code = rule2_2, rule7_1_m, rule8_1_h, rule7_2_a, rule7_2_b, revitc, then samt >=0 or blank

Error

SGST ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

csamt

Cess ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

If rev_code = rule2_2, rule7_1_m, rule8_1_h, rule7_2_a, rule7_2_b, revitc, then csamt >=0 or blank

Error

Cess ITC reversal amount cannot be negative for ITC reversal codes other than “Other”

Business rules are as follow:

Parameter name

Rule Description

Rule description using JSON name

Nature of rule

Rule Fail Message

hsn_sc

HSN code should be minimum of 4 digit but should not exceed 8 digits if gross turnover in previous financial year is greater than Rs 5 crore

If gt>50000000 in fp, hsn_sc ≠ blank and hsn_sc>= 4 digits but hsn_sc <=8 digits

Warning

HSN should be minimum length 4 digits and maximum length 8 digits if gross turnover in previous financial period is greater than Rs 5 crore.

HSN code should be minimum of 2 digit but should not exceed 8 digits if gross turnover in previous financial year is equal to or greater than Rs 1.5 crore and less than 5 crore

If gt>15000000 and gt <=50000000 in fp, hsn_sc ≠ blank and hsn_sc>= 2 digits but hsn_sc <=8 digits

Warning

HSN should be minimum length 2 digits and maximum length 8 digits if gross turnover in previous financial year is equal to or greater than Rs 1.5 crore and less than 5 crore.

HSN code is not mandatory but should not exceed 8 digits if gross turnover in previous financial year is less than Rs 1.5 crore

If gt<=15000000 in fp, hsn_sc >=0 digits but hsn_sc <=8 digits hsn_sc can be bank

Warning

HSN code is not mandatory but should not exceed 8 digits if gross turnover in previous financial year is less than Rs 1.5 crore.

desc

In case if HSN is not provided, description is mandatory

If hsn_sc = blank, then desc ≠ blank

Error

In case if HSN is not provided, description is mandatory.

uqc

If type = G, then unit quantity code (UQC) is mandatory

If type = G, then uqc ≠ blank

Error

In case of supply of goods, unit quantity code of the goods sold is mandatory.

qty

If type = G, then total Quantity is mandatory

If type = G, then qty ≠ blank

Error

In case of supply of goods, quantity of the goods sold is mandatory.