# Add a POS device

This endpoint is used to initiate a new point of sale device for a specific site. It creates the device with the provided configuration settings.

Endpoint: POST /point-of-sales/{site}
Version: 1.0.0

## Path parameters:

  - `site` (string, required)
    The ID of the site where the point of sale will be deployed.

## Request fields (application/json):

  - `serialNumber` (string, required)
    The serial number of the point of sale device
    Example: SN1234567890

  - `merchantPointOfSaleId` (string, required)
    The unique merchant identifier for the point of sale device.
    Example: POS-12345

  - `deviceModel` (string, required)
    The model of the point of sale device.
    Enum: "CastlesSaturn1000", "ZebraTC510K"

  - `communicationProtocol` (string, required)
    The protocol used by the point of sale device.
    Enum: "HTTP"

  - `communicationEndpoint` (string)
    The URL or network endpoint where the point of sale device actively listens for incoming connections and communications from the merchant system.
    Example: http://pos.example.com

  - `commercialModel` (string)
    The commercial model for the point of sale device pricing.
    Enum: "Onetime", "Recurring", "Financed", "Both"

  - `authenticationSettings` (object, required)
    The authentication settings for a point of sale device.

  - `authenticationSettings.hmacKey` (string, required)
    The single hmac key used in association with the point of sale device to authenticate.
    Example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

  - `hostUrls` (array)
    The endpoint URLs used by the PXP point of sale application.
    Example: [{"url":"https://transaction.example.com","urlType":"Transaction"}]

  - `hostUrls.url` (string)
    Example: https://transaction.example.com

  - `hostUrls.urlType` (string)
    The type of URL.
    Enum: "Transaction", "StoreAndForward", "InStoreNotification", "DCC"

  - `logSettings` (object)
    The log settings for a point of sale device.

  - `logSettings.verboseLoggingEnabled` (boolean)
    Indicates whether verbose logging is enabled for the point of sale device. When enabled, more detailed logs are generated, which can be useful for debugging and troubleshooting.
    Example: true

  - `logSettings.maximumLogSize` (integer)
    The maximum size of the log file in bytes. Once the log file reaches this size, older log entries may be removed or archived to prevent exceeding the size limit.
    Example: 10485760

  - `logSettings.logFileCleanUpDays` (integer)
    The number of days after which log files are cleaned up or archived. This helps manage storage by removing or archiving logs that are older than the specified number of days.
    Example: 30

  - `featureSettings` (object)
    The feature settings for a point of sale device.

  - `featureSettings.statusPacketsEnabled` (boolean)
    Indicates whether status packets, which provide real-time updates about the device's status, are enabled for the point of sale device.
    Example: true

  - `featureSettings.languageSelectionEnabled` (boolean)
    Whether the language selection feature is enabled, allowing users to choose their preferred language during transactions.
    Example: true

  - `featureSettings.gratuityEnabled` (boolean)
    Whether the gratuity (tip) feature is enabled, allowing customers to add a tip to their transactions.
    Example: false

  - `featureSettings.onlinePinEnabled` (boolean)
    Whether the online PIN feature is enabled, requiring customers to enter their PIN for card transactions.
    Example: true

  - `featureSettings.keyedEnabled` (boolean)
    Whether the keyed entry feature is enabled, allowing manual entry of card details for transactions.
    Example: false

  - `featureSettings.dccEnabled` (boolean)
    Whether the Dynamic Currency Conversion (DCC) feature is enabled, allowing customers to pay in their local card currency.
    Example: false

  - `storeAndForwardSettings` (object)
    The store and forward settings for a point of sale device.

  - `storeAndForwardSettings.storeAndForwardEnabled` (boolean)
    Indicates whether the store and forward feature is enabled for the point of sale device. This feature allows transactions to be stored locally when there is no network connectivity and then forwarded to the server once connectivity is restored.
    Example: true

  - `storeAndForwardSettings.transactionAmountThreshold` (integer)
    The maximum transaction amount, in the smallest currency unit (such as cents), that can be processed using the store and forward feature. Transactions exceeding this threshold will not be stored for later forwarding.
    Example: 10000

  - `storeAndForwardSettings.throttlingLimit` (integer)
    The maximum number of transactions that can be processed within a specified time frame when the store and forward feature is enabled. This setting helps control the flow of transactions once network connectivity is restored.
    Example: 100

  - `storeAndForwardSettings.processInterval` (integer)
    The time interval, in seconds, between attempts to process and forward stored transactions once network connectivity is available.
    Example: 300

  - `storeAndForwardSettings.x509PrivateKey` (string)
    The private key used for encrypting stored transaction data. This key is part of the X.509 certificate standard, which is used to ensure secure communications.
    Example: MIIBVgIBADANBgkqhkiG9w0BAQEFAASC...

  - `storeAndForwardSettings.x509PublicKey` (string)
    The public key associated with the private key, used in conjunction with the X.509 certificate for encryption and secure communication.
    Example: MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE...

  - `storeAndForwardSettings.keyGenerated` (string)
    The date and time when the encryption keys were generated, formatted according to the ISO 8601 standard.
    Example: 2023-09-01T12:00:00Z

## Response 200 fields (application/json):

  - `status` (string)
    The status of the point of sale device.
    Enum: "New", "Pending", "Active", "Disabled"

  - `site` (string)
    The ID of the site where the point of sale will be deployed.
    Example: SITE-1

  - `merchantPointOfSaleId` (string)
    The unique merchant identifier for the point of sale device.
    Example: POS-12345

  - `pointOfSaleId` (integer)
    The unique system identifier for the point of sale device.
    Example: 123456789

