Skip to main content

Documentation Index

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

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

The movements API provides read-only visibility into the inventory ledger. Operators and supervisors use it to audit what has moved, when, and by whom — directly from the handheld without needing to log into the back-office. Two independent resource groups are exposed: raw inventory movements (individual stock entries) and product journals (grouped batches of movements with header metadata). Neither resource accepts write operations from the handheld; all mutations occur through the receipts, shipments, or back-office posting workflows.
Inventory movement records (GET /api/movements) are read-only from the handheld — there are no POST, PATCH, or DELETE operations on raw movements. Product journals support one write operation: PUT /api/movements/journals/{journalNo} saves line-level edits to an open journal before it is posted from the back-office.
Required headers for all endpoints:
Authorization: Bearer <token>
X-Company-Id: <company-guid>

GET /api/movements

Returns a paginated list of inventory movement records filtered by any combination of search term, bin, location, movement type, reference number, item code, and date range. All filter parameters are optional; omitting all of them returns the full movement history in reverse chronological order (server default). Method & path: GET /api/movements
Auth required: Yes

Query parameters

pageNumber
integer
required
1-based page number.
pageSize
integer
required
Number of records per page.
Free-text search term matched across multiple fields (movement number, item description, reference).
binCode
string
Filter to movements involving a specific bin code.
locationCode
string
Filter to movements within a specific warehouse location.
movementType
string
Filter by movement type, e.g. RECEIPT, SHIPMENT, TRANSFER, ADJUSTMENT.
referenceNo
string
Filter by the source document reference number, e.g. a receipt number or shipment number.
itemNo
string
Filter to movements for a specific ERP item code.
dateFrom
string
Start of date range, formatted yyyy-MM-dd. Inclusive.
dateTo
string
End of date range, formatted yyyy-MM-dd. Inclusive.

Response — 200 OK

Returns a PagedResponse<MovementsPageDto>.
{
  "pageNumber": 1,
  "pageSize": 50,
  "totalRecords": 240,
  "totalPages": 5,
  "data": [
    {
      "id": "mv-uuid-001",
      "movementNo": "MOVE-2024-0198",
      "itemId": "a1b2c3d4-...",
      "itemNo": "ITEM-0042",
      "itemDescription": "Bolt M8 x 30mm",
      "binId": "b9c8d7e6-...",
      "binCode": "A-01-02",
      "locationCode": "WH-MAIN",
      "targetLocationCode": null,
      "quantity": 40.0,
      "movementType": "RECEIPT",
      "referenceNo": "RCV-2024-0001",
      "externalDocumentNo": "PO-2024-0099",
      "userId": "user-uuid",
      "createdAt": "2024-06-01T10:22:00Z"
    }
  ],
  "hasPrevious": false,
  "hasNext": true
}
pageNumber
integer
Current page number.
pageSize
integer
Records per page as requested.
totalRecords
integer
Total matching records across all pages.
totalPages
integer
Total number of pages.
hasPrevious
boolean
Whether a previous page exists.
hasNext
boolean
Whether a next page exists.
data
array
Array of MovementsPageDto objects.

Example

curl "https://your-server/api/movements?pageNumber=1&pageSize=50" \
  -H "Authorization: Bearer <token>" \
  -H "X-Company-Id: 9c8b7a6f-1234-5678-abcd-ef0123456789"

GET /api/movements/journals

Returns a paginated list of product journal headers. Journals are logical groups of inventory movements created for planning, bulk transfers, or adjustments. Each header summarises the journal purpose and its line count; use GET /api/movements/journals/{journalNo} to fetch the full line detail. Method & path: GET /api/movements/journals
Auth required: Yes

Query parameters

pageNumber
integer
required
1-based page number.
pageSize
integer
required
Records per page.
search
string
Free-text search matched against journal number, description, and external document number.

Response — 200 OK

Returns a PagedResponse<ProductJournalHeaderDto>.
{
  "pageNumber": 1,
  "pageSize": 20,
  "totalRecords": 8,
  "totalPages": 1,
  "data": [
    {
      "id": "j-uuid-001",
      "journalNo": "JRNL-2024-0012",
      "description": "Monthly stock adjustment – June",
      "movementType": "ADJUSTMENT",
      "postingDate": "2024-06-30T00:00:00Z",
      "externalDocumentNo": null,
      "transitLocationCode": null,
      "status": "Open",
      "lineCount": 14
    }
  ],
  "hasPrevious": false,
  "hasNext": false
}
pageNumber
integer
Current page number.
pageSize
integer
Records per page as requested.
totalRecords
integer
Total matching records across all pages.
totalPages
integer
Total number of pages.
hasPrevious
boolean
Whether a previous page exists.
hasNext
boolean
Whether a next page exists.
data
array
Array of ProductJournalHeaderDto objects.

Example

curl "https://your-server/api/movements/journals?pageNumber=1&pageSize=20" \
  -H "Authorization: Bearer <token>" \
  -H "X-Company-Id: 9c8b7a6f-1234-5678-abcd-ef0123456789"

GET /api/movements/journals/

Returns the full detail of a single product journal including all of its lines. Use this after the list endpoint to drill into a specific journal’s individual item movements. Method & path: GET /api/movements/journals/{journalNo}
Auth required: Yes

Path parameters

journalNo
string
required
The journal number, URL-encoded. Obtain from GET /api/movements/journals.

Response — 200 OK

Returns a ProductJournalDetailDto, which extends ProductJournalHeaderDto with a lines array.
{
  "id": "j-uuid-001",
  "journalNo": "JRNL-2024-0012",
  "description": "Monthly stock adjustment – June",
  "movementType": "ADJUSTMENT",
  "postingDate": "2024-06-30T00:00:00Z",
  "externalDocumentNo": null,
  "transitLocationCode": null,
  "status": "Open",
  "lineCount": 2,
  "lines": [
    {
      "id": "jl-uuid-001",
      "itemNo": "ITEM-0042",
      "description": "Bolt M8 x 30mm",
      "quantity": -10.0,
      "unitOfMeasure": "EA",
      "packageQuantity": 0.0,
      "purchaseUnitOfMeasure": "BOX",
      "sourceLocationCode": "WH-MAIN",
      "targetLocationCode": null,
      "sourceBinCode": "A-01-02",
      "targetBinCode": null,
      "lotNo": null,
      "variantCode": null,
      "qualityCode": null,
      "movementType": "ADJUSTMENT"
    }
  ]
}
All header fields are identical to ProductJournalHeaderDto. The additional lines field:
lines
array
Array of ProductJournalLineDto objects.
Returns null (empty response) when the journalNo is not found.

Example

curl "https://your-server/api/movements/journals/JRNL-2024-0012" \
  -H "Authorization: Bearer <token>" \
  -H "X-Company-Id: 9c8b7a6f-1234-5678-abcd-ef0123456789"

PUT /api/movements/journals/

Saves updated header metadata and line entries for an open product journal. The handheld uses this to record line-level quantities, source/target bins, and lot numbers before the journal is posted from the back-office. The full journal detail (header + all lines) is returned after the save.
Only journals with status Open can be updated. Attempting to save a Posted journal will result in an error.
Method & path: PUT /api/movements/journals/{journalNo}
Auth required: Yes

Path parameters

journalNo
string
required
The journal number to update, URL-encoded. Obtain from GET /api/movements/journals.

Request body

{
  "description": "Monthly stock adjustment – June",
  "movementType": "ADJUSTMENT",
  "postingDate": "2024-06-30T00:00:00Z",
  "externalDocumentNo": null,
  "transitLocationCode": null,
  "lines": [
    {
      "id": "jl-uuid-001",
      "itemNo": "ITEM-0042",
      "description": "Bolt M8 x 30mm",
      "quantity": -10.0,
      "unitOfMeasure": "EA",
      "packageQuantity": 0.0,
      "purchaseUnitOfMeasure": "BOX",
      "sourceLocationCode": "WH-MAIN",
      "targetLocationCode": null,
      "sourceBinCode": "A-01-02",
      "targetBinCode": null,
      "lotNo": null,
      "variantCode": null,
      "qualityCode": null,
      "movementType": "ADJUSTMENT"
    }
  ]
}
description
string | null
Free-text description of the journal’s purpose.
movementType
string | null
Default movement type for the journal header, e.g. ADJUSTMENT, TRANSFER.
postingDate
datetime | null
Planned or actual posting date for the journal.
externalDocumentNo
string | null
External reference document number.
transitLocationCode
string | null
Intermediate transit location for in-transit transfer journals.
lines
array
required
Full replacement set of journal lines. Each entry is a ProductJournalLineDto.

Response — 200 OK

Returns the updated ProductJournalDetailDto. The structure is identical to the response of GET /api/movements/journals/{journalNo} — see that endpoint for field descriptions.

Error conditions

StatusCondition
400 Bad RequestJournal number is missing or the request body is invalid.
404 Not FoundNo journal with the given journalNo exists.
409 ConflictThe journal has already been posted and cannot be modified.

Example

curl -X PUT "https://your-server/api/movements/journals/JRNL-2024-0012" \
  -H "Authorization: Bearer <token>" \
  -H "X-Company-Id: 9c8b7a6f-1234-5678-abcd-ef0123456789" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Monthly stock adjustment – June",
    "movementType": "ADJUSTMENT",
    "postingDate": "2024-06-30T00:00:00Z",
    "externalDocumentNo": null,
    "transitLocationCode": null,
    "lines": [
      {
        "id": null,
        "itemNo": "ITEM-0042",
        "description": "Bolt M8 x 30mm",
        "quantity": -10.0,
        "unitOfMeasure": "EA",
        "packageQuantity": 0.0,
        "purchaseUnitOfMeasure": "BOX",
        "sourceLocationCode": "WH-MAIN",
        "targetLocationCode": null,
        "sourceBinCode": "A-01-02",
        "targetBinCode": null,
        "lotNo": null,
        "variantCode": null,
        "qualityCode": null,
        "movementType": "ADJUSTMENT"
      }
    ]
  }'

Build docs developers (and LLMs) love