An electronic invoice includes the following details:
- The name, address, contact information and GSTIN
numbers of the organization (seller) and a customer (buyer)
- The invoice number, the date, and the document
type
- Details of goods and services for each item
sold:
- Serial number of the item
- Indication whether it is a service supply
- SAC \ HSN code
- Quantity, unit of measure and unit price
- GST rate
- Applied charges or discounts
- Totals for invoice line
- The document total details containing
itemization of invoice totals
To use electronic invoices in your organization, you must
complete the following tasks as prerequisite:
Note: You will need your GSTIN, Username,
Password, Client ID and the Client secret.
You can open the Feature management workspace by
selecting the appropriate tile on the dashboard or by going to System
administration > Workspaces > Feature management. Among other
features find (India) Electronic invoice under GST and use button Enable
to activate the feature. Read more about feature management and available
options in Feature
management overview article.
Complete the below procedures to set up the system to use
electronic invoicing for India.
To prepare Finance to interoperate with the IRP system, you
must import the following ER configurations. Refer to Download
Electronic reporting configurations from Lifecycle Services article for
details.
Note: While importing from Global Repo or LCS, you need to import only format configurations. Related model and model mapping configurations will be auto-imported.
Number
|
Configuration
name
|
Configuration
version
|
Configuration
type
|
1
|
Invoice model
|
223 or higher
|
Model
|
2
|
Invoice model
mapping
|
223.156 or
higher
|
Model mapping
|
3
|
Sales invoice
(IN)
|
223.15 or
higher
|
Format
|
4
|
Project
invoice (IN)
|
223.12 or
higher
|
Format
|
5
|
Invoice validation
model mapping
|
223.3 or
higher
|
Model mapping
|
6
|
Invoice
validation format (IN)
|
223.3 or
higher
|
Format
|
7
|
Electronic
Messages framework model
|
31 or higher
|
Model
|
8
|
eInvoice
model mapping
|
31.8 or
higher
|
Model mapping
|
9
|
eInvoice
format (IN)
|
31.3 or
higher
|
Format
|
10
|
eInvoice
authentication import format (IN)
|
31.3 or
higher
|
Format
|
11
|
eInvoice data
import format (IN)
|
31.8 or
higher
|
Format
|
Important
Be sure to import the most recent versions of these
configurations. The version description usually includes the number of the
Microsoft Knowledge Base (KB) article that explains the changes that were
introduced in the configuration version.
Note
After all the ER configurations from the preceding table are
imported, set the Default for model mapping option to Yes for the eInvoice
model mapping configuration.
Electronic message functionality is provided to maintain the
different processes that are used in electronic reporting and transmission of different
document types. For more information about electronic messages, see Electronic
messaging article.
The most important step in setting up Electronic messaging
functionality for IRP integration is to import the provided Indian IRP
integration setup.zip data package. Once successfully imported setup data,
almost all required setup will be auto created. There only remaining required
setup will be selecting parameters for executable classes and setting up number
sequences for Electronic messaging. All those tasks are described bellow
Import a package of data entities that
includes a predefined EM setup
The process of setting up the electronic message
functionality to interoperate with the IRP system has multiple steps. Because
the names of some predefined entities are used in the ER configurations, it's important
that you use a set of predefined values that are delivered in a package of data
entities for the related tables, and that you import the ER configurations
before you import the data entities.
1.
In Microsoft
Dynamics Lifecycle Service (LCS), go to the Shared asset library,
and select the Data package asset type.
2.
In the list of data package files, find and download
Indian IRP integration setup.zip.
3.
After the file is downloaded, open Finance, and
select the company that you will interoperate with the IRP system from.
4.
Go to Workspaces > Data management.
5.
In the Data management workspace, go to Framework
parameters > Entity settings, and select Refresh entity list.
Wait for confirmation that the refresh has been completed. For more information
about how to refresh the entity list, see Entity
list refresh.
6.
Validate that the source data and target data
are correctly mapped. For more information, see Validate
that the source data and target data are mapped correctly.
7.
Before the data entities are used for the first
time to import the data from the package, sync the mapping of the source data
and target data. In the list for the package, select a data entity, and then,
on the Action Pane, select Modify target mapping.
8.
Above the grid for the package, select Generate
mapping to create a mapping from scratch, and then save the mapping.
9.
Repeat steps 7 and 8 for every data entity in
the package before you start the import.
For more information about data management, see Data
management overview.
You must now import data from the Indian IRP integration
setup.zip file into the selected company. In the Data management
workspace, select Import, specify a Group name, select Add
file, and then, in the drop-down dialog box, set the Source data format
field to Package.
10.
Select Upload and add, select the Indian
IRP integration setup.zip file on your computer, and upload it.
11.
After the data entities are uploaded, on the
Action Pane, select Import.
You will receive a notification in Action center, or
you can manually refresh the page to view the progress of the data import. When
the import is completed, the Execution summary page shows the results.
After data entities are imported, you will find two types of
electronic message processing: OnlineInvoicing (Indian Online Invoicing) and CancelInvoice
(Indian Online Invoicing). This processing contains almost all the setup that
is required in your legal entity.
Processing
|
Name
|
Description
|
OnlineInvoicing
|
Indian Online
Invoicing
|
This
processing supports interoperation with the IRP system to submit information
about sales, free text and project customer invoices. It parses the response
from IRP to obtain and save Invoice Registration Number (IRN) and signed QR
code.
|
CancelInvoice
|
Indian Online
Invoicing
|
This
processing supports interoperation with the IRP system to cancel previously
registered customer invoices.
|
To review the imported processing, go to Tax > Setup
> Electronic messages > Electronic message processing.
The electronic message processing from the previous table
works with the following electronic message item types.
Electronic
messages item type
|
Description
|
Processing
|
SalesIvoice
|
Customer
invoice
|
OnlineInvoicing
|
ProjInvoice
|
Project
invoice
|
OnlineInvoicing
|
To review the imported electronic message item types, go to Tax
> Setup > Electronic messages > Message item types.
1.
Go to Tax > Setup > Parameters >
Electronic messages > Web service settings.
Enter the following information to define the
internet address for web services.
Web
service name
|
Description
|
Testing
internet address
|
Authentication
|
This Authentication
web service is provided by NIC. It is used to authenticate the sender on the
IRP system side.
|
https://einv-apisandbox.nic.in/eivital/v1.03/auth
|
Generate IRN
|
This Generate
IRN web service is provided by NIC. It is used to submit invoice to register
on the IRP system side, and it sends back response that contains information about
invoice processing along with unique invoice identifier (IRN) and QR code.
|
https://einv-apisandbox.nic.in/eicore/v1.03/Invoice
|
Cancel IRN
|
This Cancel
IRN web service is provided by NIC. It is used to revoke \ cancel an invoice
previously successfully registered on the IRP system side, and it sends back
response that contains information about cancellation processing.
|
https://einv-apisandbox.nic.in/eicore/v1.03/Invoice/Cancel
|
Note: Internet addresses are
subject to change by National Informatics Centre (NIC). Therefore, we recommend
that you check for actual internet addresses on the official website of the e-Invoice System or other
appropriate sources. The official documentation also has information about the available
production internet addresses that you should set up.
2.
On the Request parameters, specify the same set
of values for all the above web services:
Parameter
|
Value
|
Successful response code
|
200
|
Request method
|
POST
|
Content type
|
Application/json
|
Request headers format mapping
|
eInvoice format (IN)
|
[Asset 4579769]
Set up additional fields
EM items have additional fields that are included in the Indian
Online Invoicing type of electronic message processing (OnlineInvoicing) that is
used to interoperate with the IRP system and imported into the system by using
a package of data entities. Additional fields are associated with EM items and
are required for their processing. The system automatically sets values for
additional fields when actions are run. IRP integration uses only one
additional field. Open Tax > Setup > Electronic messages >
Additional fields to open Additional fields page and create new one, if not
imported from the data package.
Field name
|
Description
|
AppKey
|
Unique ID, identifying
unique user session.
|
Three executable classes are included in the electronic messages
types (OnlinceInvoicing and CancelInvoice) that are used to interoperate with
IRP system and are imported into the system by using a package of data
entities.
Executable
class name
|
Description
|
Generate EM
for SalesInvoice
|
This class
generates Electronic Messages for EM items of customer invoice (sales order
and free text invoice) type
|
Generate EM
for ProjInvoice
|
This class generates
Electronic Messages for EM items of project invoice type
|
Additional
fields evaluation
|
For filled-in
EM items (in Created status), this class evaluates the value for the AppKey
additional field.
|
- Open Tax > Setup > Electronic messages
> Executable class setting.
- Use New to create new Executable class if
it does not exist and specify the following values:
- In Executable class enter Additional
fields evaluation
- In Description enter Evaluate
additional fields for message items
- In Executable class name select EMAdditionalFieldsEvaluationController_IN
- In the Action Pane, select Parameters and
then, in the dialog box that appears, set the AppKey parameter to AppKey
[Asset 4579770]
- Use New to create new Executable class if
it does not exist and specify the following values:
- In Executable class enter Generate EM
for SalesInvoice
- In Description enter Generates EM for
SalesInvoice
- In Executable class name select EMGenerateMessageController_IN
- In the Action Pane, select Parameters and
then, in the dialog box that appears, set the following values for the parameters
of the executable class.
- Format mapping to Sales Invoice (IN)
- Message status in case of success to Generated
- Message item status in case of technical
error to Created
[Asset 4579771]
- Use New to create new Executable class if
it does not exist and specify the following values:
- In Executable class enter Generate EM
for ProjInvoice
- In Description enter Generates EM for ProjInvoice
- In Executable class name select EMGenerateMessageController_IN
- In the Action Pane, select Parameters and
then, in the dialog box that appears, set the following values for the
parameters of the executable class.
- Format mapping to Project invoice (IN)
- Message status in case of success to Generated
- Message item status in case of technical
error to Created
To work with the Electronic messages functionality, you must
define related number sequences.
- Go to Tax > Setup > Parameters >
General ledger parameters.
- On the Number sequences tab, set up two number
sequences:
- Go to Tax > Setup > Electronic messages
> Electronic message processing.
- Select either OnlineInvoicing or CancelInvoice
processing.
- On the Batch FastTab, select Create
batch, and then define the required parameters.
Different groups of users might require access to OnlineInvoicing
and CancelInvoice processing. You can limit access to the processing based on
security groups that are defined in the system.
To limit access to OnlineInvoicing and CancelInvoice
processing, follow these steps.
- Go to Tax > Setup > Electronic messages
> Electronic message processing.
- Select OnlineInvoicing or CancelInvoice
processing, and then add the security groups that must work with that
processing. If no security group is defined for the processing, only a system
admin can see the processing on the Electronic messages page.
To interoperate with the IRP system, you must use a security
certificate that is provided by the operator as well as all the other secrets obtained
from IRP during GSTIN registration process. There are two options for storing
this sensitive data:
- Azure Key Vault storage
- Local storage
It is highly recommended that you use Azure Key Vault
storage. For more information about how to set up Key Vault, see Setting
up Azure Key Vault Client and Maintaining
Azure Key Vault storage articles.
Note: If you decide to follow recommended setup and use
Key Vault, all the secrets used - User name, User password, Client Id, Client
secret and Certificate – must be uploaded to and defined in customer’s Key Vault storage prior
defining Key Vault parameters.
Complete following procedure to enable usage of Key Vault
and advanced certificate storage:
- Go to System administration > Setup >
System parameters.
- Set the Use advanced certificate store
option to No to store sensitive data locally. Set the option to Yes to use
Key Vault storage.
- If you set the Use advanced certificate store
option to Yes, go to System administration > Setup > Key Vault
parameters to create up the Key Vault parameters.
- Create a secret with reference to the custom
Key Vault storage for each of five required secrets: User name, User password, Client
Id, Client secret, Certificate.
Note: The .CER certificate must be stored in Azure Key
Vault as a secret, not a certificate. You need to open your .CER file in any
text editor and copy its entire content to a secret value in Key Vault.
Use Accounts receivable > Setup > Electronic
invoice parameters page to provide information used to submit invoices to
IRP and additional parameters to control validations at invoice posting time.
Following table describes available options.
Parameter
|
Parameter
description
|
Validate
before posting
|
You can
enable additional validation against all mandatory information to be included
in the electronic invoice at the invoice posting time.
|
Validation
format
|
ER format
used for validation against all required mandatory elements in the electronic
invoice. Available only when Validate before posting function is enabled.
|
GSTIN
|
Your Goods
and Services Taxpayer Identification Number, used for IRP integration.
|
User name
|
Reference to Key Vault secret for your user name provided by NIC, used for IRP integration
|
User password
|
Reference to
Key Vault secret for your user password provided by NIC, used for IRP
integration
|
Client Id
|
Reference to
Key Vault secret for your user Client Id provided by NIC, used for IRP
integration
|
Client secret
|
Reference to
Key Vault secret for your Client secret provided by NIC, used for IRP
integration
|
Certificate
|
Reference to
Key Vault secret for your Certificate provided by NIC, used for IRP
integration
|
You need to repeat that for all units of measure that you
use in electronic invoices to match allowed external codes.
- Go to Organization
administration > Setup > Units > Units.
- Select one of
units, eg. "ea" unit and click External codes.
- Enter Code
(eg. EInv_IN) and External code definition
Note: Code will be
used across all units of measure to identify master data set of units of
measure codes accepted by electronic invoicing. - Select your created
electronic invoicing unit external code (eg."Einv_IN") and enter the Value
(eg. "NOS") in the bottom grid of the form
The external codes will be
used as international trade units of measure codes recommended by technical
specification.
Details how to setup HSN codes can be found in Define
HSN codes and Service Accounting Codes article. The below procedures
illustrate only the process of setting up the code and assigning it to the
product.
- Go to Tax > Setup > Sales
tax > India > HSN code.
- Create a record.
- In the Chapter field,
enter a value.
- In the Heading field,
enter a value.
- In the Subheading field,
enter a value.
- In the Country/region
extension field, enter a value.
- In the Statistical
suffix field, enter a value.
- Save the record, and verify that
the HSN code field is updated.
- In the Description field,
enter a value.
- Select Close.
- Go to Product information management >
Products > Released products.
- Select a product, and then select Edit.
- On the General FastTab, if the product
type is Item, select a value in the HSN code field.
Details how to setup GSTIN master data can be found in Create
a GSTIN master article . The below procedure illustrates only simplified
process of setting up registration numbers for use in electronic invoicing.
- Go to Tax
> Setup > Sales Tax > Enterprise tax registration
- Crate a new record
- Select Tax type
= GST and Registration number type = Company
- Enter the Registration
number and save the data
- Crate a new record
- Select Tax type
= GST and Registration number type = Customer
- Enter the Registration
number and save the data
1. Go to Organization
administration > Organizations > Legal entities
2. Expand the Addresses
tab and use button Add to create new or Edit already existing primary address
3. Enter or update ZIP,
Street, City, District, State and County
Note: Please note that States should have State
codes assigned in Organization
administration > Setup > Addresses
> Address setup > State/province tab.
4. Close Edit
addresses form
5. Click Registration
IDs and select your primary address
6. In Manage
addresses page expand Tax information fast tab
7. Use Add to
set Name or description (eg. “GST”) and select previously created
Company registration number in GSTIN/GDI/UID field
8. Close the Manage
addresses
9. Expand Contact
information fast tab in Legal entities form to add Primary phone and
Primary email
Open the customer master from Accounts
receivable > Customers > All
customers to enter or edit customer information required for
electronic invoicing.
1.
Expand the Addresses tab for a selected customer
account and use button Add to create new or Edit already existing primary
address
2.
Enter or update ZIP, Street, City,
District, State and County
Note: Please note that States should have State
codes assigned in Organization
administration > Setup > Addresses
> Address setup > State/province tab
3.
Close Edit addresses form
4.
Click Registration IDs and select your
primary address
5.
In Manage addresses form expand Tax
information fast tab
6.
Use Add to set Name or description
(eg. “GST”) and select previously created customer registration number in GSTIN/GDI/UID
field
7. Close the Manage addressesSet up
contact information
- Use Contacts button to either edit
existing or create a new customer contact
- In Sales demographics tab of Customer
master, select existing Primary contact
- Expand Contact information fast tab in Customers
form to add Primary phone and Primary email
Note: Customer
contact details might not be necessary for some versions of Dynamics 365
Finance.
- Expand Invoice and delivery fast tab in Customers
form
- Check the eInvoice checkbox for a customer
Note: If this option is set to Yes,
the system will be marking invoices posted for this customer account as ready
for electronic invoice processing.
EM functionality runs actions that are included in the
processing (OnlineInvoicing or CancelInvoice), based on the status of messages
and message items.
When an invoice is posted for e-invoice enabled customer
from a sales order, Free text invoice or Project invoice proposal, you can run
EM processing to create JSON electronic invoice and register it at the IRP system.
- Open Tax > Inquiries and Report >
Electronic messages > Electronic messages page.
- Select OnlineInvoicing processing
- Use Run processing function to create
electronic invoices for all relevant posted document and send them to IRP
Note: You can use Run in the
background option to setup a batch processing to send all appropriate newly
posted documents to IRP based on predefined time interval.
[Asset 4579773]
Once operation is completed you can see information about
number of processed documents in the action log:
[Asset 4579774]
Successful completion of invoice registration will update information
in E-invoice status page which can be found in Sales or Project
invoice journals, as well as invoice flag Sent electronically.
Received IRN and QR code can be printed in Tax invoice reports
available in the Sales or Project invoice journals:
[Asset 4579775]
When an invoice is registered at IRP, you can select it for
cancelation and run EM processing to cancel it at the IRP system.
- Open Sales or Project invoice journal
page and identify invoice you want to cancel
- Use E-Invoice option to open e-invoice
status page
[Asset 4579776]
- Use Cancel function to select a previously
successfully registered invoice for cancelation
[Asset 4579777]
Note: Status will be updated to “Cancel” - Open Tax > Inquiries and Report >
Electronic messages > Electronic messages page.
- Select CancelInvoice processing
- Use Run processing function to cancel all
electronic invoices selected for cancellation
Note: You can use Run in the
background option to setup a batch processing to send all appropriate newly
posted documents to IRP based on predefined time interval. Once operation is
completed you can see information about number of processed documents in the
action log pane.
You can quickly review which invoices are registered by
opening Sales or Project invoice journal and checking the status
indicated in Sent electronically column.
[Asset 4579778]
You can find details information about status of electronic
invoice using E-Invoice page available in Sales and Project
invoice journal pages.
[Asset 4579779]
The E-Invoice page, Overview tab
[Asset 4579780]
shows statuses of electronic invoice. Here are the possible
statuses the electronic invoice can get:
Status
|
Description
|
Created
|
Invoice is
posted and ready to be sent to IRP. You can run OnlineInvoicing processing to
start registration process.
|
Sent
|
Invoice has
been successfully registered at IRP
|
Cancel
|
Invoice is
selected for cancelation. You can run CancelInvoice processing to start
cancellation process.
|
Cancelled
|
Invoice has
been successfully cancelled at IRP
|
After successful registration in the same tab, you will see Acknowledgement
number and Acknowledgement date. Go to Details tab to review received
IRN, Signed QR code and Signed invoice. This information
will be cleared when invoice is cancelled.
[Asset 4579781]
Q: Can I unselect an invoice previously successfully registered
and selected for cancellation?
It is not possible to unselect an invoice
once selected for cancellation in the E-Invoice status page. IRP does not allow
the send again an invoice once cancelled so the only option is to create and
post a new one.
[Asset 4579782]
Q: Can I specify additional criteria to be considered when
selecting invoices for electronic processing, either to register or cancel
invoice?
You can review and modify queries
used for invoice selection in Tax > Setup > Electronic messages >
Populate record actions page. Edit query button opens system query
form to setup additional or modify existing query criteria.
[Asset 4579783]
Q: Where can I find detailed information what went wrong for
an invoice which was not successfully registered?
You can review action log in Open Tax
> Inquiries and Report > Electronic messages > Electronic messages
page to see the details. Response code and response description are available
in the action that failed.
[Asset 4579784]
Q: What is not is cope of electronic invoice solution for
India?
- Digital signature by seller
- Generation of IRN
- ISD Invoice
- AP e-Invoice import
Q: What are the supported formats of electronic invoice for
India?
The export of electronic invoice
can be done in JSON format that containing all required fields defined
in technical specification. If there is another format or you need to add extra
information to the electronic invoice message, you may use Electronic
reporting to modify Microsoft provided format or create a new one. Find
more information in Electronic
reporting (ER) overview article.
Q: What are the supported integrations for Indian electronic
invoice registration?
The generated JSON electronic can
be submitted to IRP directly and that is a default setup of Electronic
messages done though importing data package.
As the out of the box supported integration is using Electronic messages, you
can use it to change configurations and validate possibility to integrate with
any GSP of your choice. For more information about electronic messages, see Electronic
messaging article.
Note: Integration through GSP is
not supported by Microsoft natively.