## Verify connection

Verifies the connection between a physical device and a terminal.

Returns one of:
- `CONNECTED` when the provided device is bound to the terminal
- `RESET_CONNECTION` when no device is bound (erase keys/PIN and call `connect-device`)

If no device is bound, you should call the [connect-device](/api/terminals/connect-device) endpoint.

Errors:
- `UNRECOGNIZED_DEVICE` if another device is currently bound
- `NOT_FOUND` if the merchant or terminal cannot be found
- `NOT_ENABLED` if the terminal is disabled
- `NOT_CONFIGURED` if the terminal has no installation linked

## Endpoint signature

```http
POST https://api.reservepay.com/terminals/verify-connection HTTP/1.1
Content-Type: application/json
Accept: application/json

{
  merchant_id: string,
  terminal_id: string,
  device_id: string,
}
```

Returns: string

## Request arguments

### `merchant_id` (string)

**Required**. The merchant ID this terminal belongs to.

### `terminal_id` (string)

**Required**. Terminal ID the device is connected to.

### `device_id` (string)

**Required**. Device UUID generated on device.

## Errors specific to this endpoint

### `UNRECOGNIZED_DEVICE`

The device_id does not match the one bound to the terminal.

### `NOT_FOUND`

Merchant or terminal could not be found.

### `NOT_ENABLED`

The terminal exists but is disabled.

### `NOT_CONFIGURED`

The terminal has no installation linked; assign an installation first.

## Errors common to all endpoints

### `UNHANDLED_ERROR`

Raised when the server encounters an unexpected internal error.

### `INVALID_ARGUMENTS`

Raised when the request contains invalid or missing parameters.

### `BAD_VERSION`

Raised when requesting an unsupported or deprecated API version.
