Consumer- and Provider-Paid Taxes
Taxes can be imposed on both consumers and providers. Taxing authorities regulate whether providers are permitted to pass a tax on to the consumer, and how the tax is passed on.
- If a provider tax is required to be passed on to the consumer, tax is calculated and recorded in the Event Detail Record (EDR) in the same manner as consumer tax.
- If a provider tax is prohibited from being passed on to the consumer, it is calculated and recorded in a separated charge list in the Event
Detail Record (EDR).Note: This tax has no impact on balances in the consumer's wallet. The
CarriesChargeList
field in the EDR records provider-paid taxes. - Optional provider taxes are passed on to the consumer unless the provider
prohibits this action.
- MATRIXX Engine calculates the tax, and the tax is recorded in the EDR in the same manner as a consumer tax is recorded.
- If the provider does not want to pass the provider's tax on to the consumer, the provider must specify this action as prohibited in the CCH Tax Data source.
Provider-paid taxes are the taxes the Operator pays, and are recorded in the EDR. During rating, the Charging Server calculates the amount of taxes the provider is liable for and records the amount in the EDR so that general ledger (GL) journal entries can be generated.
If the rating results of used quantities reported in Diameter Gy or 5G N40 messages include taxes paid by the Operator, the taxes are tracked by usage aggregation and recorded in the aggregation usage events generated at the end of usage aggregation.
For information about US tax refunds, see the discussion about US tax refunds.
Tax-On-Tax
A product offer is defined using a single application profile, for example, purchase, and the application profile specifies the taxes to be collected for each charge. A proportional charge bundle includes multiple offers for multiple services, and taxes are calculated based on the net revenue allocation in the proportional charge bundle.
If the provider passes the provider tax on to the consumer, the funds representing the passed on tax are added to the base amount of the invoice and are treated as taxable gross receipts to the provider. This tax then becomes subject to various consumer- and provider-based taxation. This is called tax-on-tax.
When the Charging Server receives a list of taxes for a charge, if a tax is a provider-based tax and it can be passed on to the consumer, the Charging Server checks if the tax is subject to any consumer-based and provider-based taxes. These taxes are called taxing taxes and are applied to the amount of the provider-based tax. The Charging Server then repeats this process to check if the taxing taxes are subject to tax-on-tax. Each time the Charging Server repeats this process constitutes a new round of tax-on-tax.
To set the maximum number of rounds used in the tax-on-tax calculation, answer the create_config.info question: Global:How many rounds of Tax On Tax should be calculated?. For more information about setting the maximum number of rounds used in the tax-on-tax calculation, see the discussion about global system configuration in MATRIXX Configuration.
Data is imported from the TaxOnTax CCH table, and compiled and deployed in My MATRIXX. The data is then processed and loaded into MATRIXX Engine. For more information about compiling and deploying the TaxOnTax CCH table, see the discussions about importing tax and deploying a US tax compilation in My MATRIXX Help. For more information about loading CCH data into MATRIXX Engine, see the discussion about administering US tax data in MATRIXX Administration. For more information about the US tax data, see the discussion about US tax database.
Events show the total impact amount for each impacted balance instance. This includes
a set of charge detail records that break down the impact and the product offer
generating the impact and the impact type, for example, tax. A separate charge
record is generated for base charges from product offers for each tax applied to
that charge. When there is tax-on-tax, the TaxOnTaxChargeList
field
is added to the EDR to list the tax-on-tax charges. For more information, see the
discussion about MtxEvent in MATRIXX Integration.