Create a payment device

Create a payment device

POST api/payment_devices

Creates a payment device in a store.

Request syntax

post api/payment_devices '{"store_id":<store_id>,"payment_device_type_id":<payment_device_type_id>,"register_number":<register_number>,"device_ip":"<device_ip>","serial_id":"<serial_id>","status":"<status>"}'

Request parameters

The request accepts the following data in JSON format.

ParameterTypeDescriptionRequiredDefault value
store_idIntegerThe ID of the store the payment device belongs to.YesN/A
payment_device_type_idIntegerThe ID of the payment device type. For more information, see List all payment device types.YesN/A
register_numberIntegerThe register number the payment device is associated with. Must be unique within the store. Required if Set Register Number as a required field is enabled in the Stores settings.Nonull
mac_addressStringThe MAC address of the payment device.Nonull
groupStringThe group the payment device belongs to.Nonull
product_typeStringThe product type of the payment device, for example EPP.Nonull
device_locationStringThe location of the payment device within the store.Nonull
statusStringThe status of the payment device, for example Deployed or Awaiting Deployment.Nonull
serial_idStringThe serial number of the payment device. Must be unique. Required if Set Serial Number as a required field is enabled in the Stores settings.Nonull
device_ipStringThe IP address of the payment device. Required if Set IP Address as a required field is enabled in the Stores settings in SC//Reliant Platform Manager.Nonull
device_terminal_idStringThe terminal ID of the payment device.Nonull
activeBooleanWhether the payment device is active.Nonull
pedpoolingBooleanWhether PED pooling is turned on for the payment device.Nonull
last_inspected_dateStringThe date the payment device was last inspected.Nonull
action_last_executed_byStringThe user who last performed an action on the payment device.Nonull
action_last_executed_at_timestampStringThe timestamp of the last action performed on the payment device.Nonull
last_transaction_timestampStringThe timestamp of the last transaction processed by the payment device.Nonull
firmware_versionStringThe firmware version of the payment device.Nonull
hardware_versionStringThe hardware version of the payment device.Nonull
p2pe_payment_applicationsStringThe P2PE payment applications installed on the payment device.Nonull
p2pe_non_payment_applicationsStringThe P2PE non-payment applications installed on the payment device.Nonull

Response syntax

{
    "exporter_job": integer,
    "id": integer,
    "store_id": integer,
    "register_number": integer,
    "device_ip": "string",
    "device_terminal_id": "string",
    "payment_device_type_id": integer,
    "mac_address": "string",
    "serial_id": "string",
    "unit_serial_id": "string",
    "device_location": "string",
    "product_type": "string",
    "group": "string",
    "pedpooling": boolean,
    "status": "string",
    "action_last_executed_by": "string",
    "action_last_executed_at_timestamp": "timestamp",
    "last_transaction_timestamp": "string",
    "firmware_version": "string",
    "p2pe_payment_applications": "string",
    "p2pe_non_payment_applications": "string",
    "hardware_version": "string",
    "owner_name": "string",
    "last_inspected_date": "string",
    "last_inspected_by": "string",
    "created_at": "timestamp",
    "updated_at": "timestamp"
}

Response parameters

If the action is successful, an HTTP 201 response is returned. The following data is returned in JSON format.

FieldTypeDescription
exporter_jobIntegerThe ID of the exporter job created for the change.
idIntegerThe ID of the payment device.
store_idIntegerThe ID of the store the payment device belongs to.
register_numberIntegerThe register number the payment device is assigned to.
device_ipStringThe IP address of the payment device.
device_terminal_idStringThe terminal ID of the payment device.
payment_device_type_idIntegerThe ID of the payment device type.
mac_addressStringThe MAC address of the payment device. MAC addresses are returned in lowercase.
serial_idStringThe serial number of the payment device.
unit_serial_idStringThe unit serial number of the payment device.
device_locationStringThe location of the payment device in the store.
product_typeStringThe product type of the payment device, for example EPP.
groupStringThe group the payment device belongs to.
pedpoolingBooleanWhether PED pooling is enabled for the payment device.
statusStringThe status of the payment device, for example Deployed or Awaiting Deployment.
action_last_executed_byStringThe user who last changed the payment device.
action_last_executed_at_timestampTimestampThe timestamp of the last change to the payment device.
last_transaction_timestampStringThe timestamp of the last transaction on the payment device.
firmware_versionStringThe firmware version of the payment device.
p2pe_payment_applicationsStringThe P2PE payment applications on the payment device.
p2pe_non_payment_applicationsStringThe P2PE non-payment applications on the payment device.
hardware_versionStringThe hardware version of the payment device.
owner_nameStringA display name for the payment device, built from the store, register number, device type, serial number, and IP address.
last_inspected_dateStringThe date the payment device was last inspected, in the format MM/DD/YYYY HH:MM:SS TIMEZONE.
last_inspected_byStringThe user who last inspected the payment device.
created_atTimestampThe timestamp of when the payment device was created.
updated_atTimestampThe timestamp of when the payment device was last updated.

Errors

The following are errors returned by this API. For a complete list of common errors, see Common errors.

CodeMessageCause
422Invalid store_id, contact support.The store_id doesn't match a store in your organization. Use the store's id, not its store_number.
422Invalid payment_device_type_id, contact support.The payment device type doesn't exist or isn't available to your organization. To find valid IDs, see List all payment device types.
422Device ip can't be blankThe store settings require an IP address for payment devices, and the request didn't include device_ip.
422Register number This Register number is being used by another Payment Device. Please change this value so that it is unique.Another payment device in the store already uses the register_number.
422Status Invalid value for #status:The status is missing or isn't a valid value, such as Deployed.
422<serial_id> The serial id already exists, please enter a different one.Another payment device already uses the serial_id.

Examples

Example: Create a payment device

This example creates a payment device on register 901 in the store with ID 25511, using payment device type 144. To find valid payment device type IDs, use List all payment device types.

ruby api.rb <customer_code> post api/payment_devices '{"store_id":25511,"payment_device_type_id":144,"register_number":901,"device_ip":"10.53.23.44/26","serial_id":"DOCS-TEST-0001","mac_address":"00:0B:4F:12:34:57","status":"Deployed","active":true}'

Response

{
  "exporter_job": 1781586,
  "id": 135738,
  "store_id": 25511,
  "register_number": 901,
  "device_ip": "10.53.23.44/26",
  "device_terminal_id": null,
  "payment_device_type_id": 144,
  "mac_address": "00:0b:4f:12:34:57",
  "serial_id": "DOCS-TEST-0001",
  "unit_serial_id": null,
  "device_location": null,
  "product_type": "EPP",
  "group": null,
  "pedpooling": true,
  "status": "Deployed",
  "action_last_executed_by": "test.user",
  "action_last_executed_at_timestamp": "2026-10-10T16:47:50.854Z",
  "last_transaction_timestamp": null,
  "firmware_version": "",
  "p2pe_payment_applications": "",
  "p2pe_non_payment_applications": "",
  "hardware_version": "",
  "owner_name": "Store 2324 (Honolulu/HI): Register 901 (E280FP) Serial number: DOCS-TEST-0001 Ip: 10.53.23.44/26",
  "last_inspected_date": null,
  "last_inspected_by": null,
  "created_at": "2026-10-10T16:47:50.877Z",
  "updated_at": "2026-10-10T16:47:50.877Z"
}

Example: Create a payment device with missing and duplicate values

This example shows the response when the request is missing values that the store settings require, and uses a register number and serial number that are already in use.

ruby api.rb <customer_code> post api/payment_devices '{"store_id":25511,"payment_device_type_id":144,"register_number":1,"serial_id":"123-456-789","mac_address":"00:0B:4F:12:34:56","active":true}'

Response

{
  "message": "422 Unprocessable Entity",
  "details": {
    "record": {
      "store_id": 25511,
      "payment_device_type_id": 144,
      "register_number": 1,
      "mac_address": "00:0B:4F:12:34:56",
      "serial_id": "123-456-789",
      "active": true
    },
    "errors": [
      "Device ip can't be blank",
      "Register number This Register number is being used by another Payment Device. Please change this value so that it is unique.",
      "Status Invalid value for #status: ",
      "123-456-789 The serial id already exists, please enter a different one."
    ]
  }
}