Net Suite
Integrating with NetSuite
Fast-Weigh Web Portal
Integration overview
Fast-Weigh has a direct 2-way integration with the NetSuite accounting system.
With the integration, you can:
Fetch :
Customers
Hauling vendors
Products
Post :
Invoices
Vendor bills
NetSuite setup checklist:
There are a few things you'll need to sure are set within NetSuite for the integration to work:
Integration authentication setup:
Oauth2 enabled:
Setup > Company > Enable Features > Manage authentication
Make sure the Oauth2 box is checked
Authorizing user:
The authorizing user for the integration will need full Oauth2 management rights.
Role attributes:
OAuth 2.0 Authorized Applications Management
Log in using OAuth 2.0 Access Tokens
The authorizing user must also have full read/write access to Invoices, Credit Memos, Vendor Bills, Customers, Vendors, Items.
Integration header setup
Setup > Integrations > Manage Integrations > New
Give the integration record a descriptive name (Ex: Fast-Weigh API Integration)
Oauth2:
Check the Authorization Code Grant box
Check the REST Web Services box
Redirect URI: https://portal.fast-weigh.com/NetSuite/Callback
IMPORTANT: Upon saving the record the client credentials will display. This is the only time they will be shown and it's important to copy them for later use within the Fast-Weigh Web Portal setup. Make sure you grab the:
CONSUMER KEY / CLIENT ID
CONSUMER SECRET / CLIENT SECRET
Automated sync authentication:
Requires a TBA token to be setup, not Oauth2.
Needs to be authorized for whatever resources will be automatically synced. (customers, vendors, etc).
Required for integration:
CONSUMER KEY / CLIENT ID
CONSUMER SECRET / CLIENT SECRET
Invoicing and Vendor Bill setup:
Enable manual invoice and credit memo numbers (Fast-Weigh needs to control and post it's own sequence)
Setup > Company > Auto-Generated Numbers
Document Numbers subtab:
Check the Allow override box for:
Invoice
Credit Memo
(Optional) Setup custom body and transaction fields to store ticket info posted from Fast-Weigh. These can be used in NetSuite forms and reporting.
Customization > Lists, Records & Fields > Transaction Body Fields > New
Note: NetSuite automatically prefixes custom body fields with "custbody_". If you intend to use these fields please make note to prefix the field name accordingly when searching for it.
fw_order_number
fw_order_info
fw_order_job
fw_order_lat
fw_order_long
fw_order_direction
fw_order_paytype
fw_order_udf1
fw_order_udf2
fw_order_udf3
Customization > Lists, Records & Fields > Transaction Line Fields > New
Note : NetSuite automatically prefixes custom line item fields with "custcol_". If you intend to use these fields please make note to prefix the field name accordingly when searching for it.
fw_ticket
fw_hauler
fw_truck
fw_ticket_udf1
fw_ticket_udf2
fw_ticket_udf3
Fast-Weigh setup checklist:
API Endpoint and credentials :
Your implementation manager will need these to enable the integration from the backend:
NetSuite Account ID
CONSUMER KEY / CLIENT ID (from integration header setup)
CONSUMER SECRET / CLIENT SECRET (from integration header setup)
INTERNAL NOTE FOR FW IMPLEMENTATION MANAGER : These are defined in the SettingsExtended table with the following "SettingName"
NS Account ID
NS Consumer Key
NS Consumer Secret
(These will be different for Sandbox vs Production NetSuite accounts.)
Once the endpoint and credentials are set, an initial sign in is needed to authorize the application for NetSuite.
On the Fast-Weigh Web Portal, go to Resource > Customers > [+ NetSuite Customers]
You should be prompted to sign into your NetSuite account
Authorizing user requirements:
The authorizing user for the integration will need full Oauth2 management rights.
Role attributes:
OAuth 2.0 Authorized Applications Management
Log in using OAuth 2.0 Access Tokens
The authorizing user must also have full read/write access to Invoices, Credit Memos, Vendor Bills, Customers, Vendors, Items.
Resources > Locations > Yard defaults
The fields associated with the Fast-Weigh yard serve as posting defaults for invoices.
These should be filled in with the Internal ID value from NetSuite. This can typically be copied from the URL. (Ex: <your-account>.app.netsuite.com/app/common/otherlists/locationtype.nl? id=410 )
ERP/Accounting Code: The NetSuite subsidiary
AR Cost Center: The NetSuite department / cost center for AR transactions
AP Cost Center: The NetSuite department / cost center for AP transactions
ERP Location ID: The NetSuite location ID
Tax Code ID: If using Avalara, this code will be used to post as a default tax code for the invoice
Default Queries and Settings Extended Values:
There are 3 possible query overrides for getting data from NetSuite. These can be set by the Fast-Weigh team as overrides for your integration:
SettingName: NS Customer Query
SettingName: NS Hauler Query
SettingName: NS Product Query
Default Customer Query:
SELECT SUBSTR(entityid, 0, 10) as CustomerID, customer.id as QBID, companyname AS CustomerName, BUILTIN.DF(CustomerSubsidiaryRelationship.subsidiary) as CompanyCode, BUILTIN.DF(terms) as Terms, email as InvoiceEmail, BUILTIN.DF(salesrep) as Salesperson, BillToAddress.Addr1 As Address1, BillToAddress.Addr2 As Address2, BillToAddress.Addr3 As Address3, BillToAddress.City As City, BillToAddress.State As State, BillToAddress.Zip As Zip, BillToAddress.Country As Country FROM customer LEFT OUTER JOIN EntityAddressbook AS DefaultBilling ON ( DefaultBilling.Entity = Customer.ID ) AND ( DefaultBilling.defaultbilling = 'T' ) LEFT OUTER JOIN EntityAddress AS BillToAddress ON ( BillToAddress.nkey = DefaultBilling.AddressBookAddress ) LEFT OUTER JOIN CustomerSubsidiaryRelationship ON ( CustomerSubsidiaryRelationship.Entity = Customer.ID ) where customer.isinactive = 'F'
Default Hauler Query:
SELECT entityid as HaulerID, SUBSTR(companyname, 1, 50) as HaulerName, id as VendorAPNum, SUBSTR(email, 1, 70) as ContactEmail, SUBSTR(phone, 1, 14) as ContactPhone, SUBSTR(BillToAddress.Addr1, 1, 30) As Address1, SUBSTR(BillToAddress.Addr2, 1, 30) As Address2, BillToAddress.Addr3 As Address3, SUBSTR(BillToAddress.City, 1, 25) As City, BillToAddress.State As State, SUBSTR(BillToAddress.Zip, 1, 10) As Zip, BillToAddress.Country As Country from vendor LEFT OUTER JOIN EntityAddressbook AS DefaultBilling ON (DefaultBilling.Entity = vendor.id) AND (DefaultBilling.defaultbilling = 'T') LEFT OUTER JOIN EntityAddress AS BillToAddress ON (BillToAddress.nkey = DefaultBilling.AddressBookAddress) where category = '9' and isinactive = 'F'
Default Product Query:
SELECT SUBSTR(itemid, 1, 15) as ProductID, SUBSTR(description, 1, 50) as ProductDescription, BUILTIN.DF(saleunit) as UoM, id as QBID FROM item
Last updated