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.
| Parameter | Type | Description | Required | Default value |
|---|---|---|---|---|
store_id | Integer | The ID of the store the payment device belongs to. | Yes | N/A |
payment_device_type_id | Integer | The ID of the payment device type. For more information, see List all payment device types. | Yes | N/A |
register_number | Integer | The 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. | No | null |
mac_address | String | The MAC address of the payment device. | No | null |
group | String | The group the payment device belongs to. | No | null |
product_type | String | The product type of the payment device, for example EPP. | No | null |
device_location | String | The location of the payment device within the store. | No | null |
status | String | The status of the payment device, for example Deployed or Awaiting Deployment. | No | null |
serial_id | String | The serial number of the payment device. Must be unique. Required if Set Serial Number as a required field is enabled in the Stores settings. | No | null |
device_ip | String | The 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. | No | null |
device_terminal_id | String | The terminal ID of the payment device. | No | null |
active | Boolean | Whether the payment device is active. | No | null |
pedpooling | Boolean | Whether PED pooling is turned on for the payment device. | No | null |
last_inspected_date | String | The date the payment device was last inspected. | No | null |
action_last_executed_by | String | The user who last performed an action on the payment device. | No | null |
action_last_executed_at_timestamp | String | The timestamp of the last action performed on the payment device. | No | null |
last_transaction_timestamp | String | The timestamp of the last transaction processed by the payment device. | No | null |
firmware_version | String | The firmware version of the payment device. | No | null |
hardware_version | String | The hardware version of the payment device. | No | null |
p2pe_payment_applications | String | The P2PE payment applications installed on the payment device. | No | null |
p2pe_non_payment_applications | String | The P2PE non-payment applications installed on the payment device. | No | null |
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.
| Field | Type | Description |
|---|---|---|
exporter_job | Integer | The ID of the exporter job created for the change. |
id | Integer | The ID of the payment device. |
store_id | Integer | The ID of the store the payment device belongs to. |
register_number | Integer | The register number the payment device is assigned to. |
device_ip | String | The IP address of the payment device. |
device_terminal_id | String | The terminal ID of the payment device. |
payment_device_type_id | Integer | The ID of the payment device type. |
mac_address | String | The MAC address of the payment device. MAC addresses are returned in lowercase. |
serial_id | String | The serial number of the payment device. |
unit_serial_id | String | The unit serial number of the payment device. |
device_location | String | The location of the payment device in the store. |
product_type | String | The product type of the payment device, for example EPP. |
group | String | The group the payment device belongs to. |
pedpooling | Boolean | Whether PED pooling is enabled for the payment device. |
status | String | The status of the payment device, for example Deployed or Awaiting Deployment. |
action_last_executed_by | String | The user who last changed the payment device. |
action_last_executed_at_timestamp | Timestamp | The timestamp of the last change to the payment device. |
last_transaction_timestamp | String | The timestamp of the last transaction on the payment device. |
firmware_version | String | The firmware version of the payment device. |
p2pe_payment_applications | String | The P2PE payment applications on the payment device. |
p2pe_non_payment_applications | String | The P2PE non-payment applications on the payment device. |
hardware_version | String | The hardware version of the payment device. |
owner_name | String | A display name for the payment device, built from the store, register number, device type, serial number, and IP address. |
last_inspected_date | String | The date the payment device was last inspected, in the format MM/DD/YYYY HH:MM:SS TIMEZONE. |
last_inspected_by | String | The user who last inspected the payment device. |
created_at | Timestamp | The timestamp of when the payment device was created. |
updated_at | Timestamp | The 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.
| Code | Message | Cause |
|---|---|---|
| 422 | Invalid store_id, contact support. | The store_id doesn't match a store in your organization. Use the store's id, not its store_number. |
| 422 | Invalid 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. |
| 422 | Device ip can't be blank | The store settings require an IP address for payment devices, and the request didn't include device_ip. |
| 422 | Register 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. |
| 422 | Status 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."
]
}
}