How the Tabs <> NetSuite Integration Works

Last updated: September 16, 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.

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

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

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

  5. 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.

Important:  NS sales orders must be in a Pending Fulfillment or Pending Billing status to be able to have invoices added to it. Any other status (such as Pending Approval) will block any such requests.

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

Important:  Once a sales order is created in NetSuite, the billing terms under that sales order/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 a 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 — 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

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

Important:  Tabs credit memo sync is currently one-way (Tabs → NetSuite) for applications. If a Tabs-created credit memo is applied to an invoice in NetSuite instead of in Tabs, that apply does not mark the Tabs credit memo as applied. Instead, it comes back into Tabs as a payment on the invoice: the invoice shows as paid, but the credit memo itself remains open in Tabs with its full balance. To keep both systems in sync, apply Tabs-created credit memos in Tabs.

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

Note:  If a credit memo (or journal entry) application is unapplied in NetSuite, Tabs cancels the matching payment and recalculates the invoice balance on the next sync. This does not apply retroactively — applications that were unapplied before this behavior shipped need a one-off correction; contact Tabs support.

AR Account Override

By default, a credit memo pushed to NetSuite inherits the customer’s current default receivables (AR) account. NetSuite only allows a credit memo to be applied to an invoice when both share the same AR account, so if a customer’s default AR account has changed since the invoice was created (for example, after a billing cadence change), the apply can fail in NetSuite with a sublist error and the credit memo will show a sync failure in Tabs.

To avoid this, you can optionally select a specific AR account when creating a credit memo for a NetSuite-connected customer, pinning it to match the AR account on the invoice it will offset. This selector only appears for NetSuite merchants. Leaving it blank uses the customer’s default AR account, matching the original behavior.

Memo Field Sync

The memo entered on a Tabs credit memo pushes to the NetSuite credit memo’s Memo field. If no memo is set on the Tabs credit memo at the time of a reconciliation-driven apply, NetSuite falls back to the document number. See Credit Memo Field Mapping below.

Payment Sync

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

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

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

Note:  When a credit memo is applied to an invoice directly in NetSuite, Tabs pulls that apply in as a payment of type "Credit Memo (ERP)" rather than as an applied Tabs credit memo — see Credit Memo Sync above for why, and apply Tabs-created credit memos in Tabs to avoid it.

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

  • 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:  NetSuite will reject transactions if currencies are mismatched between parent and sub-customers.

Tax Handling

  • Final tax amounts are calculated and committed by NetSuite

  • The amount is sent back to Tabs to be recorded on the invoice

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)

Other Ref #

PO number — NEW, shipped 2026-08-13

Memo

Memo — NEW, shipped 2026-08-14

Line item: Item

Integration item

Line item: Description

Line item description

Line item: Quantity

1

Line item: Rate

Line item total

Line item: Amount

Line item total

Subsidiary

requires custom field mapping

Start date

Invoice issue date

Credit Memo Field Mapping

NetSuite Field

Tabs Field

Customer

Customer

Account (AR)

AR account override, if set — otherwise the customer’s default AR account (see AR Account Override above)

Memo

Memo (falls back to document number on reconciliation applies if blank)

Line item: Item

Integration item

Line item: Amount

Line item total

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

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

  • Credit memo AR account mismatch between the credit memo and the invoice it is applied to — see AR Account Override