Wolters Kluwer CCH® SureTax®

    Show / Hide Table of Contents

    CCH® SureTax® Integration for SAP S/4HANA Cloud Technical Guide

    Updated: Nov 5, 2024

    Introduction

    This guide will cover technical details for CCH SureTax's iFlows used to integrate with SAP's 'External Sales & Use Tax Calculation -- Integration with 3^rd^ Party Tax Solution on SAP S/4HANA Cloud (S4HC)'.

    This integration supports:

    • General Merchandise
    • Certified by SAP ICC
    • Support for SAP S4HC 2011

    This uses SAP Communication Scenario SAP_COM_0177, which uses 6 outbound services from S4HC to pass all needed data to CCH SureTax Artifacts (iFlows) deployed on CI.

    1. CO_TAX_JURI_DETER_SPRX: Determine Tax Jurisdiction Codes
    2. CO_TAX_CALCULATION_SPRX: Calculate Taxes
    3. CO_TAX_UPDATE_SPRX: Update Tax Documents
    4. CO_TAX_FORCE_UPDATE_SPRX: Force Update Tax Documents
    5. CO_TAX_JURI_GET_CHANGE_LIST_SPRX: Gets all changed Tax Jurisdiction Codes
    6. CO_TAX_JURI_REDEFINE_SPRX: Mass Redefine Tax Jurisdiction Codes

    Installation and Configuration

    Requirements:

    • CCH SureTax account for V07 with an active ClientNumber and ValidationKey
    • SAP Cloud Integration (CI formerly CI) instance
      • Used for Deploying SAP integration Flows (iFlows)
    • SAP S4HANA Cloud (S4HC)
    • Supported Countries: USA
      • As stated in SAP Documentation SA_COM_0177 only supports USA Tax calculation.

    SAP S4HC Configuration Requirements

    • DOC_NUMBER is expected to be unique
    • TAX_DATE is expected to be the date of the transaction
    • REP_DATE is expected to be the date of posting of the transaction

    Package needed for Installation:

    • Get the latest SAP CI package for CCH SureTax (CCH SureTax Integration for SAP S/4HANA Cloud).
      • This package contains the following CCH SureTax artifacts (iFlows):
        • CalculateTax
        • DetermineJurisdiction
        • UpdateTax
        • ForceUpdate
        • GetChanged
        • MassRedefine

    In SAP CI: Install Package and Deploy Artifacts

    • Log in to your SAP CI instance and click on 'Design'
    • If you have the CCH SureTax package
      • Select 'Import' from the top right corner
      • Import using the CCH SureTax package (CCH® SureTax® Integration for SAP S/4HANA Cloud)
      • Alternative:
        • You can use SAP CI's Discover section and search (if available) from there
      • You should see it imported in your SAP CI instance -> 'Design':
    • To Deploy in SAP CI, you can go to 'Design' -> select the CCH SureTax package -> Select 'Artifacts' tab -> deploy each of the below artifacts via 'Actions':
      • CalculateTax
      • DetermineJurisdiction
        • All steps for CCH SureAddress in this document are only required if Address Validation is enabled for DetermineJurisdiction iFlow.
        • Address Validation using CCH SureAddress is used only when address validation is enabled, CCH SureAddress connection and user are setup in SAP CI, and the address received in TAX_JURISDICTION_SEND from SAP meets the minimum address requirements.
          • CCH SureAddress requires the following information at minimum:
            • PrimaryAddressLine
            • State
            • City or Zipcode
      • UpdateTax
      • ForceUpdate
      • MassRedifine
      • GetChanged
    • Verify deployment via SAP CI -> 'Monitor' -> Manage Integration Content -> 'All'

    In SAP CI: Configure your SAP CI instance for CCH SureTax Artifacts (iFlows)

    • Add 'suretaxuser' to SAP CI:
      • Log into SAP CI and select 'Monitor' -> open 'Security Material'
      • Click on Add -> User Credentials
        • Name = suretaxuser
          • Use this exact name because it is used by the iFlows
        • User = Your CCH SureTax ClientNumber
        • Password = Your CCH SureTax ValidationKey

    Note: Client Number Validation key combination would be different for prod and cert

    • You can add multiple combination of Client number and Validation Key as Security Materials, as per your needs for Testing environment and Prod Environments.

    • After adding, you should see similar to below:

    • Add 'sureaddressuser' to SAP CI:

      • Log into SAP CI and select 'Monitor' -> open 'Security Material'
      • Click on Add -> User Credentials
        • Name = sureaddressuser
          • Use this exact name because it is used by the iFlows
        • User = Your CCH SureAddress ClientNumber
        • Password = Your CCH SureAddress ValidationKey Note: Client Number Validation key combination would be different for prod and cert
    • You can add multiple combination of Client number and Validation Key as Security Materials, as per your needs for Testing environment and Prod Environments

    • This two user credentials fields are configurable and can be configured at the artifact level

      • Enter the value of credentials name as either of the above-mentioned Security Materials.
      • Eg. 🡺 Suretaxuser_prod, suretaxuser_cert, sureaddressuser_prod, sureaddressuser_cert
    • Add CCH SureTax's SSL certificate to the keystore for connections to work

      • Log into SAP CI and select 'Monitor' -> open 'Manage Keystore'
      • Click on Add -> Certificate
        • Alias = you can use a descriptive name here (e.g. suretaxprod)
        • File = upload SSL certificate for CCH SureTax
          • You can easily download the SSL certificate by using your internet browser.
            • E.g. for Cert
              • With your browser go to https://testapi.taxrating.net (hostname may vary for Production/Cert/QA)
              • Use browser's export certificate feature (steps vary depending on browser used)
              • Note that you do not need to export the 'chain' version of this file as it may exceed the max upload size in SAP CI for certificates.
        • After adding, you should see:
      • You can verify connectivity via 'Monitor' -> 'Connectivity Tests' -> enter CCH SureTax hostname (e.g. testapi.taxrating.net)
      • You can follow the same steps as above to add multiple suretax SSL certificates (Prod/Cert).
    • Add CCH SureAddress's SSL certificate to the keystore for connections to work

      • Log into SAP CI and select 'Monitor' -> open 'Manage Keystore'
      • Click on Add -> Certificate
        • Alias = you can use a descriptive name here (e.g. sslcertsureaddress)
        • File = upload SSL certificate for CCH SureTax
          • You can easily download the SSL certificate by using your internet browser.
            • E.g. for Cert
              • With your browser go to https://testapi.sureaddress.net/sureaddress.asmx (hostname may vary for Production/Cert/QA)
              • Use browser's export certificate feature (steps vary depending on browser used)
              • Note that you do not need to export the 'chain' version of this file as it may exceed the max upload size in SAP CI for certificates.
        • After adding, you should see:
      • You can verify connectivity via 'Monitor' -> 'Connectivity Tests' -> enter CCH SureAddress hostname (e.g. testapi.sureaddress.net)
      • You can follow the same steps as above to add multiple sureaddress SSL certificates (Prod/Cert).

    In SAP CI: Configure CCH SureTax URLs

    The CCH SureTax iFlows must have the externalized parameter 'SureTax_URL' configured before use.

    • CCH SureTax iFlows use CCH SureTax's V07 web services, so their URLS will be in the following format:
        • E.g. for CERT: https://testapi.taxrating.net/Services/V07/SureTax.asmx
        • Please contact your CCH SureTax representative for the URLs for your account.
      • Verify that the 'suretaxuser_cert' added in the previous section's 'Security Material' has the CCH SureTax ClientNumber and ValidationKey for the CCH SureTax URL you want to use.
    • Configure SureTax_URL in the following steps for each CCH SureTax artifact
    • Open SAP CI -> 'Design' -> Select the CCH SureTax package -> Select DetermineJurisdiction Artifact -> Click on 'Configure'
      • Select 'Receiver' tab there is 'Connection' section where in 'Address' field would hold the URL to SureTax API.
      • Edit the hostname in the Address field
      • Click on Save and then Deploy
      • Highlighted areas are referred to in the above steps
      • If using CCH SureAddress, update the Address for SureAddress_Receiver on the above screen by selecting SureAddress_Receiver for 'Receiver'
      • You can Optionally enable address validation from the above form by selecting 'More' in the header and entering '1' for Enable_Address_Validation field:
        • Additionally, user should be able to configure set of user credentials they would like to be used in communication with SureTax.
    • Open SAP CI -> 'Design' -> Select the CCH SureTax package -> Select CalculateTax Artifact -> Click on 'Configure'
      • Select 'Receiver' tab there is 'Connection' section where in 'Address' field would hold the URL to SureTax API.
      • Edit the hostname in the Address field
      • Click on Save and then Deploy
      • Highlighted areas are referred to in the above steps
      • Select 'More' tab to add all the other parameters that are needed for SureTax request
      • 'SureTax_Credentials_Name' and 'SureTax_TTCode_Map_ExtensionField' are unique in the sense their values should be coming from SAP CPI Environment
      • 'SureTax_Credentials_Name' 🡪 values would be any values that would be added in Security Material step. This will make sure correct Client Number and Validation Key is picked for the calculation.
      • 'SureTax_TTCode_Map_ExtensionField' 🡪 This field gives an ability to add any field from the SAP SOAP request to be added and its corresponding value will be sent to SureTax in the request. Possible fields are
        • MATNR
        • PROD_CODE
        • GROUP_PROD_CODE
        • Any Extension field from EXTENSION_FIELD001 to EXTENSION_FIELD040

    Note: The name of the field should be exactly how it is in the SOAP element

    • Open SAP CI -> 'Design' -> Select the CCH SureTax package -> Select UpdateTax Artifact -> Click on 'Configure'

      • Select 'Receiver' tab there is 'Connection' section where in 'Address' field would hold the URL to SureTax API.
      • Edit the hostname in the Address field
      • Click on Save and then Deploy
      • Highlighted areas are referred to in the above steps
      • Select 'More' tab to add all the other parameters that are needed for SureTax request
      • 'SureTax_Credentials_Name' and 'SureTax_TTCode_Map_ExtensionField' are unique in the sense their values should be coming from SAP CPI Environment
      • 'SureTax_Credentials_Name' 🡪 values would be any values that would be added in Security Material step. This will make sure correct Client Number and Validation Key is picked for the calculation.
      • 'SureTax_TTCode_Map_ExtensionField' 🡪 This field gives an ability to add any field from the SAP SOAP request to be added and its corresponding value will be sent to SureTax in the request. Possible fields are
        • MATNR
        • PROD_CODE
        • GROUP_PROD_CODE
        • Any Extension field from EXTENSION_FIELD001 to EXTENSION_FIELD040

    Note: The name of the field should be exactly how it is in the SOAP element

    • Open SAP CI -> 'Design' -> Select the CCH SureTax package -> Select ForceUpdate Artifact -> Click on 'Configure'

      • Select 'Receiver' tab there is 'Connection' section where in 'Address' field would hold the URL to SureTax API.
      • Edit the hostname in the Address field
      • Click on Save and then Deploy
      • Highlighted areas are referred to in the above steps
      • Select 'More' tab to add all the other parameters that are needed for SureTax request
      • 'SureTax_Credentials_Name' and 'SureTax_TTCode_Map_ExtensionField' are unique in the sense their values should be coming from SAP CPI Environment
      • 'SureTax_Credentials_Name' 🡪 values would be any values that would be added in Security Material step. This will make sure correct Client Number and Validation Key is picked for the calculation.
      • 'SureTax_TTCode_Map_ExtensionField' 🡪 This field gives an ability to add any field from the SAP SOAP request to be added and its corresponding value will be sent to SureTax in the request. Possible fields are
        • MATNR
        • PROD_CODE
        • GROUP_PROD_CODE
        • Any Extension field from EXTENSION_FIELD001 to EXTENSION_FIELD040

    Note: The name of the field should be exactly how it is in the SOAP element

    • Open SAP CI -> 'Design' -> Select the CCH SureTax package -> Select MassRedefine Artifact -> Click on 'Configure'

      • Select SOAP connection between Request Reply and SureTax_Receiver
      • Click on the Connection tab
      • Edit the hostname in the Address field
      • Highlighted areas are referred to in the above steps

    • Open SAP CI -> 'Design' -> Select the CCH SureTax package -> Select GetChanged Artifact -> Click on 'Configure'
      • Select SOAP connection between Request Reply and SureTax_Receiver
      • Click on the Connection tab
      • Edit the hostname in the Address field
      • Highlighted areas are referred to in the above steps

    • CCH SureTax iFlows allows the customers to customize the Sender Address as per their needs.
      • Open SAP CPI 🡪 'Design' 🡪 Select any Artifact 🡪 Click Configure
      • Under Sender Tab 🡪 Connection 🡪 Address
      • /WK_S4CLDtoWK_CalculateTax -🡪 this value can be changed by the customer
      • The sender address is now a customizable parameter across all the artifacts

    In CI: Configure Default Values used by Artifacts for CCH SureTax API Requests

    Various other CCH SureTax values can be configured using externalized parameters for each iFlow. Please see section 3 ("CCH SureTax iFlows Configuration with Externalized Parameters") for a complete list. Below are some common configurations for CCH SureTax.

    • Update by opening CCH SureTax Package -> open artifacts CalculateTax or UpdateTax or ForceUpdate -> Configure -> More, all the fields that can be configured are under this tab
      • BusinessUnit
      • SalesTypeCode
        • 'R' is default
      • RegulatorCode
        • '99' is default
      • UnitType
        • '00' is default
      • Other CCH SureTax fields can be edited to match your business needs, but the above are the most common elements.
      • Screenshot of Configure page is as follows and it contains all the fields that can be set top a default value:

    Configure S4/HANA Public Cloud system with External Sales and Use Tax Calculation (SAP_COM_0177)

    • Download and follow the directions in SAP_COM_0177_ConfigGuide file, which can be found in SAP Release Note for external Sales and Use Tax Calculation - https://launchpad.support.sap.com/#/notes/2598888

      • Directions for following SAP_COM_0177_ConfigGuide file:
        • In S4HC's Fiori LaunchPad - when you create the Communication Arrangement for SAP_COM_0177, please follow the below directions.
          • Outbound Services section should have the following settings to match CCH SureTax iFlows:
            • Determine Tax Jurisdiction Codes
              • Path = /cxf/DetermineJurisdiction
            • Calculate Taxes
              • Path = /cxf/CalculateTax
            • Update Tax Documents
              • Path = /cxf/UpdateTax
            • Force Update Tax Documents
              • Path = /cxf/ForceUpdate
            • Get Changed Jurisdictions
              • Path = /cxf/GetChanged
            • Mass Redefine Jurisdiction Code
              • Path = /cxf/MassRedefine
          • Screenshot of Outbound Services section
    • More documentation from SAP release note can be found here - https://launchpad.support.sap.com/#/notes/2528016

    In SAP S4HC Configure Tax Jurisdiction Code Structure to use CCH SureTax Geocode

    This is required for configuration.

    External US Tax Jurisdiction Code should be set to the following, below is screenshot from SAP S4HC Fiori Launchpad. The steps to reach the below form is found in SAP's External Tax Calculation Integration Configuration Guide -> Specify the Tax Jurisdiction Code section:

    [Alternatively, the below can be performed by a SAP expert using SAP GUI:]{.underline}

    Following steps are from SAP:

    Specify Structure for Tax Jurisdiction Code

    Use

    In this activity, you determine the structure of the tax jurisdiction code. This code is used for calculating taxes which are defined below the federal level (for example, US taxes, Canadian taxes). The tax jurisdiction code can be subdivided into a maximum of four levels (for example, state/county/city/district). This way the tax rate is defined per level and the tax value is calculated individually per level

    Procedure

    To perform the activity, do one of the following:


    IMG Menu Financial Accounting (New) → Financial Accounting Basic Settings (New) → Tax on Sales / Purchases → Basic Settings → Specify Structure for Tax Jurisdiction


    Transaction code OBCO


    Make the following entries:


    Schema Name LG columns


    0TXUSX Standard US Tax Jurisdiction Code In the four Lg columns, from left to right, enter 2, 2, 3, 5


    Choose Save.

    In S4HC Disable Tax Calculation on line-by-line basis

    This is recommended for accurate tax calculation.

    To be performed by a SAP expert.

    There is a configuration setting on the tax jurisdiction structure definition that controls whether tax is determined on a line-by-line basis. This can be set on:

    cid:image008.png@01D3E6DD.7A08E300

    In S4HC: Update Tax Jurisdiction Code for all addresses

    Required: SAP Tax Jurisdiction Codes for every stored address must be updated before the CCH SureTax integration can be used.

    Here are the directions to update all the jurisdictions at once

    • In your SAP Fiori LaunchPad:
      • Open Schedule Tax Job App
      • Select New (+)
      • Under Job Template select 🡪 External Tax Jurisdiction Code Mass Update
      • Under same screen Parameters section select all options Cost Center, Business Partner and Profit Center. You can select the last changed date as well.
      • Click on Schedule which will call GetChanged iFlow and then Mass Redefine iFlow.

    In S4HC: Update Tax Jurisdiction Code for Company Code & Plant Master Data

    Here are directions for updating your Company Code and Plan Master Data

    • In your SAP Fiori LaunchPad:
      • Open Manage your solution -> Configure your Solution
      • Search for 'company code master data' (for plant: search for 'plant')
      • Select the search result (for plant: click on 'Logistics')
      • Click on Configure for 'Company Code Master Data' (for plant: click on configure for 'Plants)
      • Select Address you want to update
      • Click on Edit
      • Update value for Tax Jurisdiction to match CCH SureTax geocode for that address
        • There is a limitation with Fiori LaunchPad, so you must manually enter the CCH SureTax geocode.
        • An easy way to find the geocode is to use the DetermineJurisdiction iFlow via a test Business Partner address, or using a SOAP client like SOAP UI or Postman to call the DetermineJurisdiction iFlow you have deployed to your SAP CI instance.

    CCH SureTax iFlows Configuration with Externalized Parameters

    All CCH SureTax iFlows can be configured with externalized parameters.

    Externalized paramaters can be accessed in SAP CI -> CCH SureTax Integration package -> <Select any CCH SureTax artifact (iFlow) -> click on 'Configure' link on top right of your browser.

    Following is a complete list of CCH SureTax externalized parameters that you can 'Configure' along with their default values:

    Artifact/iFlow Section Externalized Parameter SureTax Mapping Default Value
    CalculateTax Sender Authorization User Role (aka RoleBased)
    CalculateTax Sender Body Size 40
    CalculateTax Sender Attachments Size 100
    CalculateTax Receiver Address https://<suretax_hostname>/Services/V07/SureTax.asmx
    CalculateTax Receiver Timeout 60000
    CalculateTax More {{SureTax_BusinessUnit}} BusinessUnit SAPBusinessUnit
    CalculateTax More {{SureTax_DefaultTransTypeCode}} TransTypeCode 990101
    CalculateTax More {{SureTax_UnitType}} UnitType "00"
    CalculateTax More {{SureTax_TaxSitusRule}} TaxSitusRule 22
    CalculateTax More {{SureTax_SalesTypeCode}} SalesTypeCode R
    CalculateTax More {{SureTax_RegulatoryCode}} RegulatoryCode 99
    CalculateTax More {{SureTax_UDF}} UDF
    CalculateTax More {{SureTax_UDF2}} UDF2
    CalculateTax More {{SureTax_FreightOnBoard}} FreightOnBoard D
    CalculateTax More {{SureTax_ShipFromPOB}} ShipFromPOB 1
    CalculateTax More {{SureTax_MailOrder}} MailOrder 1
    CalculateTax More {{SureTax_CommonCarrier}} CommonCarrier 1
    CalculateTax More {{SureTax_AuxRevenueType}} AuxRevenueType 03
    CalculateTax More {{SureTax_ARRuleOverride}} RuleOverride 0
    CalculateTax More {{SureTax_APRuleOverride}} RuleOverride 3
    CalculateTax More {{SureTax_ExemptReason}} ExemptReason
    CalculateTax More {{SureTax_Param1}} Param1
    CalculateTax More {{SureTax_Param2}} Param2
    CalculateTax More {{SureTax_Param3}} Param3
    CalculateTax More {{SureTax_Param4}} Param4
    DetermineJurisdiction Sender Authorization User Role (aka RoleBased)
    DetermineJurisdiction Sender Body Size 40
    DetermineJurisdiction Sender Attachments Size 100
    DetermineJurisdiction Receiver (When SureTax_Receiver Selected)Address https://<suretax_hostname>/Services/V07/SureTax.asmx
    DetermineJurisdiction Receiver Timeout 60000
    DetermineJurisdiction More Enable_Address_Validation 0 ('1' can be used to enable Address Validation using CCH SureAddress)
    DetermineJurisdiction Receiver (When SureAddress_Receiver Selected) Address https://<sureaddress_hostname>/sureaddress.asmx
    ForceUpdate Sender Authorization User Role (aka RoleBased)
    ForceUpdate Sender Body Size 40
    ForceUpdate Sender Attachments Size 100
    ForceUpdate Receiver Address https://<suretax_hostname>/Services/V07/SureTax.asmx
    ForceUpdate Receiver Timeout 60000
    ForceUpdate More {{SureTax_BusinessUnit}} BusinessUnit SAPBusinessUnit
    ForceUpdate More {{SureTax_DefaultTransTypeCode}} TransTypeCode 990101
    ForceUpdate More {{SureTax_UnitType}} UnitType "00"
    ForceUpdate More {{SureTax_TaxSitusRule}} TaxSitusRule 22
    ForceUpdate More {{SureTax_SalesTypeCode}} SalesTypeCode R
    ForceUpdate More {{SureTax_RegulatoryCode}} RegulatoryCode 99
    ForceUpdate More {{SureTax_UDF}} UDF
    ForceUpdate More {{SureTax_UDF2}} UDF2
    ForceUpdate More {{SureTax_FreightOnBoard}} FreightOnBoard D
    ForceUpdate More {{SureTax_ShipFromPOB}} ShipFromPOB 1
    ForceUpdate More {{SureTax_MailOrder}} MailOrder 1
    ForceUpdate More {{SureTax_CommonCarrier}} CommonCarrier 1
    ForceUpdate More {{SureTax_AuxRevenueType}} AuxRevenueType 03
    ForceUpdate More {{SureTax_ARRuleOverride}} RuleOverride 0
    ForceUpdate More {{SureTax_APRuleOverride}} RuleOverride 3
    ForceUpdate More {{SureTax_DefaultExemptReason}} ExemptReason
    ForceUpdate More {{SureTax_Param1}} Param1
    ForceUpdate More {{SureTax_Param2}} Param2
    ForceUpdate More {{SureTax_Param3}} Param3
    ForceUpdate More {{SureTax_Param4}} Param4
    GetChanged Sender Authorization User Role (aka RoleBased)
    GetChanged Sender Body Size 40
    GetChanged Sender Attachments Size 100
    GetChanged Receiver Address https://<suretax_hostname>/Services/V07/SureTax.asmx
    GetChanged Receiver Timeout 60000
    MassRedefine Sender Authorization User Role (aka RoleBased)
    MassRedefine Sender Body Size 40
    MassRedefine Sender Attachments Size 100
    MassRedefine Receiver Address https://<suretax_hostname>/Services/V07/SureTax.asmx
    MassRedefine Receiver Timeout 60000
    UpdateTax Sender Authorization User Role (aka RoleBased)
    UpdateTax Sender Body Size 40
    UpdateTax Sender Attachments Size 100
    UpdateTax Receiver Address https://<suretax_hostname>/Services/V07/SureTax.asmx
    UpdateTax Receiver Timeout 60000
    UpdateTax More {{SureTax_BusinessUnit}} BusinessUnit SAPBusinessUnit
    UpdateTax More {{SureTax_DefaultTransTypeCode}} TransTypeCode 990101
    UpdateTax More {{SureTax_UnitType}} UnitType 00
    UpdateTax More {{SureTax_TaxSitusRule}} TaxSitusRule 22
    UpdateTax More {{SureTax_SalesTypeCode}} SalesTypeCode R
    UpdateTax More {{SureTax_RegulatoryCode}} RegulatoryCode 99
    UpdateTax More {{SureTax_UDF}} UDF
    UpdateTax More {{SureTax_UDF2}} UDF2
    UpdateTax More {{SureTax_FreightOnBoard}} FreightOnBoard D
    UpdateTax More {{SureTax_ShipFromPOB}} ShipFromPOB 1
    UpdateTax More {{SureTax_MailOrder}} MailOrder 1
    UpdateTax More {{SureTax_CommonCarrier}} CommonCarrier 1
    UpdateTax More {{SureTax_AuxRevenueType}} AuxRevenueType 03
    UpdateTax More {{SureTax_ARRuleOverride}} RuleOverride 0
    UpdateTax More {{SureTax_APRuleOverride}} RuleOverride 3
    UpdateTax More {{SureTax_DefaultExemptReason}} ExemptReason
    UpdateTax More {{SureTax_Param1}} Param1
    UpdateTax More {{SureTax_Param2}} Param2
    UpdateTax More {{SureTax_Param3}} Param3
    UpdateTax More {{SureTax_Param4}} Param4

    CCH SureTax iFlows Logging and Log Configuration

    In SAP CI all CCH SureTax iFlows log at the DEBUG or TRACE levels, which can be set for deployed artifacts' Log Configuration.

    • CCH SureTax artifacts will log all payloads when enabled.
      • Only recommended for debugging and not to be used on production systems.
    • Artifact Log configuration is accessed via SAP CI -> Monitor -> Manage Integration Content -> All -> select artifact (see below screenshot)

    CCH SureTax iFlows Error Codes and Messages

    Error codes and messages returned by CCH SureTax iFlows.

    1xxx for General iFlow issue:

    • 1001: Duplicate TID 'XXXXXXXXXXXXXXXXX' used in update call  
    • 1002: Credential Error: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    • 1999: Uncatched Error: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

    2xxx for master data from SAP is missing external system:

    • 2001: Company Code 'XXXX' is not supported in external system 🡪 Not supported
    • 2002: Tax Type 'X' is not supported in external system 🡪 Not supported
    • 2003: Material 'XXXXXX' is not supported in external system 🡪 Not supported
    • 2004: Currency 'XXX' is not supported in external system 🡪 Supported for USD
    • 2005: Tax Jurisdiction Code is not supported in external system. Invalid value for YYYYY = 'XXXXX'
      • E.g. 2005:  Tax Jurisdiction Code is not supported in external system. TXJCD_ST = '000000'

    3xxx iFlow element errors (error raised by iFlow):

    • 3001: Missing required data elements
    • 3002: Script Error
    • 3003: Router Error
    • 3004: ZIPCODE has invalid value 'XXXX'
      • Returned by DetermineJurisdiction iFlow
    • 3005: COUNTRY is required
      • Returned by DetermineJurisdiction iFlow
    • 3006: STATE is required
      • Returned by DetermineJurisdiction iFlow

    4xxx External network errors:

    • 4001: Network Timeout
    • 4002: Server not found

    5xxx Soap Client Fault:

    • 5001: Bad Date
    • 5002: Jurisdiction Code not found
    • 5003: Generic Soap Fault

    6xxx Soap Server Fault:

    • 6001: Database Error
    • 6002: Calculation Failure not due to information in the request
    • 6003: Address Validation Error: <Message from CCH SureAddress>

    SAP S4HC Data Mappings to CCH SureTax's Web Service Data Elements used in Artifacts

    DetermineJurisdiction Artifact

    SureTax Field SAP API Field SAP Description
    CountryCode COUNTRY Required
    StateCode STATE Required
    County COUNTY Optional
    City CITY Recommended
    Zipcode ZIPCODE for US, ZIPCODE can be Zip 5 (e.g. 12345) or Zip 9 (e.g. 12345-1234) CCH SureTax Zipcode is Zip 5.
    Plus4 ZIPCODE if Zip Plus4 is available from ZIPCODE
    PrimaryAddressLine (SureAddress) STREET_ADDRESS->STREET optional
    SecondaryAddressLine (SureAddress) STREET_ADDRESS->STREET1 optional
    N/A TXJCD_L1 2
    N/A TXJCD_L2 2
    N/A TXJCD_L3 3
    N/A TXJCD_L4 5
    Geocode TXJCD SAP Tax Jurisdiction Code is set by CCH SureTax Geocode
    N/A OUTOF_CITY  
    ResponseCode RETCODE 0 for success (ResponseCode = 9999 for success)
    ResponseCode ERRCODE 0000 for success (ResponseCode = 9999 for success)

    CalculateTax Artifact

    SureTax Field SAP API Field SAP Description
    CurrencyCode CURRENCY CCH SureTax does not perform currency conversion, so currency is expected to be the currency of the Ship To country.
    ResponseType CURR_DEC Currency Decimal value is taken and concatenated with D to map to ResponseType. E.g. 2 = D2
    ReturnFileCode N/A Q for Quote
    LineNumber ITEM_NO
    CurrencyCode COUNTRY Expect 2 digit Country Code
    TransTypeCode MATNR Material Number and Prod Code are mapped to TransTypeCode. ProdCode is sent. If not present then Material number is sent. If not default 990101 is sent
    TransTypeCode PROD_CODE Material Number and Prod Code are mapped to TransTypeCode. ProdCode is sent. If not present then Material number is sent. If not default 990101 is sent
    N/A TAX_TYPE Not Supported
    TaxExemptionCodeList/string EXEMPT_AMT Exempt amount is used to calculate the exemption percentage we set for TaxExemptionCodeList. We use code 99:(exempt percentage) for exemption and 00 otherwise
    AuxRevenue FREIGHT_AM Freight amount is divided by 100 to get correct amount sent by SAP and mapped to AuxRevenue
    AuxRevenueType FREIGHT_AM AuxRevenueType is set to default 03 (externalized variable) if we have freight amount. Otherwise it's 01.
    Parameter5 N/A Reserved for future use
    Parameter6 N/A Reserved for future use
    Parameter7 N/A Reserved for future use
    Parameter8 N/A Reserved for future use
    Parameter9 SOLD_TO_CUST If available, SOLD_TO_CUST is sent as Parameter9 in calculation requests
    Parameter10 Constant FREIGHT (SKU named 'FREIGHT' must be mapped in SureTax) is sent as Parameter10.
    Units QUANTITY Quantity is divided by 1000 and mapped to units
    N/A TAX_PER_ITEM X
    N/A NR_LINE_ITEMS
    RuleOverride APAR_IND If value of APAR_IND is A then RuleOverride is set to 1, if V then 2 else 0
    TransDate TAX_DATE Date of the transaction
    DataYear TAX_DATE Year is extracted from TAX_DATE and set to DataYear
    DataMonth TAX_DATE Month is extracted from TAX_DATE and set to DataMonth
    CmplDataYear TAX_DATE Year is extracted from TAX_DATE and set to CmplDataYear.
    CmplDataMonth TAX_DATE Month is extracted from TAX_DATE and set to CmplDataMonth
    ShipToAddress-Geocode TXJCD_ST Ship To geocode from SAP is mapped to ShipToAddress geocode. Expected to be CCH SureTax geocode.
    ShipFromAddress-Geocode TXJCD_SF Expected to be CCH SureTax geocode.
    OrderPlacementAddress-Geocode TXJCD_POO Expected to be CCH SureTax geocode. (Optional)
    OrderApprovalAddress-Geocode TXJCD_POA Expected to be CCH SureTax geocode. (Optional)
    N/A AMOUNT Not used since GROSS_AMOUNT is the same value
    Revenue GROSS_AMOUNT Gross Amount is divided by 100 to get correct amount sent by SAP and mapped to each item level Revenue
    TotalRevenue GROSS_AMOUNT Item Level Gross amounts added up and set to TotalRevenue at the SureTax request level
    LineNumber ITEM_NO in CALCULATION_ITEM
    TaxTypeCode TXJLV 1. State
    2. County
    3. City
    4. Local
    5. Reporting Agency
    TaxTypeDesc TXJLVDESC The description that corresponds to the TaxTypeCode.
    Revenue TAXBAS Revenue is multiplied by 100 to match SAP representation of amounts
    Revenue PercentTaxable EXAMT This amount is calculated based on Revenue and PercentTaxable element
    TaxAmount TAXAMOV All TaxAmount are added under TaxAmountList and multiplied by 100 to get TAXAMOV
    TaxAmount TAXAMT All TaxAmount are added under TaxAmountList and multiplied by 100 to get TAXAMT
    TaxRate TAXPCT All TaxRate are added under TaxRateList multiplied by 10000 and then assigned to TAXPCT
    ClientNumber N/A taken from Security Material 'suretaxuser'
    ValidationKey N/A taken from Security Material 'suretaxuser'
    ResponseType CURR_DEC '12D' + the integer value of the currency if it exists. Otherwise ResponseType is '12D2'
    ResponseGroup N/A '00'
    BusinessUnit N/A Can be updated in artifact's Mapping_S4HC_Request_to_SoapRequest.
    UnitType UNIT UnitType set to default of '00' since no mapping available to SAP's UNIT
    TaxSitusRule N/A Only General Sales Supported, default value set to '22'
    SalesTypeCode N/A Can be updated in artifact's Mapping_S4HC_Request_to_SoapRequest. Default is 'R'. Important to update this to match your business
    RegulatoryCode N/A Can be updated in artifact's Mapping_S4HC_Request_to_SoapRequest. Default is '99'. Important to update this to match your business.
    FreightOnBoard N/A Can be updated in artifact's Mapping_S4HC_Request_to_SoapRequest. Default is 'D'
    ShipFromPOB N/A Can be updated in artifact's Mapping_S4HC_Request_to_SoapRequest. Default is '1'
    MailOrder N/A Can be updated in artifact's Mapping_S4HC_Request_to_SoapRequest. Default is '1'
    CommonCarrier N/A Can be updated in artifact's Mapping_S4HC_Request_to_SoapRequest. Default is '1'

    UpdateTax Artifact

    (Similar to CalculateTax, only different items added below)

    SureTax Field SAP API Field SAP Description
    CmplDataYear REP_DATE Year value is set to CmplDataYear
    CmplDataMonth REP_DATE Month value is set to CmplDataMonth
    N/A TID Not supported
    INVOICE_NUMBER DOC_NUMBER DOC_NUMBER is expected to be unique
    ReturnFileCode N/A Value set to '0' to post in CCH SureTax

    ForceUpdate Artifact
    (Similar to CalculateTax, only different items added below)

    SureTax Field SAP API Field SAP Description
    N/A TID Not supported
    INVOICE_NUMBER DOC_NUMBER DOC_NUMBER is expected to be unique
    ReturnFileCode N/A Set to '0' for Post to CCH SureTax
    TAX_TYPE Tax Category of tax code configuration (T007A-TXIND). Is not used for all tax codes and may appear as empty in the system, but is always filled
    EXEMP_IND Empty: Tax-relevant; external system decides whether the tax code is tax-relevant
    0 - Tax-relevant; external system decides whether the tax code is tax-relevant
    1 - Is always tax-relevant; external system is not used
    2 - Is not tax-relevant; external system is not used
    CmplYear REP_DATE Year is extracted from REP_DATE and set to CmplDataYear.
    CmplMonth REP_DATE Month is extracted from REP_DATE and set to CmplDataMonth.
    CREDIT_IND " " or 0 - SAP Tax liability account is credited
    1 - SAP Tax liability account is debited
    CustomerNumber ACCNT_NO
    TAXPCOV Sum of tax rates of all jurisdiction code levels. Must be filled and must match values in TAX_CAL_JUR_LEVEL_OUTXX-TAXPCT. The last three characters in TAXPCOV are the digits after the decimal point
    Tax TAXAMOV Sum of tax rates of all jurisdiction code levels. Must be filled and must match values in TAX_CAL_JUR_LEVEL_OUTXX-TAXAMT. Relies on CURR_DEC
    TaxTypeCode TXJLV TXJLV is mapped to CCH SureTax TaxTypeCode:
    1. State
    2. County
    3. City
    4. Local - CCH SureTax county local and city locals mapped to this
    5. Reporting Agency
    TaxCatCode N/A "-1" is hardcoded in mapping
    TaxAuthorityID N/A "-1" is hardcoded in mapping
    TaxAmount TAXAMT TAXAMT is sent in TaxAmount
    TaxRate TAXPCT TAXPCT is sent in TaxRate
    N/A CREDIT_IND 0 = Credit, 1 = Debit. When Value is '1', amounts for CCH SureTax REVENUE and TAX are multiplied by -1

    MassRedefine Artifact

    SureTax Field SAP API Field SAP Description
    DataYear N/A Current Year sent
    DataMonth N/A Current Month sent
    SequenceNum SEQUENCE_NUM Sequence number of the location
    CountryCode COUNTRY Country Code
    StateCode STATE State Code
    County COUNTY County name
    City CITY City name
    Zipcode ZIPCODE ZipCode
    Plus4 ZIPCODE ZipCode -- We send Plus4 if present in case if Country is "US"
    AddressLine1 STREET Address line1
    AddressLine2 STREET1 Address line2

    Important Notes and Known Issues:

    • SAP's Tax Jurisdiction Code must be updated frequently for addresses; otherwise, stale Tax Jurisdiction Code can be sent to CCH SureTax for tax calculation. This can lead to incorrect or no tax calculation.
    • SAP's TID cannot be supported by CCH SureTax due to its length being too long
    • SAP's FREIGHT_AM is supported in the following manner for Calculate and Update iFlows:
      • SAP only supports taxes for freight to be returned with the tax for the associated line item.
      • Your CCH SureTax account must have a product code mapping for a SKU named 'FREIGHT'. This can be done via CCH SureTax console.
      • Each line item's FREIGHT_AM is sent to CCH SureTax in the AuxRevenue request field. When AuxRevenueType is '03', your freight amount's taxability will follow what is mapped to your 'FREIGHT' SKU
      • Taxes returned for each line item's FREIGHT line item is added to the taxes returned for the associated line item
    • ForceUpdate iFlow
      • Only line item level taxes are supported. Although CCH SureTax supports tax jurisdiction level tax adjustments, this cannot be supported due to lack CCH SureTax required data from SAP S4HC requests.
    • GetChanged iFlow
      • Uses SureTax method GetAllGeocodes.
    • Calculate/Update/Force iFlows currently support 2 digit precision (CURR_DEC = 2). Support for higher precision planned in upcoming release.
    • EXEMPT_AMT is used with GROSS_AMOUNT to get the exempt ratio sent to SureTax for calculation, so only absolute values are used.

    Release Notes

    • V2.0.12

      • Returing Exemption Code and Reason Desc in Calculate Iflow.
      • TID is sent in STAN field in Update and Force Update Iflows.
      • Technical Guide Document is a link to online Documentation.
    • V2.0.11

      • WK Headers added to SureTax Reqest.
      • 2401 WSDL changes applied.
    • V2.0.10

      • Added a configurable Credentials name.
        • Customers can now use CERT or PROD user credentials from same tenant
      • Added a configurable variable to Map any SOAP Element to CCH SureTax Transaction Type code
        • Customers can now add a Field that they would like to be used to send the value in Transaction Type Code
    • V2.0.9

      • Sender URL is now a customizable parameter where customer can update the URL based on their needs.
    • V2.0.8

      • Calculate/Update/Force Update Iflows -- Changes to support precision based on CURR_DEC.
      • Changes related to Unified Jurisdiction Code
    • V2.0.7

      • Changes pertaining to date sent to SureTax in Determine Jurisdiction iflow.
    • V2.0.6

      • Calculate iFlow -- Fixed ClientTracking send to CCH SureTax
      • Update/Force iFlows -- updated version for ClientTracking
    • v2.0.5

      • Fixed Calculate iFlow, so the same number of line items will be returned for when no taxes are returned by CCH SureTax (e.g. no tax states).
    • v2.0.4

      • Added address validation support with CCH SureAddress to DetermineJurisdiction iFlow.
    • v2.0.3

      • Calculate/Update/Force iFlows updated to handle SAP format for negative numbers (- symbol on right e.g. for -100, SAP sends 100-) sent in amount fields.
    • v2.0.2

      • Removed configuration for Parameter5 to 9 for Calculate/Update/Force iFlows as they are now reserved for internal use.
      • Calculate/Update/Force iFlows will now send SOLD_TO_CUST in CCH SureTax Parameter9 request field.
      • Updated logic for Parameter10 mapping in SureTax request.
    • v2.0.1

      • Patch for Calculate, Update, and Force iFlows to correctly assign CCH SureTax TransTypeCode (calculate request input) based on PROD_CODE, MATNR, or configured default Transaction Type code value.
    • v2.0.0

      • Certified update with support for SAP S4HC 1908.
      • Added GetChanged and MassRedefine iFlows
      • Existing iFlows updated to support updated WSDLs from 1908
      • Added externalized parameters for easy configuration of data used in CCH SureTax requests.
    • v1.0.0

      • Initial certified release.
    Wolters Kluwer Product Name - Page anchor links toWolters Kluwer Product Name - Page anchor links to
    © Wolters Kluwer and/or its affiliates. All rights reserved.