It is mandatory to set up your NetSuite account correctly before using Spendesk's native integration with NetSuite.
Please follow these steps:
Log into your NetSuite account with your Administrator credentials (important!)
Under Setup>Company Information find your NetSuite Account ID and save it somewhere as you will need it later on in the process.
Install the NetSuite Spendesk integration role bundle: Find the bundle under Customization>SuiteBundler>Search & Install bundles>Advanced, search for Production Account ID “5762887”. In search results select “Spendesk native integration” and click "Install", a preview page will open, click Install again.
Under Setup>Users/Roles>Manage Users select the user that will be used to post expenses from Spendesk to NetSuite and add the following role for this user on the Access tab: “Spendesk native integration”. If the role doesn’t appear in the dropdown, wait a few minutes until the bundle is installed.
Under Setup>Integration>Manage Integrations>New create a new integration for Spendesk to use:
Check TOKEN BASED AUTHENTICATION
Check TBA AUTHORIZATION FLOW and enter the following callback URL:
Uncheck AUTHORIZATION CODE GRANT under OAuth 2.0
Click Save and make sure you scroll all the way down on the resulting page.
Keep this page open as you will only be able to see your Client ID and Client Secret once. You can reuse the same Client ID and Client Secret in order to connect other Spendesk entities to NetSuite subsidiaries, so you may want to temporarily store these in a secure location.
NB: if at any time you need to reset your Client ID and Client Secret you can click Edit on your integration and then click Reset Credentials.
Go to Spendesk and initiate the connection flow to NetSuite
NB: Wait. Did you think about your old non-exported transactions that you don’t want to see in NetSuite? We recommend that you select a date from which all transactions need to be exported to NetSuite. You can either export all transactions before this date manually via a file-based export (single-entry or double-entry) or you can use the Bookkeeping Date feature. Set Bookkeeping Date under Settings>Accounting>Bookkeeping Date and all transactions before that date will be hidden in the UI. This can only be done while you are on a file-based accounting integration - once you connect to NetSuite this date cannot be set or changed.
Copy your NetSuite Account ID, Client ID and Client Secret in the modal on Spendesk and click Connect. STOP HERE UNTIL YOU READ THE NEXT POINT!
Log into NetSuite with the credentials of the user you selected above (the one you assigned the role to) and select the “Spendesk native integration” role before clicking Allow (Important!). Note: the page NetSuite displays is counterintuitive, make sure you are not connecting Spendesk with Administrator role.
A subsidiary selection modal appears - select the NetSuite subsidiary you want to connect to.
Once successfully connected it is time to check that all your standard and custom NetSuite segments are mapped to an analytical field in Spendesk. Check which ones from Class, Department, Location, Expense Category and custom segments you would like to use and create an analytical field for each of those on Settings>Analytical fields (or ask your Spendesk Onboarding Manager to create them). When creating an analytical field through Spendesk UI at least one value is mandatory - enter “X” and click “Create the analytical field”, then delete the value “X”. There should be no values in the analytical field - they will be pulled automatically from NetSuite. No values should ever be added through Spendesk UI (except Cost Centers on Settings>Cost centers). Only the values that the integration pulls from NetSuite can be used for exports.
Note: Do not name a custom field
Map the newly created Spendesk analytical fields to corresponding NetSuite segments under Settings>Accounting>Analytical fields. Note: For Class, Department and Location the mapping dialog will ask if the field should be exported on each line-item, in transaction body or both:
You can check this in your NetSuite account by navigating to Setup>Accounting>Accounting Preferences. If the corresponding checkbox ALLOW PER-LINE DEPARTMENT/CLASSIFICATIONS/LOCATIONS is checked then this segment needs to be exported on each line-item. Otherwise (unchecked) - in the transaction body. Note: if ALLOW PER-LINE LOCATIONS is not visible, it means it is checked and hidden.
Custom segments (other than Class, Department and Location) are sent both in the transaction body and repeated on each line-item.
Note: We recommend to not map Spendesk Cost centers to NetSuite Departments in the beginning. Create an analytical field Department and map it to NetSuite’s Department. If the customer uses Cost centres, they need to be created manually in Spendesk. Since every cost center has to have an approval flow defined, the integration is not able to create cost centers automatically. If Cost center field is mapped to a NetSuite custom field (e.g. Department), then Spendesk will try to match Cost centers in Spendesk with Departments in NetSuite. That is why it is important that cost centers in Spendesk are named exactly the same as Departments in NetSuite.
Note: Custom segments in NetSuite have nested values. For example, if a department is called
Marketingwith parent =
France:Operations, then the right value for the cost center in Spendesk is
Now, click Refresh accounting settings under Settings>Accounting>Accounting integration. This will pull existing values of the segments from NetSuite to the analytical fields in Spendesk. In other words, you do not need to manually populate values of analytical fields in Spendesk - they will be automatically populated once a mapping is in place.
For each non-standard custom segment (i.e. other than Class, Department, Expense Category and Location) you would like Spendesk to support, grant the following permissions to “Spendesk native integration” under Customization>Lists, Records, & Fields>Custom Segments:
Configure your bank accounts by navigating to Settings>Accounting>Bank accounts.
If you would like your card purchases to be exported under a specific vendor (e.g. Miscellaneous or Spendesk), you can configure this on Settings>Accounting>Accounting Integration by enabling the “default vendor” toggle and selecting the corresponding NetSuite vendor:
If some of your Spendesk suppliers haven’t been automatically mapped to a NetSuite vendor, you can manually select a NetSuite vendor in the dropdown list on Settings>Accounts payable: