---
title: "List Goods Movement Records"
method: GET
path: "/customs/goods-movement-system/movements"
---

# List Goods Movement Records

`GET /customs/goods-movement-system/movements`

## Request

- Base URL: `https://api.service.hmrc.gov.uk`
- URL: `https://api.service.hmrc.gov.uk/customs/goods-movement-system/movements`
- Auth: OAuth 2
  - Authorization code: `https://api.service.hmrc.gov.uk/oauth/authorize`
  - Token URL: `https://api.service.hmrc.gov.uk/oauth/token` scopes: `write:goods-movement-system`
- TypeScript: <https://skmtc.dev/hmrc/apis/goods-movement-system-haulier-api/docs/customs/goods-movement-system/movements/get.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint provides a list of all the Goods Movement Records (GMRs) that you have worked on over the last 28 days.

The returned list of GMRs will contain summary information as per the example below. For the full GMR, use the Get Goods Movement Record endpoint.

## Headers

- `Accept` string, required
- `Authorization` string, required

## Response `200`

All GMRs from the last 28 days are listed in the response body

- object[]
  - `gmrId` string, required: The Goods Movement Record (GMR) ID for this GMR. Do not include when POSTing a GMR - GVMS will assign an ID.
  - `direction` union, required: The direction of the movement - into or out of the UK, or between Great Britain and Northern Ireland
    - 'UK_INBOUND': The movement is travelling into the UK
    - 'UK_OUTBOUND': The movement is travelling out of the UK
    - 'GB_TO_NI': The movement is travelling out of Great Britain into Northern Ireland
    - 'NI_TO_GB': The movement is travelling out of Northern Ireland into Great Britain
  - `isUnaccompanied` boolean: Set to true if the vehicle will not be accompanying the trailer(s) during the crossing, or if the vehicle is carrying a container that will be detached and loaded for the crossing.
  - `inspectionRequired` boolean: If set to true, indicates that the vehicle requires a customs inspection. If set to false, indicates that the vehicle does not require a customs inspection. If not set, indicates the customs inspection decision has not yet been made or is not applicable. For outbound GMRs, this indicates that the vehicle must present at an inspection facility prior to checking-in at the port. For Office of Transit inspections for inbound GMRs, a decision may be made to inspect subsequent to a notification that inspection is not required. In this event a notification will be sent that changes inspectionRequired from false to true. If this happens after leaving the port of arrival, the inspection should be carried out at the next transit office e.g. the office of destination.
  - `reportToLocations` object[]: A list of one or more inspection types, from GVMS Reference Data, that the vehicle must have carried out, in the order specified. This means that where there are multiple entries here, the vehicle must report for the first inspection type listed before each subsequent listed inspection. Each entry includes a list of available locations for the inspection type.
    - `inspectionTypeId` string, required: An inspectionTypeId from GVMS Reference Data denoting the type of inspection that needs to be performed on the vehicle.
    - `locationIds` string[], required: A list of locationIds from GVMS Reference Data that are available to perform this type of inspection.
  - `vehicleRegNum` string: Vehicle registration number of the vehicle that will arrive at port. If isUnaccompanied is set to false then vehicleRegNum must be provided to check-in.
  - `trailerRegistrationNums` string[]: For vehicles carrying trailers, the trailer registration number of each trailer. If isUnaccompanied is set to true then trailerRegistrationNums or containerReferenceNums must be provided before check-in.
  - `containerReferenceNums` string[]: For vehicles arriving with containers that will be detached and loaded, the container reference number of each container in the movement. If isUnaccompanied is set to true then trailerRegistrationNums or containerReferenceNums must be provided before check-in.
  - `state` union, required: The state of the GMR
    - 'NOT_FINALISABLE': The GMR is in a non-finalisable state. This means an update will be required from the haulier prior to check-in.
    - 'OPEN': The GMR is open for updates and is ready for check-in.
    - 'CHECKED_IN': The GMR is checked-in, awaiting embarkation confirmation from the carrier.
    - 'EMBARKED': The GMR is embarked, meaning the goods movement has embarked on its crossing but the goods are awaiting clearance to proceed.
    - 'COMPLETED': The GMR is completed, meaning the goods movement has embarked on its crossing and the goods are clear to proceed.
  - `createdDateTime` string, required: The date and time that this GMR was created.
  - `updatedDateTime` string, required: The date and time that this GMR was last updated.
  - `plannedCrossing` object: Details of the planned crossing.
    - `routeId` string, required: The ID of the crossing route, using a routeId from the GVMS reference data
    - `localDateTimeOfDeparture` string: The planned date and time of departure, in local time of the departure port. Must not include seconds, time zone or UTC marker
  - `checkedInCrossing` object: Details of the crossing that the vehicle has been checked-in to. These details will only be present in the Goods Movement Record after the vehicle has checked in.
    - `routeId` string, required: The ID of the crossing route, using a routeId from the GVMS reference data
    - `localDateTimeOfArrival` string, required: The planned date and time of arrival, in local time of the arrival port. Must not include seconds, time zone or UTC marker
  - `actualCrossing` object: Details of the crossing that the goods movement has been embarked on. These details will only be present in the Goods Movement Record after the vehicle has embarked on a crossing.
    - `routeId` string, required: The ID of the crossing route, using a routeId from the GVMS reference data
    - `localDateTimeOfArrival` string, required: The planned date and time of arrival, in local time of the arrival port. Must not include seconds, time zone or UTC marker
  - `links` object[]: A list of endpoint links that indicate possible actions related to the current resource
    - `href` string, required: The relative URL of the endpoint
    - `method` 'GET', required: The HTTP method for the endpoint
    - `rel` 'get-goods-movement-record', required: A label for the endpoint, which describes how it is related to the current resource. The rel will be self where the action is retrieval of the same resource.

## Other responses

- `400`

---

[API](https://skmtc.dev/hmrc/apis/goods-movement-system-haulier-api.md) - [All operations](https://skmtc.dev/hmrc/apis/goods-movement-system-haulier-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hmrc/apis/goods-movement-system-haulier-api/revisions/9ff4efa9be1c?raw)
