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:

      • 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

Logo