All Collections
⚙︎ Integrations with accounting software
Netsuite native integration
NetSuite native integration: connect your Spendesk account to NetSuite 🚀
NetSuite native integration: connect your Spendesk account to NetSuite 🚀

Configuring your NetSuite settings and connecting your Spendesk account to your NetSuite account

Updated over a week ago

It is mandatory to set up your NetSuite account correctly before using Spendesk's native integration with NetSuite.

NetSuite features required for this integration:

  • SOAP Web Services and Token-based Authentication: Under Setup>Company>Enable Features, on the SuiteCloud sub-tab, check that both are enabled.

  • For Expense reports check that:

    • Employee records (not users) are created in NetSuite and belong to the subsidiary that will be connected to Spendesk;

    • Expense categories are defined under Setup>Accounting>Expense categories

    • At least one Account payable account exists for expense claims in the subsidiary that will be connected to Spendesk.

NetSuite features not yet supported by this integration

  • Projects - a standard segment along with Class, Department and Location

  • SuiteTax - a new way to manage taxes in NetSuite

  • Tax Groups

  • Approval routing - approval flows in NetSuite

  • Custom forms - Spendesk uses Standard forms

  • Accounting contexts - translations of the chart of accounts

  • Amortization schedules and start/end date

  • Custom transaction fields

  • Items (Spendesk creates Expense lines)

  • In Transit payments

Please follow these steps carefully:

  1. Log into your NetSuite account with your Administrator credentials (important!)

  2. Under Setup>Company Information find your NetSuite Account ID and save it somewhere as you will need it later on in the process.
    Under Setup>Company>Enable Features, on the SuiteCloud tab, check that these checkboxes are enabled: SOAP Web Services and Token-based Authentication

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

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

  5. Under Setup>Integration>Manage Integrations>New create a new integration for Spendesk to use:

    1. Check TOKEN BASED AUTHENTICATION

    2. Check TBA AUTHORIZATION FLOW and enter the following callback URL: https://api.spendesk.com/api/oauth1/netsuite/redirect-after-consent

    3. Uncheck AUTHORIZATION CODE GRANT under OAuth 2.0

  6. Click Save and make sure you scroll all the way down on the resulting page.

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

  8. Make sure you are logged out of all Spendesk entities except the one you are connecting to NetSuite. Do not open new tabs with Spendesk until the connection process is completed. Go to Settings>Accounting and initiate the connection flow to NetSuite.

    Wait. Did you think about your 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.

    One last thing. The date from which all transactions should be exported to NetSuite also applies to settlements (and bank fees). Please make sure you pay all invoices and expense claims that have already been exported and download the bank journal containing these settlements. It will not be possible to export a settlement to NetSuite if the corresponding invoice or expense claim hasn't been exported natively to NetSuite.

  9. Copy your NetSuite Account ID, Client ID and Client Secret in the modal on Spendesk and click Connect. The letters in your Account ID absolutely need to be in lower case for the connection to work. ⚠️ STOP HERE UNTIL YOU READ THE NEXT POINT! ⚠️


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

  11. A subsidiary selection modal appears - select the NetSuite subsidiary you want to connect to.

  12. 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 Team.

  13. 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 Marketing with parent = France : Operations, then the right value for the cost center in Spendesk is France : Operations : Marketing.

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

  15. 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:

  16. Configure your bank accounts by navigating to Settings>Accounting>Bank accounts.

  17. 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:

  18. 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:

19. For us to be able to use your accounts (expense accounts, accounts payables, etc.), the checkbox ELIMINATE INTERCOMPANY TRANSACTIONS must be turned off.

Did this answer your question?