Introducing the Chargebee CLI

Configuring Oracle NetSuite

Integrate your Oracle NetSuite account with Chargebee to automate the synchronization of Invoices, Customers, and other data from Chargebee to NetSuite. This data is crucial for the financial management and analysis of your business.

We recommend consulting an accounting advisor before configuring the integration. You can test the integration on the Test Site before setting up the integration on the Live Site.

  • This integration supports NetSuite OneWorld and NetSuite Standard editions (without subsidiary) of the NetSuite ERP financial products only. Contact support for more help.

Pre-implementation steps in Chargebee

Make sure the following configurations are set up in your Chargebee site before enabling this integration.

  • Enable Accounting fields: Log in to the Chargebee app. Click Settings > Configure Chargebee > Billing LogIQ and enable accounting fields for NetSuite. This will add the Accounting attributes in the Plans and Addons pages.
  • Enter a General Ledger (GL) Account for each Plan/Addon in Chargebee. Navigate to Product Catalog > Plans/Addons > Select a Plan/Addon > Accounting Information. Enter the GL Account Name. You can also provide a Revenue Recognition Template ID for Plan/Addons. This ID refers to the internal ID of the Revenue Recognition rules in NetSuite.
  • To differentiate the invoices sent from Chargebee (from the invoices already present in NetSuite), you can enter a prefix and sequence number for Invoices and Credit Notes in Chargebee. Navigate to Configure Chargebee > Invoices & Credit Notes > Invoices/Credit Notes and set a prefix and a sequence number of your choice.

Pre-implementation steps in NetSuite

  • Authentication: Authentication is done based on Tokens created in NetSuite. You can follow the steps mentioned in this page and create the tokens. It generally takes 3-4 hours to refresh the tokens and it is recommended to create the tokens at least one day before setting up the integration in Chargebee.

  • Unlock Accounting Periods: Ensure you have the necessary periods unlocked in NetSuite. Navigate to Setup > Accounting > Manage Accounting Periods and ensure that the FY/Quarters are unlocked.

  • Currencies: The currencies present in Chargebee should be present in NetSuite. You need to manually add the currencies in NetSuite. Click here for more information.

  • Enable Features: Ensure you have enabled features such as SuiteCloud or Advanced Revenue Management for the integration. Navigate to Setup > Company > Enable Features and enable the features as required.

  • Create Rev Rec Start Date/End Date (Advanced Revenue Management (ARM) Start/ End Date):

    • If you want Chargebee to send the subscription start date and end date to NetSuite, you can create a Start Date and End Date.
    • Navigate to Customization > Lists, Records & Fields > Transaction Line Fields > create invoice level fields (Transaction Column Custom fields) to accept Start Date and End Date.
    • You can then map the custom fields with Advanced Revenue Management fields by navigating to Setup > Accounting > Revenue Field Mapping.
  • Mandatory Custom Fields: If there are custom fields mandatory in NetSuite, it is recommended to make the fields optional and set a default value.

    • Custom fields at Customer, Item, or Invoice levels should be reviewed before setting up the integration. Navigate to Customization > Lists, Records & Fields > Entity Fields or Item fields and make the necessary edits.
    • If you do not prefer to make the fields optional, you can create custom fields in Chargebee and map them to the respective fields in NetSuite. Contact support for more help on mapping custom fields.
  • Override Document Numbers: You can select Chargebee's document numbers in NetSuite.

    • You can enable this option in NetSuite by navigating to Setup > Company > Auto-Generated Numbers > Review the option in Entities and Document Number sub-tabs.
    • If you have checked the Allow Override option, then Chargebee's identifiers will be set as the primary ID for Invoices, Credit Memos, Customers, and so on.
  • Timezone Alignment: As a preliminary step, ensure that the timezone set for the user in NetSuite matches that of the Chargebee site before establishing the integration. This alignment is crucial as NetSuite converts the UTC date format sent by Chargebee to the user's timezone, potentially leading to discrepancies in invoice dates, revenue recognition dates, and other relevant timestamps if the time zones differ.

Chargebee's ID is set as the External ID for search/reference purposes in NetSuite.

Configuration

Follow these steps to connect NetSuite to Chargebee.

Step 1: Connect Chargebee to NetSuite

  • Log in to your Chargebee site.
  • Connect to the NetSuite application listed on Chargebee's app marketplace by selecting Apps > Marketplace > NetSuite.
  • Click Connect to get started with the integration.
  • Enter the NetSuite login credentials in the pop-up connect box.
  • Click Save.

Step 2: Setup Subsidiary

A subsidiary is a distinct legal entity or company within a hierarchical structure, representing a separate entity in a global organization, with its own data management and potentially unique tax considerations.

Choose a default Subsidiary

Choose a default subsidiary within NetSuite where Chargebee can securely post customer and invoice-related information.

Set up additional subsidiaries

Enable this option if you wish to sync accounting information from Chargebee across multiple subsidiaries in NetSuite.

A sample CSV template with the headers is displayed here.

ISO_Country_Code(2 Letters)Country Code
Subsidiary_Internal_IDInternal Id of the Subsidiary from NetSuite

By default, subsidiaries are organized by country; if not, please contact support. Set up additional subsidiaries should be used only when the Multi-Entity feature is not enabled in Chargebee.

Step 3: Check Prerequisites

Chargebee performs a list of checks in NetSuite. This prerequisite check verifies if the accounting codes, customers, and their currencies in NetSuite are available in Chargebee before proceeding with the integration.

  • Customer duplicate check: If invoices from Chargebee are already available in NetSuite, customers will be present as well. To avoid duplicates, you must map the customer records between both systems. You can download the list of customers as a CSV file, map the customers, and upload the updated sheet using record mapping once the setup is complete.

  • Currency check: The currencies present in Chargebee must be present in NetSuite. Chargebee does not compare the currencies via API. You must manually compare and add the currencies in NetSuite.

Click Proceed to move to the next step.

This error message is displayed if customer data already exists in NetSuite, and you can contact Chargebee support.

If you choose to ignore, click Ignore, following which the Proceed button is enabled.

Step 4: Configure Sync Rules

In this section, you need to perform account mapping for payments, invoice line items, and refunds.

Account mapping for payments

Payment transactions recorded in Chargebee can be mapped to payment accounts in NetSuite. For reconciliation purposes, you can select a clearing or undeposited funds account. If you have multiple currencies, payment gateways, or payment methods enabled, you can choose specific payments or checking accounts.

Account mapping for invoice line items

Account mapping for invoice line items involves assigning specific accounts or categories to each line item on an invoice. The following account types of NetSuite can be configured for other line items:

Other Line ItemsNetsuite Account Types
One-time charges / Adhoc chargesIncome, other income, deferred revenue
DiscountsIncome, other income, expense, deferred revenue, other expense, long term liability, other current liability, and "As configured for Plan/Addon"
Bad debts (write-offs)Income, other income, expense, deferred revenue, other expense, long term liability, other current liability, and "As configured for Plan/Addon"
Round offsIncome, other income, expense, deferred revenue, other expense, long term liability, and other current liability

Coupon sync

Choose how you would like to sync coupons from Chargebee to NetSuite. You can choose either of the two options listed here:

Option 1: Non-Inventory Sales Line items

Option 2: Discount

By default, coupons will be created as discounts.

Currency exchange rates

When the currency exchange rates are enabled, you can send currency exchange rates from Chargebee for transactions, invoices, or credit notes to NetSuite.

Offline payment sync

Offline Payment Sync offers flexibility for automatically syncing offline payments from NetSuite to Chargebee. You can allow sync to handle offline payments automatically or skip offline payments from sync, and in that latter case, you need to manually record offline payments in Chargebee.

Payment method mapping

You have the option to map payment methods manually using the Map Manually option or let it be done automatically. If you choose Map Automatically, the sync will automatically match payment methods between Chargebee and NetSuite. If it doesn't find a relevant match, it will create a new payment method and use it automatically.

Revenue recognition rules

You can send revenue recognition information from Chargebee for invoice line items when this Revenue Recognition Rules button is enabled.

Tracking categories

You can send tracking category information from Chargebee for invoice line items when the Tracking Categories button is enabled.

Customer duplicate check

You can choose to identify duplicate customers in NetSuite when data is synced from Chargebee using the two options available in the Customer Duplicate Check. You can use the customer's email or ID to check for duplicates.

Step 5: Map Product Catalog

Within Chargebee, items are configured at the site level, and different accounting attributes, such as accounting code, SKU identifier, and tracking category cannot vary for each business entity. To enable distinct accounting fields for each business entity, you can enable product catalog mapping, which allows you to assign the necessary data at the business entity level according to specific requirements.

The Map Product Catalog feature is deprecated for test sites, and the product catalog step will no longer be available except for sites using Multi Business Entity with Product Catalog. Deprecation for all live sites is also planned. New users should configure price points for the plan, addon, and charge under Accounting Details.

You can upload a CSV file containing mapping details of the products. Within these mappings, you can specify accounting codes for each entry and other accounting information.

Upon clicking Get Started, you can see the below pop-up where you can download the sample CSV template using this button.

The sample downloaded CSV file contains the following fields:

CSV Field NameDescriptionAdditional Info
PRODUCT_IDUnique identifier for Chargebee's item prices. 
PRODUCT_NAMEName of the Item price in Chargebee's Product catalog. 
SKUSKU of the productThis field is used to map the existing items from NetSuite to the respective plan/addon in Chargebee. It can be used as an alternative name for plan/addon and its character limit should not exceed 30 characters.
ACC_CODEThe accounting code associated with the item The Accounting code field should be filled for all the plans and addons.
ACCOUNTING_FIELD1ClassIf you have classified Dimensions for your products in NetSuite and would like to sync data specific to it, enter the information here
ACCOUNTING_FIELD2LocationIf you've classified Dimensions for your products in NetSuite and would like to sync data specific to it, enter the information here
ACCOUNTING_FIELD3DepartmentIf you've classified Dimensions for your products in NetSuite and would like to sync data specific to it, enter the information here
ACCOUNTING_FIELD4Revenue Recognition Rule IdIf you've configured Rev Rec for your products in NetSuite, and would like to sync data specific to it, enter the information here

In case of any errors during validation, an error message is displayed. You can fix this by re-uploading the file with the correct mapping.

Upon successful validation, you can view the successfully mapped records as shown below.

  • Once Product Catalog Mapping is done, configurations on the item prices details page will no longer apply.
  • If you prefer not to create multiple items and instead use a single item for all business entities, ensure that the SKU remains consistent and upload the CSV file accordingly.
  • To streamline the process and save time, Chargebee pre-fills the CSV file with information from the UI filled on the item prices page's accounting details tab. Even if there are no changes, the CSV file needs to be re-uploaded initially.

Step 6: Configure Tax Mapping

You can choose how taxes are to be computed, and also set up tax sync from Chargebee to NetSuite if required. Enable the Sync tax information from Chargebee to NetSuite.

Retrieve the latest mapping

The Retrieve latest mapping button retrieves the latest tax codes/tax groups used for tax mapping. This will run for some time to fetch the latest tax information that can be used for default tax mapping.

Step 7: Configure Advanced Sync Rules

This is an additional non-mandatory sync rule step. You can choose to skip it by clicking Proceed.

Prefix for object IDs

This value acts as a common prefix to all object IDs syncing from Chargebee to NetSuite. When syncing objects from multiple systems (such as another Chargebee account or a CRM) to a NetSuite account, this prefix helps you identify objects from this account.

Sync Updates to Customer

Use this setting when NetSuite, or another system that writes to NetSuite, is the source of truth for customer records. Chargebee can still create the customer in NetSuite the first time. Later changes to that customer in Chargebee are not written back.

Sync Updates to Customer is on by default. Existing integrations keep syncing customer updates until you turn the setting off.

When the setting is on, Chargebee updates a customer who is already mapped to NetSuite on the next scheduled sync or Sync Now, even when that sync includes no new invoice for that customer. Customer creation is separate and still runs through the invoice or sales-order sync. See Sync customer updates without a new invoice.

ScenarioOn (default)Off
First-time customer creation in NetSuiteCustomer is createdCustomer is created — unchanged
Tax registration details written when that customer is first createdWritten to NetSuiteWritten to NetSuite — unchanged
Later changes to that customer in ChargebeePushed to NetSuiteNot pushed; the sync record is marked Skipped
Tax registration changes on an existing customerPushed to NetSuiteNot pushed
The NetSuite customer recordKept in step with ChargebeeNever modified by Chargebee after creation

Turning the setting off affects the customer record only. Invoices, credit notes, payments, refunds, subscriptions, and products continue to sync against the existing NetSuite customer.

To stop Chargebee from overwriting NetSuite customer records during setup:

  1. Go to Settings > Integrations > NetSuite.
  2. Go to Configure Advanced Sync Rules.
  3. Turn off Sync Updates to Customer. The caption reads Updates to customer in Chargebee will be synced to NetSuite.
  4. Click Save and continue.

If the integration is already connected, go to Settings > Integrations > NetSuite, click Manage Advanced Sync Rules, turn off Sync Updates to Customer, and save. The new value applies to later syncs; it does not change customer records that Chargebee has already written to NetSuite.

You can also choose how NetSuite handles credit notes voided in Chargebee and offline payments or refunds deleted in Chargebee. For handling options and required custom-field setup, see Choose how voided and deleted records are handled in NetSuite.

Address fallback, discount service periods, line-item tax rounding, the discount-item record type, invoice-update handling, and a fixed daily sync time are configured on the same page. See Manage NetSuite Advanced Sync rules.

Step 8: Sync Preferences

You can choose to sync invoices from Chargebee to NetSuite from a particular date by selecting the relevant date from the drop-down.

Step 9: Run Sync

Once the configuration is complete, click Run Initial Sync to begin the sync. Chargebee will sync the first 10 invoices to ensure that mapping, conventions, and sync criteria align with your requirements.

You need to review these invoices in NetSuite. If the sync works as expected, you can click Run Full Sync.

On triggering Run Full Sync, the sync dashboard is displayed where you can view or manage settings.

Enable/Disable auto sync

After setting up the integration, you can configure the daily schedule to sync all the information to NetSuite automatically. Invoices and related information are synced once every 24 hours. You can choose to disable auto-sync if required.

Sync Now

For on-demand sync, you can sync data from Chargebee to NetSuite immediately.

Manage mapping

You can edit the configurations or GL Account mapping provided during the setup process.

Manage record mapping

You can add/update the mappings for the Chargebee records (Invoices, Customers, Credit Notes, and Transactions).

Manage tax mapping

Adjust the tax mapping configured during the setup process. If new tax regions have been added in Chargebee settings, update the tax mapping in this section accordingly.

Map product catalog

Manage and update the product catalog.

Manage advanced sync rules

Allows you to modify advanced sync rules, including Sync Updates to Customer and the handling of voided credit notes, deleted offline payments, and deleted refunds. Saved changes apply to subsequent syncs and do not restore records already deleted in NetSuite. Complete the required custom-field configuration before selecting a retention option. After saving the new configuration, retry any existing failed records that are still eligible for retry. See Choose how voided and deleted records are handled in NetSuite.

Disconnect

On disconnecting at the site level, it'll disconnect all the entities. Disconnecting at the entity level will only disconnect at a specific entity level.

Sync customer updates without a new invoice

Chargebee can keep an existing NetSuite customer record current without waiting for another invoice or other financial transaction. When you change supported customer information in Chargebee, the next scheduled NetSuite sync, or an on-demand sync using Sync Now, updates the customer who is already mapped to NetSuite.

Customer creation has not changed. A customer profile change does not create a NetSuite customer. Chargebee still creates a new NetSuite customer through the existing invoice or sales-order sync. For example, if an annually billed customer changes their billing address between invoices, you do not need to generate another invoice or manually retry that customer to send the change to NetSuite.

Prerequisites for updating a NetSuite customer

Make sure that:

  • Your Chargebee Billing and NetSuite integration is configured.
  • The Chargebee customer is already mapped to an existing NetSuite customer with a valid NetSuite customer ID.
  • Sync Updates to Customer is enabled for the applicable integration configuration. This setting is on by default.
  • The fields you want to update are supported and mapped. Mapped customer fields are listed in Objects and fields mapped between Chargebee and NetSuite. Custom fields must be mapped during setup. Confirm the mappings for the specific fields you want to update before saving a change. How Chargebee creates customers is described in the Customers section of the NetSuite integration overview.

You do not need to migrate customer records, reconnect the integration, or enable a separate customer-sync setting.

Turn on customer updates for an existing NetSuite integration

If you manage customer information in NetSuite, or in another system that writes to NetSuite, keep Sync Updates to Customer off unless Chargebee should overwrite the supported, mapped fields on existing NetSuite customers. Turning the setting off does not undo changes already synced. The full on and off comparison is in Sync Updates to Customer.

For an existing integration:

  1. Go to Settings > Integrations > NetSuite.
  2. Open Manage Advanced Sync Rules.
  3. Turn on Sync Updates to Customer. The caption reads Updates to customer in Chargebee will be synced to NetSuite.
  4. Click Save.

Before you turn customer updates back on, review changes saved in Chargebee while the setting was off. Chargebee retains its saved tracking point, so those changes may be included in a later sync.

Sync a Chargebee customer change to NetSuite

Chargebee saves a tracking point, called the customer-sync checkpoint, when a customer-update sync finishes. If no checkpoint exists yet, that sync starts from the current session. Changes saved before that session are not included, and later syncs do not add them. If you already saved a change before any checkpoint existed, contact support to confirm the applicable recovery or retry option for that customer.

When a checkpoint already exists:

  1. Open the existing customer record on your Chargebee Billing site.
  2. Update and save the customer information supported by your integration and configured mappings. For example, update the billing address if it is supported by your configuration.
  3. Wait for the next scheduled sync if auto-sync is enabled. To check or change the schedule, go to Settings > Integrations > NetSuite and review Enable/Disable Auto Sync. To sync on demand, click Sync Now on the NetSuite integration page.
  4. Check the sync status and any errors on the NetSuite integration page. After the sync completes successfully, check the corresponding customer record in NetSuite.

When no checkpoint exists yet, run one sync before you save the change:

  1. Go to Settings > Integrations > NetSuite.
  2. Click Sync Now, or wait until the next scheduled sync finishes. This sync starts tracking. It does not send customer changes saved before it.
  3. Open the existing customer record, update the supported information, and save.
  4. Click Sync Now again, or wait for the next scheduled sync.
  5. Check the sync status and any errors on the NetSuite integration page. After the sync completes successfully, check the corresponding customer record in NetSuite.

The mapped NetSuite customer reflects the supported Chargebee changes even if the sync batch contains no new invoice, credit note, payment, or sales order for that customer.

This is scheduled or manually triggered synchronization, not real-time synchronization. Chargebee sends only fields supported by the integration and configured mappings. Changing a Chargebee field does not automatically make it a NetSuite-mapped field.

Example

When a customer's first qualifying invoice syncs, Chargebee creates the customer record in NetSuite. Later, you change that customer's company name and billing address in Chargebee. The next successful NetSuite sync updates the existing NetSuite customer without generating another invoice.

Choose which NetSuite customers are updated

Chargebee saves a tracking point, called the customer-sync checkpoint, to determine which customer changes to check in a later sync. It processes customers changed since that point only when they already have a valid NetSuite mapping. This tracking point is separate from the sync status shown on the integration page.

Customer or settingExpected behavior
Mapped customer changes, and customer updates are onThe existing NetSuite customer is updated during the next successful scheduled sync or on-demand sync using Sync Now
Customer has no NetSuite mapping, or its mapped NetSuite ID is blankThe customer-update sync skips the customer and does not create it
Trial customer has never entered the existing customer-creation flowA profile or subscription change alone does not create it in NetSuite
Sync Updates to Customer is offCustomer updates are skipped. Existing invoice, credit note, payment, and sales-order synchronization continues
Customer updates are turned back onChanges made while the setting was off may be processed from the retained checkpoint
No customer-sync checkpoint exists yetTracking begins from the current sync session. Earlier customer changes are not automatically backfilled

A trial status alone is not the selection rule. The customer must already have a valid NetSuite mapping to qualify for a customer update.

Apply customer updates with Multi Business Entity

The update process follows the effective integration configuration and sync context. Business entities linked through a site-level connection share that site configuration. Independently connected entities use their own configuration and sync context. Check Sync Updates to Customer for the connection that processes the customer. See Multi Business Entity for Oracle NetSuite.

Limitations of NetSuite customer updates

  • This feature updates mapped customers. It does not create NetSuite customers from customer creation, customer updates, or subscription creation.
  • It does not provide real-time or webhook-based customer synchronization.
  • It does not change the existing rules for the first qualifying invoice or sales-order creation path.
  • It does not delete or void NetSuite customers.
  • If no customer-sync checkpoint exists, the first customer-update sync starts tracking from the current session. It does not automatically send earlier customer changes.
  • A change to a field that is not mapped to NetSuite may still cause the customer to be processed, without a visible change to that field in NetSuite.
  • Sites with many changed customers may experience longer sync durations.

Troubleshoot a NetSuite customer update

IssueWhat to checkWhat to do
A customer change has not appeared in NetSuiteCustomer mapping, the customer-update setting, sync completion, and field supportConfirm the mapping and effective setting, then check the next completed sync and its logs
Older changes were not included in the first customer-update syncWhether this was the first customer-update run with no prior checkpointIf no customer-sync tracking point exists, the first customer-update sync does not automatically include changes before its starting point. Contact support if you need to send an earlier change.
Updates are not sent while the setting is offSync Updates to CustomerTurn it on only if Chargebee should update existing NetSuite customer records
Updates made while the setting was off appear after you turn updates back onRetained customer-sync checkpointIf a tracking point was saved before you turned customer updates off, Chargebee retains it. After you turn updates back on, a later sync may send the current supported, mapped values for customers changed since that point. Review those changes before turning updates back on. If no tracking point exists, earlier changes are not automatically backfilled.
A customer update failsNetSuite validation errors and mapped valuesReview the customer's sync error and correct the affected value, mapping, or NetSuite configuration as indicated. Click Sync Now or wait for the next scheduled sync, then check whether the update succeeds. If the error persists, contact support.
Sync takes longer than usualNumber of changed customers and integration logsReview the run and contact support if the duration or failures remain unusual.

When contacting support, include the Chargebee customer ID, mapped NetSuite customer ID, affected field, approximate change time, sync time, and relevant error message. Do not include credentials.

NetSuite customer-update questions

1. Do I need to generate an invoice to update an existing NetSuite customer?

No. If the customer is already mapped and Sync Updates to Customer is on, supported changes can be sent during the next successful scheduled sync or on-demand sync using Sync Now.

2. Does this create customers who are still in trial?

Not from profile changes alone. Unmapped customers are skipped. Customer creation continues through the existing invoice or sales-order path.

3. Will this update every field on a customer?

No. The integration updates supported fields according to its mappings and configuration.

4. Does turning customer updates off stop invoices and payments from syncing?

No. The setting controls customer-record updates. Financial documents continue to sync against the existing NetSuite customer.

5. Is a separate enablement request required?

No separate feature toggle or re-integration is required. The existing customer-update setting controls the behavior.

Abort Sync Functionality

The Abort Sync functionality in Chargebee enables you to halt ongoing sync jobs, providing greater control over your sync processes and configurations. When you click Abort Sync, the current batch of processed records will be completed. Subsequently, the sync job will stop, and the remaining batches will not be processed. Any records skipped in this sync will be included in the next sync batch.

For domains with auto-sync enabled, sync resumes 15 minutes after the abort action. This ensures that all records, including those halted by the abort action, are synchronized in the next sync cycle. You can monitor the status of sync jobs in the Recent Syncs table.

The Abort Sync functionality is useful when updating specific records between syncs or pausing the sync process to verify or modify records in Chargebee before syncing to NetSuite.

Sync Preferences

Once the sync is set up, you can see when the last sync was run, success/errors in the sync, and options to edit the configurations:

Enable/Disable Auto Sync

After setting up the integration, you can set a daily schedule to sync all the information to NetSuite automatically. Invoices and related information will be synced once every 24 hours. You can reach out to support for reducing the sync timing to 24 hours and also disable auto-sync if required. To run that automatic sync once a day at a time you choose, see Set a fixed daily NetSuite sync time.

Sync Now

For on-demand sync, you can sync data from Chargebee to NetSuite immediately.

Manage Mapping You can edit the configurations/GL Account mapping provided during the setup process.

  • If Sync Updates to Customer is on, changes you make in Chargebee sync to NetSuite on a later sync. If the setting is off, Chargebee does not update existing NetSuite customer records. See Sync Updates to Customer.
  • We recommend that you make the changes in NetSuite so that data is consistent in both systems.
  • If you do the payments and refunds mapping for each offline payment and currency, then to update the mapping details, you need to contact support.

Manage Tax Mapping

You can modify the tax code mapping provided during the setup process. If you have added tax regions in your Chargebee settings, you can update tax codes here.

Unlink If you want to stop syncing data from Chargebee to NetSuite, you can unlink the integration. For more information, contact support.

FAQ

1. Are UTF-8 characters supported in the customer email field?

No, NetSuite does not support UTF-8 encoding for the customer email field.

Manage NetSuite Advanced Sync rules

Use Advanced Sync Rules to configure supported NetSuite synchronization settings in Chargebee. You can set address fallback, discount service periods, tax rounding, the discount-item record type, whether already-synced invoices are updated, and a fixed daily sync time.

Existing settings stay as they are until you edit them. You do not need to reconnect the integration or migrate configuration. Controls appear only when they apply to your integration. Sync Updates to Customer and voided or deleted record handling are separate settings on the same page. See Sync Updates to Customer and Choose how voided and deleted records are handled in NetSuite.

Prerequisites for NetSuite Advanced Sync rules

  • Configure the NetSuite integration before you manage rules for an existing connection.
  • Review the accounting impact with your finance or NetSuite administrator before you change tax or discount behavior.
  • For a fixed NetSuite sync time, confirm the Chargebee site's time zone.
  • For NetSuite entity-specific rules, Multi Business Entity and the applicable entity connection must be configured. Entity-level overrides also require merchant-specific feature enablement. Contact Chargebee Support to confirm availability and request enablement. This feature is not enabled by default.

Open NetSuite Advanced Sync rules

  1. Go to Settings > Integrations > NetSuite.
  2. For an existing connection, open Manage Advanced Sync Rules. During setup, use Configure Advanced Sync Rules.
  3. Review and change the applicable controls.
  4. These controls can appear on the page:
    • Send service period on discount lines
    • Round tax at line item level
    • Use billing address as shipping address
    • NetSuite record type for discount items
    • Skip updates to already-synced invoices
    • Run auto-sync at a fixed time each day
    • Daily sync time (HH:MM:SS), shown when fixed-time sync is turned on
  5. Click Save.
  6. Reopen the rules and confirm that the saved values are displayed.

When no configuration exists, Send service period on discount lines, Round tax at line item level, and Use billing address as shipping address default to off. NetSuite record type for discount items defaults to Discount Item. An existing configured value takes precedence.

NetSuite Advanced Sync rules you can configure

Entity overrides in this table are supported only for merchants explicitly enabled for the feature.

RuleNetSuiteNetSuite entity override
Use billing address as shipping addressYesYes, after enablement
Send service period on discount linesYesYes, after enablement
Round tax at line item levelYes, when applicableYes, after enablement
NetSuite record type for discount itemsYes, when applicableYes, after enablement
Skip updates to already-synced invoicesYesNo
Run automatic sync once daily at a specific timeYes, site-level scheduleNo

Use the billing address when no shipping address is available

Turn on Use billing address as shipping address to send the billing address to NetSuite when a customer has no shipping address. This setting controls the address sent to NetSuite. It does not change the shipping address stored in Chargebee.

When digital-tax logic is also enabled, a digital invoice can use the billing address even when a shipping address exists.

  1. Open Advanced Sync Rules for the NetSuite integration.
  2. Turn on Use billing address as shipping address, then click Save.
  3. Check the address on the next applicable synchronized record.

Send service periods to NetSuite discount lines

Turn on Send service period on discount lines when your NetSuite workflow needs the service period on discount lines, such as for revenue recognition. Discount lines on the NetSuite invoice then carry the service period of the line they discount. This rule does not change the discount amount.

Service periods are sent only when the discount record type is Non-Inventory Sale Item, revenue recognition is enabled, and both the start date and the end date are available on the line.

  1. Open NetSuite Advanced Sync Rules.
  2. Turn on Send service period on discount lines.
  3. Click Save.
  4. Check the service-period information on the discount lines of the next applicable synchronized transaction.

Configure line-item-level tax rounding

Turn on Round tax at line item level to round tax on each invoice line before the lines are totaled, instead of rounding tax once on the invoice total. Use this rule to align tax rounding with your NetSuite accounting requirements.

  1. Open NetSuite Advanced Sync Rules.
  2. If Round tax at line item level is available, choose the setting with your accounting administrator.
  3. Click Save.
  4. Check the tax on the next applicable synchronized transaction.

The control is hidden when the rule does not apply, including when SuiteTax is enabled, tax is synchronized as a custom line item, or tax-code mapping is disabled. Do not change your tax setup only to make the control visible. Keep the tax behavior that matches your existing configuration.

Choose a NetSuite discount-item record type

NetSuite record type for discount items sets the NetSuite record type used when discount items are created. The dropdown is hidden when coupon sync already defines the discount-item mapping.

  1. Open NetSuite Advanced Sync Rules.
  2. In NetSuite record type for discount items, select one of these options:
    • Discount Item (default): Creates a NetSuite Discount Item record using the configured discount account. Select this when your accounting setup uses standard NetSuite discount items.
    • Non-Inventory Sale Item: Creates a NetSuite Non-Inventory Sale Item record using the configured income account and tax schedule. Select this when your accounting workflow requires discounts as non-inventory sale items, including eligible revenue-recognition workflows.
  3. Review the required account mappings and, where applicable, the tax schedule with your NetSuite administrator before you change the record type.
  4. To send service periods on discount lines, select Non-Inventory Sale Item, turn on Send service period on discount lines, and confirm that revenue recognition and its start and end date fields are configured. Both service dates must be available on the applicable line.
  5. Changing the record type does not convert existing mapped discount items or rewrite previously synced transactions.
  6. Click Save, confirm the change, and check the record type on the next newly created discount item.

Skip updates to already-synced NetSuite invoices

Skip updates to already-synced invoices controls whether Chargebee pushes later invoice edits to NetSuite. When the setting is on, invoices updated in Chargebee after the initial sync are not automatically pushed to NetSuite.

  1. Open NetSuite Advanced Sync Rules.
  2. Turn Skip updates to already-synced invoices on or off.
  3. Click Save.

Set a fixed daily NetSuite sync time

Turn on Run auto-sync at a fixed time each day to run NetSuite automatic sync once a day at a time you choose. The schedule is managed at site level. Individual business entities cannot have separate fixed daily sync times. The default interval in Sync Preferences continues to apply when this setting is off.

  1. Open NetSuite Advanced Sync Rules at the site level.
  2. Turn on Run auto-sync at a fixed time each day.
  3. In Daily sync time (HH:MM:SS), select the hour, minute, and second using the 24-hour clock in your Chargebee site's time zone. For example, select 21:30:00 for 9:30 PM.
  4. Click Save, then click Confirm.
  5. Reopen the rules and confirm that the intended site-local time is displayed.

When automatic synchronization is enabled, NetSuite auto-sync runs once daily at the configured schedule.

  • Chargebee interprets the selected time in your site's time zone, stores it in UTC, and converts it back to site-local time when displaying the setting.
  • Select all three time components. Hours must be 00–23. Minutes and seconds must be 00–59. An incomplete selection prevents saving and displays Choose a daily sync time.
  • If an existing time value is not valid HH:MM:SS, saving is rejected with Daily sync time must be in HH:MM:SS format, for example 08:00:00. Reselect a valid time and save again.

The stored schedule uses UTC, so the local execution time can shift when your site's UTC offset changes, including after a daylight-saving change. After the offset changes, reselect the intended local time and save again to recalculate the UTC schedule.

Manage NetSuite business-entity Advanced Sync rules

NetSuite entity-level overrides are not generally available and are not enabled by default. They require explicit feature enablement for your merchant site. Contact Chargebee Support to confirm availability and request enablement. The steps in this section apply only after your site has been enabled.

For enabled merchants, eligible entity rules can inherit the site value or use an entity-specific override. The value-source label shows where the effective setting comes from.

Value sourceMeaning
Applied from SiteThe entity inherits the site-level configuration
Applied from EntityAn explicit entity-level override is in effect
DefaultThe integration's built-in default supplies the value

Create a NetSuite entity override

Confirm that Chargebee has enabled entity-level overrides for your site before you start. Multi Business Entity and the applicable NetSuite connection must also be configured. Only rules with editable controls can be overridden in the business-entity view. Rules marked Managed at site level stay read-only. The fixed daily sync time stays managed at site level.

Eligible overrides are Use billing address as shipping address, Send service period on discount lines, Round tax at line item level, and NetSuite record type for discount items, when those controls apply.

  1. Switch to the applicable Chargebee business entity and open NetSuite Advanced Sync Rules.
  2. Review the effective value and its source: Applied from Site, Applied from Entity, or Default.
  3. Change an eligible rule to the value required for this entity.
  4. Click Save, then click Confirm.
  5. Reopen the entity's rules and confirm the saved value and the Applied from Entity label.

The saved entity override applies to this business entity only. It does not change the site-level setting or other entities' rules.

An inherited rule you leave unchanged continues to inherit the site configuration. An existing entity override remains entity-owned until it is removed. Matching the site's value does not remove an existing entity override. When the override is removed and per-rule inheritance is enabled, the source changes to Applied from Site if the site has a configured value, or to Default otherwise.

Apply saved NetSuite Advanced Sync rules

  • Saving applies the configuration. It does not start a sync or reprocess previously synced records. Saved rules are used when the integration later processes applicable records.
  • Automatic synchronization and Sync Now are separate from saving. To process eligible records, wait for an automatic sync or use Sync Now.
  • Saving does not bulk-rewrite historical accounting records. A later update, retry, or explicit re-sync can modify an eligible existing record according to the applicable rule.
  • Unrelated integration settings stay intact. No migration or reconnection is required.

Troubleshoot NetSuite Advanced Sync rules

IssuePossible explanationWhat to do
A rule is not visibleThe rule is not supported for the selected integration or does not apply to its configurationCheck NetSuite Advanced Sync rules you can configure and the prerequisites for that rule
Round tax at line item level is missingSuiteTax is enabled, tax is sent as a custom line item, or tax-code mapping is disabledReview the tax configuration with your NetSuite administrator. Do not change the tax setup only to make this control visible
NetSuite record type for discount items is missingCoupon sync already defines the discount-item mappingCheck whether coupon configuration supplies the mapping. The dropdown is hidden in that case
Daily sync time cannot be savedThe hour, minute, or second is unselected, or an existing saved value has an invalid formatSelect all three components in Daily sync time (HH:MM:SS), then save and confirm. Use hours 00–23 and minutes and seconds 00–59
Daily sync runs at a different local time after a daylight-saving changeThe site's UTC offset changed, while the stored schedule remained in UTCReselect the intended site-local time, save and confirm, then reopen the rules and check the displayed time
A NetSuite entity does not follow the site valueAn entity override is active, or per-rule site inheritance is not enabledCheck the displayed source. Applied from Entity indicates an override. Matching the site value does not remove it. Contact Support to confirm inheritance enablement and how to remove an override
Discount lines do not include service datesThe record type, revenue-recognition configuration, or source service dates do not meet the prerequisitesConfirm that Non-Inventory Sale Item is selected, Send service period on discount lines is on, revenue-recognition date fields are configured, and both source service dates are available
A saved rule does not appear to affect a recordNo applicable sync has completed, the wrong site or entity was edited, or the rule does not apply to that recordReopen the relevant connection and check the saved value and source, review the sync result, and confirm the rule's prerequisites. Saving alone does not reprocess existing records

When contacting Support, include the integration, site or business entity, rule name, displayed value and source, relevant record ID, sync time, and error message. Do not share credentials.

NetSuite Advanced Sync rules FAQ

1. Does making these controls available change existing settings?

No. Making the controls available does not change existing configuration. When you save a change, the applicable site-level or entity-level rule determines its scope.

2. Which rules in Manage NetSuite Advanced Sync rules apply to QuickBooks Online?

Of the rules in Manage NetSuite Advanced Sync rules, only Use billing address as shipping address and Skip updates to already-synced invoices apply to QuickBooks Online. The billing-address fallback is limited to US companies. The discount, tax-rounding, and fixed daily scheduling rules apply only to NetSuite. See Configuring QuickBooks.

3. Can each NetSuite business entity have its own daily sync time?

No. The fixed daily schedule is managed at site level. Eligible entity overrides affect individual rules, not the daily sync schedule.

4. Do I need to reconnect the integration or contact Support to change a rule?

You do not need to reconnect the integration to change an available, editable rule in Advanced Sync Rules. NetSuite entity-level overrides require explicit merchant-specific enablement and are not enabled by default. Contact Chargebee Support to confirm availability and request enablement. Settings outside the controls described in this section may also require Support.

Choose how voided and deleted records are handled in NetSuite

By default, when you void or delete a synced record in Chargebee, the integration deletes the corresponding record in NetSuite:

  • Credit Memo for a voided credit note
  • Customer Payment for a deleted offline payment
  • Customer Refund for a deleted refund

NetSuite can prevent a posted transaction from being deleted when its accounting period is closed. To keep the NetSuite record and avoid a deletion failure, configure Advanced Sync Rules to retain certain records instead of deleting them. Depending on the record type, Chargebee can remove its applications and mark it as voided or deleted, or retain it and only add a deleted marker.

Delete remains the default for all three record types. A rule change applies to voids and deletions processed in subsequent syncs. It does not restore or modify records that were already deleted in NetSuite.

Prerequisites for retaining voided and deleted records

Complete these steps before selecting an option other than Delete:

  • Ask your NetSuite administrator to confirm that the integration role can update Credit Memo, Customer Payment, and Customer Refund records and write to transaction body custom fields.

  • Create the required NetSuite transaction body custom fields for each record type you plan to retain:

    • For Credit Memos, create fields for the Chargebee status and voided date. You map these fields in the integration.
    • For Customer Payments and Customer Refunds, create fields for the deleted marker and deleted date. Contact Chargebee Support with the fields' script IDs or internal IDs so they can be configured.
  • Test the selected behavior in a Chargebee test site. Verify the resulting NetSuite records before enabling the setting in production.

Completing these prerequisites does not guarantee that NetSuite will accept an update. NetSuite can still reject it because of permissions, workflows, scripts, validation rules, or record locks.

What retaining and unapplying does in NetSuite

Retaining a record does not reverse its original accounting entry. The Credit Memo, Customer Payment, or Customer Refund remains posted in its original accounting period.

  • For a Credit Memo or Customer Payment, Chargebee removes its links to invoices and stamps the configured status or deletion fields.
  • For a Customer Refund, Chargebee preserves the transactions and amounts associated with the refund and only stamps the configured deletion fields.
  • When the configured handling option retains a record in NetSuite, Chargebee updates the mapped custom fields to indicate that the credit note was voided or the payment or refund was deleted in Chargebee. For retained Credit Memos, you can configure a NetSuite SuiteScript to detect these custom-field updates and create a journal entry that reverses the Credit Memo's accounting impact. The script must be set up in NetSuite. Updating the custom fields does not, by itself, create a reversal. Chargebee does not post journal entries directly to NetSuite. Any reversing journal entries are created by the configured SuiteScript.

Configure voided and deleted record handling

These settings are available on the NetSuite Advanced Sync Rules page.

  1. During initial setup, go to Apps > Oracle NetSuite and select Configure Advanced Sync Rules. For an existing integration, go to Apps > Netsuite Integration and select Configure Advanced sync rules.
  2. Select the handling option for voided credit notes, deleted offline payments, and deleted refunds.
  3. Click Save.

The saved values apply to subsequent syncs. Retry an existing failed record after the new configuration and NetSuite prerequisites are in place.

Voided credit note handling options

For the NetSuite Credit Memo, this setting determines what happens when you void the corresponding synced credit note in Chargebee.

OptionWhat happens
Delete (default)Chargebee deletes the Credit Memo in NetSuite. If the period is closed, NetSuite rejects the deletion and Chargebee reports a sync error.
Delete; unapply if the period is closedChargebee first tries to delete the Credit Memo. If NetSuite rejects it specifically because the period is closed, Chargebee unapplies the memo and stamps the void fields instead, and the sync succeeds. Voids in open periods still delete as before.
Always unapply (never delete)The Credit Memo is never deleted. Chargebee always unapplies it and stamps the void fields, whether the period is open or closed.

When a Credit Memo is unapplied, Chargebee removes its applications to invoices. The Credit Memo and its Chargebee-to-NetSuite mapping are retained.

Deleted offline payment handling options

For the NetSuite Customer Payment, this setting determines what happens when you delete the corresponding synced offline payment in Chargebee. An offline payment is a payment recorded outside a payment gateway, such as a check or bank transfer.

OptionWhat happens
Delete (default)Chargebee deletes the Customer Payment in NetSuite. If the period is closed, NetSuite rejects the deletion and Chargebee reports a sync error.
Always unapply (never delete)Chargebee retains the Customer Payment. The payment is never deleted. Chargebee unapplies it from the invoices it was applied to and stamps the deleted marker and date, whether the period is open or closed.

There is no closed-period fallback option for offline payments. The configured behavior is either Delete or Always unapply. Contact Chargebee Support before using Always unapply so that retention and the required custom fields can be configured.

Deleted refund handling options

For the NetSuite Customer Refund, this setting determines what happens when you delete the corresponding synced refund in Chargebee.

OptionWhat happens
Delete (default)Chargebee deletes the Customer Refund in NetSuite. If NetSuite rejects the deletion, Chargebee reports a sync error.
Retain and flag as deleted (never delete)Chargebee retains the Customer Refund and marks it as deleted using configured NetSuite custom fields.

Chargebee does not unapply a retained Customer Refund, because removing its links to other transactions could leave the refund unbalanced in NetSuite. Chargebee preserves the existing links and applied amounts and updates only the configured custom fields to indicate that the refund was deleted in Chargebee.

Set up the NetSuite fields Chargebee writes to

When Chargebee retains a record, it writes values to NetSuite transaction body custom fields so that your team and downstream processes can identify the source event.

Map fields for voided Credit Memos

Use Custom Field Mapping in the NetSuite integration to map these Chargebee credit note fields to NetSuite Credit Memo body fields:

Chargebee fieldNetSuite field typeValue written
statusFree-form textThe credit note's status in Chargebee, which will be voided
voided_atDateThe date the credit note was voided in Chargebee

Configure fields for deleted Customer Payments and Customer Refunds

These fields are configured by Chargebee and can be shared by retained Customer Payments and Customer Refunds. After creating the fields in NetSuite, contact Chargebee Support to configure them in Chargebee. Provide the script IDs or internal IDs of each NetSuite transaction body custom field.

FieldNetSuite field typeValue written
Deleted markerCheck boxAlways checked, indicating the payment or refund was deleted in Chargebee
Deleted dateDateThe updated_at timestamp of the payment or refund in Chargebee

Configure the marker fields in NetSuite before changing the default Delete setting. Otherwise, a record may be retained or unapplied in NetSuite without any indication that it was deleted in Chargebee.

Voided and deleted record behavior

RecordSettingAccounting periodResult in NetSuite
Credit MemoDeleteOpenCredit Memo deleted
Credit MemoDeleteClosedDeletion rejected, sync error
Credit MemoDelete; unapply if closedOpenCredit Memo deleted
Credit MemoDelete; unapply if closedClosedCredit Memo retained and unapplied, void fields stamped, sync succeeds
Credit MemoAlways unapplyOpen or closedCredit Memo retained and unapplied, void fields stamped, sync succeeds
Customer PaymentDeleteOpenCustomer Payment deleted
Customer PaymentDeleteClosedDeletion rejected, sync error
Customer PaymentAlways unapplyOpen or closedCustomer Payment retained and unapplied, deleted marker stamped, sync succeeds
Customer RefundDeleteOpenCustomer Refund deleted
Customer RefundDeleteClosedDeletion rejected, sync error
Customer RefundRetain and flag as deletedOpen or closedCustomer Refund retained and marked as deleted; its existing links and applied amounts in NetSuite are preserved. Sync succeeds

FAQ about voided and deleted records

1. Does changing a setting affect records that already failed to sync?

Not automatically. The setting applies to voids and deletions processed after you save it. To apply the new setting to an existing failed record, complete the configuration and prerequisites, then retry the record if it is still eligible for retry.

2. What happens to an invoice when its Credit Memo or Customer Payment is unapplied?

The Credit Memo or Customer Payment is no longer associated with the invoice in NetSuite. The invoice's outstanding balance increases by the unapplied amount, and the invoice may become partially or fully open.

3. What happens to a Customer Refund when Retain and flag as deleted is selected?

Chargebee keeps the Customer Refund in NetSuite and marks it as deleted using the configured custom fields. It does not change the transactions linked to the refund or the amounts applied to them.

4. Why did a record still fail after I selected an unapply or never delete option?

These options prevent Chargebee from deleting the corresponding NetSuite record, but NetSuite must still accept the update. Review the sync error for the specific reason. The update can fail if the integration role lacks permission, a configured custom field is invalid or unavailable, or a NetSuite workflow, script, record lock, or validation rule prevents the change.

For Delete; unapply if the period is closed, Chargebee falls back to unapplying only when NetSuite reports that deletion was rejected because the accounting period is closed. Other deletion errors continue to be reported as sync errors.

5. Can different business entities use different settings?

These settings are configured at the site level only and are cascaded to the business entities. There is no business entity override for these settings.

See also

QBO MBE