Regular transactions including Export and CDN
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. |
txval | Amount of Taxable value should not be less than 0. | txval>=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 If (Difference Percent) omon = blank, then iamt= txval*irtIf (Difference Percent) omon ≠ blank , then iamt= txval*irt*omonRound off till two decimals (i.e if value 0.2550 an more then 0.26 and if 0.2549 or less then 0.25) |
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 If (Difference Percent) omon = blank, then camt=txval*crt If (Difference Percent) omon ≠ blank , then samt= txval*crt*omonRound off till two decimals (i.e if value 0.2550 an more then 0.26 and if 0.2549 or less then 0.25) |
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 If (Difference Percent) omon = blank, then samt=txval*srt If (Difference Percent) omon ≠ blank , then samt= txval*srt*omonRound off till two decimals (i.e if value 0.2550 an more then 0.26 and if 0.2549 or less then 0.25) |
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 then sply_ty = Inter |
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 then pos ≠ blank |
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 hsn_sc can be bank txp=T,L,E |
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, then crt = srt |
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 iamt= txval*irtIf diff_percent ≠ blank , then iamt= txval*irt*diff_percentRound off till two decimals (i.e if value 0.2550 an more then 0.26 and if 0.2549 or less then 0.25) |
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 camt=txval*crt If diff_percent ≠ blank , then camt= txval*crt*diff_percentRound off till two decimals (i.e if value 0.2550 an more then 0.26 and if 0.2549 or less then 0.25) |
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 samt=txval*srt If diff_percent ≠ blank , then samt= txval*srt*diff_percentRound off till two decimals (i.e if value 0.2550 an more then 0.26 and if 0.2549 or less then 0.25) |
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, then crt = srt |
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: