We’re excited to announce that the latest information is now available on our new site, the Ginesys One Wiki!. Visit the site for up-to-date resources and insights. We look forward to continuing to support you there!
We’re excited to announce that the latest information is now available on our new site, the Ginesys One Wiki!. Visit the site for up-to-date resources and insights. We look forward to continuing to support you there!
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/Credit note value should not be negative. |
tax val | Amount of Taxable value should not be less than 0. | taxval>=0 | Error | Total Invoice/Credit note taxable value should not be negative. |
iamt | Amount of IGST Amount should not be less than 0. | iamt>=0 | Error | Total Invoice/Credit note IGST value should not be negative. |
camt | Amount of CGST Amount should not be less than 0. | camt>=0 | Error | Total Invoice/Credit note CGST value should not be negative. |
samt | Amount of SGST Amount should not be less than 0. | samt>=0 | Error | Total Invoice/Credit SGST note value should not be negative. |
csamt | Amount of CESS Amount should not be less than 0. | csamt>=0 | Error | Total Invoice/Credit note CESS value 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 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 equal 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. |
dst | if Invoice type is B2CS and Document status in not null then document status should not be R. | if inv_typ=B2CS and dst ≠ blank, then dst ≠ R | Error | For amendment of B2CS Invoice type data is to be provided in Aggregate format. |
ctin | For registered counterparty, gstin/uin of the counterparty should be present and it should be different from GSTIN of taxpayer | If inv_typ= B2B/SEWP/SEWOP/DE/CBW then ctin ≠ blank and ctin ≠ gstin | Error | GSTIN/UIN is required for registered B2B/SEZ counterparty/Deemed exports/Sales from custom bonded warehouse and it should not be same as GSTIN of taxpayer. |
For export transactions or for unregistered counterparty, gstin/uin of the counterparty should not be present | If inv_typ= B2CL/B2CS/EXWP/EXWOP then ctin = blank | Error | In case of export transactions or if counterparty is unregistered, GSTIN/UIN should not be present. | |
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_num | For Regular invoice or Bill of Supply, Note/voucher number should not be present | If dty = RI/BS , nt_num = blank | Error | Note/Voucher number is not required in case of a regular invoice or bill of supply. |
nt_dt | For Credit note, debit note and refund voucher, Note/voucher date is mandatory | If dty = C/D/R , nt_dt ≠ blank | Error | Note/Voucher date is required in case of a credit note, debit note or refund voucher. |
nt_dt | For Regular invoice or Bill of Supply, Note/voucher date should not be present | If dty = RI/BS , nt_dt = blank | Error | Note/Voucher date is not required in case of a regular invoice or bill of supply. |
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 | Invoice date should be on or after 1st July 2017 when the credit/debit note does not pertain to pre-GST. |
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 | For inv_typ = B2B/B2CL/ B2CS/ SEWP/DE/EXWP | 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 | For inv_typ = B2B/B2CL/ B2CS/ SEWP/DE/EXWP | 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 | For inv_typ = B2B/B2CL/ B2CS/ SEWP/DE/EXWP | Warning | Amount of SGST should be taxable value multiplied by rate of SGST. |
idt | Invoice Date should not be 18 months older | If dty = RI/BS, idt not older than 18 months | Warning | Invoice Date should not be 18 months older |
txval | Amount of taxable value should always be more than 0 in case of supplies other than free supplies | if txp = T/L/E/N, txval>0 | Error | Taxable value should always be greater than 0. |
sply_ty | If Invoice type is B2CL/SEWP/SEWOP/DE/EXWP/EXWOP/CBW, then supply type should always be interstate | If inv_typ = B2CL/SEWP/SEWOP/EXWP/EXWOP/CBW | Error | Large Consumer (B2CL), Exports, SEZ exports and sales from custom bonded warehouse (CBW) are considered to be inter-state supplies. |
sply_ty | If Invoice type is B2CL/SEWP/SEWOP/DE/EXWP/EXWOP, then supply type should always be interstate | If taxpayerType = SEZ, then sply_ty = Inter | Error | Supplies by a SEZ taxpayer are considered to be inter-state supplies. |
ctpy | Type of counterparty needs to be Registered in case of B2B DE SEZ and CBW invoices | If inv_typ= B2B/SEWP/SEWOP/DE/CBW, then ctpy = R | Error | Type of counterparty should be registered in case of B2B DE SEZ and CBW invoice. |
Type of counterparty needs to be unregistered in case of B2CL, B2CS and export invoices | If inv_typ= B2CL/B2CS/EXWP/EXWOP, then ctpy = U | Error | Type of counterparty should be unregistered in case of B2CL, B2CS and export invoices. | |
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 | Error | 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 | Error | 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 | Error | 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 type is “RI” and document status is revised, then original invoice number should be present | If dty=RI and dst=R then oinum ≠ blank | Error | 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 type is “RI” and document status is revised, then original invoice date should be present | If dty=RI and dst=R then oidt ≠ blank | Error | 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. | |
val | If Document type is “RI” and invoice type is “B2CL” then invoice value should be more than 2.5 Lakhs | If dty=RI, POS ≠ first two digits gstin and inv_typ=B2CL then val > 2.5 Lakh | Error | In case of interstate supplies to large customers (B2CL), invoice value should be greater than 2.5 Lakhs. |
If invoice type is “B2CS” and supply type is Inter then invoice value should not be more than 2.5 Lakhs | If dty=RI and inv_typ=B2CS and POS ≠ first two digits gstin, then val <= 2.5 Lakh | Error | In case of interstate supplies to small customers (B2CS), invoice value should be less than or equal to 2.5 Lakhs. | |
pos | If Invoice type is B2B/B2CS/B2CL/SEWP/SEWOP/DE/CBW, then POS is mandatory. | If inv_typ = B2B/B2CS/B2CL/SEWP/SEWOP/DE/CBW | Error | POS is mandatory. |
If supply type is inter, then POS should not be same as the first two digits of GSTIN of the taxpayer | If taxpayerType ≠ SEZ, inv_typ = B2B/B2CS/B2CL/SEWP/SEWOP/DE and sply_ty = Inter, then POS ≠ first two digits gstin | Error | In case of inter-state supply, the place of supply should be different from the location of supplier. | |
If supply type is intra, then POS should be same as the first two digits of GSTIN of the taxpayer | If inv_typ = B2B/B2CS/B2CL/DE and sply_ty = Intra, then POS = first two digits gstin | Error | In case of intra-state supply, the place of supply should be same as the location of supplier. | |
od_num | If tax is paid under provisional assessment, then Provisional assessment Order Number is required | If prs = Y, then od_num ≠ blank | Warning | Provisional assessment Order Number is required if tax is paid under provisional assessment. |
od_dt | If tax is paid under provisional assessment, then Provisional assessment Order date is required | If prs = Y, then od_dt ≠ blank | Warning | Provisional assessment Order date is required if tax is paid under provisional assessment. |
sbnum | If Invoice type is EXWP/EXWOP then Shipping Bill or Bill of Export Number is required | If inv_typ = EXWP/EXWOP and ty = G or blank , then sbnum ≠ blank | Warning | Shipping Bill or Bill of Export Number is required in case of export of goods. |
If Shipping Bill Date is not blank then shipping Bill Number is also required. | If inv_typ = EXWP/EXWOP and sbdt ≠ blank then sbnum ≠ blank | Error | Shipping Bill Number is required if shipping Bill Date is present. | |
sbdt | If Invoice type is EXWP/EXWOP then Shipping Bill or Bill of Export Date is required | If inv_typ = EXWP/EXWOP and ty = G or blank , then sbdt ≠ blank | Warning | Shipping Bill or Bill of Export Date is required in case of export of goods. |
If Shipping Bill Number is not blank then shipping Bill Date is also required | If inv_typ = EXWP/EXWOP and sbnum≠ blank then sbdt ≠ blank | Error | Shipping Bill Date is required if shipping Bill Number is present. | |
If Shipping bill number is not blank then shipping bill date is equal and more than invoice date and shipping bill number should be before or on current date | if inv_typ = EXWP/EXWOP and sbdt is ≠ blank then sbdt >= idt and sbdt<= current date | Error | Shipping bill date (sbdt) should be on or after invoice date (idt) and on or before current date. | |
sbpcode | If Invoice type is EXWP/EXWOP then Shipping Bill Port Code is required | If inv_typ = EXWP/EXWOP and ty = G or blank , then sbpcode ≠ blank | Warning | Shipping Bill Port Code is required in case of export of goods. |
If Shipping Bill Number is not blank then port code is also required | If inv_typ = EXWP/EXWOP and sbnum≠ blank then sbpcode ≠ blank | Error | Shipping Bill Date is required if shipping Bill Number is present. | |
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 tax applicablity taxable , nil or exempt | If gt>50000000 in fp, hsn_sc ≠ blank and hsn_sc>= 4 digits but hsn_sc <=8 digits if txp=T,L,E | 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 tax applicablity taxable , nil or exempt | If gt>15000000 and gt <=50000000 in fp, hsn_sc ≠ blank and hsn_sc>= 2 digits but hsn_sc <=8 digits txp=T,L,E | 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 tax applicablity taxable , nil or exempt | If gt<=15000000 in fp, hsn_sc >=0 digits but hsn_sc <=8 digits | 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. |
uqc | If type = G, then unit quantity code (UQC) is mandatory | If type = G, then uqc ≠ 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 | If sply_ty = Inter , txp = T or blank and inv_typ = B2B/B2CS/B2CL 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 exports without payment or Export without payment of duty | If sply_ty = Inter and inv_typ = SEWOP/EXWOP then irt >= 0 | Error | IGST rate should be filled for SEZ exports without payment or Export without payment of duty. | |
IGST rate should be filled when supply type is inter-state and invoice type is DE/SEWP/EXWP/CBW | If sply_ty = Inter and inv_typ = DE/EXWP/SEWP/CBW, then irt ≠ blank and irt >= 0 | Error | IGST rate should be filled for taxable inter-state supply. | |
iamt | IGST amount should be filled when supply type is inter-state and tax applicability is T | If sply_ty = Inter, txp = T or blank and inv_typ = B2B/B2CS/B2CL 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 exports without payment or Export without payment of duty | If inv_typ = SEWOP/EXWOP then iamt = 0 | Error | IGST amount should be zero when invoice type is SEZ exports without payment or Export without payment of duty. | |
IGST amount should be filled when supply type is inter-state and invoice type is DE/SEWP/EXWP/CBW | If sply_ty = Inter and inv_typ = DE/EXWP/SEWP/CBW, then iamt ≠ blank and iamt>= 0 | Error | IGST amount should be filled for taxable inter-state supply. | |
crt | CGST rate should be filled when supply type is intra-state and tax applicability is T | If sply_ty = Intra, txp = T or blank 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. | |
CGST rate should be same as SGST rate | If crt ≠ blank or srt ≠ blank or both crt and srt ≠ blank, | Error | CGST rate should be same as SGST rate | |
camt | CGST amount should be filled when supply type is intra-state and tax applicability is T | If sply_ty = Intra, txp = T or blank 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 | If sply_ty = Intra, txp = T or blank 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 | If sply_ty = Intra, txp = T or blank 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. | |
txp | 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 tax applicability is Nil, Exempt and NonGST 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 | Error | Tax rates and amounts should not be present for Nil exempt and Non-gst supplies. | |
If tax applicability is Free supplies, then taxable value and tax amounts should not be filled | If txp = F, then txval,iamt,camt,samt,csamt = 0 or blank | Error | There should be no taxable value and tax amounts for free supplies |
B2CS Aggregated Data Business Rules
Following are the business rules for B2CS aggregated data:
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 | If diff_percent = blank, then | 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 | If diff_percent = blank, then | 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 | If diff_percent = blank, then | Warning | Amount of SGST should be taxable value multiplied by rate of SGST. |
sply_ty | Supplies for SEZ taxpayers are considered to be inter-state supplies. | If taxpayerType = SEZ, then sply_ty = Inter | Error | Supplies by a SEZ taxpayer are considered to be inter-state supplies. |
omon | If document status is revised then original month is required | If dst = R, then omon ≠ blank | Error | Information related to original month is required in case of revised document. |
pos | If supply type is inter, then POS should not be same as the first two digits of GSTIN of the taxpayer | If taxpayerType ≠ SEZ and sply_ty = Inter, then POS ≠ first two digits gstin | Error | In case of inter-state supply, the place of supply should be different from the location of supplier. |
If supply type is intra, then POS should be same as the first two digits of GSTIN of the taxpayer | If sply_ty = Intra, then POS = first two digits gstin | Error | In case of intra-state supply, the place of supply should be same as the location of supplier. | |
opos | If document status is revised then Original place of supply is required | if dst=R then opos≠ blank | Error | Original place of supply is required in case of revised document status. |
If document status is Origianl then Original place of supply is not required | if dst=O or Blank then opos= blank | Error | Original place of supply is not required in case of original document status. | |
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 ≠ blank | 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. | |
CGST rate should be same as SGST rate | If crt ≠ blank or srt ≠ blank or both crt and srt ≠ blank, | Error | CGST rate should be same as SGST rate | |
camt | CGST amount should be filled when supply type is intra-state | If sply_ty = Intra, then camt ≠ blank | 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 ≠ blank | 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. |
Nil Exempt Non-GST Aggregate Data Rules
Following are business rules for Nil/Exempt/Non-GST aggregated data:
Advance Received and Tax Paid Line Item Data Rules
Structural rules are as follows:
Advance Received and Tax Paid Aggregated Data
Structural rules are as follows:
Business rules are as follows:
HSN Summary
Business rules are as follows:
Document Details
Business rule is as follow: