ACUMATICA

Acumatica Serial Number Tracking Complete Guide

February 12, 2024 15 min read

Introduction

Serial number tracking in Acumatica provides complete traceability for individual items. This is essential for industries with regulatory requirements, warranty tracking, or high-value inventory management.

Configuration

Configure items for serial number tracking:

// Enable serial tracking on item
POST /api/data/IN202500
{
  "InventoryID": { "value": "ELECTRONIC-ITEM-001" },
  "ItemType": { "value": "Stock Item" },
  "TrackSerials": { "value": true },
  "AutoGenerateSN": { "value": false },
  "SerialClass": { "value": "SERIALIZED" }
}

Serial Number Classes

// Create serial number class
POST /api/data/SN201000
{
  "ClassID": { "value": "ELECTRONICS" },
  "Description": { "value": "Electronics Serial Numbers" },
  "Format": { "value": "ELEC-{SEQ:6}" },
  "StartNumber": { "value": 1000 },
  "Validation": { "value": "Unique" }
}

Receiving Serial Numbers

// Receive items with serial numbers
POST /api/data/PO301000
{
  "VendorRefNbr": { "value": "PO-2024-001" },
  "Lines": [
    {
      "InventoryID": { "value": "ELECTRONIC-ITEM-001" },
      "Qty": { "value": 5 },
      "SerialNumbers": [
        { "value": "SN-10001" },
        { "value": "SN-10002" },
        { "value": "SN-10003" },
        { "value": "SN-10004" },
        { "value": "SN-10005" }
      ]
    }
  ]
}

Tracking Transactions

Track serial numbers through inventory movements:

// Transfer with serial tracking
POST /api/data/IN304000
{
  "FromWarehouse": { "value": "MAIN" },
  "ToWarehouse": { "value": "WAREHOUSE2" },
  "Lines": [
    {
      "InventoryID": { "value": "ELECTRONIC-ITEM-001" },
      "SerialNumbers": [
        { "value": "SN-10001" },
        { "value": "SN-10002" }
      ]
    }
  ]
}

Traceability

// Get serial number history
GET /api/data/SN203000?$filter=SerialNumber eq 'SN-10001'
class SerialNumberManager {
    constructor(api) {
        this.api = api;
    }

    async getSerialHistory(serialNumber) {
        return await this.api.get('SN203000', {
            '$filter': `SerialNumber eq '${serialNumber}'`
        });
    }

    async getCurrentLocation(serialNumber) {
        const history = await this.getSerialHistory(serialNumber);
        return history[0]; // Most recent transaction
    }

    async transferSerialNumbers(serials, fromWh, toWh) {
        return await this.api.post('IN304000', {
            FromWarehouse: { value: fromWh },
            ToWarehouse: { value: toWh },
            Lines: [{
                SerialNumbers: serials.map(s => ({ value: s }))
            }]
        });
    }
}

Summary

Serial number tracking in Acumatica provides comprehensive traceability throughout the inventory lifecycle. By implementing proper serial tracking, you can meet regulatory requirements, manage warranties, and maintain complete visibility into your inventory.

For more information, check out our other tutorials on Lot Number Tracking and Quality Control.