Movement orders
Movement orders represent stock movements that are processed in CAS for special procedure or tax warehouse stock management. They allow you to track goods entering, leaving, or moving within your warehouse authorizations.
Create a movement order
Use the Create movement order endpoint to ingest a new movement order:
POST https://api-<env>.customs4trade.com/v1/movementorders
The request body follows the MovementIngest model. Refer to the API specification or the MovementIngest XSD for the full schema.
Like other ingestion endpoints, this operates asynchronously. The response is 202 Accepted with a reference ID:
{
"referenceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Scope: create:wms
This endpoint replaces the deprecated POST /v1/movements endpoint.
Retrieve a movement order
Use the Get movement order endpoint to retrieve the full details of an existing movement order:
GET https://api-<env>.customs4trade.com/v1/movementorders/{id}
This is particularly useful when you need to:
- Check the current status of a movement order
- Retrieve validation errors to understand why a movement order could not be processed
- Read back all movement order data as stored in CAS
Returns 200 OK with the movement order details, or 404 Not Found if the movement order does not exist.
Scope: read:wms
Movement order model
MovementOrder
| Field | Type | Description |
|---|---|---|
| timestamp | timestamp | Date of the movement order |
| documentReference | string | Reference to the document that triggered the creation |
| externalReference | string | Your unique external reference for the movement order |
| type | string | CAS movement order type (see Movement types below) |
| externalMovementType | string | Movement type as known by your inventory or warehouse management system |
| status | string | Current status (see Movement order statuses below) |
| category | string | Excise register column category (see Movement categories below) |
| remark | string | Remark shown in the excise register (for tax warehouse stock corrections) |
| adjustmentData | object | Stock adjustment data for tax warehouse (see below) |
| lines | array | Item-level data of the movement order (up to 9999 lines) |
| validationErrors | array | Current validation errors (only present when status is Invalid, ProcessingError, or InvalidationRejected) |
MovementOrderAdjustmentData
Provided for positive or negative stock adjustments related to a tax warehouse:
| Field | Type | Description |
|---|---|---|
| administrativeReferenceCode | string | ARC of an e-AD, for corrections related to an e-AD |
| arcSequenceNumber | int | Sequence number of the e-AD |
| docRefNum | string | MRN of a related export declaration |
MovementOrderLine
| Field | Type | Description |
|---|---|---|
| itemId | string | Unique identifier of the item/material as defined in master data |
| itemDescription | string | Description of the item |
| direction | string | Direction: In, Out, or Transfer |
| serialBatchReference | string | Unique serial or batch number |
| quantity | decimal | Quantity in the base unit of measure as defined in master data |
| uom | string | Unit of measure (e.g. KGM, LTR, LPA, HLT, DTN) |
| exciseProductCode | string | Excise Product Code (e.g. B000 for beer, S300 for ethyl alcohol) |
| asv | decimal | Alcohol % by volume (ABV) |
| storageLocationReference | string | Storage location reference as known in CAS |
| authorizationId | string | The special procedure or tax warehouse authorization |
| receivingStorageLocationReference | string | Receiving storage location (for TRFA and TRFR transfers) |
| receivingAuthorizationId | string | Receiving authorization (for TRFA and TRFR transfers) |
| preferentialOriginCountry | string | Preferential origin country code (ISO 3166-1 alpha-2) |
| nonPreferentialOriginCountry | string | Non-preferential origin country code (ISO 3166-1 alpha-2) |
| blendResult | object | Result data for TRFB (transfer + blend) movement orders |
| quantities | array | Additional quantities in other units of measure |
MovementOrderValidationError
| Field | Type | Description |
|---|---|---|
| errorCode | string | Error code identifying the type of validation failure |
| errorMessage | string | Human-readable description of the validation error |
Movement types
| Type | Description |
|---|---|
PROC |
Production -- creation of a product in a TXW or SP (e.g. blend of energy products, registration of alcohol production) |
UFOH |
Usual form of handling -- typically in a customs warehouse |
ADJP |
Positive stock adjustment |
ADJN |
Negative stock adjustment |
TRFA |
Transfer from one authorization to another |
TRFR |
Transfer between storage locations within the same authorization |
TRFB |
Transfer + blend -- transfer to another storage location and blend at destination |
RFFC |
Release for free circulation |
DCSV |
Removal by destruction under customs supervision |
Movement order statuses
| Status | Description |
|---|---|
Valid |
Validated, no errors found |
Invalid |
Validated, validation errors found (check validationErrors) |
Submitted |
Submitted and being processed |
Processed |
Processed successfully |
ProcessingError |
Processed with errors (check validationErrors) |
Invalidating |
Invalidation is in progress |
Invalidated |
Successfully invalidated |
InvalidationRejected |
Invalidation was rejected (check validationErrors) |
MissingDensity |
Energy product with missing density information (weight or litres at 15 degrees is known, but not both) |
Movement categories
Used for ADJP and ADJN movement types when the movement applies to a tax warehouse:
| Category | Excise register column |
|---|---|
DepartureUnderSuspension |
5. Dispatch under a suspension |
Export |
6. Export |
ArrivalUnderSuspension |
3b. Received duty suspension |
Production |
3a. Production |
OtherArrival |
3c. Fictive Arrival |
For HTTP status codes and error response formats, see Error handling.