Enabling Standard Tax Rules
Introduction
EU-based businesses may have to apply different tax rates to invoice line items depending on the given invoice region. Typically, there are four tax situations:
- Germany, tax ID available or not available
- EU country, tax ID not available
- Reverse charge applicable, tax ID available
- Non-EU country, tax ID not available
This article describes how to set up the applicable tax rules and how to determine the invoice region.
Info
The information in this article does not constitute any legally effective tax advice. JustOn cannot and must not provide such services.
Contact your tax consultant to determine the appropriate way for your business.
Solution Overview
Covering the outlined scenario requires the following tax rules:
Tax Situation | Tax Rule | Tax Rate | Invoice Region |
---|---|---|---|
Germany, tax ID available or not available | DE_VAT | 19% | DE |
EU country, tax ID not available | EU_VAT | 19% | EU |
Reverse charge applicable, tax ID available | RC | 0% | RC |
Non-EU country, tax ID not available | NON_EU | 0% | NON-EU |
Since the invoice region determines the applicable tax rule, you also need a formula field to identify the region based on the account's billing (or shipping) country.
Info
Instead of manually setting up the tax rules and formula, you can deploy the standard configuration using the dedicated JustOn Configurator package and adjust it where necessary.
Solution Details
Covering the outlined scenario involves three tasks:
- Creating the required tax rules settings
- Creating the region formula
- Configuring the reverse charge notice display
Creating Standard Tax Rules Settings
To create the tax rules settings:
-
Click to enter Setup, then open Custom Settings.
In Salesforce Lightning, navigate to Custom Code > Custom Settings.
In Salesforce Classic, navigate to Develop > Custom Settings.
-
Click Manage in the row of Tax Rules.
- Click New.
-
Specify the details for each required tax rule as necessary, then click Save.
# Name Business Entity Invoice Region Tax Rate VAT Category Code 1 DE_VAT business entity name DE 19% S 2 EU_VAT business entity name EU 19% S 3 RC business entity name RC 0% AE 4 NON_EU business entity name NON-EU 0% G To comply with the requirements for possible electronic invoicing, JustOn recommends to add the relevant VAT category code to each tax rules setting.
This produces the folowing tax rules settings:
Standard tax rules settings
Using Invoice Region to Control Tax Rules
Assuming you identify the region based on the account's billing country, you create the formula field ON_Region
on the Account object:
- Navigate to the fields list for the Account object.
-
Create the following new field.
API Name Data Type Description ON_Region Formula
(Text)Determines the invoice region. The produced value will be copied to the field Region
on the invoice.
Example: B2B scenario
In B2B scenarios, you can use the following formula to determine the invoice region (given that ONB2__TaxNumber__c
specifies the tax ID).
With respect to taxation rules and depending on your type of business, you may handle Switzerland or the United Kingdom like EU countries, adding "CH","EU"
or "GB","EU"
to the country list in the formula.
Be aware that this formula is an example. You may have to adjust it according to your business use case.
IF(ISPICKVAL(BillingCountryCode,"DE"), "DE",
IF(CASE(TEXT(BillingCountryCode),
"AT","EU",
"BE","EU",
"BG","EU",
"CY","EU",
"CZ","EU",
"DK","EU",
"EE","EU",
"ES","EU",
"FI","EU",
"FR","EU",
"GR","EU",
"HU","EU",
"IE","EU",
"IT","EU",
"HR","EU",
"LT","EU",
"LU","EU",
"LV","EU",
"MT","EU",
"NL","EU",
"PL","EU",
"PT","EU",
"RO","EU",
"SE","EU",
"SI","EU",
"SK","EU",
"SM","EU",
"NON-EU")
= "NON-EU", "NON-EU",
IF(ISBLANK(ONB2__TaxNumber__c), "EU", "RC")
)
)
Based on the billing country as defined for the account, this formula produces either DE
, EU
, RC
or NON-EU
as the value for the region.
Example: B2B scenario, using VAT number validation
If your org has enabled JustOn's VAT number validation, you can use the following formula to determine the invoice region, provided that the VAT validation has produced a result (true
or false
).
With respect to taxation rules and depending on your type of business, you may handle Switzerland or the United Kingdom like EU countries, adding "CH","EU"
or "GB","EU"
to the country list in the formula.
Be aware that this formula is an example. You may have to adjust it according to your business use case.
IF(ISPICKVAL(BillingCountryCode,"DE"), "DE",
IF(CASE(TEXT(BillingCountryCode),
"AT","EU",
"BE","EU",
"BG","EU",
"CY","EU",
"CZ","EU",
"DK","EU",
"EE","EU",
"ES","EU",
"FI","EU",
"FR","EU",
"GR","EU",
"HU","EU",
"IE","EU",
"IT","EU",
"HR","EU",
"LT","EU",
"LU","EU",
"LV","EU",
"MT","EU",
"NL","EU",
"PL","EU",
"PT","EU",
"RO","EU",
"SE","EU",
"SI","EU",
"SK","EU",
"SM","EU",
"NON-EU")
= "NON-EU", "NON-EU",
IF(ONB2__VATIsValid__c = true, "RC", "EU")
)
)
Based on the billing country as defined for the account, this formula produces either DE
, EU
, RC
or NON-EU
as the value for the region.
Example: B2C scenario, electronic goods
The scenario may be more complex. Assume, for example, your org sells electronic goods or services to individuals. In this case, local taxes apply in the EU, as explained in When and where to charge VAT?. Consequently, you need a tax rule for every possible EU billing country, and your region formula must yield the billing country for EU accounts without tax ID.
To support this use case, you can use the following formula to determine the invoice region (given that ONB2__TaxNumber__c
specifies the tax ID).
With respect to taxation rules and depending on your type of business, you may handle Switzerland or the United Kingdom like EU countries, adding "CH","EU"
or "GB","EU"
to the country list in the formula.
Be aware that this formula is an example. You may have to adjust it according to your business use case.
IF(ISPICKVAL(BillingCountryCode,"DE"), "DE",
IF(CASE(TEXT(BillingCountryCode),
"AT","EU",
"BE","EU",
"BG","EU",
"CY","EU",
"CZ","EU",
"DK","EU",
"EE","EU",
"ES","EU",
"FI","EU",
"FR","EU",
"GR","EU",
"HU","EU",
"IE","EU",
"IT","EU",
"HR","EU",
"LT","EU",
"LU","EU",
"LV","EU",
"MT","EU",
"NL","EU",
"PL","EU",
"PT","EU",
"RO","EU",
"SE","EU",
"SI","EU",
"SK","EU",
"SM","EU",
"NON-EU")
= "NON-EU", "NON-EU",
IF(ISBLANK(ONB2__TaxNumber__c), TEXT(BillingCountryCode), "RC")
)
)
Based on the billing country as defined for the account, this formula produces either DE
, NON-EU
, RC
or the individual billing country code as the value for the region.
Info
This functionality requires Salesforce's state and country picklist to be enabled and configured for your org.
Controlling Reverse Charge Notice
When issuing invoices that are subject to reverse charge (following the outlined scenario, for the tax rules setting RC
), suppliers must explicitly state that the reverse charge applies.
To control the display of the reverse charge notice, you create a new field on the Invoice object that sets the intended condition. You can configure this field as a picklist to enable users to select the condition manually, or as a formula field with the return type Text
to have the reverse charge notice selected automatically. According to this field, JustOn Billing & Invoice Management then prints the appropriate text to the invoice PDF below the standard text field Text 3
(for details, see PDF Contents).
To support a usual EU business, the following conditions must be supported (either as picklist values or as the formula result, depending on your field configuration):
Formula Result Picklist Value API Name |
Example Value | Description |
---|---|---|
RC | Reverse Charge Region, VAT number is available | Takes the text from the template field Reverse Charge Text |
EU | Reverse Charge Region, no VAT number | Takes the text from the template field Reverse Charge Text EU |
Non-EU | No Reverse Charge Region | Takes the text from the template field Tax Information Non-EU |
Info
If the field is empty or set to value other than RC
, EU
, Non-EU
, then no reverse charge text is displayed.
- Navigate to the fields list of the Invoice object (
ONB2__Invoice__c
). -
Create the following new field.
API Name Data Type Description ShowReverseChargeText Picklist
Formula (Text)Specifies the condition for selecting the reverse charge notice. According to the values RC
,EU
orNon-EU
, the corresponding text is displayed.
Example formula that produces the reverse charge notice for invoices to be sent depending on the region (see Using Invoice Region to Control Tax Rules):
CASE (ONB2__Region__c,
'RC','RC',
'EU','EU',
'NON-EU','Non-EU',
null
)