Compliance Solutions, Inc. (CSI) is a tax management company that offers tax assessment and reporting in the US at the federal, state, county, and local levels and can be used as an alternative to taxation companies such as SureTax and Avalara.

Telecom providers can use CSI’s services in PortaBilling. The CSI integration is available via Add-on Mart. First, you need to sign up for an account with CSI, obtain the credentials, and consult with CSI about tax codes for your products. Then, you subscribe to the CSI module in the Add-on Mart, and the CSI taxation plug-in is activated by PortaOne engineers. Once it’s activated, you can select the CSI taxation plug-in on the PortaBilling web interface and configure the assessment of:

If a customer has users (accounts) in different locations, you can enable tax assessment based on each user’s location.

CSI as a taxation plug-in can be used for configuring taxation on the customer class level as well as for individual customers.

CSI taxation plug-in


Service providers can use the CSI tax management company as an alternative with good customer service for tax assessment and reporting.

Tax processing flow

Link copied to clipboard

Tax assessment via CSI is done using the REST API. Since this integration is available via Add-on Mart, PortaBilling doesn’t send the requests directly to CSI. PortaBilling sends the request to the Add-on Mart cloud infrastructure, which “talks” to CSI via API.

CSI receives xDRs, along with customer/account location information and tax codes, from PortaBilling. CSI assesses taxes and surcharges for the end users and returns this data to PortaBilling. Based on received data, PortaBilling generates tax xDRs and issues invoices for customers. The tax data is stored in the CSI’s database, so it can later be used when filing the tax report for the service provider. If a service provider wants to test tax processing via CSI, they can enable test mode for specific customers. With this mode, CSI assesses taxes for these customers, but the taxes are not stored on the CSI’s side and are not included in tax reporting.


Link copied to clipboard

Along with the taxes, CSI assesses surcharges. These are fees that the US telecom providers must pay to local government-administered funds. An example of such a surcharge is the Universal Service Fund (USF) fee used to support low-income households and high-cost areas by improving telecom infrastructure for them. The Federal Communications Commission (FCC) allows telecom providers to collect surcharges from their customers. The surcharges are shown in customers’ invoices in the tax section.

Tax/surcharge assessment based on the actual share of interstate traffic (PIU ratio)

Link copied to clipboard

Some taxes/surcharges are applied as a percentage of revenue from interstate service usage. By default, the interstate traffic share is defined by SafeHarbor ratio, % for all service providers. If the real share of the interstate traffic, called Percent Interstate Usage (PIU) ratio, is different for a service provider, they can set the PIU ratio instead of the SafeHarbor ratio to assess taxes.


Service providers can set their PIU ratio to reduce taxes and surcharges (and the customer invoice total).

Let’s look at the assessment of a specific surcharge, e.g., Universal Service Fund (USF) fee, in detail.

For example, a Panda Telecom’s customer consumes $100 worth of voice calls. The USF fee is assessed as follows:

The SafeHarbor ratio of 65% means that 65% of voice traffic is considered interstate. The USF fee is 20%. Thus, the service provider must pay $13 (100 * 0.65 * 0.2) as a contribution to the USF. At the end of the billing period, the customer receives an invoice with a USF fee of $13.

To optimize taxes and, as a result, reduce the customer’s invoice total, Panda Telecom can study their interstate traffic to obtain the actual share of interstate traffic – PIU ratio. If it’s lower than 65% (SafeHarbor ratio), e.g., 40%, Panda Telecom can submit it with all the supporting evidence to authorities. After the new value is specified in the CSI plug-in configuration on the customer class level, the USF fee will be applied to 40% of the voice calls revenue instead of 65%, so that the customer will receive the invoice with a USF fee of $8 (100 * 0.4 * 0.2) instead of $13.


Link copied to clipboard

Prerequisites for using CSI for tax assessment in PortaBilling:

  • Service provider has signed up for CSI services (and has obtained the corresponding API key).
  • Service provider has an active Add-on Mart subscription for the CSI tax module.
  • CSI Add-on Mart integration is activated by PortaOne engineers.

Once the CSI integration is activated, the administrator needs to perform the following steps in PortaBilling:

  1. Enable the CSI taxation plug-in.

    Open Financial > Taxation > Taxation plug-ins > select Compliance Solutions - CSI > turn on the Use Compliance taxation plug-in toggle > enter the API key provided by CSI > click Save.

    Enable the CSI taxation plug-in

  2. Configure taxation via CSI for a customer class (it can be overridden for a specific customer). Open Customer class > Finances > Taxation > enable the Assess taxes toggle > select the taxation plug-in Compliance Solutions - CSI.
  3. To enable test mode on the customer class or customer level, turn on the Test mode (don’t store tax information on CSI side) toggle.

    Configure taxation via CSI for a customer class

  4. To configure the assessment of a specific tax/surcharge using the actual share of interstate traffic (PIU ratio):
    1. Turn on the Set interstate usage ratio (PIU) toggle (available on the customer class level only).
    2. Select the tax/surcharge assessed based on a percentage of revenue from interstate service usage.
    3. Specify the PIU value (the real share of the service provider’s interstate traffic).

      Set PIU ratio

  5. Create tax codes to assess taxes to apply manually to different types of charges:
    1. Create tax plug-in codes provided by CSI. Open Taxation > Tax transaction codes > Create > Compliance code > Add new plug-in tax transaction code > add the needed codes provided by CSI, e.g., V001:2.

      Create tax plug-in codes

    2. Create internal tax transaction codes corresponding to the plug-in tax codes. On the Create tax transaction code panel, fill in the Tax transaction code and Code description fields, select the corresponding tax plug-in code (Compliance code), and click Save.

      Create internal tax transaction codes

      Now, it’s possible to apply one of these tax codes to different types of charges, e.g., a subscription charge.

      Apply a tax code to specific charges if needed


Link copied to clipboard
  • The tax codes for CSI should be set as a two-part code separated with “:”, for example, V001:15, which corresponds to:

    “product code” (4 characters) : “service code” (up to 3 digits).

  • The following tax codes are used for default service types (unless a different code is specified manually):
    • Voice calls – V001 (PortaBilling sends only the “product code” to CSI, and the “service code” is automatically detected by CSI based on the call type)
    • Messaging – V001:15
    • Internet access – T013:2
    • IPTV – S004:1
    • Conferencing – V001:15
    • WiFi – T013:2
    • Data service – T013:2
  • We strongly recommend reconciling with CSI if you void an invoice in PortaBilling – so that the taxes reported to the authorities are accurate.
  • Some taxes applied to customers’ charges cannot be passed on to the customers and must always be paid by service providers. After such taxes are calculated, they will be stored for reporting purposes only on the CSI side. The corresponding xDRs won’t be created in PortaBilling, so these taxes will not be shown on the customers’ invoices. Here are a few examples of such taxes:
    • State of Washington Business and Occupation Tax
    • Local Business and Occupation Tax in Washington
    • Some NY Local Gross Receipts Tax
    • State of KY Gross Revenues Tax


Link copied to clipboard

The rounding type (round upward or apply mathematical rounding) for the CSI taxation plug-in depends on the settings on the Configuration server (the value of the Stats.Tax_Rounding_Method option).

By default, the tax amount rounds upward. For example, the rounding precision set for the CSI taxation plug-in (Customer class > Finances > Taxation > Rounding precision) is 0.01 (2 decimals), then 1.204, 1.205, and 1.206 all round up to 1.21. If you change the default rounding method to mathematical rounding, then 1.204 will be rounded to 1.20, and 1.205 and 1.206 will be rounded to 1.21.


On this page

What's new
Admin manuals
UI help
Back to main menu