Overview
The NetSuite integration connects your Wrapbook account to your NetSuite instance so that payroll data flows automatically into your General Ledger. When you issue a payroll in Wrapbook, the integration pushes a Vendor Bill to NetSuite in Draft status for your AP team to review and post.
Setup time: Approximately 30–45 minutes once you have your prerequisites ready and your NetSuite admin available.
Who this is for: Company Admins and Accountants at production companies that use NetSuite for accounting. You’ll also need a NetSuite administrator to generate credentials and configure the required NetSuite permissions.
Permissions required
To set up the NetSuite integration, your account must have one of the following roles enabled:
Role: Company Admin, Accountant
Custom role with: Accounting settings — Full access
What the integration does
What flows from Wrapbook to NetSuite
Each time you issue a payroll in Wrapbook, a Vendor Bill is pushed to NetSuite approximately 15 seconds after issuance. The bill arrives in Draft status — your AP team reviews and posts it in NetSuite. Wrapbook never auto-posts.
Each Vendor Bill includes:
Vendor: default vendor configured (for example, Wrapbook)
Bill number: the Wrapbook payroll display ID (for example, Payroll-00748134)
Invoice date: the payroll's invoice date
Lines: One line per pay rate per worker, plus fringes (employer taxes, workers' comp, platform fees, etc.) broken out and consolidated by category — grouping is configurable per project.
What flows from NetSuite to Wrapbook
Wrapbook reads the following from NetSuite to populate your mapping configuration. This is read-only — Wrapbook never writes back to your NetSuite dimensions data:
Chart of Accounts
Vendors
Projects
Locations
Departments
Items
Tasks
Supported dimensions
The integration passes the following NetSuite dimensions on Vendor Bill lines: Project, Location, Department, Item, and Task. You can set defaults at the company level and override them per project.
Limitations
⚠️ Class is not supported. The integration does not pass the Class dimension to NetSuite. If your NetSuite account requires Class on Vendor Bill lines, the sync may fail. Ask your NetSuite administrator whether Class can be made optional or whether you can use a supported dimension instead.
⚠️ Custom Segments and Custom Fields are not supported. Only the standard dimensions above are passed. If your account requires an unsupported field on Vendor Bills, ask your NetSuite administrator to make it optional before setup.
Before you start
Have the following ready before beginning setup:
Project chart template — start from the Wrapbook template or a blank template (i.e., line numbers & sections)
NetSuite admin access — required for credential generation in Step 1
A vendor record for Wrapbook in NetSuite ("Wrapbook"). Create one manually if it doesn't exist — the integration does not auto-create vendors.
Dimension requirements — know which of Department, Location, Project, Item, and Task your GL accounts require on transaction lines.
Connecting multiple subsidiaries? Each NetSuite subsidiary needs its own Wrapbook company connection with separate credentials. After setting up the first subsidiary, copy the COA mapping over to the second rather than rebuilding from scratch.
Step 1: Generate NetSuite credentials
This step takes place entirely in your NetSuite instance. Your NetSuite admin will generate five credential values that you'll enter in Wrapbook in Step 2. The integration authenticates via NetSuite's standard Token-Based Authentication (TBA) over the SuiteTalk API.
You'll need:
Account ID — the subdomain of your NetSuite URL (e.g.,
1234567for1234567.app.netsuite.com)Consumer Key and Consumer Secret
Token ID and Token Secret
A. Create the integration record in NetSuite
In NetSuite, go to Setup → Integration → Manage Integrations → New
Enable Token-Based Authentication and click Save
Copy the Consumer Key and Consumer Secret immediately — NetSuite displays them only once. If you close this page without copying, you'll need to repeat this step.
B. Generate the access token
In NetSuite, go to Setup → Users/Roles → Access Tokens → New
Select the integration record you created in step A and click Save
Copy the Token ID and Token Secret immediately — same one-time-display rule applies.
C. Confirm the integration role's permissions
Your NetSuite administrator should create or update the integration role with the following baseline access:
Token-Based Authentication: enabled
Perform Search: Full
SuiteAnalytics Workbooks: enabled
Vendor Bills: access needed to create bills
Chart of Accounts, Projects, Locations, Departments, Items, and Tasks: access needed to read and map these records
For multi-subsidiary setups, confirm that the role can access each subsidiary the integration will post to. Your NetSuite administrator may need to add other permissions based on your account configuration.
For more information about creating or customizing roles, see Oracle NetSuite's Set Up Token-Based Authentication Roles and Permissions Documentation.
Tip: If you see sync errors later without a clear cause, check these role permissions first. NetSuite permission issues often surface as vague errors rather than a clear "permission denied" message.
Step 2: Connect Wrapbook to NetSuite
In the left-side navigation, click the dropdown menu and select All projects
In the left-side navigation, click Company settings
On the Company settings page, in the Accounting settings section, click Manage next to Integrations
On the Integrations page, click Connect next to NetSuite
Enter the five credentials from Step 1: Account ID, Consumer Key, Consumer Secret, Token ID, Token Secret
Click Save
Set company-level defaults
After connecting, configure your company defaults:
Default vendor: select Wrapbook from the vendor list (the vendor record you created in NetSuite before setup)
Default GL/expense account code — this is the fallback account inherited by all projects
Dimensions — go to Company settings → Integrations settings → Edit Dimensions to enable Project, Location, Department, Item, and/or Task as applicable to your GL requirements
Confirm data pulled correctly
After entering credentials, Wrapbook fetches your Chart of Accounts, Projects, Locations, Departments, Items, and Tasks from NetSuite. This typically appears in your mapping UI within 2–5 minutes.
Confirm all lists are populated before moving to Step 3. If any list is empty, it's almost always a role permission issue — return to Step 1C.
Step 3: Configure your Chart Mapping
Before configuring individual projects, set up your Project Chart Template — this is done once and reused across projects.
A. Select the Chart of Accounts
Go to Company Settings → Project chart templates → Edit
Select an AICP or custom chart already mapped at the company level
Each chart line maps to a single GL account. Dimensions are applied separately at push time from project or company defaults — they are not configured per line.
B. Map fringe lines
The project chart template includes fringe-bucket rows (Total Fringes, Employer Taxes, Platform) that do not auto-populate from your COA. Add these to your project chart and map each to the corresponding GL account — typically employer payroll tax, platform/processing fee, and fringes accounts.
⚠️ If fringe lines are left unmapped, the resulting Vendor Bills will include lines without a GL destination and NetSuite may reject the push.
Fringe lines are mapped separately from worker pay lines. Make sure the corresponding fringe rows in your project chart are mapped before syncing.
Step 4: Configure each project
After the company-level connection is set up, each Wrapbook project needs the following confirmed before its first payroll sync.
A. Assign the Chart Template
Go to Project Settings → Cost tracking, enable Accounting chart, and select a Chart Template from the dropdown. Use Manage chart to review or adjust the chart's line-level mappings if needed.
B. Set project-level dimension overrides (optional)
Go to Company Settings → Integrations Settings → Edit to override project dimensions using the Feature Dimension Management functionality. Each dimension can be overridden at the project level under the Override project dimensions section. If not overridden, dimensions inherit the company-level defaults.
C. Verify timecard coding is complete
The auto-push fires approximately 15 seconds after payroll issuance with no manual review step. Make sure all timecards are fully coded before issuing your first payroll.
How coding gaps affect the push depends on the field type:
Required fields (GL account and Vendor): If either is missing, the push will fail entirely — you'll see a "Failed" status in Integration push history.
Dimensions (Project, Location, Department, Item, Task): Behavior depends on how each dimension is configured in NetSuite. If a dimension is marked required in NetSuite, a missing value will cause the push to fail. If it's optional, the bill will sync but that dimension will be left uncoded on the line.
See Troubleshoot a failed push if a payroll doesn't sync after issuance.
After go-live: Dimensions data sync
Initial sync on connection
When you enter credentials in Step 2, Wrapbook immediately fetches your Chart of Accounts, Projects, Locations, Departments, Items, and Tasks. This data appears in your mapping UI within 2–5 minutes.
Ongoing data refresh
Wrapbook syncs dimensions data from NetSuite every 24 hours from the time of initial connection.
Object | Direction | Frequency | Notes |
|---|---|---|---|
Chart of Accounts | NetSuite → Wrapbook | 24 hours | Includes inactive accounts |
Projects | NetSuite → Wrapbook | 24 hours | Includes archived projects |
Locations | NetSuite → Wrapbook | 24 hours | — |
Departments | NetSuite → Wrapbook | 24 hours | — |
Items | NetSuite → Wrapbook | 24 hours | — |
Tasks | NetSuite → Wrapbook | 24 hours | — |
AP Bills (payroll) | Wrapbook → NetSuite | Real-time | Pushed ~15 seconds after payroll issuance |
Manual refresh
If you need data to update immediately (for example, you just added a GL account in NetSuite):
Go to Company settings → Integration settings → Edit
Click Refresh Connection
Updated lists appear within 2–5 minutes.
Adding new GL accounts or dimensions before mapping a new project? Use the manual refresh button — otherwise you'll wait up to 24 hours for the new data to appear in Wrapbook.
Viewing sync status and syncing payrolls
Check sync status
After a payroll is issued, you can confirm whether the push to NetSuite succeeded:
Go to Company Settings → Integration push history
Find the payroll row and look at the Sync Status column
Status | Meaning |
|---|---|
Sync complete | Vendor Bill pushed successfully to NetSuite |
Failed | Push attempt failed — click the row to view the error message |
Pending | Push is in progress or hasn't been attempted yet — wait a few seconds and refresh |
(empty) | The integration was not connected when the payroll was issued — no push was attempted |
Retry a payroll sync
If a payroll missed the auto-push (for example, the integration was not yet set up at the time of issuance):
Go to Company Settings → Integration push history
Find the payroll you want to re-sync and click Retry Sync
Wrapbook re-attempts the push immediately
Check Sync Status after ~15 seconds to confirm it succeeded
Deleting the integration
⚠️ This action is permanent. Only disconnect if you're certain you won't reconnect.
Go to Company settings → Accounting → Integrations → Manage
Click Delete Integration and confirm
What happens when you delete:
The connection is removed
All configuration is deleted: company defaults, project overrides, COA mappings, dimension settings
Dimensions data is cached in Wrapbook but no longer synced from NetSuite
Payroll issuance in Wrapbook continues to work, but no Vendor Bills will sync to NetSuite
Troubleshooting
Troubleshoot a failed push
Find the failure. Go to Company Settings → Integration push history. Locate the payroll row and check the Sync Status column — a status of "Failed" means the push didn't go through.
Read the error message. Click the row to view the specific error and timestamp. This tells you which validation failed (for example, missing dimension, invalid GL account, unmapped chart line).
Check the likely causes, in order:
Is a Chart Template assigned to the project? Go to Project Settings → Cost tracking and confirm a chart is selected under Enable accounting chart. No chart assigned means any coding is accepted, which can cause downstream mapping gaps.
Does the fringe mapping exist? Go to Project Settings → Project Charts and confirm fringe-bucket rows (Total Fringes, Employer Taxes, Platform) are mapped to GL accounts, not left blank.
Are dimension overrides missing? Check Company Settings → Integrations Settings → Edit → Override project dimensions to confirm required dimensions (Project, Location, Department, Item, Task) are set for this project.
Fix and re-sync. Once the gap is corrected, use the Retry Sync button on the payroll row and confirm Sync Status updates to "Synced" within ~15 seconds.
NetSuite common errors
Error / Symptom | Cause | Solution |
|---|---|---|
| Integration role lacks required permissions | Return to Step 1C and verify permissions. Test by fetching dimensions data in Step 2 — empty lists = missing permissions. |
| GL account doesn't exist or was archived since the last sync | Verify the account is active in NetSuite. Use Refresh Data in Wrapbook, then re-map if needed. |
| A dimension is enabled in Wrapbook but no value was provided at company or project level | Set a default in Company settings → Integrations settings → Edit Dimensions, or override at the project level. If the dimension is optional, disable it in Edit Dimensions. |
| Project was archived or deleted in NetSuite since the last sync | Use Refresh Data. If the project still doesn't appear, it was deleted in NetSuite — select a different project or contact your CSM. |
| The Wrapbook vendor record doesn't exist or was deleted in NetSuite | Create a vendor named "Wrapbook" in NetSuite (Lists → Relationships → Vendors → New), then use Refresh Data in Wrapbook. |
| Token ID or Token Secret is no longer valid | Go to Setup → Users/Roles → Access Tokens in NetSuite, create a new token, and replace the credentials in Company settings → Accounting → Integrations → NetSuite. |
| Integration role lacks write access to the subsidiary being synced | Verify the role has write access to all subsidiaries in Step 1C. You may need a separate Wrapbook company connection per subsidiary. |
Permission checklist (for NetSuite admin)
Use this checklist in NetSuite at Setup → Users/Roles → [Integration Role] → Permissions:
Required for all integrations:
☐ Token-Based Authentication = enabled
☐ Perform Search = Full
☐ SuiteAnalytics Workbooks = enabled
Transaction-level:
☐ Vendor Bills: Create, View, List
☐ Journal Entries: View (optional but recommended for auditing)
Dimensions data:
☐ Chart of Accounts: View, List
☐ Projects: View, List
☐ Locations: View, List
☐ Departments: View, List
☐ Items: View, List
☐ Tasks: View, List
☐ Subsidiaries: View, List (multi-subsid
Multi-subsidiary:
☐ Role has write access to each subsidiary it will post to
Can't find a permission? NetSuite groups permissions under module names. Check under Accounting, Setup, or Search if you don't see the permission at the top level.
Need help?
Contact the Wrapbook Support Team or reach out to your Wrapbook Customer Success Manager if you run into setup issues or have questions about how your specific NetSuite configuration works with the integration.