# Add device

This API is used to activate a tape with its correct configuration.

Endpoint: POST /devices/v1/parcel
Version: 1.4.0.0
Security: bearerAuth

## Query parameters:

  - `qrcode` (string, required)
    The QR code of the device.

  - `tape_id` (string, required)
    The unique identifier of the tape (MAC address or UUID).

  - `abc` (string)
    Customer's asset identifier like AWB, shipment number, asset ID etc. Shown later in location data.

  - `retry` (integer)
    Retry flag (default: 0).

  - `override` (integer)
    Set to 1 to force delete and recreate the record if it exists. Default 0.

  - `appId` (string, required)
    Application ID (defaults to system default if not provided) - get correct values from Trackonomy.

  - `dstatus` (integer, required)
    Device status (1 for active).

  - `abcd` (string)
    Asset Description.

  - `iu` (string)
    Image URL.

  - `apn` (string)
    APN configuration.

  - `tt` (string, required)
    Tape Type (e.g., 'Green', 'Black').

  - `tp` (string, required)
    Tape Personality - use "Parcel"

  - `agps` (string)
    Activation GPS coordinates.

  - `macad` (string)
    MAC address (explicit).

  - `fw_version` (string)
    Firmware version.

  - `tracked_application_id` (string)
    Tracked Application ID.

  - `notes` (string)
    Additional notes.

## Header parameters:

  - `customer_id` (string, required)
    The ID of the customer.

  - `authorized_groups` (string, required)
    The department/group authorized for this request.

  - `facility_id` (string)
    The facility ID where the device is activated.

  - `X-Correlation-Id` (string)
    Unique ID for tracking the request (auto-generated if not provided).

## Response 200 fields (application/json):

  - `code` (integer)
    Example: 200

  - `message` (string)
    Example: Resource created

## Response 201 fields (application/json):

  - `code` (integer)
    Example: 200

  - `message` (string)
    Example: Resource created

## Response 400 fields (application/json):

  - `code` (integer)
    HTTP status code associated with the error
    Example: 500

  - `message` (string)
    Error message describing what went wrong
    Example: Internal Server Error

## Response 401 fields (application/json):

  - `code` (integer)
    HTTP status code associated with the error
    Example: 500

  - `message` (string)
    Error message describing what went wrong
    Example: Internal Server Error

## Response 404 fields (application/json):

  - `code` (integer)
    HTTP status code associated with the error
    Example: 500

  - `message` (string)
    Error message describing what went wrong
    Example: Internal Server Error

## Response 409 fields (application/json):

  - `code` (integer)
    HTTP status code associated with the error
    Example: 500

  - `message` (string)
    Error message describing what went wrong
    Example: Internal Server Error

## Response 500 fields (application/json):

  - `code` (integer)
    HTTP status code associated with the error
    Example: 500

  - `message` (string)
    Error message describing what went wrong
    Example: Internal Server Error

