Skip to content

Connecting NetSuite to Kipper

Connecting NetSuite

Kipper connects to NetSuite using OAuth 2.0. Before you start, create an integration record in NetSuite (see Creating a NetSuite integration record below) and have its Client ID and Client Secret to hand.

You'll need administrator access to your NetSuite account to complete the connection.

  1. In the Kipper portal, go to Data Sources in the sidebar
  2. Select NetSuite
  3. Enter your Account ID, Client ID, and Client Secret
  4. Click Connect. You'll be redirected to NetSuite
  5. Sign in if prompted, then approve Kipper's access request
  6. You'll be redirected back to Kipper, where you'll be asked to select a subsidiary

Kipper only ever reads from NetSuite. It never creates, edits, or deletes records. Your credentials are encrypted in transit and at rest.

Creating a NetSuite integration record

An integration record in NetSuite is what allows Kipper to talk to your account over the REST API. You create it once, then use its credentials when connecting.

First, ensure OAuth 2.0 is enabled at Setup → Company → Enable Features → SuiteCloud.

  1. In NetSuite, go to Setup → Integration → Manage Integrations → New
  2. Give the integration a recognizable name (for example, Kipper)
  3. Under Authentication, tick OAuth 2.0 and select Authorization Code Grant
  4. Under Scope, tick REST Web Services
  5. In Redirect URI, enter https://app.kipper.com/callback exactly as shown, with no trailing slash
  6. Leave the token-based authentication options unticked
  7. Save the record. NetSuite displays the Client ID and Client Secret once, so copy both immediately; they cannot be retrieved later

Your Account ID

Your NetSuite Account ID is shown at Setup → Company → Company Information. Enter it in lowercase with dashes, for example 1234567 for production or 1234567-sb1 for a sandbox. Kipper detects sandbox accounts automatically from the -sb in the ID.

Selecting a subsidiary

After you approve access, Kipper reads the list of active subsidiaries from your NetSuite account and asks you to choose which ones to sync. No data is pulled until you make a selection.

  1. Choose one or more subsidiaries in the Configure Subsidiary dialog
  2. Save your selection. The initial sync starts automatically

You can change your selection later from the data source's detail page under Data Sources. Until a subsidiary is configured, that page shows a Subsidiary not configured warning and syncing stays unavailable.

What Kipper can answer

Kipper syncs the following from NetSuite:

  • Sales and receivables: invoices, credit memos, customer payments, sales orders
  • Purchases and payables: vendor bills, vendor credits, vendor payments, purchase orders, checks
  • General ledger: journal entries
  • Records: customers, vendors, employees, items, bills of materials
  • Reports: Trial Balance, Profit and Loss, Balance Sheet, Cash Flow

This supports questions about outstanding and overdue invoices, accounts receivable aging, customer and vendor balances, revenue and expense breakdowns, and subsidiary-level reporting.

Sync details

Initial sync time scales with your NetSuite data volume. Large accounts can take several hours, and you can follow progress under Data Sources in the sidebar.

After the initial sync, Kipper keeps your data fresh in two ways:

  • Incremental sync: every 15 minutes, Kipper pulls records that changed since the last run
  • Full sync: once a week, on Saturday at 05:00 UTC, Kipper re-reads everything to catch anything an incremental sync could have missed

NetSuite does not send change notifications, so all updates come from these scheduled syncs rather than from webhooks.

Admins can also re-run a sync or clear synced data from the source's detail page. See Sync actions.

Troubleshooting

If the connection fails, confirm:

  • OAuth 2.0 is enabled in your NetSuite account at Setup → Company → Enable Features → SuiteCloud
  • The integration record has OAuth 2.0 with Authorization Code Grant and the REST Web Services scope enabled
  • The Redirect URI on the integration record is exactly https://app.kipper.com/callback, with no trailing slash
  • Your Account ID is entered correctly with no extra spaces
  • The Client ID and Client Secret were copied without leading or trailing whitespace
  • The NetSuite user approving the connection has a role permitting REST Web Services access

If you're told the connection flow expired, you spent more than 10 minutes on the NetSuite approval screen. Start again from Data Sources.

If Kipper reports a disconnected NetSuite source, go to Data Sources in the sidebar and reconnect. Your stored credentials and subsidiary selection are reused, so you won't need to re-enter them.

Contact support@kipper.com if you need help. We reply within one business day.