The instructions here contain steps to complete in both MarginEdge and NetSuite first. At the very end of the article is some troubleshooting help.
- Initial Setup
- Step 1: Connection Setup
- Step 2: Configuration Options
- Step 3: Location Settings
- Step 4: Department Settings
- Step 5.a: Class Settings
- Step 5.b: Advanced Settings
- FAQ Troubleshooting
Initial Setup
-
In MarginEdge, go to Setup → Integrations
-
Under the Accounting section, expand the dropdown and select NetSuite
-
Click the blue button
Connect to Accounting System -
This should take you to the 1st step of the connection setup for NetSuite
Step 1: Connection Setup
For step 1, you need to collect the following 6 credentials from NetSuite and put them in their respective fields.
[1] NetSuite wsURL
Note down the URL you see when you are logged in to NetSuite. For example, when logged in to NetSuite, if the website you are on is https://1234-abcd.app.netsuite.com/, then your NetSuite wsURL will be https://1234-abcd.suitetalk.api.netsuite.com
[2] NetSuite Account ID
In NetSuite, navigate to Setup > Company > Company Information and copy your ACCOUNT ID. Paste it into the NetSuite Account ID field in MarginEdge:
[3-4] NetSuite Customer Key & NetSuite Customer Secret
-
In NetSuite, set up a new integration under Setup > Integrations > Manage Integrations - > New
-
Set the name to "MarginEdge".
-
Select
TOKEN-BASED AuthenticationandTBA: ISSUETOKEN ENDPOINT -
Unselect
TBA: AUTHORIZATION FLOWandAUTHORIZATION CODE GRANT -
Once you hit "Save" at the bottom of this screen, a "Consumer Key" and "Consumer Secret" will be generated for this integration under the Client Credentials section. Copy them somewhere safe and paste them into the NetSuite Customer Key and NetSuite Customer Secret fields in MarginEdge, respectively.
[5-6] NetSuite Token ID & NetSuite Token Secret
-
Create a new role to access the newly created integration by going to Setup > Users/Roles > Manage Roles > New
-
The role should also have "ALL" selected under the Subsidiary Restrictions section and the "WEB SERVICES ONLY ROLE" selected under the Authentication section:
-
The role should have the permission levels set for Transactions, Lists, and Setup according to
Permission
Level
Section
Bill Purchase Orders
View
Transactions
Bills
Full
Transactions
Enter Vendor Credits
Full
Transactions
Make Journal Entry
Full
Transactions
Pay Bills
Full
Transactions
Purchase Order
Full
Transactions
Accounts
View
Lists
Documents and Files
Full
Lists
Employees
View
Lists
Guests
View
Lists
Customers
View
Lists
Locations
View
Lists
Departments
View
Lists
Classes (also sometimes called Product Categories)
View
Lists
Resource
View
Lists
Subsidiaries
View
Lists
Vendors
View
Lists
Log in using Access Tokens
Full
Setup
SOAP Web Services
Full
Setup
-
Assign your user (or the user you intend to use) the role you've created. You can do so under Lists > Employees > (Select the user) > edit user > Access > Roles.
-
Create a new Access Token from Setup > Users/Roles > Access Tokens > New
-
When creating, make sure that the token is assigned to the role you've created above.
-
Please make sure to take note of the Token ID and Token Secret when creating the token (For security reasons, NetSuite displays the values for Token ID and Token Secret only on the initial setup page. They cannot be retrieved later from the system. If you lose this information, you will need to create a new token again)
-
Use the
Token IDandToken Secretas theNetSuite Token IDandNetSuite Token Secretin MarginEdge connection modal and then clickSave ProgressorNext
If the set of all 6 credentials above is correct, you will be able to Save Progress and go Next
Step 2: Configuration Options
NetSuite Subsidiary
-
In NetSuite, the list of subsidiaries can be found under Setup > Company > Classifications> Subsidiaries. See the FAQ section if you don’t see it.
-
In Marginedge, at step 2, select your desired subsidiary from the NetSuite Subsidiary dropdown. This is the standard setup, where you assign a single subsidiary for all items exported to NetSuite. If you need to configure multiple subsidiaries, refer to the next point.
-
This scenario, known as Shared Vendor Bills, applies when you have multiple subsidiaries but pay bills for other subsidiaries or restaurants from a top-level subsidiary (e.g., a corporate account) in NetSuite. In this case, you may want to track Accounts Payable (A/P) items under a specific top-level subsidiary while recording expenses and income for each restaurant location separately.
-
To configure this, do the following things in MarginEdge:
-
-
-
- Select the checkbox Send A/P items to a different subsidiary.
- From the NetSuite Expense/Income Subsidiary dropdown, select the subsidiary associated with your restaurant. This will populate the LINE SUBSIDIARY column under the Expense section in NetSuite when you view the bill.
- From the NetSuite A/P Subsidiary dropdown, select the top-level subsidiary. This will be reflected in the SUBSIDIARY section under the Primary Information section in NetSuite when you view the bill.
-
NetSuite Attachment Folder ID
-
If you want to send your invoice/credit attachments from MarginEdge to NetSuite, select the checkbox Send attachments to NetSuite?, which will also populate the mandatory field NetSuite Attachment Folder ID
-
To get the
NetSuite Attachment Folder IDwithin NetSuite, go to Documents and look for theINTERNAL IDof the folder where you want those attachments stored. (Check the FAQ section if you don’t see the Internal IDs in NetSuite) -
Enter the
INTERNAL IDinto MarginEdge at the NetSuite Attachment Folder ID field -
Select the checkbox Send attachments as one combined PDF? if you want the images per invoice to come merged as one PDF
-
Configure Export Frequency
-
Click
Save Progressto apply these settings or clickNextto both apply the settings and move to the next step
Step 3: Location Settings
-
In NetSuite, Locations can be found under Setup > Company > Classifications> Locations. See the FAQ section if you don’t see it. Also, go to Setup > Accounting > Accounting Preferences; under Classifications, locate the option
Make Locations Mandatory. Check if it is currently mandatory or optional. -
As long as Locations are an optional classification in NetSuite, you can leave the '
Send Location Information to NetSuite?' checkbox unselected and click Next if you don’t use locations or don’t want to set the Location entity on any transaction entries. -
When locations are optional, you can select your desired options on the dropdowns for
Vendor Bills, Vendor CreditsandSales Journals, Inventory Adjustment Journals, non-A/P Journal Entries(see the FAQ section to know what each option means) -
If Locations are a mandatory classification in your NetSuite account, you must select the checkbox
Send Location information to NetSuite?and choose a location from the dropdown to set it as the default location for all or specific transaction types. Additionally, for Bills and Credits, ensure you select 'On both the transaction and the expenses.' For Sales, Inventory, and non-A/P Journals, choose 'On the lines.' -
Click
Save Progressto apply these settings or clickNextto both apply the settings and move to the next step
Step 4: Department Settings
-
Departments can be found under Setup > Company > Classifications > Departments. See the FAQ section if you don’t see it. Also, go to Setup > Accounting > Accounting Preferences; under Classifications, locate the option
Make Departments Mandatory. Check if it is currently mandatory or optional. -
As long as Departments are an optional classification in NetSuite, you can leave the '
Send Department Information to NetSuite?' checkbox unselected and click Next if you don’t use departments or don’t want to set the Department entity on any transaction entries. -
When departments are optional, you can select your desired options on the dropdowns for
Vendor Bills, Vendor CreditsandSales Journals, Inventory Adjustment Journals, non-A/P Journal Entries(see the FAQ section to know what each option means) -
If Departments are a mandatory classification in your NetSuite account, you must select the checkbox
Send Department information to NetSuite?and choose a department from the dropdown to set it as the default department for all or specific transaction types. Additionally, for Bills and Credits, ensure you select 'On both the transaction and the expenses.' For Sales, Inventory, and non-A/P Journals, choose 'On the lines.' -
Click
Save Progressto apply these settings or clickNextto both apply the settings and move to the next step
Step 5.a: Class Settings
-
Classes can be found under Setup > Company > Classifications > Product Categories. See the FAQ section if you don’t see it. Note that ‘Class’ can be already named differently in your NetSuite account. Now, go to Setup > Accounting > Accounting Preferences; under Classifications, locate the option
Make Classes Mandatory. Check if it is currently mandatory or optional. -
As long as Classes are an optional classification in NetSuite, you can leave the '
Send Class Information to NetSuite?' checkbox unselected if you don’t use classes or don’t want to set the Class entity on any transaction entries. -
When classes are optional, you can select your desired options on the dropdowns for
Vendor Bills, Vendor CreditsandSales Journals, Inventory Adjustment Journals, non-A/P Journal Entries(see the FAQ section to know what each option means) -
If Classes are a mandatory classification in your NetSuite account, you must select the checkbox
Send Class information to NetSuite?and choose a class from the dropdown to set it as the default class for all or specific transaction types. Additionally, for Bills and Credits, ensure you select 'On both the transaction and the expenses.' For Sales, Inventory, and non-A/P Journals, choose 'On the lines.'
Step 5.b: Advanced Settings
-
In step 5, if you select the optional checkbox Enable assigning specific locations/departments/classes to each category and sales line under the Advanced Settings section, new columns will be added to both the Accounting > Categories and Accounting > Sales Mapping pages in MarginEdge.
-
Note: The Advanced Settings section will only be visible if you have enabled Locations, Departments, or Classes. At least one of these dimensions must be enabled to see the checkbox.
-
You will see new columns in MarginEdge only for the corresponding dimensions you have enabled. For example, if only the "Send Location information to NetSuite?" option is selected at step 3, a column only for Location will appear. If all three dimensions are enabled, you’ll see three columns on the Categories and Sales Mapping pages like the example images below:
-
-
Once you select a location/department/class from the columns on the
Accounting -> Categoriespage and theAccounting -> Sales Mappingpage, the corresponding location/department/class will override the default value you selected in steps 3/4/5.-
Note that this applies only to the Expense line
-
If you leave the location/department/class value blank on the Categories/Sales Mapping screen then the default value will be used
-
If two categories that share the same Accounting System Account have different Locations/Departments/Classes, then the two categories are sent as individual lines into NetSuite
-
FAQ Troubleshooting
Error: "Please enter value(s) for: Location/Department/Class" while exporting bills and journals
This error occurs when Locations, Departments, or Classes are a mandatory classification in NetSuite, but they have not been enabled on the MarginEdge side. Here’s an example of how to resolve the issue for Locations. Note that you can follow the same steps and pattern if the error occurs for Departments or Classes too.
1. Confirm that Locations are a mandatory classification in NetSuite:
- In NetSuite, go to Setup > Accounting > Accounting Preferences.
- Under Classifications, locate the option Make Locations Mandatory
- If the Make Locations Mandatory preference is enabled but you believe Locations should not be mandatory, unchecking this option should resolve the error. In that case, you won't need to enable Locations on the MarginEdge side.
2. Enable Locations in MarginEdge:
- If Locations are mandatory in NetSuite, ensure that both the sending and setting locations options are enabled in Step 3 of the NetSuite connection modal in MarginEdge.
Empty list on the Locations/Departments/Classes dropdown
- Follow the instructions in this link to check if there are any permission issues with the role you created in NetSuite.
- Additionally, double-check in NetSuite to ensure that at least one entity is created for Locations, Classes, or Departments if you encounter an empty dropdown.
Not seeing Classes/Departments/Locations/Subsidiaries in NetSuite
If you cannot find records under Setup > Company > Classifications in NetSuite with the exact names of Subsidiaries, Departments, Locations, or Classes, it’s possible that someone in your organization has renamed the names of these entities, or NetSuite may have changed the default names. These changes can be verified and adjusted under Setup > Company > Rename Records/Transactions. For example, "CLASS" was renamed to "Revenue Center" in this account:
-
When you open a bill/credit in NetSuite,
CLASSis always displayed asPRODUCT CATEGORYin theTransaction Informationsection,
Vendor Bills & Credits: On the Expense lines vs On the Transaction itself vs Both vs Do not Send
Where should the Location/Department/Class be set on Vendor Bills/Credits?
-
-
On the expense lines means the selected dimension will be set in the Expense section but will be blank in the
Transaction Informationsection -
On the transaction itself means the selected dimension will be set in the
Transaction Informationsection but will be blank in theExpensesection -
On both the transaction and the expenses means the selected dimension will be set both in the
Transaction InformationandExpensesections -
Do not send Location for Vendor Bills/Credits means the selected dimension will be set in at all in any section (show blank)
-
Journals: On the Lines vs Do not send
Where should the Location/Department/Class be set on Sales Journals/Inventory Adjustment Journals/non-A/P Journal Entries?
-
-
On the lines means the selected dimension will be set in the Lines section
-
Do not send means the selected dimension will not be set in the Lines section (show blank)
-
Not seeing Internal IDs in NetSuite
Not seeing Internal IDs in NetSuite? To enable this in NetSuite, go to Home (hover over the house symbol) > Set Preferences > General > Defaults and check the box for Show Internal IDS if it hasn't already been checked.
Auto-Generate Invoice Numbers
When an invoice does not have an invoice number, MarginEdge does not typically create one. However, our software will auto-generate one in order to export this invoice because Netsuite does not accept blank invoice numbers. You will see this information directly on the order itself in [me].