About Compliance Solutions Inc. integration

Link copied to clipboard

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:

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

Benefit

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.

Surcharges

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.

Example

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.

Tax assessment for voice calls

Link copied to clipboard

To assess taxes properly, CSI identifies the location (tax jurisdiction) of the user and the type of call, e.g., domestic or international.

To provide CSI with the needed information for tax assessment, PortaBilling checks whether the CLI (the caller’s phone number) and the CLD (the destination number) belong to America/Canada. If CLI and CLD numbers have the North American Numbering Plan (NANP) format, PortaBilling passes these numbers to CSI, so that CSI can treat the call as domestic (intrastate/interstate).

Numbers in NANP format can be passed to CSI with or without the “1” prefix.

International calls

Link copied to clipboard

In case CLI/CLD is an international number (in the E.164 format), PortaBilling sends the “0” value to CSI.

If a call is sent to/from an international number that is owned by a service provider, CSI cannot assess taxes for such a call, as international numbers fall under the jurisdiction of a different state, not the US or Canada. If a service provider owns international numbers and wants to assess taxes for them, they can create a separate customer class for customers with international numbers and use some other tax calculation method (e.g., fixed VAT rate taxation plugin) to assess taxes for these customers.

Calls to premium/toll-free numbers

Link copied to clipboard

When calls are made to premium/toll-free numbers, PortaBilling sends not the CLD number but a ZIP code of the corresponding customer (or account if the Tax jurisdiction per account option is enabled) to CSI.

By default, PortaBilling treats the CLD numbers that start with 18, 1900, 1976 as toll-free/premium. You can add more prefixes for toll-free numbers and premium numbers using the options CSI.TollFreeNumberPrefixes and CSI.PremiumNumberPrefixes on the Configuration server web interface.

The options CSI.TollFreeNumberPrefixes and CSI.PremiumNumberPrefixes on the Configuration server web interface

Calls from/to non-standard numbers

Link copied to clipboard

If CLI/CLD is a non-standard number (its format is not recognized as NANP or international), e.g., an account ID contains fewer digits and doesn’t match NANP, PortaBilling also replaces such CLI/CLD with a ZIP code of the customer (or account if the Tax jurisdiction per account option is enabled).

Summary

Link copied to clipboard

You can check the information (CLI/CLD, “0”, or ZIP code) PortaBilling sends to CSI in different cases in the following table.

Say you have two customers:

  • Customer 1 with ZIP code 90011
  • Customer 2 with ZIP code 11413
If a call is made from: Call info Info sent to CSI
CLI (customer 1) CLD (customer 2) Origination number Termination number Billed number
NANP to NANP number 12120000000 12120001111 12120000000 12120001111 12120000000
NANP to non-standard number 12120000000 1212555 12120000000 ZIP code (11413) 12120000000
Non-standard to NANP number 12125553 12120001111 ZIP code (90011) 12120001111 ZIP code (90011)
Non-standard to non-standard number 12125553 1212555 ZIP code (90011) ZIP code (11413) ZIP code (90011)
NANP to international number 12120000000 44000000000 12120000000 0 12120000000
NANP to premium number 12120000000 1976010101 12120000000 ZIP code (11413) 12120000000
NANP to toll-free number 12120000000 1800010101 12120000000 ZIP code (11413) ZIP code (11413)
Non-standard to international number 12125553 44000000000 ZIP code (90011) 0 ZIP code (90011)
Non-standard to premium number 12125553 1976010101 ZIP code (90011) ZIP code (11413) ZIP code (90011)
Non-standard to toll-free number 12125553 1800010101 ZIP code (90011) ZIP code (11413) ZIP code (11413)
PortaBilling cannot “know” a ZIP code for external users. So if the CLI/CLD of an external user is a toll-free/premium number or a non-standard number, PortaBilling uses the ZIP code of the other party (ZIP code of customer/account).

Specifics

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.
  • Do not use invoice recalculation when assessing taxes via CSI, as it may lead to inaccurate taxes.
  • 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

Rounding

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

Release
What's new
Admin manuals
Handbooks
Developers documentation
UI help