Vertex O Series (Cloud) Integration
Vertex O Series Cloud (Cloud) is the engine for tax rate calculation.
The service uses Vertex O Series Cloud (referred to hereafter as OSC) to provide tax rates and other information.
Your instance is configured during the implementation project.
OSC drives tax rate calculation with taxability drivers. These drivers can be based on several things like product and usage class. This integrations supports two of these, product and product class. These are mapped to the product_tax_code.code
and product_tax_code.class
fields in your Vertex for Marketplaces requests.
Note
This topic contains links to the OSC documentation in Vertex Community. You need a Vertex Community user to view these topics.
Prerequisites
During your implementation project, you will set up OSC. You need to ensure the following perquisites are met:
- You have completed the deployment of OSC. See Overview of O Series Cloud in Vertex Community.
- Taxability Drivers (and the corresponding Product Tax Codes and Classes) are defined in OSC. See Use Tax Setup in O Series to define your unique taxability in Vertex Community.
Integration Points
How OSC integrates with your transaction processing depends on your implementation and the type of transaction. Some examples of these are:
- User Defined Taxability Drivers: You can use the
product_tax_code.code
andproduct_tax_code.class
fields to trigger a specific taxability driver in OSC. See Use Tax Setup in O Series to define your unique taxability in Vertex Community. - OSC Fields: Commonly used OSC fields like
tax_type
,imposition
, andimposition_type
are returned in responses. - Flexible Output Fields: If you configure Flexible Output Fields in OSC, these are returned by the Vertex for Marketplaces API. See Output Flexible Fields section of this topic. See also About Flexible Fields in Vertex Community.
- Tax Area ID (TAID) fields: OSC records tax area information in TAID fields. You can view these in the Audit report. See Tax Area ID (TAID) Fields.
- US and Canadian Address Cleansing: For US and Canadian transactions, addresses can be corrected during a tax calculation (depending on your OSC settings). See the Overview section of Address Cleansing topic in Vertex Community.
Inbound Requests
You can use specific fields to send certain information to OSC via the Vertex for Marketplaces requests.
User-Defined Taxability Drivers
If you want to trigger user-defined taxability drivers, you need to add the product_tax_code.code
and product_tax_code.class
fields to the transaction line of your Vertex for Marketplaces requests. OSC will determine the tax rate based on the specified code and class.
Warning
Before you can add these codes to your requests, you must create the corresponding drivers in OSC. These drivers need to contain the values you specify in the Vertex for Marketplace's requests.
Fields
You use the following fields to specify the code and class in your Vertex for Marketplace's requests.
Field | Description |
---|---|
product_tax_code.code | This is the code that is defined in OSC and is used to identify the product. |
product_tax_code.class | This is the class that is defined in OSC and is used to classify the product. |
Example
Here is an example of how these fields can be specified in the inbound request:
"transaction": {
"transaction_lines": [
{
"product_class": "P",
"product_tax_code": {
"code": "{oseries_product_code}",
"class": "{oseries_product_class}"
}
Here is an example response:
"product_tax_code": {
"code": "12345",
"class": "ABCD"
},
Process Flow
Consider the following example. You have defined a taxability driver in OSC for a good. You define a Product Tax Code 12341
and a Product Tax Class of ABCD
in OSC to represent this driver. You add these values to your Vertex for Marketplace's requests to trigger this driver when required.
The following diagram shows how OSC can be used to trigger a specific taxability driver:
The steps are:
- The Buyer places the goods in their basket and they click Pay.
- This triggers a Store Transaction request with the following JSON attached (This example is truncated for brevity):
{
"transaction": {
"transaction_lines": [
{
"product_class": "P",
"product_tax_code": {
"code": "12341",
"class": "ABCD"},
"total_amount": 100,
..................
}
],
"buyer_name": "Joe Test",
"currency_code": "EUR"
}
}
'
- Vertex for Marketplaces passes the product tax code and class information to OSC in the following format:
"product": {
"value": "12341",
"productClass": "ABCD"
}
- OSC returns the rate and other information to Vertex for Marketplaces.
- Vertex for Marketplaces returns the tax information in the response from the Store Transaction request in the Taxes Object Fields object. Here is a snippet:
"taxes": [
{
"tax_type": "VAT",
"imposition_type": "VAT",
"tax_jurisdiction_code": "78324",
"tax_amount": 15.0,
"tax_calculation_rule_id": "v301084387",
"tax_base_amount": 100,
"tax_jurisdiction_type": "COUNTRY",
"rate": 15,
"tax_authority_name": "NEW ZEALAND",
"rate_type": "Standard",
"tax_authority_id": "78324",
"tax_name": "GST",
"imposition": "GST",
"amount_fraction_taxable": 1
}
- A Vertex for Marketplaces users views the Audit Report. They can view the OSC fields such as the TAIDs and imposition information.
Outbound Responses
The API responses contain a number of fields sent from and related to OSC.
OSC Tax Fields in API Responses
The following OSC fields are included in responses from the Vertex for Marketplaces API:
OSC Field | Description |
---|---|
tax_type | This value specifies the type of tax as it is defined in OSC. |
imposition | This value specifies the imposition that is defined in OSC. |
imposition_type | This value specifies the imposition type that is defined in OSC. |
tax_calculation_rule_id | An identifier for the OSC Tax Calculation Rule ID that corresponds to the tax that was applied to the transaction. If this value starts with a u , this means that a user-defined rule was applied. This field may not be returned for exemptions. |
These are returned in the Taxes Object Fields, along with other fields.
Output Flexible Fields
If you have configured flexible fields in OSC, then these fields can be included in the responses from the API.
For example, a customer has defined flexible output fields in OSC. These fields are included in the API response. For example:
"tax_engine_additional_parameters": [
{
"param": "FLEX.output.FlexCodeEU",
"value": "Example Cloud EU"
},
{
"param": "FLEX.output.Supplier GL",
"value": "746464"
},
{
"param": "FLEX.output.Tax Code",
"value": "EU Code 1"
}
],
Flexible fields are returned as one of the following types:
Field | Description | Numeric Range |
---|---|---|
flexibleCodeFields | Returns fields with strings. | 1 to 25 |
flexibleDateFields | Returns date fields. | 1 to 5 |
flexibleNumericFields | Returns numeric fields. | 1 to 10 |
For more information about field requirements, see Define an O Series flexible field and Type of O Series flexible fields in the Vertex Community.
Reporting (Tax Area ID (TAID) Fields)
OSC records Tax Area ID (TAID) information in each transaction to facilitate compliant reporting.
Vertex for Marketplaces records this information and passes it to OSC. The fields are only available in the Audit Report. These values are not returned in API responses.
The following table list the TAID fields:
Field | Description |
---|---|
Admin Destination Tax Area ID | This value specifies the type of tax as it is defined in O Series. |
Admin Origin Tax Area ID | This value specifies the imposition that is defined in O Series. |
Destination Tax Area ID | This value specifies the imposition type that is defined in O Series. |
Physical Origin Tax Area ID | An identifier for the OSC Tax Calculation Rule ID that corresponds to the tax that was applied to the transaction. If this value starts with a u, this means that a user-defined rule was applied. This field may not be returned for exemptions. |
Updated 7 months ago