Summary of VAT Management in M3
Functional programs CCHKIFV and CCRTVAT
When the company creates a transaction by creating any type of order, a customer invoice or by recording a supplier invoice – that is, whenever there is a customer or supplier involved – and the base amount of the transaction (the amount based on which VAT is to be calculated) does not equal zero, functional program CCHKIFV kicks in. This program has a dual purpose:
- It determines whether to calculate VAT, based on the parameters of the parties involved in the transaction.
- It retrieves the correct VAT code for display on the M3 Business Engine panel.
If CCHKIFV identifies the transaction as subject to VAT and the transaction account is a VAT account, functional program CCRTVAT kicks in to calculate the VAT and create the VAT account entries. If there is no customer or supplier involved – for example, for journal vouchers entered in 'Journal Voucher. Open' (GLS100) and petty cash transactions in 'Petty Cash. Open' (GLS095)– CCRTVAT is called directly without using CCHKIFV.
Logical Flow of CCHKIFV for customer invoices
Step |
Description |
---|---|
Retrieve From/To country. |
Search for the country code from the delivery address in 'Customer. Connect Addresses' (OIS002). For Accounts Receivable and customer orders created in Customer Relationship Management (CRM) CRM and Maintenance, Repair & Overhaul (MRO), search for country in addresses of address type 1 (Delivery address). For service orders, search for country in addresses of address type 2 (Location). If there is no address, retrieve the country from the customer in 'Customer. Open' (CRS610) or 'Customer. Open Local Exceptions' (MFS610). |
Identify whether the customer is required to declare VAT. |
Ensure that alternative 1 is selected in the 'Tax applicable' field for the customer in (CRS610) or (MFS610). |
Retrieve 'your' VAT registration number. |
Search for the customer's VAT registration number in (CRS610) or (MFS610). |
Retrieve base country and 'our' VAT registration number. |
If the sale is within the same division (MUC trigger 0 = 'Goods are distributed between warehouses in the same facility' or MUC trigger 2 = 'Goods are distributed between warehouses in different facilities but within the same division'), retrieve the base country and VAT registration number from the delivering warehouse in 'Warehouse. Open' (MMS005). For goods distributed between facilities in two different divisions, retrieve base country and VAT registration number from the selling division. (This step is applicable to both internal and external sales.) |
Identify whether there is a fiscal representative in the same country as the country of the delivery address. |
Call function program CRTVCSV to check for a fiscal representative in 'Fiscal Representation. Open' (TXS030). If a matching fiscal representative is found, replace the base country with the country code of the fiscal representative – which will be the same as the From/To country. |
Make VAT decision. |
Based on the information retrieved in the steps above, decide whether the business transaction is subject to VAT:
|
Retrieve VAT code. |
In all scenarios above, retrieve the VAT code from the item in 'Item. Connect Warehouse' (MMS002). For charges, depending on type of charge, retrieve the VAT code from 'CO Charge. Open' (OIS030), 'Order Line Charge. Open' (CRS275) or 'Service Charge. Open' (OIS031). |
Check whether the business transaction is a third-party trading. |
Identify whether the sale involves three parties in at least two different EU member states, with direct delivery to the last party in the chain. |
Check whether a VAT exception applies. |
Match the setup of the business transaction against the VAT exceptions defined in 'VAT Exception. Open' (TXS020). If there is a match, replace the default VAT code with the replacement VAT code defined for the VAT exception. |
Check whether VAT must be calculated for the VAT code, even if the VAT decision was negative. |
Check in 'VAT Code. Open' (CRS030) whether the 'VAT override' check box is selected for the VAT code retrieved. |
Calculate VAT. |
Call CCRTVAT and deliver the following VAT values as input to the calculation of VAT and creation of VAT account entries: Calculate VAT (Yes/No); EU VAT (Yes/No); VAT code; 'Your' VAT registration number; 'Our' VAT registration number. |
Logical Flow of CCHKIFV for supplier invoices
Step |
Description |
---|---|
Retrieve From/To country. |
Search for the country code from the final delivery address in 'Supplier. Connect Addresses' (CRS622). If there is no address, retrieve the country from the supplier in 'Supplier. Open' (CRS620) or 'Supplier. Open/Division' (MFS620). |
Identify whether the supplier is required to declare VAT. |
Ensure that alternative 1 or 2 is selected in the 'Tax applicable' field for the supplier in 'Supplier. Define Purchase & Financial' (CRS624) or (MFS620). |
Retrieve 'your' VAT registration number. |
Search for the supplier's VAT registration number in (CRS620). |
Retrieve base country and 'our' VAT registration number. |
The base country is proposed from the division when recording a supplier invoice but the value can be changed to match received supplier invoice. Use the base country sent from the calling program. |
Make VAT decision. |
Based on the information retrieved in the steps above, decide whether the business transaction is subject to VAT:
|
Retrieve VAT code. |
In all scenarios above, retrieve the VAT code from the item in 'Item. Connect Warehouse' (MMS002). For charges, retrieve the VAT code from 'Costing Element. Open' (PPS280). Note that the VAT code on supplier invoices where the 'Tax applicable' field for the supplier in (CRS624) or (MFS620) is set to 2 is retrieved in the following priority order:
|
Check whether the business transaction is a third-party trading. |
Identify whether the purchase involves three parties in at least two different EU member states, with direct delivery to the last party in the chain. |
Check whether a VAT exception applies. |
Match the setup of the business transaction against the VAT exceptions defined in 'VAT Exception. Open' (TXS020). If there is a match, replace the default VAT code with the replacement VAT code defined for the VAT exception. |
Check whether VAT must be calculated for the VAT code, even if the VAT decision was negative. |
Check in 'VAT Code. Open' (CRS030) whether the 'VAT override' check box is selected for the VAT code retrieved. |
Calculate VAT. |
Call CCRTVAT and deliver the following VAT values as input to the calculation of VAT and creation of VAT account entries: Calculate VAT (Yes/No); EU VAT (Yes/No); VAT code; 'Your' VAT registration number; 'Our' VAT registration number. |
VAT in general ledger
'Accounting Rule. Set' (CRS395). The accounting setup, which represents the company's chart of accounts, supports the processing of VAT on every taxable business transaction generated by VAT amounts on customer and supplier invoices are automatically booked to the correct VAT payable (outputs) or VAT receivable (inputs), as controlled by the accounting setups function in M3 Business Engine. For details, see Accounting Rules Setup and Usage and "List of Accounting Rules in M3".
In each business transaction involving goods or services subject to VAT, M3 Business Engine stores a set of VAT values for each accounting line in every voucher with a VAT account, apart from the recorded VAT itself. These values are: VAT code, VAT account type, VAT rate 1, VAT rate 2, calculated VAT amount 1, calculated VAT amount 2, base country, From/To country, VAT date, VAT reported, VAT registration number existed, and VAT registration number. A calculated VAT amount is always stored for the VAT-generating transaction – the VAT base – whenever M3 Business Engine identifies a transaction as subject to VAT. Usually, the two amounts are the same. Comparing the calculated and the recorded VAT amounts per transactions helps identifying any potential errors during the reconciliation for the VAT declaration. For a description of the VAT-related values, which are displayed on 'General Ledger. Display Transactions' (GLS211/G), see Initiate VAT Run and correct VAT transactions online.