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.
- In the Kipper portal, go to Data Sources in the sidebar
- Select NetSuite
- Enter your Account ID, Client ID, and Client Secret
- Click Connect. You'll be redirected to NetSuite
- Sign in if prompted, then approve Kipper's access request
- 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.
- In NetSuite, go to Setup → Integration → Manage Integrations → New
- Give the integration a recognizable name (for example,
Kipper) - Under Authentication, tick OAuth 2.0 and select Authorization Code Grant
- Under Scope, tick REST Web Services
- In Redirect URI, enter
https://app.kipper.com/callbackexactly as shown, with no trailing slash - Leave the token-based authentication options unticked
- 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.
- Choose one or more subsidiaries in the Configure Subsidiary dialog
- 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.