How the Tabs <> NetSuite Integration Works

Last updated: June 12, 2026

Overview

The Tabs <> NetSuite integration syncs customer, invoice, payment, and accounting data between both systems.

Tabs pulls data from NetSuite on a scheduled basis and pushes transactional data to NetSuite as activity occurs in Tabs.

What Syncs from NetSuite to Tabs

During initial setup, Tabs imports existing supported records from NetSuite. After setup is complete, Tabs continues to sync supported records on an ongoing basis.

Tabs imports the following objects from NetSuite:

  • Customers

  • Items

  • Currencies

  • Chart of Accounts

  • Bank Accounts (included as part of the Chart of Accounts import)

  • Historical invoices created in NetSuite only

  • Payments

  • Location, if applicable

What Syncs from Tabs to NetSuite

Tabs pushes the following objects to NetSuite:

  • Customers creation and updates

  • Sales Orders (if enabled)

  • Invoices

  • Credit Memos

  • Payments

  • Journal Entries

Customers

NetSuite → Tabs

Existing customers in NetSuite are imported into Tabs during initial setup and ongoing syncs.

Tabs → NetSuite

New customers and customer updates created in Tabs sync to NetSuite automatically. If a customer exists in Tabs (e.g. from CRM) but not NetSuite, you can manually push them from the app.

Customer Requirements

  • Customer name is required for import from external systems.

  • Primary address and email must be populated before sending an invoice via Tabs.

  • If you require multi-currency, it must be enabled in your NetSuite account.

  • Parent and sub-customers must have matching currencies—NetSuite will reject invoices in currencies that don’t match the customer’s set currency.

  • NetSuite subsidiary configuration must be properly set in the account mapping settings.

Invoice Sync

When an invoice is sent in Tabs:

  • The invoice syncs to NetSuite automatically

  • The invoice is marked as sent

  • Tabs remains responsible for invoice delivery and numbering

📌 Note: If an invoice fails to sync (typically due to a NetSuite configuration issue), a notification will appear in Tabs. The invoice will not be sent to the customer until the error is resolved.

📌 Note: If an invoice failed to sync or the customer wasn’t yet linked to NetSuite, you can manually re-sync from the dashboard.

Draft Invoices

Draft invoices do not sync to NetSuite.

Invoices are only synced after they are sent.

Invoice Changes

Tabs is the source of truth for invoices.

Changes made directly in NetSuite do not sync back to Tabs.

Invoice Reset Behavior

If a sent invoice is reset back to draft in Tabs:

  • The corresponding invoice is removed from NetSuite

  • Re-sending the invoice recreates it in NetSuite

Sales Order Configuration

This section applies to customers who use sales orders in NetSuite and have sales order creation enabled in Tabs.

Once enabled, the flow is:

  1. When an invoice is sent, Tabs checks if the contract already has a NetSuite sales order

  2. If no sales order exists in NetSuite, Tabs creates one via the NetSuite REST API

  1. The invoice is created by transforming the sales order into an invoice via NetSuite's API

  2. The resulting invoice is a child of the sales order in NetSuite

  3. Going forward, all new invoices would follow this pattern and be linked to their contract's sales order

Each Tabs contract creates a separate NetSuite sales order.

📌 Note: If sales order is enabled, all invoices for a given customer are tied and partitioned by contract. As in, every invoice will only be generated from a single contract / sales order.

📌 Note: Once an invoice associated with a sales order is sent, the billing terms under that contract can no longer be edited.

Invoice Only Configuration

If sales order creation is NOT enabled, then the flow is:

  1. When an invoice is sent, Tabs checks if the invoice already has an NetSuite external ID stored

  2. If no external ID exists, Tabs creates an invoice via NetSuite's REST API

📌 Note: If sales order creation is not enabled, then it is possible to configure invoice generation for your instance to be customer-centric. As in, items across multiple contracts can be grouped in the same invoice if they have the same invoice date and net terms.

Credit Memo Sync

Creating a credit memo in Tabs automatically syncs the credit memo to NetSuite.

Supported workflows include:

  • Creating credit memos in Tabs

  • Applying credit memos in Tabs or NetSuite

  • Credit memos created as part of invoice reconciliation (bad debt write off or bank fees)

📌 Note: Creating a credit memo in NetSuite does NOT sync back into Tabs. A NetSuite-originated credit memo must be applied in NetSuite.

Payment Sync

Tabs maintains a bidirectional sync for payments:

  • When a partial or full payment is applied in Tabs, it syncs to NetSuite.

  • Payments applied via Stripe or Plaid sync to NetSuite and back to Tabs.

  • Payments manually applied in NetSuite also sync back to Tabs during the daily pull.

  • Removing a payment in Tabs syncs the removal back to NetSuite.

Journal Entry Sync

Journal Entries sync from Tabs to NetSuite through the Close Management module in Tabs.

Key Details

  • User must go through Tabs' Close Management to generate and submit revenue journal entries, they do not automatically push to NetSuite without user action

  • Entries are pushed in batches of up to 500 entries

Items and Products

Tabs products map to existing items in NetSuite. To add a new product, create and configure the item in NetSuite first.

Tabs does not support creating new items directly, as this could affect data consistency between the two systems.

Items are synced daily from NetSuite and include:

  • Item ID and display name

  • Income account reference

  • Tax mapping information

  • SKU

  • Sales description

  • Active/inactive status

Chart of Accounts

Tabs pulls GL accounts from NetSuite but does not modify or add them. When sending an invoice, the GL impact is determined by the accounts mapped to the NetSuite item.

For cash reconciliations and month-end close journal entries, you can configure which GL accounts Tabs pushes to within the integrations page.

Currency Handling

If multi-currency is enabled in NetSuite, Tabs will:

  • Use the customer’s currency on invoices

  • Store currency information for all transactions

  • Support journal entries in multiple currencies

📌Note: Currency must match between parent and sub-customers. NetSuite will reject transactions if currencies are mismatched.

Tax Handling

Tabs supports multiple tax providers when integrated with NetSuite:

NetSuite Native Tax

  • Tax amounts are calculated by NetSuite’s built-in tax engine

  • Tax fields are mapped automatically from NetSuite invoice line items

  • Uses the taxAmount field from NetSuite

Avalara Tax

  • Tabs can calculate tax using Avalara before sending to NetSuite

  • Tax amounts are stored in custom fields (e.g., custcol_ava_taxamount)

  • Item tax codes are mapped to Avalara tax categories

  • Supports address-based tax calculation

Custom Fields

Tabs supports syncing custom fields between NetSuite and Tabs for:

  • Customers

  • Sales Orders

  • Sales Order line Items

  • Invoices

  • Invoice line items

  • Payments

Subsidiaries

Multi-subsidiaries is supported on Tabs.

  • 1 Tabs instance maps to 1 subsidiary in NetSuite

  • For example, 3 subsidiaries in NetSuite requires 3 Tabs instances.

Invoice Field Mapping

NetSuite Field

Tabs Field

Customer

Customer

Customer email

Primary billing contact email

Billing address

Customer address

Transaction date

Invoice issue date

Due date

Due date

Transaction ID

Invoice number (with prefix)

Line item: Item

Tabs Integration Item

Line item: Description

Line item name and description

Line item: Tax Amount

Tax code

Line item: Quantity

Line item quantity

Line item: Rate

Line item unit price

Line item: Amount

Line item total

Memo

Invoice memo

Subsidiary

Manufacturer subsidiary

Start date

Earliest line item start date

End date

Latest line item end date

Sales Order Field Mapping

For customers with contracts, Tabs creates Sales Orders in NetSuite:

NetSuite Field

Tabs Field

Customer Name

Customer

Transaction date

Contract created date

Start date

Earliest billing term start date

End date

Latest billing term end date

Line item: Item

Billing term line item product

Line item: Quantity

Billing term quantity

Line item: Rate

Billing term rate

Line item: Amount

Billing term amount

Subsidiary

Manufacturer subsidiary

Error Handling

When an invoice, payment, or other entity fails to sync:

  1. An error notification appears in the Tabs dashboard

  2. The error details are logged and can be viewed by Tabs

  3. The entity remains in Tabs with a failed sync status

  4. Manual retry is available from the dashboard once the issue is resolved

Common sync errors:

  • Customer not found in NetSuite

  • Missing required custom fields

  • Currency mismatch

  • Invalid subsidiary reference

  • Item not found or inactive

  • Permission issues in NetSuite