# Open a locker unit

Opens a specific locker unit remotely in the specified locker bank. Use this endpoint when an authorized user needs to unlock a locker unit for package deposit or return drop-off.
Note: This API returns a success response only when the locker hardware is configured.

Endpoint: POST /api/v1/lockerBanks/{lockerBankId}/lockers/{lockerUnitId}/open
Version: 1.0.0
Security: bearerAuth

## Path parameters:

  - `lockerBankId` (string, required)
    The unique identifier of the locker bank where the locker unit is located.
    Example: "AOne"

  - `lockerUnitId` (string, required)
    The unique identifier of the locker unit to open.
    Example: "2"

## Request fields (application/json):

  - `userId` (string, required)
    The identifier of the person or system user in the address book performing the open locker action.
    Example: "user@gmail.com"

## Response 200 fields (application/json):

  - `lockerBankId` (string)
    The unique identifier of the locker bank.
    Example: "AOne"

  - `lockerUnitId` (string)
    The unique identifier of the locker unit that was opened.
    Example: "2"

  - `contactId` (string)
    The identifier of the contact associated with the locker reservation, if available.
    Example: "684a6b7bbc85e1bce739xxxx"

  - `contactType` (string)
    The type of contact associated with the locker reservation.
    Enum: "recipient", "department"

  - `activityType` (string)
    The activity for which the locker unit was opened.
    Enum: "deposit", "pickup", "maintenance"

  - `parcelsReserved` (array)
    The list of parcels reserved in the locker unit, if any.

  - `parcelsReserved.trackingNumber` (string)
    The primary identifier of a package, usually a carrier's tracking number.
    Example: "26112025_6"

  - `parcelsReserved.secondaryTrackingNumber` (string)
    A secondary identifier for a package, can be generated internally.
    Example: "TRACK-1234"

  - `parcelsDeposited` (array)
    The list of parcels deposited in the locker unit, if any.

## Response 400 fields (application/json):

  - `errorCode` (string)
    Error code(s) that appear due to HTTP  400- Invalid or Bad Request, e.g., validation-error.
    Example: "validation_error"

  - `errorDescription` (string)
    HTTP 400 Bad Request response status code indicates that the server cannot process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
    Example: "userId - value missing."

  - `additionalCode` (string)
    A unique identifier for the error, for example ILP10010, or ILP10030.
    Example: "already_exists"

  - `additionalInfo` (string)
    This is an additional information about the error. This error 'Invalid Request' might appear due to invalid data, or if the information is missing.
    Example: "674eb7b67b34d787400fa453"

  - `additionalParameters` (array)
    Example: ["userId"]

## Response 401 fields (application/json):

  - `message` (string, required)
    This is HTTP 401 Unauthorized response status code, which indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource.
    Example: "The request could not be completed."

## Response 404 fields (application/json):

  - `errorCode` (string)
    Error code(s) that appear due HTTP 404 Page or File not found.
    Example: "not_found"

  - `errorDescription` (string)
    HTTP 404 Not Found response status code indicates that the server cannot find the requested resource.
    Example: "resource not found"

  - `additionalCode` (string)
    A unique identifier for the error, for example 0100025, 1110017, or 1090001.
    Example: "0100025"

  - `additionalInfo` (string)
    The additional information about the error. This error 'Not Found' might appear due to Shipment Not Found, No Shipments to close, or Original Transaction not found.
    Example: "Resource not found"

  - `additionalParameters` (array)
    Example: ["userId"]

## Response 500 fields (application/json):

  - `message` (string, required)
    This is HTTP 500 Internal Server Error response status code, which indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
    Example: "The request could not be completed."


