POST /movements/receive

Changed on

Endpoint used when waste is received and the receiver submits a waste movement. A waste tracking ID is returned in a 201 response when the movement is successfully stored. When the movement is stored successfully, the API returns a 201 Created response containing a Waste Tracking ID and any validation warnings.

Request

  • Base URL
    https://waste-tracking.api.defra.gov.uk
  • URL
    https://waste-tracking.api.defra.gov.uk/movements/receive
  • Auth
    HTTP bearer

Request body

apiCodestring uuid required

This is a unique sixteen byte identifier for the receiving organisation. An organisation can have one or more apiCodes. The apiCodes for an organisation are produced and managed by that organisation.

dateTimeReceivedstring date-time required

This is the date and exact time waste was received at the site. This API uses the UTC ISO 8601 and BST standards for machine-readable dates and times. <p>Key Differences:</p> UTC is the global time standard and does not observe daylight saving time. BST is UTC+1, used in the UK during daylight saving time (typically from late March to late October).

hazardousWasteConsignmentCodestring

Hazardous waste consignment code. If the EWC is HAZ, then this field is mandatory. <p><font color="red">England & Wales:</font></p> <p><i>Format-</i> XXXXXX/YYYYY</p> Where XXXXXX can be a mixture of letters and/or numbers, i.e. alphanumeric. <p>The consignment note code must follow the format- XXXXXX/YYYYY.</p> <p>The first XXXXXX part is made up of six alphanumeric characters and must be followed by a forward slash /<p> The YYYYY part is a five alphanumeric character unique identifier of the users' choice (no spaces or symbols).</p> <p><font color="red">Scotland</font></p> <p><i>Format-</i> SA, SB or SC followed by a 7-digit number (e.g. SB1234567). Also known as Special Waste Consignment Note</p> <p><font color="red">Northern Ireland and Eire:</font></p> <p><i>Format-</i> DA, DB or DC followed by a 7-digit number (e.g. DA5301234)</p><p></p> <p><a href="https://www.gov.uk/guidance/hazardous-waste-consignment-note-supplementary-guidance#a1-consignment-note-code">More information here</a></p> <p><font color="green"><b>Business Rules:</b></font></p> <ul> <li>If receiveMovementRequest.hazardousWasteConsignmentCode is provided it must be in specified format.</li> <li>If all waste.ewcCodes provided are considered “not hazardous” receiveMovementRequest.hazardousWasteConsignmentCode is not required.</li> </ul>

reasonForNoConsignmentCode'NON_HAZ_WASTE_TRANSFER' | 'NO_DOC_WITH_WASTE' | 'HWRC_RECEIPT'

If you have not provided a hazardous waste consignment code, then there are three reason codes you can choose to provide. See the table below. <table border="1"> <thead> <tr> <th>Reason</th> <th>Reason Code</th> </tr> </thead> <tbody> <tr> <td>Non-Haz Waste Transfer</td> <td>NON_HAZ_WASTE_TRANSFER</td> </tr> <tr> <td>No documentation provided with Waste</td> <td>NO_DOC_WITH_WASTE</td> </tr> <tr> <td>Household Wast Recycling Centre Receipt</td> <td>HWRC_RECEIPT</td> </tr> </tbody> </table> <b>Note:</b> The field is case-sensitive, please use the case for the code specified in the table. <p><font color="green"><b>Business Rules:</b></font></p> <ul> <li>If any waste.ewcCodes provided are considered hazardous and receiveMovementRequest.hazardousWasteConsignmentCode is not provided, then a receiveMovementRequest.reasonForNoConsignmentCode is required.</li> <li>If receiveMovementRequest.reasonForNoConsignmentCode is provided, then it must be one from the 'Reason Code' column in the table above</li> </ul>

yourUniqueReferencestring

This could be a unique weighbridge ticket number, waste transfer note number etc.

specialHandlingRequirementsstring

Required when abnormal hazardous waste and some non-hazardous waste contains harmful chemical, biological or physical characteristics that require some special handling to prevent harm.

Example request

{
  "apiCode": "ba6eb330-4f7f-11eb-a2fb-67c34e9ac07c",
  "dateTimeReceived": "2025-09-15T12:12:28",
  "hazardousWasteConsignmentCode": "CJ32LE/A0001",
  "reasonForNoConsignmentCode": "NO_DOC_WITH_WASTE",
  "yourUniqueReference": "wTBrdgAA020",
  "otherReferencesForMovement": [
    {
      "label": "PO Number",
      "reference": "PO-12345"
    },
    {
      "label": "Waste Ticket",
      "reference": "WT-67890"
    },
    {
      "label": "Haulier Note",
      "reference": "HN-11111"
    }
  ],
  "specialHandlingRequirements": "The waste must be fully inspected by the waste handler according to the Hazardous waste consignment and or EWC codes provided.",
  "wasteItems": [
    {
      "ewcCodes": [
        "200108"
      ],
      "wasteDescription": "Basic mixed construction and demolition waste, this includes recyclable house bricks, gypsum plaster and slates.",
      "physicalForm": "Sludge",
      "numberOfContainers": 2,
      "typeOfContainers": "SKI",
      "weight": {
        "metric": "Tonnes",
        "amount": 150,
        "isEstimate": true
      },
      "containsPops": true,
      "pops": {
        "sourceOfComponents": "PROVIDED_WITH_WASTE",
        "components": [
          {
            "code": "PFHXS",
            "concentration": 12.5,
            "concentrationOperator": ">"
          }
        ]
      },
      "containsHazardous": true,
      "hazardous": {
        "sourceOfComponents": "PROVIDED_WITH_WASTE",
        "hazCodes": [
          "HP_5",
          "HP_10"
        ],
        "components": [
          {
            "name": "lead",
            "concentration": 12.5,
            "concentrationOperator": ">"
          }
        ]
      },
      "disposalOrRecoveryCodes": [
        {
          "code": "R1",
          "weight": {
            "metric": "Tonnes",
            "amount": 150,
            "isEstimate": true
          }
        }
      ]
    }
  ],
  "carrier": {
    "registrationNumber": "CBDL999",
    "reasonForNoRegistrationNumber": "ON_SITE",
    "organisationName": "Waste Carriers Lite Ltd",
    "address": {
      "fullAddress": "26a Oil Drum Lane, London, UK",
      "postcode": "W12 7ZL"
    },
    "emailAddress": "mailbox@example.co.uk",
    "phoneNumber": "020 4756 XXXX",
    "vehicleRegistration": "RNT 493",
    "meansOfTransport": "Rail"
  },
  "brokerOrDealer": {
    "organisationName": "Waste Disposal Ltd",
    "address": {
      "fullAddress": "26a Oil Drum Lane, London, UK",
      "postcode": "W12 7ZL"
    },
    "emailAddress": "mailbox@example.co.uk",
    "phoneNumber": "020 4756 XXXX",
    "registrationNumber": "CBDL999"
  },
  "receiver": {
    "emailAddress": "mailbox@example.co.uk",
    "phoneNumber": "020 4756 XXXX",
    "authorisationNumber": "EPR/DD2522BF",
    "regulatoryPositionStatements": [
      343,
      456,
      789
    ]
  },
  "receipt": {
    "address": {
      "fullAddress": "26a Oil Drum Lane, London, UK",
      "postcode": "W12 7ZL"
    }
  }
}

Response

Success- The waste movement has been stored.

wasteTrackingIdstring

Globally unique identifier of the movement. This ID should be stored and used for any subsequent updates of the movement. It is returned in the response body when a POST request is successful, i.e. return code 201.

Example response

{
  "wasteTrackingId": "25HRA0B2",
  "validation": {
    "warnings": [
      {
        "key": "wasteItems[0].disposalOrRecoveryCodes",
        "errorType": "NotProvided",
        "message": "Success/Failure"
      }
    ]
  }
}

Changes

    • breaking

      removed the enum value Household Waste Recycling Centre Receipt of the request property

    • breaking

      removed the enum value No documentation provided with Waste of the request property

    • breaking

      removed the enum value Non-Haz Waste Transfer of the request property

    • warning

      added the new BusinessRuleViolation enum value to the /// response property for the response status

    • warning

      added the new BusinessRuleViolation enum value to the /// response property for the response status

    • warning

      added the new InvalidFormat enum value to the /// response property for the response status

    • warning

      added the new InvalidFormat enum value to the /// response property for the response status

    • warning

      added the new InvalidType enum value to the /// response property for the response status

    • warning

      added the new InvalidType enum value to the /// response property for the response status

    • warning

      added the new InvalidValue enum value to the /// response property for the response status

    • warning

      added the new InvalidValue enum value to the /// response property for the response status

    • warning

      added the new NotAllowed enum value to the /// response property for the response status

    • warning

      added the new NotAllowed enum value to the /// response property for the response status

    • warning

      added the new NotProvided enum value to the /// response property for the response status

    • warning

      added the new NotProvided enum value to the /// response property for the response status

    • warning

      added the new OutOfRange enum value to the /// response property for the response status

    • warning

      added the new OutOfRange enum value to the /// response property for the response status

    • warning

      added the new UnexpectedError enum value to the /// response property for the response status

    • warning

      added the new UnexpectedError enum value to the /// response property for the response status

    • info

      added the new HWRC_RECEIPT enum value to the request property

    • info

      added the new NON_HAZ_WASTE_TRANSFER enum value to the request property

    • info

      added the new NO_DOC_WITH_WASTE enum value to the request property

    • info

      added the non-success response with the status

    • info

      added the new optional request property /////

    • info

      added the new optional request property /////

    • info

      the request property ///// became nullable

    • info

      the request property ///// became nullable