Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/CodexaCP/DG_BACK/llms.txt

Use this file to discover all available pages before exploring further.

The RFID Tags API manages the Dragon Guard tag registry — the persistent record of every Electronic Product Code (EPC) known to the WMS. Tags can represent items, pallets, containers, or any other trackable object type. Tags are scoped to a company and can be queried, created, bulk-imported, updated, and deactivated.

GET /api/rfid/tags

Returns a paginated, filterable list of RFID tags for the authenticated company. Authentication: Authorization: Bearer <token> (required).
companyId
string (uuid)
Tenant company ID. Resolved from JWT if omitted.
Free-text search across EPC, item number, lot number, and serial number.
item
string
Filter by item number or item description (partial match).
lot
string
Filter by lot number.
serial
string
Filter by serial number.
objectType
string
Filter by object type (e.g., ITEM, PALLET, CONTAINER).
status
string
Filter by tag status (e.g., UNASSIGNED, ASSIGNED, IN_TRANSIT, CONSUMED).
activeOnly
boolean
Return only active (non-deactivated) tags. Defaults to true.
pageNumber
integer
1-based page. Defaults to 1.
pageSize
integer
Page size. Defaults to 20.
data
array
pageNumber
integer
Current page.
pageSize
integer
Page size.
totalRecords
integer
Total matching tags.
totalPages
integer
Total pages.
curl -X GET "https://api.example.com/api/rfid/tags?status=ASSIGNED&activeOnly=true&pageSize=50" \
  -H "Authorization: Bearer <token>"

GET /api/rfid/tags/

Returns full detail for a single RFID tag by its registry ID. Authentication: Authorization: Bearer <token> (required).
id
string (uuid)
required
Tag registry ID.
Error codes
StatusMeaning
404Tag not found for the given ID and company.
curl -X GET "https://api.example.com/api/rfid/tags/7b2e0000-0000-0000-0000-000000000001" \
  -H "Authorization: Bearer <token>"

GET /api/rfid/tags/resolve/

Resolves an EPC string to its tag registry record plus contextual information. Used by handheld scanners to look up what an EPC represents in real time. Authentication: Authorization: Bearer <token> (required).
epc
string
required
The EPC to resolve. Accepts raw or normalized format.
epc
string
Normalized EPC.
isResolved
boolean
Whether the EPC was found in the registry.
tag
object
The matching RfidTagDto if resolved.
message
string
Human-readable resolution status message.
Error codes
StatusMeaning
400EPC format is invalid.
404EPC not found in the tag registry.
curl -X GET "https://api.example.com/api/rfid/tags/resolve/AA:BB:CC:DD:EE:FF:00:01" \
  -H "Authorization: Bearer <token>"

POST /api/rfid/tags

Creates a new RFID tag registry record. The EPC must be unique within the company. Authentication: Authorization: Bearer <token> (required).
normalizedEpc
string
required
Normalized EPC (uppercase, colon-delimited). Must be unique for this company.
rawEpc
string
Raw EPC as scanned by the reader hardware (optional).
itemId
string (uuid)
Item to associate with this tag. Optional for unassigned tags.
objectType
string
required
Object type the tag represents (e.g., ITEM, PALLET, CONTAINER).
quantity
decimal
Quantity encoded in the tag. Defaults to 1 if omitted.
status
string
required
Initial lifecycle status (e.g., UNASSIGNED, ASSIGNED).
currentLocationId
string (uuid)
Initial location ID.
currentBinId
string (uuid)
Initial bin ID.
lastSeenAtUtc
string (ISO 8601)
Timestamp of last physical scan, if known.
Returns 201 Created with the full RfidTagDto and a Location header pointing to GET /api/rfid/tags/{id}. Error codes
StatusMeaning
400Invalid payload or business rule violation.
409An active tag with the same EPC already exists for this company.
curl -X POST "https://api.example.com/api/rfid/tags" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "normalizedEpc": "AA:BB:CC:DD:EE:FF:00:01",
    "objectType": "ITEM",
    "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "quantity": 1,
    "status": "ASSIGNED"
  }'

POST /api/rfid/tags/bulk

Bulk-imports an array of RFID tag records. Tags with duplicate EPCs are skipped and reported in the skipped list. Partial success is allowed. Authentication: Authorization: Bearer <token> (required).
tags
array
required
Array of CreateRfidTagDto objects. Each element follows the same schema as POST /api/rfid/tags.
created
integer
Number of tags successfully created.
skipped
integer
Number of tags skipped due to duplicate EPC.
errors
array
List of per-tag error messages for tags that failed for reasons other than duplicates.
curl -X POST "https://api.example.com/api/rfid/tags/bulk" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": [
      {"normalizedEpc": "AA:BB:CC:DD:EE:FF:00:01", "objectType": "ITEM", "status": "UNASSIGNED", "quantity": 1},
      {"normalizedEpc": "AA:BB:CC:DD:EE:FF:00:02", "objectType": "ITEM", "status": "UNASSIGNED", "quantity": 1}
    ]
  }'

PATCH /api/rfid/tags/

Partially updates a tag — only the fields present in the request body are modified. Authentication: Authorization: Bearer <token> (required).
id
string (uuid)
required
Tag ID to update.
status
string
New lifecycle status.
currentLocationId
string (uuid)
Updated location ID.
currentBinId
string (uuid)
Updated bin ID.
quantity
decimal
Updated quantity.
lotNo
string
Updated lot number.
serialNo
string
Updated serial number.
Error codes
StatusMeaning
404Tag not found.
409EPC conflict if EPC is being changed to one that already exists.
curl -X PATCH "https://api.example.com/api/rfid/tags/7b2e0000-0000-0000-0000-000000000001" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"status": "IN_TRANSIT", "currentLocationId": "loc-guid-here"}'

PUT /api/rfid/tags/

Full replacement update for a tag record. All updatable fields must be provided. Authentication: Authorization: Bearer <token> (required).
id
string (uuid)
required
Tag ID to replace.
Accepts the same body fields as PATCH /api/rfid/tags/{id}.
curl -X PUT "https://api.example.com/api/rfid/tags/7b2e0000-0000-0000-0000-000000000001" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "CONSUMED",
    "currentLocationId": null,
    "currentBinId": null,
    "quantity": 0
  }'

PUT /api/rfid/tags//deactivate

Deactivates (soft-deletes) a tag. The tag record is retained for audit purposes but isActive is set to false. Deactivated tags are excluded from the default listing. Authentication: Authorization: Bearer <token> (required).
id
string (uuid)
required
Tag ID to deactivate.
id
string (uuid)
Tag ID.
isActive
boolean
Always false after deactivation.
Error codes
StatusMeaning
404Tag not found.
curl -X PUT "https://api.example.com/api/rfid/tags/7b2e0000-0000-0000-0000-000000000001/deactivate" \
  -H "Authorization: Bearer <token>"

Build docs developers (and LLMs) love