# Webhook for parcel updates

Webhook to push parcel updates to any URL provided by the carrier. This endpoint allows carriers to receive 
real-time updates about parcels.

Endpoint: POST ParcelUpdates
Version: 1.2.0
Security: ApiKeyAuth

## Request fields (application/json):

  - `shipmentUid` (string)
    The unique identifier of the parcel shipment in the GLS/NXT Platform
    Example: "anyParcelId123"

  - `lockerUid` (string)
    The unique identifier of the locker in the GLS/NXT Platform
    Example: "anyLockerId123"

  - `carrierParcelId` (string)
    The identifier of the parcel in the carrier's system
    Example: "anyCarrierParcelId123"

  - `carrierLockerId` (string,null)
    The identifier of the locker in the carrier's system
    Example: "Locker1"

  - `shipmentType` (string)
    The type of shipment.
    Enum: "LAST_MILE", "ALTERNATIVE_DELIVERY", "FIRST_MILE", "RETURN"

  - `dimensionsStatus` (string)
    The status of the parcel dimensions.
    Enum: "PARCEL_DIMENSIONS_EXCEED", "PARCEL_DIMENSIONS_OK", "PARCEL_DIMENSIONS_UNKNOWN"

  - `shipmentStatus` (string)
    The status of the shipment.
    Enum: "BOOKING_PRE_CHECK", "BOOKING_REQUESTED", "BOOKING_CREATED", "BOOKING_CANCELLED", "BOOKING_CANCELLATION_FAILED", "BOOKING_EXPIRED", "BOOKING_REJECTED_INVALID_LOCKER", "BOOKING_REJECTED_PROVIDER_ERROR", "BOOKING_REJECTED_LOCKER_IS_FULL", "BOOKING_REJECTED_NO_FREE_FITTING_COMPARTMENT", "BOOKING_REJECTED_LOCKER_UNAVAILABLE", "BOOKING_REJECTED_DIMENSIONS_EXCEED", "BOOKING_REJECTED_INVALID_CONSIGNEE", "BOOKING_REJECTED_NO_ACCESSIBLE_COMPARTMENT", "COURIER_DELIVERED", "COURIER_DELIVERY_EXPIRED", "COURIER_DELIVERY_LABEL_SCANNED", "COURIER_COLLECTED", "COURIER_COLLECTED_EXPIRED", "COURIER_COLLECTION_LABEL_SCANNED", "COURIER_COLLECTION_LABEL_NOT_AVAILABLE", "CONSIGNEE_COLLECTED", "CONSIGNEE_DELIVERED", "CONSIGNEE_DELIVERY_EXPIRED", "CONSIGNEE_COLLECTION_EXPIRED", "DELIVERY_PARCEL_TOO_BIG", "DELIVERY_COMPARTMENT_BROKEN", "DELIVERY_COMPARTMENT_OCCUPIED", "DELIVERY_NOT_POSSIBLE", "COLLECTION_PARCEL_NOT_AVAILABLE", "COLLECTION_COMPARTMENT_BROKEN", "COLLECTION_NOT_POSSIBLE"

  - `isFinal` (boolean)
    Example: true

  - `accessCodes` (object,null)
    Access codes for the parcel

  - `accessCodes.consigneeCollectionCode` (object,null)
    The access code for the consignee collection

  - `accessCodes.consigneeCollectionCode.code` (string, required)
    Example: "anyValidCode123"

  - `accessCodes.consigneeCollectionCode.validUntil` (string)
    Code validity in UTC timestamp [ISO 8601](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) format.
    Example: "2025-01-27T12:00:00Z"

  - `accessCodes.consigneeCollection` (string)
    Example: "anyValidCode123"

  - `consignee` (object,null)
    The details of the consignee.

  - `consignee.name` (string,null)
    Example: "John Doe"

  - `consignee.email` (string,null)
    Example: "john.doe@google.com"

  - `events` (array)

  - `events.timestamp` (string)
    Example: "2025-08-20T00:00:00Z"

  - `events.eventType` (string)
    The status of the shipment.
    Enum: "BOOKING_PRE_CHECK", "BOOKING_REQUESTED", "BOOKING_CREATED", "BOOKING_CANCELLED", "BOOKING_CANCELLATION_FAILED", "BOOKING_EXPIRED", "BOOKING_REJECTED_INVALID_LOCKER", "BOOKING_REJECTED_PROVIDER_ERROR", "BOOKING_REJECTED_LOCKER_IS_FULL", "BOOKING_REJECTED_NO_FREE_FITTING_COMPARTMENT", "BOOKING_REJECTED_LOCKER_UNAVAILABLE", "BOOKING_REJECTED_DIMENSIONS_EXCEED", "BOOKING_REJECTED_INVALID_CONSIGNEE", "BOOKING_REJECTED_NO_ACCESSIBLE_COMPARTMENT", "COURIER_DELIVERED", "COURIER_DELIVERY_EXPIRED", "COURIER_DELIVERY_LABEL_SCANNED", "COURIER_COLLECTED", "COURIER_COLLECTED_EXPIRED", "COURIER_COLLECTION_LABEL_SCANNED", "COURIER_COLLECTION_LABEL_NOT_AVAILABLE", "CONSIGNEE_COLLECTED", "CONSIGNEE_DELIVERED", "CONSIGNEE_DELIVERY_EXPIRED", "CONSIGNEE_COLLECTION_EXPIRED", "DELIVERY_PARCEL_TOO_BIG", "DELIVERY_COMPARTMENT_BROKEN", "DELIVERY_COMPARTMENT_OCCUPIED", "DELIVERY_NOT_POSSIBLE", "COLLECTION_PARCEL_NOT_AVAILABLE", "COLLECTION_COMPARTMENT_BROKEN", "COLLECTION_NOT_POSSIBLE"

  - `allocationType` (string)
    The allocation type of the shipment.
    Enum: "HARD_RESERVATION", "SOFT_RESERVATION"

  - `providerName` (string,null)
    The name of the locker network provider
    Example: "LOCKY_PT"

  - `providerLockerId` (string,null)
    The identifier of the locker in the provider's system
    Example: "1178"

  - `shipmentSignature` (object)
    A Base64-encoded image representing the consignee's signature, captured upon parcel collection

  - `shipmentSignature.imageBase64` (string)
    Example: "imageBase64StringHere"

  - `shipmentSignature.format` (string)

  - `requiresAccessibleCompartment` (boolean)
    Example: true

  - `eventTimestamp` (string)
    The timestamp of the parcel update
    Example: "2025-08-20T00:00:00Z"


## Response 200 fields

## Response 401 fields

## Response 500 fields
