3 Creating Tax Codes

In Oracle Communications Billing and Revenue Management (BRM), you use tax codes to assign taxes to the products and services that you sell to your customers. For example, you use tax codes to apply taxes differently for usage and physical goods charges.

Topics in this document:

About Creating Tax Codes

Tax codes define which tax to apply a charge. For example, a telephone handset uses a different tax code than an online service subscription. The tax code identifies the tax amount or percentage to apply for each jurisdiction.

You can configure tax codes in the following ways:

After you finish creating tax codes, you can associate them with your charges, discounts, and chargeshares.

You can also assign tax codes to charges, discounts, and chargeshares using tax selectors. Tax selectors decide the tax code to apply based on account, service, event, and profile attributes. You can create tax selectors in the following ways:

Creating Tax Codes Using ImportExportPricing (Patch Set 6 and Later)

Before BRM 12.0 Patch Set 6, you created tax codes in BRM and synchronized them to Pricing Design Center (PDC). In Patch Set 6 and later releases, you create tax codes in PDC and publish them to BRM and Elastic Charging Engine (ECE) using the ImportExportPricing utility.

To implement tax codes in BRM 12.0 Patch Set 6 and later releases:

  1. Define your tax codes in an XML file. You can base your tax codes on those provided in the Sample_Tax_Code.xml file available in the PDC_home/apps/Samples/Examples directory, where PDC_home is the directory in which the PDC software is installed.

    The sample file contains examples of tax codes for calculating taxes based on a custom implementation or Vertex. For more information about XML elements specific to Vertex or custom tax codes, see:

  2. Import the XML file into PDC using the ImportExportPricing utility:
    ImportExportPricing -import -config MyTaxCodes.xml

    where MyTaxCodes is the name of the XML file where you defined the tax codes.

    You can also modify existing tax codes using the -ow parameter.

    See "Importing Pricing and Setup Components" and "ImportExportPricing" in PDC Creating Product Offerings for more information about the utility's syntax and parameters.

    The ImportExportPricing utility also publishes the tax codes to the real-time rating engine (RRE) and ECE.

    Note:

    You cannot publish tax codes to the batch rating engine (BRE).
  3. Map your tax codes to G/L IDs in ECE. Do the following for each tax code you configured in MyTaxCodes.xml:

    1. Access the ECE configuration MBeans in a JMX editor, such as JConsole. See "Accessing ECE Configuration MBeans" in ECE Implementing Charging for more information.

    2. Expand the ECE Configuration node.

    3. Expand charging.taxation.

    4. Expand Operations.

    5. Click addTaxDetails.

    6. Specify values for the following attributes:

      • taxCode: Enter a tax code. The tax code must match a value in the <code> element of your MyTaxCodes.xml file.

      • taxGlId: Enter the General Ledger ID to use for the tax impact.

Creating Tax Codes for a Flat Tax or Custom Implementation (Patch Set 6 and Later)

In BRM 12.0 Patch Set 6 and later, you implement simple flat taxes by defining them in an XML file that you import into PDC. In the file, you enter a tax code and assign it to one or more tax rates, which are differentiated by criteria such as validity date and jurisdiction.

The following XML example shows custom tax codes:

<taxCodes>
      <name>CustomTaxCode</name>
      <priceListName>Default</priceListName>
      <obsolete>false</obsolete>
      <code>CustomTaxCode</code>
      <taxPackageType>CUSTOM</taxPackageType>
      <taxCodeValidityPeriods>
         <validFrom>20220101</validFrom>
         <validTo>20230120</validTo>
         <taxCodeMaps>
            <description>TRS1</description>
            <percent>4.0</percent>
            <taxJurisdictionLevel>FEDERAL</taxJurisdictionLevel>
            <taxJurisdictions>US</taxJurisdictions>
            <taxRuleType>TAX</taxRuleType>
         </taxCodeMaps>
      </taxCodeValidityPeriods>
      <taxCodeValidityPeriods>
         <validFrom>20240101</validFrom>
         <validTo>20300120</validTo>
         <taxCodeMaps>
            <description>TRS2</description>
            <percent>8.0</percent>
            <taxJurisdictionLevel>LOCATION</taxJurisdictionLevel>
            <taxJurisdictions>EU</taxJurisdictions>
            <taxRuleType>INCLUSIVE</taxRuleType>
         </taxCodeMaps>
         <taxCodeMaps>
            <description>TRS3</description>
            <percent>8.0</percent>
            <taxJurisdictionLevel>LOCATION</taxJurisdictionLevel>
            <taxJurisdictions>ASIA</taxJurisdictions>
            <taxRuleType>NCS</taxRuleType>
         </taxCodeMaps>
      </taxCodeValidityPeriods>
   </taxCodes>
When the value of the <taxPackageType> element is CUSTOM, one of the following is required under the <taxCodeMaps> element:
  • <percent>: If you include this element, the elements described in Table 3-1 are also required.
  • <transType_CategoryCode_Rate>: If you include this element, no other elements are supported in the tax code map.

Table 3-1 describes the critical XML elements specific to custom tax codes.

Table 3-1 XML Elements in the Tax Code File for Custom Tax Codes

Element Description
code The tax code. A unique alphanumeric value that defines categories with different tax treatments.
taxPackageType The package type. For flat taxes and custom implementations, this is always CUSTOM.
validFrom The start date of the validity period for the tax rate in yyyymmdd format.

Note: You can use multiple validity periods to create different rates for a single tax code, as shown in the example, but the validity periods must not overlap.

validTo The end date of the validity period for the tax rate in yyyymmdd format.
description A brief description of the tax code.
percent The tax rate in percent. For example, 4.25 means 4.25%.

For prepaid purchase events that grant negative currency balances, the corresponding tax associated with it should also be negative. For example, -4.25.

taxJurisdictionLevel The jurisdiction level for which this rate is applicable. Values are FEDERAL, STATE, COUNTY, CITY, and LOCATION.
taxJurisdictions

The jurisdiction where the rate applies. Similar to a nexus for the corresponding jurisdiction level.

For example, if the taxJurisdictionLevel value is STATE, the taxJurisdictions values must be state-level jurisdictions.

taxRuleType

Determines how taxes will be computed. Values are:

  • STANDARD: Standard tax computation. Taxes are computed based on the taxable amount and are then added to the total.
  • TAX: "Tax on tax" computation. Taxes are computed based on previous taxable amounts and taxes, and are then added to the total.

    For example, if tax1 = 10%, tax2 = 20%, and charge = 100.00, taxes are computed as follows:

    • tax1 = 10% @ 100.00 = 10.00
    • tax2 = 20% @ (100.00 + 10.00) = 22.00
  • INCLUSIVE: Inclusive tax computation. Taxes are already included in the total. For example, if the total is $110 and the tax is 10%, the tax amount is $10 and the charge is $100. This option can only be configured for event-time taxation, not billing-time taxation or dynamic taxation.

    Note:

    Inclusive taxes are not supported by Oracle Communications Elastic Charging Engine (ECE).

  • NCS: Noncumulative standard tax computation. Taxes are computed based on the taxable amount but are not added to the total.
  • NCT: Noncumulative "tax on tax" computation. Taxes are computed based on the taxable amount but are not added to the total.

    For example, if tax1 = 10%, tax2 = 20%, and charge = 100.00, taxes are computed as follows:

    • tax1 = 10% @ 100.00 = 10.00
    • tax2 = 20% @ 100.00 = 20.00

Creating Tax Codes for Vertex (Patch Set 6 and Later)

In BRM 12.0 Patch Set 6 and later, you specify to calculate taxes using Vertex by mapping tax codes to Vertex product codes in an XML file that you import into PDC. The Vertex product codes are used to apply the tax rate.

The following XML example shows the two types of Vertex tax codes. The three elements under the taxCodeMaps element are the only ones supported for Vertex tax codes.

<taxCodes>
      <name>VQTaxCode</name>
      <priceListName>Default</priceListName>
      <obsolete>false</obsolete>
      <code>VQTaxCode</code>
      <taxPackageType>VERTEX_QUANTUM</taxPackageType>
      <taxCodeValidityPeriods>
         <taxCodeMaps>
            <transType_CategoryCode_Rate>01</transType_CategoryCode_Rate>
            <transSubType_ServiceCode>01</transSubType_ServiceCode>
            <salesIndicator>SALE</salesIndicator>
         </taxCodeMaps>
      </taxCodeValidityPeriods>
   </taxCodes>
   <taxCodes>
      <name>VCTaxCode</name>
      <priceListName>Default</priceListName>
      <obsolete>false</obsolete>
      <code>VCTaxCode</code>
      <taxPackageType>VERTEX_COMMTAX_21</taxPackageType>
      <taxCodeValidityPeriods>
         <taxCodeMaps>
            <transType_CategoryCode_Rate>4</transType_CategoryCode_Rate>
            <transSubType_ServiceCode>2</transSubType_ServiceCode>
            <salesIndicator>SALE</salesIndicator>
         </taxCodeMaps>
      </taxCodeValidityPeriods>
   </taxCodes>

Table 3-2 describes the important XML elements specific to Vertex tax codes.

Table 3-2 XML Elements in the Tax Code File for Vertex

Element Explanation
code The tax code. A unique alphanumeric value that defines categories with different tax treatments.
taxPackageType The tax package you use:
  • VERTEX_QUANTUM: Vertex Communications Tax Q Series (telecommunications).
  • VERTEX_COMMTAX_21: Vertex Sales Tax Q Series (sales and use).
transType_CategoryCode_Rate The field value is determined by the tax package you use.
  • For Vertex Communications Tax Q Series, this field is the category code. See the Communications Tax Q Series documentation for more information about its category codes.
  • For Vertex Sales Tax Q Series, this field is the transaction type. See the Sales Tax Q Series documentation for more information on transaction types.
transSubType_ServiceCode The field value is determined by the tax package you use.
  • For Vertex Communications Tax Q Series, this field is the service code. Refer to the Communications Tax Q Series documentation for more information on service codes.
  • For Vertex Sales Tax Q Series, this field is the transaction subtype. Refer to the Sales Tax Q Series documentation for more information on transaction subtypes.
salesIndicator For Vertex Communications Tax Q Series and Vertex Sales Tax Q Series, this is the resale flag field, which indicates if the charge offer is for sale (SALE) or resale (RESALE). The default is SALE.

See your tax package documentation for information about product codes, service codes, and service indicators.

When configuring Vertex tax calculation, you also need to configure tax suppliers. See "Creating Tax Suppliers".

Creating Tax Codes Using load_config (Patch Set 5)

To implement tax codes in BRM 12.0 Patch Set 5, you do the following:

  1. Define your tax codes in the BRM_home/sys/data/config/config_taxcodes_map.xml file. The XML file contains different content depending on how you calculate taxes:

  2. Go to the BRM_home/apps/load_config/ directory and run the load_config utility:

    load_config -M BRM_home/sys/data/config/config_taxcodes_map.xml

    See "load_config" in BRM Developer's Guide for information about the utility's syntax and parameters.

The XML file is loaded into the /config/taxcodes_map object in the BRM database.

Note:

In Patch Set 5, you cannot use the SyncPDC utility to synchronize tax codes from BRM to Pricing Design Center (PDC). Instead, you must manually re-create the BRM tax codes in PDC. For more information, see "Moving Tax Codes to PDC for Patch Set 5" in BRM Patch Set Release Notes.

Creating Tax Codes for Flat Taxes and Custom Implementations (Patch Set 5)

In BRM 12.0 Patch Set 5, you implement simple flat taxes by defining them directly in the config_taxcodes_map.xml file. In the file, you enter a tax code and then assign it to one or more tax rates, which are differentiated by criteria such as validity date and jurisdiction.

Table 3-3 describes the elements in the config_taxcodes_map.xml file for configuring flat taxes.

Table 3-3 Tax Code Map Elements for Flat Taxes

Element Description

<TAX_CODE>

The tax code. A unique alphanumeric value that defines categories with different tax treatments.

Note: If you create multiple instances of the same tax code, they must all use the same start and end dates.

<TAXPKG_TAX_CODE>

The package code. For flat taxes and custom implementations, this is always U (user-defined).

<PERCENT>

The tax rate in percent. For example, 4.25 means 4.25%.

For prepaid purchase events that grant negative currency balances, the corresponding tax associated with it should also be negative. For example: -4.25.

<VALID_FROM_STR>

The start date for the validity period in mm/dd/yy format.

Note: If you create multiple instances of the same tax code, they must all use the same start date.

<VALID_TO_STR>

The end date for the validity period in mm/dd/yy format.

Note: If you create multiple instances of the same tax code, they must all use the same end date.

<TAX_JURISDICTION>

The tax jurisdiction:

  • Fed: Federal level

  • Sta: State level

  • Cou: County level

  • Cit: City level

  • Loc: Location level

<TAX_JURISDICTION_LIST>

The list of jurisdiction values applicable for this rate. This is similar to a nexus for the corresponding jurisdiction level.

For example, if the tax jurisdiction is Sta, the list of values must be state-level jurisdictions. Separate list values by a semicolon (;). To make the value applicable to all, use an asterisk (*).

<DESCR>

A brief description of the tax code.

<RULE_TYPE>

The rule for calculating the tax amount:

  • Std: Standard tax computation. Taxes are computed based on the taxable amount and then added to the total.

  • Tax: "Tax on tax" computation. Taxes are computed based on previous taxable amounts and are then added to the tax total. For example, if tax1 = 10%, tax2 = 20%, and charge = 100.00, taxes are computed as follows:

    tax1 = 10% @ 100.00 = 10.00

    tax2 = 20% @ (100.00 + 10.00) = 22.00

  • Inc: Tax inclusive. The line amount for an item includes the tax for the given item. This option can only be configured for event-time taxation, not billing-time taxation or dynamic taxation.

    Note:

    Inclusive taxes are not supported by Oracle Communications Elastic Charging Engine (ECE).

  • NCS: Noncumulative standard tax computation. Taxes are computed based on the taxable amount but are not added to the total.

  • NCT: Noncumulative "tax on tax" computation. Taxes are computed based on the taxable amounts and taxes but are not added to the total.

    For example, if tax1 = 10%, tax2 = 20%, and charge = 100.00, taxes are computed as follows:

    tax1 = 10% @ 100.00 = 10.00

    tax2 = 20% @ 100.00 = 20.00

The following sample content for the config_taxcodes_map.xml file creates two sample tax codes, which are both valid from February 1, 2022 through January 31, 2023:

  • Federal VAT tax of 4.5% for Great Britain

  • County sales tax of 1.25%

<ConfigObjectconfigName="/config/taxcodes_map"configMode="recreate">    
   <DESCR>Taxcodes Map Configuration</DESCR>    
   <NAME>taxcodes_map</NAME>    
   <TAXES elem="1">      
      <TAX_CODE>VAT</TAX_CODE>      
      <TAXPKG_TAX_CODE>U</TAXPKG_TAX_CODE>      
      <PERCENT>4.5</PERCENT>      
      <VALID_FROM_STR>02/01/22</VALID_FROM_STR>      
      <VALID_TO_STR>01/31/23</VALID_TO_STR>      
      <TAX_JURISDICTION>Fed</TAX_JURISDICTION>      
      <TAX_JURISDICTION_LIST>GB</TAX_JURISDICTION_LIST>      
      <DESCR>VAT-GB</DESCR>      
      <RULE_TYPE>Std</RULE_TYPE>    
   </TAXES>    
   <TAXES elem="2">      
      <TAX_CODE>purchase</TAX_CODE>      
      <TAXPKG_TAX_CODE>U</TAXPKG_TAX_CODE>      
      <PERCENT>1.25</PERCENT>      
      <VALID_FROM_STR>02/01/22</VALID_FROM_STR>      
      <VALID_TO_STR>01/31/23</VALID_TO_STR>      
      <TAX_JURISDICTION>Cou</TAX_JURISDICTION>      
      <TAX_JURISDICTION_LIST>*</TAX_JURISDICTION_LIST>      
      <DESCR>Sales</DESCR>      
      <RULE_TYPE>Std</RULE_TYPE>    
   </TAXES>
</ConfigObject>

Creating Tax Codes for Vertex (Patch Set 5)

In BRM 12.0 Patch Set 5, you specify to calculate taxes using Vertex by mapping tax codes to Vertex product codes in the config_taxcodes_map.xml file. The Vertex product codes are used to apply the tax rate.

Vertex product codes are numeric and, therefore, not descriptive. When you create your tax codes, you can use descriptive names, such as usage, purchase, and so on.

Table 3-4 describes the elements in the config_taxcodes_map.xml file for configuring taxation with Vertex.

Table 3-4 Tax Code Elements for Vertex Taxation

Element Description

<TAX_CODE>

The tax code. A unique alphanumeric value that defines categories with different tax treatments.

<TAXPKG_TAX_CODE>

The tax package you use:

  • C: Vertex Communications Tax Q Series (telecommunications).

  • Q: Vertex Sales Tax Q Series (sales and use).

<CODE1>

The field value is determined by the tax package you use.

  • For Vertex Communications Tax Q Series, this field is the category code. See the Communications Tax Q Series documentation for more information about its category codes.

  • For Vertex Sales Tax Q Series, this field is the transaction type. See the Sales Tax Q Series documentation for more information about transaction types.

<CODE2>

The field value is determined by the tax package you use.

  • For Vertex Communications Tax Q Series, this field is the service code. See the Communications Tax Q Series documentation for more information about service codes.

  • For Vertex Sales Tax Q Series, this field is the transaction subtype. See the Sales Tax Q Series documentation for more information about transaction subtypes.

<SALES_INDICATOR>

The sales indicator. This is the resale flag field for Vertex Communications Tax Q Series and Vertex Sales Tax Q Series, indicating whether the charge offer is for sale (S) or resale (R). The default is S.

The following sample content for the config_taxcodes_map.xml file maps two tax codes to Vertex product codes:

<ConfigObjectconfigName="/config/taxcodes_map"configMode="recreate">    
   <DESCR>Taxcodes Map Configuration</DESCR>    
   <NAME>taxcodes_map</NAME>    
   <TAXES elem="1">      
      <TAX_CODE>qt_usage</TAX_CODE>      
      <TAXPKG_TAX_CODE>Q</TAXPKG_TAX_CODE>      
      <CODE1>01</CODE1>      
      <CODE2>01</CODE2>      
      <SALES_INDICATOR>S</SALES_INDICATOR>    
   </TAXES>    
   <TAXES elem="2">      
      <TAX_CODE>qt_cycle</TAX_CODE>      
      <TAXPKG_TAX_CODE>Q</TAXPKG_TAX_CODE>      
      <CODE1>01</CODE1>      
      <CODE2>01</CODE2>      
      <SALES_INDICATOR>S</SALES_INDICATOR>    
   </TAXES>
</ConfigObject>

When configuring Vertex tax calculation, you also need to configure tax suppliers. See "Creating Tax Suppliers".

Creating Tax Codes Using taxcodes_map File (Patch Set 4 and Earlier)

To implement tax codes in BRM 12.0 through BRM 12.0 Patch Set 4, you define them in the BRM_home/sys/cm/taxcodes_map file. The file contains different content depending on how you calculate taxes:

  • If you calculate taxes based on a flat tax, the taxcodes_map file defines the tax rate, such as 4%. See "Creating Tax Codes for a Flat Tax or Custom Implementation".

  • If you calculate taxes using Vertex, the taxcodes_map file does not include the tax rate. Instead, it maps the BRM tax codes to Vertex product codes. The Vertex product codes are used to apply the tax rate.

    Vertex product codes are numeric and, therefore, not descriptive. When you create your tax codes, you can use descriptive names, such as usage, purchase, and so on. See "Creating Tax Codes for Vertex".

After you edit the file, you do not need to load the taxcodes_map file into the BRM database.

If you change the name or location of the taxcodes_map file, edit the following line in the BRM_home/sys/cm/pin.conf file:

- fm_rate taxcodes_map location 

where location is the name and path of the file.

Creating Tax Codes for a Flat Tax or Custom Implementation

You implement simple flat taxes by defining the tax rates directly in the taxcodes_map file. You enter one or more tax rates for each tax code. You can use several criteria, such as validity dates and jurisdictions, to specify more than one rate for each tax code.

Table 3-5 describes what you can enter in each column in the taxcodes_map file.

Table 3-5 taxcodes_map Columns

Column Explanation

Taxcode

The tax code. A unique alphanumeric value that defines categories with different tax treatments.

Pkg

Package code. For flat taxes and custom implementations, this is always U, for user-defined.

Rate

The tax rate in percent. For example, 4.25 means 4.25%.

For prepaid purchase events that grant negative currency balances, the corresponding tax associated with it should also be negative. See the following example:

PREPAID_PURCH_TAX    : U : -4.5 : 02/01/02 : 01/31/08 : Fed : GB  : VAT-GB : Std

Start

Start date of the validity period for the tax rate in mm/dd/yy format.

End

End date of the validity period for the tax rate in mm/dd/yy format.

Lvl

Jurisdiction level for which this rate is applicable. Values are:

Fed: Federal level

Sta: State level

Cou: County level

Cit: City level

List

List of jurisdiction values applicable for this rate. Similar to a nexus for the corresponding jurisdiction level.

For example, if the Lvl value is Sta, the List values must be state-level jurisdictions. Separate list values by a semicolon (;). To make the value applicable to all, use an asterisk (*).

Descr

Text description of the tax.

Rule

Determines how taxes will be calculated. Values are:

Std: Standard tax computation. Taxes are computed based on the taxable amount and added to the total.

Tax: "Tax on tax" computation. Taxes are computed based on previous taxable amounts and taxes and added to the total.

For example, if tax1 = 10%, tax2 = 20%, and charge = 100.00, taxes are computed as follows:

tax1 = 10% @ 100.00 = 10.00

tax2 = 20% @ (100.00 + 10.00) = 22.00

NCS: Noncumulative standard tax computation. Taxes are computed based on the taxable amount but are not added to the total.

NCT: Noncumulative "tax on tax" computation. Taxes are computed based on the taxable amount but are not added to the total.

For example, if tax1 = 10%, tax2 = 20%, and charge = 100.00, taxes are computed as follows:

tax1 = 10% @ 100.00 = 10.00

tax2 = 20% @ 100.00 = 20.00

The following shows the contents of the taxcodes_map file for a flat tax.

# Taxcode     Pkg  Rate   Start      End        Lvl   List         Descr      Rule
# -------     ---  -----  -----      ---        ---   ----         -----      ----
  usage     : U :  4.0  : 02/01/16 : 01/31/17 : Fed : US         : USF      : Std
  cycle     : U :  3.5  : 02/01/16 : 01/31/17 : Fed : US         : Excise   : Std
  purchase  : U :  8.25 : 02/01/16 : 01/31/17 : Sta : CA         : Sales    : Std
  toll      : U :  2.0  : 02/01/16 : 01/31/17 : Fed : US         : TRS      : Tax
  toll      : U :  1.5  : 02/01/17 : 01/31/18 : Sta : CA         : 911      : Tax
  toll      : U :  2.0  : 01/01/18 : 01/01/19 : Sta : CA         : B&O      : Tax
  toll      : U :  3.15 : 01/01/16 : 01/01/17 : Cit : Cupertino  : Deaf     : Tax
  VAT       : U :  5.0  : 02/01/16 : 01/31/17 : Fed : GB;FR      : VAT-EU   : Std
  VAT       : U :  4.5  : 02/01/16 : 01/31/18 : Fed : GB         : VAT-GB   : Std
  VAT       : U :  4.0  : 02/01/16 : 01/31/18 : Fed : FR         : VAT-FR   : Std

Creating Tax Codes for Vertex

The taxcodes_map file for Vertex maps BRM tax codes to Vertex product codes.

Table 3-6 lists the columns in the taxcodes_map file for Vertex:

Table 3-6 taxcodes_map Columns for Vertex

Column Explanation

Taxcode

The tax code. A unique alphanumeric value that defines categories with different tax treatments.

Pkg

The tax package you use:

  • C: Vertex Communications Tax Q Series (telecommunications).

  • Q: Vertex Sales Tax Q Series (sales and use).

Code 1

The field value is determined by the tax package you use.

  • For Vertex Communications Tax Q Series, this field is the category code. See the Communications Tax Q Series documentation for more information about its category codes.

  • For Vertex Sales Tax Q Series, this field is the transaction type. See the Sales Tax Q Series documentation for more information on transaction types.

Code 2

The field value is determined by the tax package you use.

  • For Vertex Communications Tax Q Series, this field is the service code. Refer to the Communications Tax Q Series documentation for more information on service codes.

  • For Vertex Sales Tax Q Series, this field is the transaction subtype. Refer to the Sales Tax Q Series documentation for more information on transaction subtypes.

Si

Sales indicator. For Vertex Communications Tax Q Series and Vertex Sales Tax Q Series, this is the resale flag field, which indicates if the charge offer is for sale (S) or resale (R). The default is S.

See your tax package documentation for information about product codes, service codes, and service indicators.

The following is an example of a taxcodes_map file for Vertex:

#   Taxcode           Pkg   Code1   Code2   Si
#   ---------------   ---   -----   -----   --
#   usage           :  T  : 85000 : 85000 :  S
#   cycle           :  T  : 61000 : 61000 :  S
#   t_shirt         :  T  :   899 :   899 :   
#   modem_rent      :  T  :   234 :  1234 :  R
#   usage2          :  Q  :    01 :    01 :  S
#   direct          :  C  :    01 :    01 :  S
#   toll            :  C  :    04 :    02 :  S
#   direct2         :  B  :    01 :    04 :  S
#   toll2           :  B  :    01 :    01 :  S
#   user_code       :  U  :  10.0
monthlyCard         :  Q  :    03 :    03 :  S
installVertex       :  Q  :    03 :    03 :  S
interCommtax        :  C  :    04 :    01 :  S
chet_is_cool        :  C  :    04 :    01 :  S
intraCommtax        :  C  :    01 :    02 :  S
ipUsage             :  Q  :    03 :    03 :  S

When configuring Vertex tax calculation, you also need to configure tax suppliers. See "Creating Tax Suppliers".

Creating Tax Selectors Using ImportExportPricing (Patch Set 6 and Later)

In Patch Set 6 and later releases, you can create tax selectors in an XML file and publish them to PDC, BRM, and ECE using the ImportExportPricing utility.

To implement tax selectors using ImportExportPricing:

  1. Define your tax selectors in an XML file. You can base them on the sample tax selectors provided in the PDC_home/apps/Samples/Examples/SampleTaxSelector.xml file.

    See "Creating an XML File for Tax Selectors (Patch Set 6 and Later)" for more information about the XML elements in the file.

  2. Import the XML file into PDC using the ImportExportPricing utility:

    ImportExportPricing -import -pricing MyTaxSelectors.xml

    where MyTaxSelectors is the name of the XML file where you defined the tax selectors.

The ImportExportPricing utility publishes the tax selectors to the PDC database, real-time rating engine (RRE), and ECE.

Note:

You cannot publish tax selectors to the batch rating engine (BRE).

Creating an XML File for Tax Selectors (Patch Set 6 and Later)

In BRM 12.0 Patch Set 6 and later, you can implement tax selectors by defining them in an XML file that you import into PDC. In the file, you enter a tax selector and then define the rules for assigning tax codes to charges, discounts, and chargeshares.

The following sample XML shows how to create tax selectors:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><pdc:PricingObjectsJXB xmlns:pdc="http://xmlns.oracle.com/communications/platform/model/pricing">
<taxSelector xmlns:pdc="http://xmlns.oracle.com/communications/platform/model/pricing">
   <name>Sample_TAX_SELECTOR</name>
   <description>Sample TAX_SELECTOR</description>
   <pricingProfileName>Convergent Usage</pricingProfileName>
   <priceListName>Default</priceListName>
   <obsolete>false</obsolete>
   <stereoType>TAX_SELECTOR</stereoType>
   <productSpecName>TelcoGsmSms</productSpecName>
   <eventSpecName>EventDelayedSessionTelcoGsm</eventSpecName>
   <validityPeriod>
      <validFrom>0</validFrom>
      <rule>
         <name>Rule1</name>
         <result>
            <resultName>VAT</resultName>
         </result>
         <fieldToValueExpression>
            <operation>REGEX</operation>
            <seperator>;</seperator>
            <fieldName>EventDelayedSessionTelcoGsm.CALLED_ID</fieldName>
            <fieldValue>1800.*</fieldValue>
            <fieldKind>EVENT_SPEC_FIELD</fieldKind>
         </fieldToValueExpression>
      </rule>
      <rule>
         <name>Rule2</name>
         <result>
            <resultName>toll</resultName>
         </result>
         <fieldToValueExpression>
            <operation>REGEX</operation>
            <seperator>;</seperator>
            <fieldName>EventDelayedSessionTelcoGsm.CALLED_ID</fieldName>
            <fieldValue>.*</fieldValue>
            <fieldKind>EVENT_SPEC_FIELD</fieldKind>
         </fieldToValueExpression>
      </rule>
   </validityPeriod>
   </taxSelector></pdc:PricingObjectsJXB>

Table 3-7 describes the important XML elements specific to tax selectors.

Table 3-7 XML Elements in the Tax Selector File

Element Description
name The name of the tax selector.
description A description of the tax selector.

pricingProfileName

The pricing profile to associate with the tax selector.

priceListName The name of the price list to which the selector applies.
stereoType The type of pricing object: TAX_SELECTOR.

productSpecName

The service type to which the tax selector applies.

eventSpecName

The event type to which the tax selector applies.

validityPeriod

Indicates when the rules in the tax selector are valid. The default effective period starts immediately and never ends.

name

The name of a rule.

resultName The name of the tax code to apply when all criteria in the rule is met.
operation The operator to apply, which is dependent on the field. The valid values are: REGEX, EQUAL_TO, NOT_EQUAL_TO, GREATER_THAN, GREATER_THAN_EQUAL, LESS_THAN, LESS_THAN_EQUAL, IN_LIST, and MAPS_TO.

seperator

The character that is used to separate the field values, such as a semicolon (;).

fieldName

The name of the field to evaluate.

fieldValue

The required value of the field.

fieldKind

The type of attributes to be selected for assigning the tax code. The valid values are: EVENT_SPEC_FIELD, PRODUCT_SPEC_FIELD, CUSTOMER_SPEC_FIELD, and PROFILE_SPEC_FIELD.