Flxpoint Help Center
All DocsContact support

NetSuite as a Channel

July 2, 2026

Summary

NetSuite as a channel in Flxpoint lets you sync and link product listings, pull Purchase Orders and Sales Orders from NetSuite into Flxpoint, and push shipment data back. Because NetSuite is an ERP rather than a marketplace, the connection uses Token-Based Authentication (TBA) - an Account ID plus a consumer key/secret and access token/secret that must be configured in NetSuite first.

Sync & Link Listings
Syncs quantity, price, custom fields and variant attributes to NetSuite and links products to their NetSuite items
Get Orders
Pulls Purchase Orders and/or Sales Orders from NetSuite into Flxpoint, saving order and item IDs to keep future syncs aligned
Sync Orders
Pushes shipment and tracking data back to NetSuite at the item level

Go to Channel+ Add Channel, search NetSuite, choose NetSuite Purchase Order, then enter these on the connection screen. Click Test ConnectionSave Connection.

Connection NameSetting
A label you choose to identify this NetSuite connection inside Flxpoint.
Any name; used only within Flxpoint.
Client ID / Client SecretRequired
The consumer key and consumer secret from your NetSuite integration record, created when you enable Token-Based Authentication in NetSuite.
Generated in NetSuite on the integration record - not issued by Flxpoint.
NetSuite Store ID (Account ID)Required
Your NetSuite Production Account ID. Enter it here to target Production.
Must match your NetSuite environment exactly.
Token ID / Token SecretRequired
Your Token-Based Authentication access token and secret, generated in NetSuite via the Settings portlet → Manage Access TokensNew My Access Token (choose your Integration and role, then Save).
Copy the Token ID and Token Secret at creation time - the secret is shown only once.
Sandbox Store IDOptional
Your NetSuite Sandbox Account ID. Leave blank to target Production; enter a value to point the connection at Sandbox instead.
Leave empty for Production.
Before connecting, enable the four SuiteCloud features in NetSuite (SuiteScript, SuiteTalk (Web Services), REST Web Services, Token-Based Authentication) and give the integration role the required permissions - SuiteAnalytics Workbook is required for Production REST auth. If Test Connection fails with an "Invalid login attempt" error, regenerate the Token ID/Secret and check the NetSuite Login Audit Trail (Setup → Users/Roles → User Management) for the exact rejection reason.

Four NetSuite SuiteCloud features must be enabled before connecting

In NetSuite go to Setup → Company → Enable Features → SuiteCloud and confirm all four are active: SuiteScript, SuiteTalk (Web Services), REST Web Services, and Token-Based Authentication. Connecting without these enabled causes authentication errors that are easy to misread as credential problems.

Get Orders filters by creation date only - no custom-field filters by default

The standard NetSuite PO query filters by createdDate, pulling all POs created after the configured date. To restrict by a custom field (e.g. custbody_ready_for_flxpoint = true) or by lastModifiedDate, contact Flxpoint support - this needs a custom query configuration and is not a self-service setting.

FFL expiration date fails if NetSuite exposes it as a string, not a date field

If NetSuite returns the FFL expiration as plain text rather than a date/datetime field, Get Orders fails with a "provided string value" error on Expires At. Use the Custom FFL Number + Derived FFL Expiration Date From FFL Number mapping fields with derivation rules, or ask your NetSuite admin to expose the field as a proper date type.

PO-SO linking requires the correct PO Item Association Key

For Send Accounting to match Purchase Orders to their originating Sales Orders, set the PO Item Association Key in Flxpoint to the exact NetSuite custom transaction column that links PO lines to SO items (e.g. custcol_mt_linked_po). An incorrect or missing key causes Send Accounting jobs to fail with association errors.


Syncs product quantity, price, and mapped fields to NetSuite, and supports syncing custom fields and variant attributes. Enable Allow updating custom quantity to let sync update a custom quantity field in NetSuite, and use the mapping template to control which attributes are written. Not supported: hiding/delisting via sync, and changing inventory-tracking configuration via sync.
FieldNotes
Purchase Orders / Sales OrdersDownload POs and/or SOs; order & payment statuses, receipts/invoices, currency, and weight & dimensions come across. Fetches are filtered by creation date from the Get Orders settings, and order & item IDs are saved to keep future syncs aligned.
Custom fields (custbody_*)Map NetSuite order custom fields (e.g. custbody_*) to Flxpoint order fields as needed.
Custom FFL NumberString. Map to the NetSuite custom field holding the FFL licence number; Flxpoint applies rule logic to derive the expiration year and month from the licence characters (typically characters 9-10).
Derived FFL Expiration Date From FFL NumberDate. Stores the derived FFL expiration as a proper Date value, regardless of how NetSuite exposes the original field. For Palmetto-style tenants the value is retrieved via SuiteQL so it arrives in the correct format.
PO Item Association KeyFor Send Accounting, set to the exact NetSuite custom transaction column that links each PO line to its SO item (e.g. custcol_mt_linked_po) so each PO matches its originating SO. One Sales Order can have multiple Purchase Orders.
Not supportedOrder acknowledgement, shipping selection, digital items/donations, and FFL/expiration values NetSuite exposes only as plain text (not date/datetime).
Syncs shipments at the item level and can optionally update custom fields. Matches use the Order ID and Item ID saved during Get Orders; one Sales Order can have multiple POs and each PO is handled as its own order record. Not supported: the platform "Notify Customer" flow, partial order or partial item shipments, and post-shipment status updates.

"Invalid login attempt" or authentication error when creating the NetSuite connection
Work through these in order: confirm all four SuiteCloud features are enabled (SuiteScript, SuiteTalk, REST Web Services, Token-Based Authentication); verify the integration role has the required permissions including SuiteAnalytics Workbook in Production; confirm the Account ID matches your NetSuite environment exactly; regenerate the Token ID and Token Secret (Settings portlet → Manage Access Tokens) and update them in Flxpoint; and check the NetSuite Login Audit Trail (Setup → Users/Roles → User Management → View Login Audit Trail) for the exact rejection reason. If your organization requires IP allow-listing, contact Flxpoint support for the IPs to add.
Price not syncing from Flxpoint to NetSuite - NetSuite shows outdated prices
Confirm the Sync Listings mapping template has the Price field explicitly mapped and the job is running on schedule. If the job completes without errors but prices stay stale, check whether Flxpoint is sending the cost value instead of the list price - a common mix-up when the source data has both. Also verify the connection points to Production, not Sandbox.
"Unable to parse value '11.62' (String) from the Number field (custbody_ca_tax_cost)"
A custom NetSuite number field is receiving a string value instead of a number. Open the Send Accounting Orders mapping template and ensure the source for the failing custom field (e.g. custbody_ca_tax_cost) is mapped as a numeric type, not text. For calculated or formula fields, confirm the output type matches the NetSuite field's data type.
"There are multiple sublist lines with the same identifier. Make sure every line is unique."
NetSuite received a PO or SO with duplicate line-item identifiers - commonly triggered by promotions (e.g. Buy 1 Get 1 Free) that create two line items with the same SKU on one order. NetSuite rejects duplicate sublist rows. This is an engineering-level fix for that order flow; raise a support ticket with example order numbers. In some cases the order still generates but one line item is dropped.
"Failed to send sales order to NetSuite. Reason: 500 Internal Server Error: UNEXPECTED_ERROR"
A 500 UNEXPECTED_ERROR from NetSuite's REST API is a NetSuite-side error, not a Flxpoint error. The error ID in the response (e.g. mmpb2najdc01a6c2sw2u) lets a NetSuite admin look up the exact cause in the NetSuite system log - common causes include a SuiteScript firing on the record and failing, a required field missing on the order, or a scripting conflict. Share the error ID with your NetSuite admin or implementation partner to diagnose on the NetSuite side.
Shipment sync error: "404 Not Found: [no body]" or "Index 0 out of bounds for length 0"
A 404 on Send Accounting Shipments usually means Flxpoint cannot locate the NetSuite record to update - most often because the order was not yet created in NetSuite when the shipment sync ran, or its NetSuite internal ID was not saved correctly during Get Orders. Confirm the order exists in NetSuite, then re-run the shipment sync. "Index 0 out of bounds" typically indicates an empty result set - raise a ticket with the specific shipment and order numbers so engineering can investigate the record lookup.

How do I filter which NetSuite POs Flxpoint imports?
By default Flxpoint pulls all POs created after the date configured in Get Orders settings - there is no self-service filter on custom fields. To restrict imports by a custom body field (e.g. a "ready for Flxpoint" flag) or by lastModifiedDate instead of creation date, raise a request with Flxpoint support to configure a custom query filter for your connection. The creation-date window is set in the Get Orders integration settings.
Can I push variant descriptions and custom fields to NetSuite through listing sync?
Yes - Sync & Link Listings supports syncing custom fields and variant attributes to NetSuite. Map your Flxpoint fields (including custom fields like custitem_jcs_variantdescription) to the corresponding NetSuite item fields in the Sync Listings mapping template. Parent and variant fields can be mapped independently.
Does the NetSuite channel support partial shipments in Sync Orders?
No - partial shipments are not supported. Shipments sync at the item level, but partial order or partial item shipments are not sent. Also note that one NetSuite Sales Order can have multiple Purchase Orders; each PO is handled as a separate order record in the sync flow.
How should I handle a NetSuite Sandbox vs. Production environment?
Enter your Production Account ID in the NetSuite Store ID field and leave Sandbox Store ID blank to target Production. To point the connection at Sandbox instead, enter your Sandbox Account ID in the Sandbox Store ID field. Note that NetSuite Sandbox undergoes periodic maintenance windows (typically tied to Release upgrades) during which the connection is unavailable - plan test runs accordingly.
Why does my accounting sync take a long time to drop orders into NetSuite?
Delays are usually caused by one of three things: the sync job is queued behind other scheduled jobs and hasn't started yet; NetSuite's REST API is responding slowly due to NetSuite-side load; or the orders have mapping errors that trigger retries. Check the job logs to confirm the job started and review the error log for field-mapping failures. If the sync completes without errors but orders still appear in NetSuite late, this is typically NetSuite processing lag rather than a Flxpoint issue.
What role permissions does the Flxpoint integration user need in NetSuite?
At minimum - Setup: Access Token Management, Log in using Access Tokens, REST Web Services. Lists: Items, Customers, Vendors. Transactions: Purchase Order, Sales Order, Item Fulfillment. Reports: SuiteAnalytics Workbook (required for Production REST auth). Use a dedicated "Flxpoint Integration" role rather than a shared admin role to isolate permissions and avoid token conflicts.
© 2026 Flxpoint. All rights reserved.