Certain businesses were suffering from inability to parameterize the system to enter a separate set of credentials used for integration with IRP per GSTIN. With this update, apart of single set of credentials that can be entered in Accounts receivable > Setup > eInvoices > Electronic invoices parameters (India) and still being used as a default set, you can use Enterprise tax registration numbers form to enter User name, User password, Client ID, Client Secret and Certificate per GSTIN registration number.
Complete the below procedure to enable multiple GSTINs support:
- Go to General ledger > Setup > Enterprise tax registration numbers
- If you do not have any GSTIN type registration number, crate a new record. Otherwise go to step number 5.
- Select Tax type = GST, Type = GSTIN and Registration number type = Company
- Enter the Registration number and save the data
- Expand the Electronic invoice parameters fast tab
- Enter the parameters used as credentials: User name, User password, Client ID, Client Secret and Certificate.
- Save the data and close the form.
[Asset 4586666]
Note: The new fast tab Electronic invoice parameters in Enterprise tax registration numbers form is available only when all following conditions are met: Tax type = GST, Type = GSTIN, Registration number type = Company and the user has full access rights to the menu item which opens the form Electronic invoices parameters (India).
When you send an invoice for registration at IRP, the system is first trying to obtain parameters from Enterprise tax registration numbers for the seller GSTIN of the electronic invoice. In case these settings are not found, the system will use parameters from Electronic invoices parameters (India). These global parameters will be used only when GSTIN in these settings is the same as the seller GSTIN of the electronic invoice that is being sent. If global settings have different GSTIN, it means that there were no credentials found that can be used for communication with IRP, and the error will be shown:
Note: The Infolog contains GSTIN of the invoice seller to understand which GSTIN is missing setup and \ or requires additional registration at IRP under your PAN.
Electronic invoices in stock transfer orders
The stock transfer orders are now enabled to create electronic invoices. Complete the below procedure to register an electronic invoice for a stock transfer order:
1. Create and post shipment for a stock transfer order in Inventory management > Periodic > Transfer orders. Process details are described in the Stock transfer orders that have tax on the transfer price article.
Note: Electronic invoice will be created and ready for sending for any posted shipment when GST is computed, and the transfer between different GSTINs takes place.
2. Click Transfer order history button or go to Inventory management > Inquiries > Transfer orders > Transfer order history.
3. Use E-invoice button to either create a new entry for electronic invoice or show to review the electronic invoice status.
4. The Electronic invoices (India) form opened by show function contains information about transfer number, data and used voucher. Use the Source journal button to open Transfer order history form.
Note: Credit and debit notes are not applicable to transfer orders as stock transfer orders can be posted only with positive quantities. If correction is needed, a new transfer order with swapped from – to warehouses should be created.
Now apart from previously available inquiry on e-invoice status, there is a new multi-function menu button "E-Invoice" added to Customer invoice journal, Project invoice journal and Transfer order history:
It can be used to:
- Create an electronic invoice. Function is enabled when there is no eInvoice for the current journal entry and if eInvoice can be created. (e.g. Customer has eInvoice flag enabled)
- Show to inquiry on e-Invoice status. This is enabled when eInvoice exists for the current document \ journal entry.
You can follow the below procedure to bulk create electronic invoices for sending:
- Go to any invoice journal details form, for example in Accounts receivable > Inquiries > Invoice journal, Project management and accounting > Common > Projects > All Projects > Invoice journals or Inventory management > Inquiries > Transfer order history
- Apply any required filters to show only invoices which needs to be sent to IRP[Asset 4586675]
- Click E-Invoice > Create to create electronic invoice entries. You can do that for one record or select multiple.
- Review electronic invoices created in Accounts receivable > Periodic > eInvoices > Electronic invoices (India)
- You may select one or multiple electronic invoices and use Send function to register them at IRP
Note: You may use single or multi selection also to Delete electronic invoices which were unwillingly created.
This procedure can be also used for the documents posted prior installation of this application update. In all the cases it is assumed that the posted document \ invoice contains all the required information. Existence of all the mandatory data can be confirmed by reviewing inquiry forms (e.g. invoice journal header \ lines, tax document etc) or printing the GST invoice.
The details for documents in Customer invoice and Project invoice journals as well as Transfer order history journal have an indication that a document was sent electronically. You can open any of referred forms to inquire on that and filter documents which are not sent electronically. The status is updated upon successful registration of the invoice.
Multiple columns with document details, e.g. posting \ invoice date, invoice number and invoice account, now are available in Accounts receivable > Periodic > eInvoices > Electronic invoices (India). They can be used for filtering and sorting. Separate columns are shown for Customer (sales order and free text invoice), Project invoice and Transfer order history journals.
The electronic invoice message according to the specification may contain only positive quantities and amounts regardless of document type: invoice, credit note and debit note. Issued document is considered as a credit or a debit note when there is an association of the original transaction reference in a respective Tax document for the invoice. Issued document is considered as a credit note even without the mentioned association in case its total amount is negative.
Example of Tax document for Free text invoice debit note:
Document is sent as a credit note (CRN) when there is original transaction id \ date reference, and the total invoice amount is negative. It is sent as a debit note (DBN) when there is a reference, and the total invoice amount is equal of higher than 0. Regular invoice (INV) is sent in all other cases.
QR code that is printed in GST invoice report after successful document registration, now represents signed and encrypted information to enable offline verification of invoices using Mobile App.
You might have been receiving inappropriate and misleading errors and warnings while trying to register a document that has been posted with accurate GSTINs, addresses and other information. Now all the data elements in electronic invoice JSON format are mapped differently and in order to ensure all-the-time consistency with printed GST invoice are using the same data sources as the printable form (report data providers).
Configure eInvoice tax components
eInvoice tax components are required to indicate classification
of configurable GST components in the electronic invoice. Complete the following
procedure to set up eInvoice tax components.
- Go to General ledger > Setup > Tax >
India > Tax components
- Select GST in the Tax type field.
- Set up eInvoice tax component for each
used your Tax component
Adding a field to JSON file – updated procedure
Changes
in mapping for the mandatory e-invoice fields required further changes in
classes used for data collection and transformation. Please follow the updated
procedure to add a new field to JSON e-invoice file. It is provided only as
guidance and illustration for a person possessing required skills to customize
the product using X++.
- Identify the contract which corresponds to the
JSON part you are going to modify. Einvoice contract classes have the following
name pattern Einvoice*Contract_IN. For example:
- EInvoiceInformationContract_IN
- EInvoiceValueDetailsContract_IN
- EInvoiceBuyerInformationContract_IN.
- Add a method
to the contract class which will return the needed data. Most of data is
extracted from the temporary tables returned by GST invoice report data
provider. These tables are accessed via the following data contract
methods:
- getReportHeaderTmp
(in all contract classes except EInvoiceLineContract_IN)
- getItemReportLine
(only in EInvoiceLineContract_IN contract class).
- In case these
tables don't contain the necessary data, you will have to add new fields
to these tables and populate them in the GST invoice report data provider:
either in the base class GSTInvoiceDPBase_IN or in some of its
document-specific descendants:
- TaxGSTProjInvoiceDP_IN
- for project invoices
- TaxGSTFTIInvoiceDP_IN
- for free text invoices
- TaxGSTSalesOrderInvoiceDP_IN
- for sales order invoices
- TaxGSTSTOInvoiceDP_IN
- for invent transfer orders.
- Identify the
class responsible for JSON generation. Such classes have the following
name pattern "Einvoice*Details_IN" and implement ITaxEngineJsonSerializable
interface. For example:
- EInvoiceSellerDetails_IN
- EInvoiceBuyerDetails_IN
- Add a variable
to the class declaration corresponding to the parameter you are going to
add to the JSON file.
- Add a parm-
method for this variable.
- Modify
getJsonAttributes method correspondingly by adding the newly created parm-
method to the end of the list returned by the getJsonAttributes method.
Also, in the getJsonAttributes you will have to add the attribute name -
just the same as should be written in JSON file.
- In the
EInvoiceCreateOutputFile_IN class locate the method responsible for
creating a JSON part which you are changing. For example:
- Add a line to
this method in order to add new data to the JSON. For example:
_sellerDetails.parmGSTIN(supplierInformationContract.getGSTIN());
This line will get
the GSTIN number from the contract and will pass it to the "Details"
class. If your parameter cannot be empty, use the following pattern for
additional validation:
if
(!_sellerDetails.parmGSTIN(supplierInformationContract.getGSTIN()))
{
ret
= checkFailed(strFmt("@SYS136411", "@SYP4887805"));
}
Note: Compile the project with your changes and restart all the
AOS(es) before testing these changes.
You might be receiving false positive errors when posting stock transfer order shipments when you enable Validate before posting parameter in Accounts receivable > Setup > eInvoices > Electronic invoices parameters (India). If you face this issue, you must disable the Validate before posting parameter.