---
title: "Register terminal"
method: POST
path: "/pay/v3/registerTerminal"
tags: ["Retail"]
---

# Register terminal

`POST /pay/v3/registerTerminal`

Provides a registration (or activation) code from a terminal to Nexio's API in order to register the terminal with the appropriate gateway.

Depending on the merchant account configuration, when you add a terminal, you either need to add a registration code or [request a pairing code](https://docs.nexiopay.com/reference/pairterminal). Some accounts may be configured to do both terminal setup options if the account is configured with multiple eligible gateways.

If you are unsure which endpoint to use, please contact [Support](https://docs.nexiopay.com/page/contact-us).

For a tutorial on how to use this endpoint, see the [Registering and deregistering terminals](https://docs.nexiopay.com/docs/registering-and-deregistering-terminals) topic in **Guides**.

<!-- theme: warning -->
> ⚠️ Try It
> 
> To use the Try It feature for this endpoint, you must use the credentials for your [Sandbox API user](https://docs.nexiopay.com/docs/sandbox-environments) and you must have an account with a gateway that requires terminal registration.

<div style="display:none;">

## Request parameters
- merchantId
- terminalRegistrationCode
- terminalName

## Response parameters
- terminalName
- deviceId
- terminalSerialNumber
- terminalRegistrationStatus
- terminalId

</div>

## Request body

- object
  - `merchantId` MerchantId, required — unresolved $ref
  - `terminalRegistrationCode` string, required — The registration code given by the terminal.
  - `terminalName` string — The name to identify the terminal. This nickname is especially useful in situations where the account has more than one terminal. The value can be up to 20 alphanumeric characters. The system ignores special characters.

## Response `200`

Success

- object
  - `terminalId` string — The Nexio ID for the terminal. Use this value when processing a retail terminal transaction.
  - `terminalSerialNumber` string — The terminal serial number retrieved from the device during registration.
  - `terminalRegistrationStatus` 'registered' | 'pending' | 'failed' — The current registration status of the terminal.
  - `terminalName` string — The nickname provided, if any, for identification of the terminal. This nickname is especially useful in situations where the account has more than one terminal.
  - `deviceId` string — If returned from the gateway, specifies the ID of the terminal device.
  - `random-4611765` RandomNnnn — unresolved $ref

## Other responses

- `400` — Bad Request
- `401` — Unauthorized. For help with this error and other error codes, see [Common errors](https://docs.nexiopay.com/docs/common-errors) in the Guides area.

---

[API](https://skmtc.dev/nexiopay/apis/payments-api-reference.md) · [All operations](https://skmtc.dev/nexiopay/apis/payments-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nexiopay/payments-api-reference/revisions/b414b73979e5/schema)
