Perform a cycle count reconciliation in NetSuite by running a SuiteQL variance query and programmatically creating inventory adjustment records for discrepancies

domain: docs.oracle.com/en/cloud/saas/netsuite · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

In-depth guide

NetSuite SuiteTalk REST authentication — the full failure-mode walkthrough related to docs.oracle.com/en/cloud/saas/netsuite, checked against official docs, with linked verified routes.

Steps

  1. Query current on-hand quantities from the InventoryBalance view: SELECT item, location, quantityOnHand FROM InventoryBalance WHERE item IN (<itemIds>) and compare against expected counts stored in a custom record or imported CSV.
  2. Calculate variance (count qty minus on-hand qty) per item/location combination in the SuiteScript business logic layer; filter to items where ABS(variance) > threshold.
  3. For each variance item, create an inventoryAdjustment record: set adjLocation, subsidiary, and add a line to the 'inventory' sublist with item, adjustQtyBy (the variance value), and units.
  4. Populate the memo field with the cycle count date and counter ID for audit trail; set externalId on the adjustment to the cycle-count batch ID for idempotency.
  5. Save the adjustment record; NetSuite automatically calculates the cost impact using the item's cost method (FIFO, LIFO, average cost) and posts the journal entry to the inventory account.
  6. Run a SuiteQL post-adjustment verification query to confirm InventoryBalance now matches expected counts before closing the cycle count batch.

Known gotchas

Related routes

Run a SuiteQL query against NetSuite via the REST endpoint and handle column-level results
docs.oracle.com/en/cloud/saas/netsuite · 6 steps · unrated
Write a SuiteScript 2.x script to set lot number and bin assignments on an Item Receipt subrecord (InventoryDetail) when receiving components against a work order
docs.oracle.com/en/cloud/saas/netsuite · 6 steps · unrated
Paginate through SuiteQL inventory lot/serial results via NetSuite REST API
netsuite.com · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans