Skip to main content
Synq tracks stock using an inventory ledger — a permanent, append-only record of every movement that has ever touched a SKU. Each time you receive new stock, write off shrinkage, or make a manual correction, Synq records the variant, location, quantity change, and the reason. The current on-hand quantity for any variant at any location is always derived from the sum of those recorded movements. This design gives you a complete, auditable history of your inventory without ever overwriting past data.

How inventory adjustments work

When you post an adjustment, Synq permanently records a stock movement with the following fields:
  • variant_id — the product variant the movement applies to
  • location_id — the warehouse or fulfillment center where stock changed
  • quantity_delta — a signed integer: positive values add stock, negative values remove it
Each adjustment is written permanently and cannot be modified or deleted.
Inventory adjustments are permanent. Once a movement is recorded, it cannot be modified or deleted. To correct a mistake, post a new adjustment that reverses the error.

Required headers

Every request to the Synq API requires three headers for tenant isolation and authentication.

Adjust inventory

Use POST /api/v1/inventory/adjust to record any stock movement for a variant at a specific location. This single endpoint covers all use cases: receiving new goods, removing damaged units, correcting miscounts, and writing off shrinkage.

Endpoint

Request fields

string (UUID)
required
The Synq variant UUID for the SKU whose stock you are adjusting.
string (UUID)
required
The UUID of the warehouse or fulfillment location where stock is changing.
integer
required
The signed quantity to apply. Use a positive integer to add stock (e.g. receiving a shipment), and a negative integer to remove stock (e.g. shrinkage or a manual write-off).
Use location_id to track stock independently per warehouse, retail store, or 3PL fulfillment centre. Synq computes available stock per variant_id + location_id pair, so you always know exactly how much stock is available at each site — not just globally.

Examples


Response

A successful adjustment returns 200 OK with the details of the recorded stock movement.
Response

Response fields

string (UUID)
The unique identifier of this recorded stock movement.
string (UUID)
The organization this adjustment belongs to.
string (UUID)
The tenant this adjustment belongs to.
string (UUID)
The variant whose stock was adjusted.
string (UUID)
The location where the stock movement occurred.
string
The type of movement recorded. API-driven adjustments use "adjustment". Order fulfillment and returns use their own transaction types written automatically by the OMS.
integer
The signed delta recorded for this movement. Positive means stock was added; negative means stock was removed.
string | null
An optional reference identifier linking this movement to an external record (e.g. a purchase order number). null for generic API adjustments.
number | null
Cost per unit at the time of the movement, if captured. null for generic API adjustments.
string
Human-readable note attached to this movement. Defaults to "API Adjustment" for entries created via this endpoint.
string (ISO 8601)
UTC timestamp of when this stock movement was recorded.

Common use cases

Do not use this endpoint to reflect inventory consumed by order fulfillment. The Synq OMS automatically reserves and deducts inventory when it processes an order. Manually posting a negative delta on top of a fulfilled order will result in double-deduction.