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:
When an invoice is sent, Tabs checks if the contract already has a NetSuite sales order
If no sales order exists in NetSuite, Tabs creates one via the NetSuite REST API
The invoice is created by transforming the sales order into an invoice via NetSuite's API
The resulting invoice is a child of the sales order in NetSuite
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:
When an invoice is sent, Tabs checks if the invoice already has an NetSuite external ID stored
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
taxAmountfield 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:
An error notification appears in the Tabs dashboard
The error details are logged and can be viewed by Tabs
The entity remains in Tabs with a failed sync status
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