New in Chargebee: Explore Reveal and understand your payment performance end-to-end.Try Now

Docschargebeedocs

HomeBillingPaymentsRevRecGrowthReveal
Support

Product Updates


  • Release Notes

Getting Started


  • Overview
  • Chargebee Billing Data Centers
  • Object Relationship Model
  • Understanding Sites
  • Developer Resources
  • Chargebee Tech Glossary
  • Articles and FAQ

Implementing Chargebee


  • Implementation Guide
  • Go-live Checklist
  • Articles and FAQ

AI in Chargebee


  • Chargebee Agents
  • Chargebee Copilot
  • Chargebee MCP Server (Model context protocol)

Product Catalog


  • Product Catalog Overview
  • Coupons
  • Articles and FAQ

Subscriptions


  • Working with Subscriptions
  • Billing
  • Orders
  • Articles and FAQ

Customers


  • Managing Customers
  • Account Hierarchy
  • Email Notifications
  • Branding
  • Configure Multiple Languages
  • Articles and FAQ

Invoices, Credit Notes and Quotes


  • Invoices
  • Credit Notes
  • Quotes [Legacy]
  • Transactions
  • Articles and FAQ

Taxes


  • Overview
  • Configuring Taxes
  • Country-specific Taxes
  • Articles and FAQ

Hosted Capabilities


  • Overview
  • Hosted Checkout
  • Hosted Self-Serve Portal
  • Hosted Pages Features
  • Additional Hosted Pages
  • Payment Components
  • Managing payments with ChargebeeJS
  • Mobile-Optimized Hosted Pages
  • Articles and FAQ

Site Configuration


  • Users & Roles
  • Custom Fields & Metadata
  • Mandatory Fields
  • File Attachments & Comments
  • Advanced Filter Options
  • Multicurrency Pricing
  • Multi-decimal Support
  • Configuring Reason Codes
  • Events and Webhooks
  • API Keys
  • Time Zone
  • Time Machine
  • Transfer Configurations
  • Articles and FAQ

Reports and Analytics


  • RevenueStory
  • Home Dashboard
  • Frequently Asked Questions
  • FAQs for Classic Reports Sunset
  • Articles and FAQ

Integrations


  • Sales
  • Customer Support and Success
  • Finance
    • QuickBooks Online
    • Xero
    • Sage Intacct
    • Oracle NetSuite
      • Setting up Token-based Authentication in NetSuite
      • Configuring Oracle NetSuite
      • Record Mapping in Oracle NetSuite
      • Configuring Multiple General Ledger (GL) Accounts in NetSuite for Discount Mapping in Chargebee
      • Sync Log Dashboard for NetSuite
      • Tax handling in Chargebee-NetSuite Integration
      • Objects and fields mapped between Chargebee and NetSuite
      • Common sync errors in Oracle NetSuite
  • Tax
  • Marketing
  • Stitch
  • Collaboration
  • Contract Management
  • Order Management
  • Mobile Subscriptions (Legacy)
  • Other Integrations
  • Articles and FAQ

Data Privacy & Security


  • Two Factor Authentication
  • SAML Single Sign-On
  • System for Cross-Domain Identity Management (SCIM)
  • EU-GDPR
  • Consent Management
  • Personal Data Management
  • Compliance Certificates
  • HIPAA Guidelines
  • PCI Recommendations and Integration Types
  • Articles and FAQ

Data Operations


  • Bulk Operations
  • Migration
  • Articles and FAQ
  1. Billing
  2. Integrations
  3. Finance
  4. Oracle NetSuite
  5. Tax handling in Chargebee-NetSuite Integration
  1. Billing
  2. Integrations
  3. Finance
  4. Oracle NetSuite
  5. Tax handling in Chargebee-NetSuite Integration

Tax handling in Chargebee-NetSuite Integration

Overview

NetSuite application offers Legacy Tax and SuiteTax modules to help simplify the tax calculations. Currently, as part of the NetSuite Integration, we are integrating with the tax module. SuiteTax replaces existing tax functionality (hereafter referred to as Legacy Tax), and these features are not built to coexist in a single environment.

Legacy Tax Sync Workflow

In Chargebee, taxes are applied whenever an invoice is generated for a subscription, renewal, or a one-time charge. Chargebee checks for the customer's region to map taxes based on their location if a tax applies to the customer. If a tax is not applicable, then the invoices are created without any tax details. The following flowchart displays the flow of tax sync workflow between Chargebee and NetSuite. It helps you understand how the taxes are mapped based on different regions.

image

Note

If the customer's Chargebee account is integrated with Avalara for tax calculation in the NetSuite connector, then we support tax sync only for the United States (US) region. For other regions, it is recommended to use the Chargebee Tax module.

SuiteTax

This feature is enabled on request. Contact support to avail this feature.

SuiteTax is a customization model offered by NetSuite. It automatically identifies the customer's shipping or billing information to calculate the taxes for each item in the invoice. SuiteTax engine is a bundle installed in NetSuite where the tax calculation occurs within NetSuite. It also can add localization tax for regions such as India. If the customer uses SuiteTax and installs the bundle for each region, then there are pre-defined taxes. The tax rates are created as part of the custom field, which is not loaded in the Standard Rate field.

Configure Taxes in Chargebee

Follow these steps to configure tax and manage tax mapping in Chargebee:

  1. While configuring the integration, under Manage Tax Mapping,

    • You can choose between SuiteTax and the Legacy tax module by enabling the toggle button
      image
    • You can also enable the tax configuration to send tax information from Chargebee to NetSuite. If you do not enable this option, taxes will not be synced from Chargebee to NetSuite.
      image
  2. For the United States (US) region, the tax codes and tax rates are passed to each line item and tax codes are created in NetSuite. A tax agency should be created (according to NetSuite's guidelines) for creating tax codes in NetSuite.

  3. For other regions, Chargebee-NetSuite tax mapping has to be done manually. The read-only tax codes are derived from the tax configuration in Chargebee and the options to list the tax codes are configured in NetSuite. The tax rates between Chargebee and NetSuite tax codes are mapped when invoices are synced for other countries.

    image

Note

If tax mapping is not available for a specific country, then Chargebee will look for the default Tax Code mapping and send them as part of each line item.

Configure Taxes in NetSuite

For the US region, the NetSuite connector creates and maps the tax codes to each line item.

  • The tax codes are created under United States Nexus.
  • The tax codes and tax groups are created in NetSuite through this integration.
  • If a tax code and tax group are available already, then the existing data is used. Otherwise, a new tax code or tax group is created.

To create the tax codes in NetSuite, follow these steps:

1. Create a Tax Control Account and Tax Type

To create Tax Control Account and Tax type in NetSuite, follow these steps:

  • Tax Control Accounts are GL Accounts for Taxes. Create a Tax Control Account in NetSuite under Accounting > Tax Control Account > New.
  • Create a Tax Type in NetSuite under Accounting > Tax Type > New.

2. Create a Vendor (Tax Agency)

To create Tax Agency in NetSuite, follow these steps:

  • Navigate to List > Relationship > Vendor in your NetSuite account.

  • Before creating a Tax Code, a Vendor with the "Tax Agency" category should be created in Chargebee. See the screenshot below for example:

    image
  • The naming format of the Vendor: <TAX_JURISDICTION>_<TAX_JURISDICTION_TYPE>_Tax

    • For the example shown above, <TAX JURISDICTION> = CALIFORNIA and <TAX_JURISDICTION_TYPE> = STATE" followed by "_Tax
    • If the concatenation is greater than 83 characters, then create the vendor name by fetching the jurisdiction code instead of the jurisdiction name. <tax_juris_code>_<TAX_JURISDICTION_TYPE>_<Tax format>
  • Associate a tax account to a Vendor by setting it up under the Financial module of your NetSuite account.

    image

3. Create Tax Codes

  • To create a Tax Code in NetSuite, navigate to Accounting > Tax Codes in your NetSuite account.
  • The naming format for Tax Codes will be as shown below:

CB_<TAX JURISDICTION>_<TAX JURISDICTION TYPE>@<RATE>

  • For the US region, Chargebee creates the tax codes. The following fields are passed by default:
    • Tax Name or ItemId
    • Rate
    • Tax Type
    • A subsidiary with the "include children" checkbox enabled
    • Tax Agency
  • Chargebee does not send a Tax Control Account. NetSuite assigns it by default.
image

4. Create a Tax Group

A Tax Group is used to combine multiple Tax Codes.

To create a Tax Group in NetSuite,

  • Navigate to Accounting > Tax Group in your NetSuite account.
  • Chargebee creates the Tax Group in NetSuite for the US regions.
  • The naming format for Tax Group:

CB_US_<STATE>@<RATE>

  • Chargebee sends the following fields:
    • Tax Name or ItemId
    • Rate (Sum of the rate from tax codes)]
    • Subsidiary including children is checked
    • List of individual tax codes that make a Tax Group
      image
  • The tax group is passed into the invoice line item of the "Tax Code" column :
    image
  • For other countries, follow these steps as part of the tax configuration:
    • Create Nexus for each country.
    • Create tax codes with the following details:
      • Tax Rate
      • Tax Agency
      • Tax Type
      • Available on (Both, Sales Transaction, or Purchase Transaction)
      • Subsidiary

Note

The above setup is mandatory for Chargebee to send the tax information. It is recommended to have a NetSuite consultant for detailed configuration of the Tax module within NetSuite based on your business needs.

SuiteTax in NetSuite

This feature is enabled on request. Contact support to avail this feature.

The following actions take place when the SuiteTax module is enabled in NetSuite:

  • Creates Invoice and Credit memo
  • Calculates the tax for each line item in the Invoice
  • Fetches the tax details (Tax Details Reference, Tax Type, Tax Code, Tax Basis, Tax Rate, Tax Amount) from the NetSuite for each line item.
  • Overrides Chargebee's tax rate and amount if they differ from Chargebee's Invoice

Note

Limitations The tax code and other tax-related information for each line item are not updated since the SuiteTax engine does not allow override.

Articles & FAQs

What is Suite Tax? What are it's uses?
Why is the discount item not calculated correctly? - NetSuite
How to create a non-posting discount item? - Netsuite
Netsuite SuiteTax - The record you are attempting to load has a different type: XXXX from the type specified: noninventorysaleitem.
'NetSuite request failed [Permission Violation: You need the Lists Documents and Files permission to access this page'
The record you are attempting to load has a different type: XXXX from the type specified: noninventorysaleitem - Netsuite SuiteTax

Show more

Was this article helpful?