1 About Calculating Taxes

This chapter describes how Oracle Communications Billing and Revenue Management (BRM) calculates taxes.

Before reading this document, you should be familiar with BRM architecture, real-time rating, and Pipeline Manager. For information, see the following documents:

About Taxation

BRM can calculate taxes for events that are rated in real time and by pipeline batch rating. You can choose whether taxes are calculated using third-party tax software or within BRM. You can also choose to apply taxes during real-time rating, during pipeline batch rating, during billing, or a combination of the three.

Important:

BRM applies taxes to currency resources only. It does not apply taxes to non-currency resources.

Choosing the Tax Calculation Method

You can configure the method that BRM uses to calculate taxes. There are three possibilities:

Choosing When to Calculate Taxes

You can configure BRM to calculate taxes at one or more of the following times:

  • During real-time rating. In this configuration, taxes are calculated when the event occurs, and they are added to the customer's account balance in real time. This way, you always have an accurate reading of a customer's account balance at any time in the accounting cycle.

    See "About Specifying When to Tax Events" for more information.

  • During pipeline batch rating. In this configuration, taxes are calculated for events as they are rated in a pipeline. Taxes are added to account balances at the same time as other balance impacts from pipeline batch rating. Taxing events during pipeline rating allows you to generate pipeline output files that include both usage and tax charges.

    See "About Pipeline Taxation" for more information.

  • During billing. Deferring tax calculation to the billing process reduces rounding errors because all events of the same type are calculated together. For example, taxes are calculated on the total amount of usage fees rather than on individual usage events.

    See "About Specifying When to Tax Events" for more information.

About Pipeline Taxation

BRM can apply taxes to events rated by Pipeline Manager. You can configure your system to tax pipeline events in one of the following ways:

  • During the pipeline rating process. Taxing events during pipeline rating allows you to generate pipeline output files that include both usage and tax charges. This is useful when output files are not sent through the billing process. For example, when you rate outcollect roaming calls, you rate calls from another carrier's customer and then send the pipeline output files directly to the other carrier for rating and verification.

    Important:

    You can apply only flat taxes during pipeline rating. For complex taxation, you must defer taxation to the billing process.
  • During the billing process. Deferring taxation to the BRM billing process allows you to apply complex tax rules by using third-party tax software or customized BRM policy opcodes. It also reduces rounding errors because BRM taxes all events of the same type at the same time. This configuration works best for most wireless applications because it allows complex taxation.

  • During both pipeline rating and billing. Taxing events during both pipeline rating and BRM billing allows you to:

    • Obtain itemized tax charges for each usage event.

    • Tax non-usage events, such as one-time purchase and cycle-time events, that are rated in real time rather than by Pipeline Manager.

See "Setting Up Pipeline Manager Taxation" for more information.

About Tax Calculation for Account Groups

In an account group, parent accounts always pay taxes for accounts with nonpaying (subordinate) bill units. However, there are two ways to calculate taxes. Taxes can be calculated for each individual nonpaying child bill unit and can be listed as separate items on the parent bill, or taxes can be consolidated into a single item for both the parent and subordinate bill units.

You specify how BRM calculates taxes for account groups by entering one of the following values in the cycle_tax_interval entry in the Connection Manager (CM) configuration (pin.conf) file:

  • accounting (default): BRM calculates taxes separately for the parent and each subordinate bill unit and then lists the taxes as separate items on the parent bill.

  • billing: BRM rolls activities for each subordinate bill unit into the parent account and calculates taxes for the parent account only. The single tax item on the parent account includes taxes from both the parent and subordinate bill units. This option improves overall performance of BRM tax computation.

    Important:

    Bill Now, regardless of the option you select for the entry, always calculates taxes this way.

    Note:

    When Bill Now is run on the child account, the PIN_FLD_GROUP_OBJ field in the /event/billing/cycle/tax object contains the POID of the subordinate bill unit. When Bill Now is run on the parent account, the field contains the POID of the parent account's bill unit. This field is not populated during regular billing.

About Tax Calculation for Adjustments, Disputes, and Settlements

You can specify whether to perform an adjustment, dispute, or settlement with or without taxes, provided the original item or event was taxable. Taxed adjustments, disputes, and settlements effectively reverse whatever tax was levied on the original item. See "Configuring Adjustments, Disputes, and Settlements" in BRM Managing Accounts Receivable for more information.

Calculating Taxes by Using Third-Party Tax Software

When using third-party tax software, BRM calculates taxes as follows:

  1. BRM rates a billable event and then collects information about the event that can be used for calculating taxes, such as the location of your business, the location of the customer, and customer tax exemptions.

    See "About Supplying the Data Needed for Calculating Taxes" for more information.

  2. A BRM tax manager compiles the tax calculation data into a transaction and sends it to your third-party tax software.

    See "About BRM Tax Managers" for more information.

  3. The third-party tax software calculates the taxes on the event and returns the tax amount to BRM.

    See "About Third-Party Tax Software" for more information.

  4. BRM adds the tax amount to the customer's account balance.

  5. BRM records the tax amount as general ledger (G/L) data.

    See "Planning Your G/L IDs" in BRM Collecting General Ledger Data for more information.

About Third-Party Tax Software

You can use one or more of the following third-party tax software packages with BRM:

  • Vertex Sales Tax Q Series: This software calculates sales and use taxes for the United States and Canada.

  • Vertex Communications Tax Q Series: This software calculates telecommunications taxes for the United States and Canada.

    Important:

    Third-party tax software is not included with BRM. You must separately obtain and install the software you want.

For detailed information about each package, see its documentation.

About BRM Tax Managers

BRM uses tax managers to communicate with third-party tax software. The tax manager compiles all tax-related data for an event and then sends the data to your third-party tax software.

Table 1-1 lists the supported third-party tax software packages and the corresponding BRM tax managers. BRM tax managers are optional features that you install separately.

Table 1-1 Supported Third-Party Tax Software Packages

Tax Software BRM Tax Manager

Vertex Communications Tax Q Series

Vertex Manager.

To configure Vertex Manager, see "Setting Up Tax Calculation for Vertex" for details.

Vertex Sales Tax Q Series

Vertex Quantum Manager or Vertex Manager.

To configure Vertex Manager or Vertex Quantum Manager, see "Setting Up Tax Calculation for Vertex" for details.


Note:

BRM has its own auditing features. It does not support the auditing features of Vertex Communications Tax Q Series, or Vertex Sales Tax Q Series. The auditing features in these tax packages do not handle all of the information that is stored in BRM.

About Supplying the Data Needed for Calculating Taxes

Some of the data that the tax software uses for calculating taxes is taken from the event itself. For example:

  • The amount charged or credited.

  • The currency used when charging for the event.

  • The date of the event.

  • The location of the customer (for tax purposes, this is called the shipped-to location).

This information is obtained from the event and from the account; you do not need to configure anything to include it in the data sent to the tax software. However, you do need to configure BRM to supply the following data:

About Specifying Tax Codes

A tax code indicates which tax to apply based on the BRM product. For example, a t-shirt uses a different tax code than an online service subscription. Each tax package includes its own tax codes, called product codes. Instead of using these product codes, which are numeric and therefore not descriptive, you can create and use your own tax codes and map them to the tax software's product codes.

To implement tax codes, you define them in the taxcodes_map file (BRM_Home/sys/cm is the default location). By default, the taxcodes_map file supplies BRM with the following information about your third-party software.

  • Pkg: The tax package you 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 product 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:

#   Taxcode           Pkg   Code1   Code2   Si   Wt_code   Cmdty_code
#   ---------------   ---   -----   -----   --   -------   ----------
#   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  :        :

About Tax Suppliers

A tax supplier is the company or corporate division responsible for collecting taxes for a given transaction. Tax suppliers typically include your corporate headquarters and branch offices. Third-party tax software uses the tax supplier to calculate taxes.

Tax supplier data can include the following information:

  • The name of the tax supplier.

  • The address to use as the ship-from locale. See "About Tax Suppliers and Locales" for more information.

  • Whether the tax supplier is the default tax supplier.

  • The tax nexus state. You can have a tax nexus in any state where your company has a substantial presence, as defined by federal tax laws.

  • The VAT certificate number.

You specify how to supply tax supplier data to your tax software in one of the following ways:

  • Provide the tax supplier data with each transaction that you send to the tax software. For example, each transaction might include the ship-from locale based on the tax supplier address and the applicable VAT certificate. See "Providing the Tax Supplier Data with Each Transaction" for more information.

  • Allow the tax software to determine the correct tax supplier based on the transaction data plus the company and business locations you give the tax software. You provide information to the tax software by running the tax software's toolkits. The tax software then determines which ship-from locale to use, if there is a tax nexus presence, and which VAT certificate to use. See "Allowing Your Sales and Use Tax Software to Determine Tax Supplier Data" for more information.

About Tax Suppliers and Locales

Tax software typically calculates taxes by using four locales:

  • Shipped-to: The address of the customer who made the purchase. BRM obtains the shipped-to address from the customer's account. For telecommunications taxation, this is the termination number.

  • Shipped-from: The address of the company supplying the product. For telecommunications taxation, this is the origination number.

  • Bill origin: The location from which the product was shipped (also called point of origin); for example, a warehouse. This is not used for telecommunications taxation.

  • Bill approval: The location where the order for the product was taken (also called point of acceptance); for example, the location of a customer service representative who registers your customers. For telecommunications taxation, this is the charge-to number.

For sales and use taxes, BRM does not differentiate between ship from, bill origin, and bill approval. Therefore, when providing the tax software with data, BRM uses the same value for all three locales. This value is derived from the tax supplier's address. For telecommunications taxation, the numbers are derived from call details records (CDRs).

Note:

For telecommunications taxation, the shipped-to, bill origin, and bill approval locales are not used and are therefore stored in BRM with a NULL value.

For information on customizing the tax locales, see "Retrieving Tax Calculation Data" for more information.

Providing the Tax Supplier Data with Each Transaction

If your business uses only one tax supplier, you can define a default tax supplier to use for all products. You do not need to enter any tax supplier information when creating products in Pricing Center.

You can specify multiple tax suppliers. Use Pricing Center to assign each product in your price list to a tax supplier. When an event is rated, the tax supplier defined in the product is sent to the tax software.

For example, if you offer different products in different states, you can indicate the state in which the product was sold by choosing the tax supplier for that state.

Allowing Your Sales and Use Tax Software to Determine Tax Supplier Data

If your business has customers in multiple countries or operates under other conditions where complex tax laws are involved, you should allow your sales and use tax software to choose the correct tax supplier. The disadvantage is that you need to include every BRM product in the tax_supplier_map file, and you need to update the file when you add or delete products.

The tax_supplier_map file allows your tax package to determine the correct tax supplier company ID and business location, based on the product and the ship-to locale.

The ship-from address that you define in the tax_supplier_map file can be different from the address used when you defined the tax supplier. In this case, your tax package obtains the address from the tax_supplier_map file. This allows you to create multiple ship-from addresses for a single tax supplier.

For Sales Tax Q Series, the tax_supplier_map file also maps BRM tax supplier names to your company IDs stored in the company profile, Sales Tax Q Series TDM. BRM uses this information to maintain database integrity.

For telecommunications tax only, the Reg (regulated) column identifies the billing company as regulated (0) or unregulated (1). This flag determines whether the taxes of unregulated or regulated utilities are calculated.

The following example shows part of a tax_supplier_map file:

Product    ShipTo     Company ID     Business loc  Ship From                Reg
_______________________________________________________________________________
Item_One : ;;CA;US : Tax supplier1 : loc_1       : Cupertino;CA;95014;US :  1
Sub_One  : ;;;US   : Tax supplier1 : loc_1       : Cupertino;CA;95014;US :  1
Sub_One  : ;;;FR   : Tax supplier2 : loc_2       : Paris;;;FR            :  0

About Tax Exemptions

When sending data to the tax software, BRM includes tax exemptions for the customer.

Use Customer Center to specify tax exemptions for each account. For example, you can specify if an account is exempt from city taxes. You can also specify the percentage of the exemption. For example, if 10% of the amount is not taxed, enter 10. For a total exemption, type 100.

See Customer Center Help for more information on adding, changing, and deleting tax exemption information.

Note:

  • You can supply tax exemptions only after the account is created. Therefore, tax exemptions do not apply to charges incurred when you create the account.

  • Communications Tax Q Series does not support partial tax exemptions in percentage. It supports only full exemption (100%) or no exemption (0%). If you set up an account to have partial tax exemption, BRM sends the transaction for this account to the tax package as 100% tax exempt.

Updating Your Tax Software

If you use a tax DM to obtain tax data, you should update the configuration files periodically. These files, which you obtain from the company that makes your tax software, contain updated tax information such as tax tables that have changed because of new state or national laws. Check with your tax software representative for information about obtaining updates.

Calculating Taxes by Using Policy Opcodes

If your business does not require complex tax calculation, you can use the built-in capabilities of BRM to define tax rates. You can also modify those capabilities for more complex situations. See "Using Custom Tax Rates" for more information.

Calculating Flat Taxes by Using the taxcodes_map File

You implement simple flat taxes 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.

Note:

To define flat taxes, you use a different format in the taxcodes_map file than you use for third-party tax calculation software.

Important:

Each tax code entry must have U in the Pkg column of the taxcodes_map file. The U entry causes the PCM_OP_CUST_POL_TAX_INIT policy opcode to cache the tax rate information. These rates are applied by the PCM_OP_CUST_POL_TAX_CALC policy opcode.

In the following sample taxcodes_map file, the highlighted entry is for a 4.5% VAT that is valid from February 1, 2002, to January 31, 2008, in Great Britain.

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

Table 1-2 provides descriptions of what you can enter in the each of the columns in the taxcodes_map file:

Table 1-2 taxcodes_map Columns

Column Explanation

Taxcode

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

Pkg

Package code. For custom tax policies, this is always U, for user-defined.

Rate

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

For prepaid purchase events that grant negative currency resources, 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 computed. Values are:

Std - 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

NCS - Non-cumulative standard tax computation. Taxes are computed based on the taxable amount but are not added to the total.

NCT - Non-cumulative "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


To define tax rates:

  1. Ensure that your CM configuration file (pin.conf) contains an entry specifying the location of the taxcodes_map file. For example:

    - fm_rate taxcodes_map ./taxcodes_map
      
    
  2. Open the taxcodes_map file, which is located by default in the BRM_Home/sys/cm directory.

  3. Edit the taxcodes_map file to contain the tax codes and rates used for your products.

  4. Save and close the file.

  5. Stop and restart the CM.

    See "Starting and Stopping the BRM System" in BRM System Administrator's Guide for more information.

About Defining Tax Suppliers

Tax suppliers are saved in BRM as /config/tax_supplier objects. You must define at least one tax supplier for your system, even if you use the BRM database as the primary source of tax supplier information. If you define multiple tax suppliers, you can have only one default tax supplier.

If you use a third-party tax calculation software, the procedure is slightly different depending on the software. See "Setting up Tax Supplier Information" for information on Vertex.

Defining Tax Suppliers and Loading Them into the BRM Database

You define tax suppliers by editing the BRM_Home/sys/data/config/pin_tax_supplier.xml file. You load tax suppliers into the database by running the "load_tax_supplier" utility.

You cannot add or change tax suppliers individually. Each time you run load_tax_supplier, you overwrite existing data with the entire contents of the pin_tax_supplier.xml file. To modify or remove existing tax suppliers, edit or remove their information in the file before loading it.

To define and load tax suppliers:

  1. Open the pin_tax_supplier.xml file in an XML editor or a text editor.

    By default, this file is located in BRM_Home/sys/data/config.

  2. Add a TaxSupplierElement child element to the TaxSupplierConfiguration parent element for each tax supplier.

    A TaxSupplierElement looks like this:

      <TaxSupplierElement>
         <Name>supplier_name</Name>
         <Description>supplier_description</Description>
         <Address>supplier_address</Address>
         <NexusInfo>nexus_values</NexusInfo>
         <RegulatedFlag>flag_value</RegulatedFlag>
         <DefaultFlag>flag_value</DefaultFlag>
         <VATInfo>
            <CanonCountry>country_code</CanonCountry>
            <VATCertificate>certificate_number</VATCertificate>
         </VATInfo>
      </TaxSupplierElement>
      
    
  3. Set values for the tags in the TaxSupplierElement child element.

    See "Entries in the pin_tax_supplier.xml File" for information about tag values.

  4. Save and close the file.

  5. Enter the following command to load the tax supplier data:

    load_tax_supplier pin_tax_supplier.xml 
    

    Important:

    If you are not working in the same directory as the pin_tax_supplier.xml file, include the complete path to the file. For example:
    load_tax_supplier BRM_Home/sys/data/config/pin_tax_supplier.xml
      
    
  6. Stop and restart the CM.

    See "Starting and Stopping the BRM System" in BRM System Administrator's Guide for more information.

To verify that the pin_tax_supplier.xml file was loaded, you can display the /config/tax_supplier object by using the Object Browser, or use the robj command with the testnap utility. (See "Reading an Object and Writing its Contents to a File" in BRM Developer's Guide.)

Entries in the pin_tax_supplier.xml File

By default, the pin_tax_supplier.xml file is located in BRM_Home/sys/data/config. Table 1-3 describes the pin_tax_supplier.xml file.

Table 1-3 pin_tax_supplier.xml File

Entry Description

Name

Enter the tax supplier name. This name is the company ID in the tax_supplier_map file. This name appears in Pricing Center as the tax supplier ID.

Vertex - This name is the company ID in the TDM or company file. If you use the TDM, the entry will be a four-character code. The name must match exactly.

Description

Enter a description for the tax supplier.

Address

Enter the address of the tax supplier. Use the following format:

city;state;zip_code;country

NexusInfo

Enter a semicolon-delimited list of states in which the tax supplier has a tax nexus.

If you use third-party taxation software, enter an asterisk (*) to allow Vertex to determine the tax nexus.

See "Setting Up Tax Calculation for Vertex" for more information.

RegulatedFlag

Vertex: For Communications Tax Q Series, enter whether the utility is regulated (1) or unregulated (0).

DefaultFlag

Enter 1 for default the tax supplier; enter 0 for all other tax suppliers.

If you have multiple tax suppliers, only one can be the default.

CanonCountry

Enter the country name.

See the Vertex documentation for a list of valid values.

VATCertificate

Enter the VAT certificate number associated with the tax supplier. BRM currently does not use this entry. This entry can be used in a custom implementation of tax calculation.


Example pin_tax_supplier.xml File

The following pin_tax_supplier.xml file contains two tax suppliers; the first is the default tax supplier.

<TaxSupplierConfiguration> 
  <TaxSupplierElement>
     <Name>TS_1</Name>
     <Description>Tax Supplier 1</Description>
     <Address>Cupertino;CA;95014;US</Address>
     <NexusInfo>*</NexusInfo>
     <RegulatedFlag>0</RegulatedFlag>
     <DefaultFlag>1</DefaultFlag>
     <VATInfo>
        <CanonCountry>US</CanonCountry>
        <VATCertificate>vat_cert_US</VATCertificate>
     </VATInfo>
     <VATInfo>
        <CanonCountry>UK</CanonCountry>
        <VATCertificate>vat_cert_UK</VATCertificate>
     </VATInfo>
  </TaxSupplierElement>
  <TaxSupplierElement>
     <Name>TS_2</Name>
     <Description>Tax Supplier 2</Description>
     <Address>New York;NY;10013;US</Address>
     <NexusInfo>*</NexusInfo>
     <RegulatedFlag>0</RegulatedFlag>
     <DefaultFlag>0</DefaultFlag>
     <VATInfo>
        <CanonCountry>US</CanonCountry>
        <VATCertificate>vat_cert_US</VATCertificate>
     </VATInfo>
     <VATInfo>
        <CanonCountry>UK</CanonCountry>
        <VATCertificate>vat_cert_UK</VATCertificate>
     </VATInfo>
  </TaxSupplierElement>
</TaxSupplierConfiguration> 

About Specifying When to Tax Events

BRM can apply taxes during one or more of these processes:

  • Real-time rating

  • Billing

  • Pipeline rating

To enable taxation during real-time rating or billing, see "Enabling Taxation During Real-Time Rating or Billing" for more information.

You specify whether to tax events during the pipeline rating process by configuring the pipeline to include particular modules. See "Setting Up Pipelines to Tax Events" for more information.

Enabling Taxation During Real-Time Rating or Billing

You specify whether to tax events during the real-time rating process or the billing process in two ways:

Enabling Taxation Globally

You can turn BRM taxation on and off globally by using the taxation_switch entry in the CM configuration file (BRM_Home/sys/cm/pin.conf). You can choose to enable real-time tax calculation, deferred tax calculation, or both (the default setting). You can also disable tax calculation entirely.

Note:

Because deferred taxation procedures are triggered even if BRM is not configured to use taxation features, turning taxation off can improve performance. If BRM is configured for taxation, you can turn taxation off and on for testing.

Important:

When real-time discounting is enabled, you must also set the FCT_Discount module registry entry TaxationMode to be the same as the taxation_switch entry so that tax is calculated based on the amount due after discounts have been applied. Otherwise, tax is calculated based on the original due amount.

To enable or disable taxation globally:

  1. Open the Connection Manager (CM) configuration file (BRM_Home/sys/cm/pin.conf).

  2. Set the value of the taxation_switch entry.

    You can use any of the following values:

    0 - Tax calculation is entirely disabled.

    1 - Only real-time tax calculation is enabled.

    2 - Only deferred (cycle-time) tax calculation is enabled.

    3 - (Default) Both real-time and deferred tax calculation are enabled.

    For example:

    - fm_bill taxation_switch 1
      
    
  3. Save and close the file.

  4. Stop and restart the CM.

    See the discussion of starting and stopping BRM in BRM System Administrator's Guide for more information.

Specifying Taxation In Your Real-Time Rate Plans

You can specify the following for each rate plan that you create in Pricing Center:

  • The tax code to apply.

  • When to apply the tax code: during real-time rating or billing.

To assign taxation to specific rate plans:

  1. Open a real-time rate plan in Pricing Center.

  2. In the Rate Plan Properties dialog box, specify when to calculate taxes and which tax code to apply as shown in Figure 1-1.

Figure 1-1 Rate Plan Properties Dialog Box

Description of Figure 1-1 follows
Description of ''Figure 1-1 Rate Plan Properties Dialog Box''

For more information on how to specify taxation in a rate plan, see Pricing Center Help.

Recording Taxes in the General Ledger (G/L)

You can record taxes as general ledger data. To do so:

  • Create a general ledger ID (G/L ID) for each tax code.

  • Run the General Ledger report with the Tax attribute.

See "About Collecting General Ledger Data" in BRM Collecting General Ledger Data for more information.

Reversing Tax Balance Impacts

When you make an adjustment in the Event Browser, the adjustment can include taxes. See Event Browser Help for more information.

Tax Information Stored for Each Event

For each taxable event, BRM can store the following information:

  • The currency resource used to calculate the tax. This is always the account currency.

  • The tax code of the rate used to charge for the event.

  • The amount charged for the event before taxes are applied.

  • The G/L ID associated with the tax code. See "Planning Your G/L IDs" in BRM Collecting General Ledger Data for details.

  • The ship-to address (location where the tax is charged).

  • The ship-from address (location where the tax originated).

  • Bill-acceptance address.

  • Bill-origin address.

  • The tax exemption type.

  • The name of the tax type, such as state or local.

  • The amount of taxation.

  • The tax rate, stored as a percentage.

  • Whether the tax is sales, use, or rental.

Note:

For zero balance impact events or free events, BRM stores only the address information.

Configuring How BRM Calculates Taxes

You can configure several aspects of BRM tax treatment. These include:

About Validating Customer Addresses

When taxes are calculated for customers in the United States, the tax rate is partially determined by the customer's ZIP code. If the customer's ZIP code is not correct and fails validation, or it is for a different state, the tax software calculates the taxes as 0.

To avoid this problem, you can configure BRM to validate the customer's state and ZIP code when the customer registers.

Some third-party tax packages provide address validation. You can enable address validation by specifying which package to use for the tax_valid entry in the CM pin.conf file. The validation performed depends on the software you specify:

  • Vertex Sales Tax Q Series validates city, state, and ZIP code.

  • Vertex Communications Tax Q Series does not support address validation. If you configure BRM to use Communications Tax Q Series for validation, it always returns a positive result.

To specify a tax package to validate addresses:

  1. Open the Connection Manager (CM) configuration file (BRM_Home/sys/cm/pin.conf).

  2. Set the value of the tax_valid entry.

    You can use any one of the following values in Table 1-4:

    Table 1-4 tax_valid Values

    Value Description

    0

    BRM does not check the ZIP code. Default value.

    3

    BRM uses Vertex Sales Tax Q Series to validate the ZIP code.

    (The Vertex DM must be running.)

    4

    No effect. BRM uses Communications Tax Q Series to validate the ZIP code, but Communications Tax Q Series does not perform any validation. A positive result is always returned.


    For example:

    - fm_cust_pol tax_valid 3
      
    
  3. Save and close the file.

  4. Stop and restart the CM.

    See the discussion of starting and stopping BRM in BRM System Administrator's Guide.

Reporting Zero Tax Amounts

By default, when a zero amount is returned from taxation, BRM does not report the tax amount and the TAX_JURISDICTIONS array is not created for the event. However, legal requirements in some jurisdictions demand that zero tax amounts be reported.

To configure BRM to report zero taxes for jurisdictions:

  1. Open the CM configuration file (BRM_Home/sys/cm/pin.conf).

  2. Uncomment the fm_rate include_zero_tax entry and change the value of the entry to 1:

    - fm_rate include_zero_tax 1
      
    
  3. Save and close the file.

  4. Stop and restart the CM.

    See the discussion of starting and stopping BRM in BRM System Administrator's Guide.

If multiple taxes, including zero taxes, are reported from the same jurisdiction, they are aggregated by default. This may hide the effect of reporting zero taxes. To prevent zero taxes from being hidden in this way, you should configure BRM to itemize taxes by jurisdiction. See "Itemizing Taxes by Jurisdiction" for more information.

Itemizing Taxes by Jurisdiction

To configure BRM to itemize all taxes by jurisdiction:

  1. Open the CM configuration file (BRM_Home/sys/cm/pin.conf).

  2. Change the value of the following entry to itemize:

    - fm_rate tax_return_juris itemize
      
    
  3. Save and close the file.

  4. Stop and restart the CM.

    See the discussion of starting and stopping BRM in BRM System Administrator's Guide.