Accounting & NetSuite

NetSuite as an accounting integration in Flxpoint lets you keep finance in sync by supporting Send Accounting Orders and Send Accounting Shipments. These operations create/update the corresponding NetSuite records (Sales Orders, Item Fulfillments, and related artifacts) using NetSuite’s REST Web Services and Token-Based Authentication (TBA). Explanations below highlight how routing, partial shipments, and customer/SKU mapping behave in practice. 
 

How to connect

📋 Phase 1: NetSuite Setup Prerequisites +
Enable Required Features
In Setup → Company → Enable Features, open the SuiteCloud tab and enable:
  • SuiteScript (Client + Server)
  • SuiteTalk (Web Services) → REST Web Services
  • Token-Based Authentication (TBA)
Assign Role Permissions
Go to Setup → Users/Roles → Manage Roles and ensure the integration role includes:
Tip: Create a dedicated “Flxpoint Integration” role for auditability.
Setup Permissions
  • Access Token Management
  • Log in using Access Tokens
  • REST Web Services
List Permissions
  • Customers, Vendors, Items
  • Custom Record Entries / Record Custom Field
  • Subsidiaries (OneWorld)
Transactions Permissions
  • Sales Order
  • Purchase Order
  • Item Fulfillment
  • Inventory Adjustment
  • Vendor Bill (for billing syncs)
Why This Matters
These features/permissions allow TBA-secured REST access and the records used by Flxpoint (Sales Orders, Item Fulfillments, POs, Vendor Bills).
🔐 Phase 2: Create Your NetSuite Connection +
Navigate to Accounting
Click the Account Settings gear → Accounting+ to add a new accounting integration.
Choose Integration
Select NetSuite Sales Order from the list.
Enter Credentials
Provide exactly as provisioned in NetSuite:
  • Connection Name
  • Client ID & Client Secret (Integration record)
  • NetSuite Store ID (your Flxpoint field for reaching the correct NS account/env)
  • Token ID & Token Secret (generated per user+role+integration)
Note: Use separate credentials for Sandbox vs Production. Keep values case-sensitive and secure.
Test & Save
Click Test Connection. If successful, Save ConnectionSave and Proceed.
⚙️ Phase 3: Configure Accounting Operations +
Toggles & Linking
Enable/disable Link to Existing Sales Receipts as needed, then Save and Proceed.
Enable Operations
Turn on desired Accounting Operations. For each enabled operation, select the relevant source(s) or channel(s).
Tip: Multiple sources/channels can map to one NetSuite connection when appropriate.
Save & Complete
Click Save and Complete to finalize setup.
🔑 Phase 4: Generate NetSuite Token ID & Token Secret +
Create Access Tokens
  1. Log in with a role that has Access Token Management.
  2. In the Settings portlet, click Manage Access Tokens.
  3. Click New My Access Token.
  4. On the Access Token page, select the Application (Integration) and role; keep the token name or set your own.
  5. Click Save, then copy Token ID and Token Secret and store securely.
  6. Note: Sandbox/Preview do not reuse Production tokens—create per environment.
NetSuite Connection Screenshot



Accounting Operations

Send Accounting Orders 

Supported | NetSuite — Send Accounting Orders

What this operation does
Creates a NetSuite Sales Order and, for dropship routes, a related Purchase Order from eligible Flxpoint orders. Customer matching/creation, SKU choice, and headers are driven by your mapping template.

  • POST Sales Orders to record/v1/salesorder (NetSuite REST).
  • Support internal warehouse (SO only) vs external/dropship (SO + PO).
  • Map customer/header/line fields, including custom fields.

  • 1 Create SO: We create a Sales Order when the order is eligible.
  • 2 Routing: Internal FR → SO only. External (dropship) FR → SO + PO.
  • 3 SKU handling: Choose to send PO-level SKU or Order-level SKU (exploded SKUs supported).
  • 4 Customer logic: If Customer Id is mapped, use it; else find by Email, then by Name; if not found, Flxpoint creates the customer and uses that Id.
Exploded SKU example
Ordered SKU: FLX-SKU123 (Qty 3). Routing splits to vendor SKUs.
SO lines might be:
VA-SKU123: Qty 1 | Internal Warehouse
FLX-SKU123: Qty 2 | Dropship | Vendor A

Common/Optional Customer & Header Fields
From Value To NetSuite Field Required? Notes
Customer → Email Email (Customer) Optional Used to find/create the customer if Id not provided.
Category Id (Customer) Optional Use your NetSuite value.
Custom Form Id (Customer) Optional Specify a particular customer form.
Entity Status Id (Customer) Optional Customer status value.
Subsidiary Id (Customer) Optional OneWorld accounts only.
Line Item & SKU Options
Choice Effect When to use
Send Order-level SKU Uses ordered SKU on SO lines. When a single SKU represents the item end-to-end.
Send PO-level SKU Uses vendor/dropship SKU (“exploded SKUs”). When vendors require their SKU on linked POs.

Partial invoicing is supported. When a vendor bills only some PO lines:

  • First bill: Send all lines; for not-yet-billed items use quantity: 0.
  • Later bill(s): Send only newly invoiced items with billed quantities.
Example payloads
{
  "items": [
    { "orderLine": 1, "quantity": 1 },
    { "orderLine": 2, "quantity": 0 }
  ]
}
{
  "items": [
    { "orderLine": 2, "quantity": 1 }
  ]
}
NetSuite posts separate Vendor Bills while keeping accounting consistent across staged invoices.

  • 1 Enable the operation: Accounting → Send Accounting Orders.
  • 2 Connection: Use your NetSuite connection (Production or Sandbox). Test → Save.
  • 3 Template: Select/create mapping and choose SKU option (PO-level vs Order-level).
  • 4 Schedule: Turn on Scheduled and set a cadence (e.g., Every 30 Minutes).

  • Customer not created/found → provide Customer Id or ensure Email/Name mapping exists.
  • Wrong SKUs on lines → verify template choice (Order-level vs PO-level) and vendor associations.
  • SO created but no PO → check FR type (PO generation only for external/dropship).
  • Validation errors → confirm IDs (Category, Custom Form, Entity Status, Subsidiary) match NetSuite values.

 

 
 

Send Accounting Shipments 

Supported | NetSuite — Send Accounting Shipments

What this operation does
Creates Item Fulfillments in NetSuite and updates shipped line items (quantities & tracking).

  • Create Item Fulfillments when shipments occur.
  • Attach one or many tracking numbers.
  • Fulfill shipped lines while keeping unshipped lines open.

  • 1 Eligibility: Shipment syncs once the Accounting Order exists in NetSuite.
  • 2 Create/Update: We create an Item Fulfillment and attach tracking.
  • 3 Line association: Items are linked by SKU.
NetSuite requirement: When transforming a Sales Order to an Item Fulfillment, NetSuite requires an inventoryLocation in the request (NetSuite validates against the created-from SO). Keep locations accurate to avoid transform errors.

Multiple shipments are supported via partial fulfillments:

  • Create a fulfillment for shipped lines (attach tracking on those lines).
  • Leave unshipped lines unfulfilled in the same request (SO stays Partially Fulfilled).
  • Later shipments create new fulfillments for the remaining lines.
Example flow
Fulfillment #1: fulfill SKU001 with tracking 1Z…; leave SKU002 unfulfilled.
Fulfillment #2: later fulfill SKU002 with new tracking.

Common Mappings
From Value To NetSuite Field Example Notes
Shipment → Tracking Number Tracking Numbers (Fulfillment) 1Z999… Single or multiple; all preserved.
Order Line Item → Quantity Quantity (Fulfillment Item) 1 Quantity fulfilled for that line.
Order Line Item → Weight Weight (Fulfillment Item) 2.4 Optional.

Feature Support Notes
Shipment status sync Not Supported Focus is on fulfillment creation.
Acknowledgements Not Supported Handled by other ops.
Item association Supported By SKU.
Account ledger sync Not Supported Billing is separate.

  • No fulfillment created → ensure the Accounting Order exists and template maps SKU + Quantity.
  • Tracking on wrong line → verify SKU parity NetSuite ⇄ Flxpoint.
  • Partial not reflected → unshipped lines must remain unfulfilled in that request.
  • Transform error → include a valid inventoryLocation when transforming to Item Fulfillment.
  • Automation → confirm the operation is Scheduled and saved.