# Terminals

A **terminal** is a virtual POS register. Each terminal gets its own URL that can be opened on a tablet, phone, or any browser. Terminals are identified by a **short code** -- a human-readable label, not a password.

## Creating a Terminal

Navigate to **Dashboard > POS > Terminals** and click **Create Terminal**.

### Required Fields

| Field                | Description                                | Rules                                                          |
| -------------------- | ------------------------------------------ | -------------------------------------------------------------- |
| **Name**             | Display name for the terminal              | Free text (e.g., "Register 1", "Front Counter")                |
| **Short Code**       | Unique identifier for this terminal        | 1-10 characters, letters and numbers only, stored as UPPERCASE |
| **Merchant Address** | Wallet address where payments are received | Must be a valid wallet address                                 |

### Optional Fields

| Field                | Description                                                                                                                 |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Default Chain**    | Pre-selected blockchain network for payments                                                                                |
| **Default Token**    | Pre-selected token for payments                                                                                             |
| **Allowed Cashiers** | Restrict which cashiers can log into this terminal (see [Cashier Restrictions](/point-of-sale-pos/cashier-restrictions.md)) |
| **Restrict Tokens**  | Restrict which tokens are available on this terminal (see [Token Restrictions](/point-of-sale-pos/token-restrictions.md))   |

## What a Terminal Looks Like

> **Terminal: Register 1**

| Setting          | Value              |
| ---------------- | ------------------ |
| Name             | Register 1         |
| Short Code       | `R1`               |
| Wallet           | `0x1234...abcd`    |
| URL              | `/pos/term_abc123` |
| Allowed Cashiers | John, Sarah        |

> **Important:** The short code (`R1`) is NOT a password. It's just a label that appears in Order IDs and reports. The cashier PIN is the password.

## Terminal Short Code

The short code is **not a password**. It is a human-readable identifier that:

* Appears in every Order ID created at that terminal (e.g., `POS-R1-JD-1707842400000`)
* Helps merchants track which terminal processed a payment
* Must be unique across your terminals
* Is automatically converted to uppercase

**Good short code examples:** `R1`, `R2`, `FC` (front counter), `DRIVE`, `MAIN`, `BAR`, `T1`

## Terminal URL

Each terminal gets a unique URL:

```
https://your-domain.com/pos/{terminalId}
```

The `terminalId` is a system-generated unique identifier (format: `term_<random>`), different from the short code. Share this URL or bookmark it on your POS device.

## Managing Terminals

### Edit a Terminal

Click the edit button on any terminal to change:

* Name
* Short code
* Default chain/token
* Allowed cashiers (see [Cashier Restrictions](/point-of-sale-pos/cashier-restrictions.md))
* Allowed tokens (see [Token Restrictions](/point-of-sale-pos/token-restrictions.md))

### Deactivate a Terminal

Deactivating a terminal:

* Prevents cashiers from logging in
* Ends all active sessions on that terminal
* Does not delete payment history
* Can be reactivated later

## Multiple Terminals

A merchant can create as many terminals as needed. Common setups:

| Setup                   | Terminals                       |
| ----------------------- | ------------------------------- |
| Single register         | `R1`                            |
| Two registers           | `R1`, `R2`                      |
| Counter + drive-through | `CTR`, `DRIVE`                  |
| Multiple locations      | `LOC1-R1`, `LOC1-R2`, `LOC2-R1` |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.makapay.io/point-of-sale-pos/terminals.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
