Returns the serial transactions that match the given filters.
POST /inventory/serial-transactions/search
Group: Inventory › Serial Transactions · Operation ID: searchSerialTransactions
Every criterion is exact or a date range, and criteria combine with AND. Send an empty filters object to return every serial transaction.
Open in the interactive reference
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | "v1" |
yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
Request body
Required, application/json: searchSerialTransactionsInput.
| Field | Type | Required | Description |
|---|---|---|---|
filters |
object | yes | The filters to apply. A serial transaction must match every filter you send. Send an empty object to return all serial transactions. |
filters.serialNumberId |
string | no | Limits results to movements of the serial number with this identifier. |
filters.serialNumber |
string | no | Limits results to movements of the unit with this serial number. The match is exact. |
filters.manufacturerSerialNumber |
string | no | Limits results to movements of the unit with this manufacturer serial number. The match is exact. |
filters.isSold |
boolean | no | Limits results to movements of units that have been sold when true, and to those not yet sold when false. This is a property of the unit, not of the movement. |
filters.itemId |
string | no | Limits results to movements of this item. This matches the ledger row's item, what moved. |
filters.locationId |
string | no | Limits results to movements posted at this location. This matches the ledger row's location, not where the unit is now. |
filters.fromDate |
string (date) | no | Limits results to movements on or after this date. Format YYYY-MM-DD. |
filters.toDate |
string (date) | no | Limits results to movements on or before this date. Format YYYY-MM-DD. |
filters.modifiedSince |
string (date-time) | no | Limits results to serial lines changed on or after this time. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
page |
object | no | The pagination controls. Omit for the first page. |
page.cursor |
string | no | The cursor from the previous response's pagination.nextCursor. Omit for the first page. |
page.size |
number | no | The number of serial transactions per page. Defaults to 50. A value above 200 is treated as 200, not rejected. |
Example:
{
"filters": {
"serialNumber": "SN-000412"
},
"page": {
"cursor": "<cursor>",
"size": 0
}
}
Response
200 Success
Under data (searchSerialTransactionsOutput):
| Field | Type | Required | Description |
|---|---|---|---|
items |
array of object | yes | The serial transactions on this page, oldest first. An empty array when nothing matches. |
items[].id |
string | yes | The unique identifier for the serial transaction line. This is a different record from the ledger row (transactionId) and the unit (serialNumberId). |
items[].serialNumberId |
string | yes | The unique identifier for the serial number that moved. See id on GET inventory/serial-numbers/:id. |
items[].serialNumber |
string | no | The serial number stamped on the unit, for example 'SN-000412'. |
items[].manufacturerSerialNumber |
string | no | The manufacturer's own serial number for the unit, where one is recorded. |
items[].expirationDate |
string (date) | no | The date the unit expires, from the serial record. Format YYYY-MM-DD. |
items[].entryDate |
string (date) | no | The date the unit entered inventory, from the serial record. Format YYYY-MM-DD. |
items[].isSold |
boolean | no | Whether the unit has since been sold. This is a current property of the unit, not of this movement, so a receipt line shows true once the unit is later sold. |
items[].transactionId |
string | no | The unique identifier for the ledger row this serial line belongs to. See id on GET inventory/inventory-transactions/:id. |
items[].itemId |
string | no | The unique identifier for the item that moved, from the ledger row, not the unit's current item. See id on GET inventory/items/:id. |
items[].itemCode |
string | no | The code of that item. |
items[].itemName |
string | no | The display name of that item. |
items[].locationId |
string | no | The unique identifier for the location the movement was posted at, from the ledger row, not where the unit is now. See id on GET inventory/warehouses/:id. |
items[].locationCode |
string | no | The code of that location. |
items[].locationName |
string | no | The display name of that location. |
items[].transactionDate |
string (date) | no | The date the movement was posted. Format YYYY-MM-DD. |
items[].inQuantity |
string (decimal) | no | The quantity into stock for this movement. It is 1 when the movement received the unit and 0 otherwise. |
items[].outQuantity |
string (decimal) | no | The quantity out of stock for this movement. It is 1 when the movement issued the unit and 0 otherwise. |
items[].cost |
string (decimal) | no | The cost of the unit at this movement, in the currency named by currency. |
items[].currency |
string | no | The currency the cost is stated in. Format ISO 4217, for example 'USD'. |
items[].sourceDocumentLineType |
string, one of "IMInventorySalesOrderLine", "IMInventorySalesDeliveryLine", "IMSalesOrderLine", "IMInventoryPurchaseReturnLine", "IMInventorySalesReturnLine", "IMWarehouseTransferLine", "IMInventoryDecreaseLine", "IMInventoryIncreaseLine", "IMInventoryRevaluationLine", "IMInventoryTransferLine", "IMInventoryAdjustmentLine", "IMInventoryCountLine", "IMInventoryPutAwayTask", "IMInventoryPurchaseReturnReversal", "PurchaseOrderLine", "IMLandedCostAllocationLine", "SalesOrderProductItem", "IMWarehouseTransferOrderLine", "VendorBillItemBase", "InvPurchaseDeliveryLine" |
no | The kind of document line that produced the movement, from the ledger row. |
items[].lastModifiedDate |
string (date-time) | no | The date and time the serial line last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
pagination |
object | yes | The pagination cursor for this page. |
pagination.nextCursor |
string | no | The cursor for the next page. Pass it as page.cursor. Absent on the last page. |
pagination.hasMore |
boolean | yes | True when more serial transactions remain beyond this page. |
Statuses
400— Invalid request or business failure401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error