> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fire.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Linking

> How to link a POS terminal to a store from the Fire backoffice.

This guide explains how to register a POS terminal against a store. Registration is a one-time operation per device: the administrator generates a single-use code from the backoffice and the operator types it into the POS app. Once linked, the terminal stays bound to the store and cashiers can sign in with their PIN.

## Prerequisites

* Access to the Fire backoffice at **[app.fire.rest](https://app.fire.rest)**, with permissions on the store and the **Fire POS Admin** role.
* The device powered on, with an internet connection and a supported browser. See the [terminal requirements](/en/manuals/pos/hardware-requirements) for the full hardware, operating system, browser and network specifications.

<Info>
  **FIRE POS is not installed.** It is a web application opened in the terminal browser — there is no executable or installer. Optionally, it can be installed as a PWA from the browser itself so it opens full screen.

  This guide uses two different applications: the **backoffice**, where you generate the code, and the **POS**, where you type it in.

  | Environment    | Backoffice (steps 1-5)                         | FIRE POS (steps 6-8)                           |
  | -------------- | ---------------------------------------------- | ---------------------------------------------- |
  | **Production** | [app.fire.rest](https://app.fire.rest)         | [pos.fire.rest](https://pos.fire.rest)         |
  | **Staging**    | [stg.app.fire.rest](https://stg.app.fire.rest) | [stg.pos.fire.rest](https://stg.pos.fire.rest) |
</Info>

<Warning>
  **Both applications must be on the same environment.** A code generated in the production backoffice cannot be redeemed on the staging POS, or the other way around — the POS rejects it as an invalid code.
</Warning>

For terminals that print receipts and vouchers, also install **Fire Agent** on the device. See the [Fire Agent guide](/en/manuals/fire-agent/installation) for the full setup.

<Card title="Download Fire Agent (Windows)" icon="download" href="https://drive.google.com/uc?export=download&id=1OiqSbD5flcsc6cV2ZjxxkHy-cmxwH5d1">
  Windows installer for local thermal printing.
</Card>

## 1. Select country and vendor

Sign in to the backoffice at **[app.fire.rest](https://app.fire.rest)** (or [stg.app.fire.rest](https://stg.app.fire.rest) on staging). From the top-right corner, open the selector and choose the country and vendor you will operate under. Every action in this guide happens inside that context.

<Frame>
  <img src="https://mintcdn.com/firepos/iHHtLmy85rEEiLUu/images/manuals/pos/linking/01-select-country-vendor.png?fit=max&auto=format&n=iHHtLmy85rEEiLUu&q=85&s=09ca21904ffd49bde5d9caee73c32c85" alt="Country and vendor selector in the backoffice" width="272" height="367" data-path="images/manuals/pos/linking/01-select-country-vendor.png" />
</Frame>

## 2. Confirm the Fire POS channel

In the side menu, make sure the **Fire POS** channel is selected. The Terminals section is only available inside that channel.

<Frame>
  <img src="https://mintcdn.com/firepos/iHHtLmy85rEEiLUu/images/manuals/pos/linking/02-confirm-channel.png?fit=max&auto=format&n=iHHtLmy85rEEiLUu&q=85&s=bdf8f724bb4cab0ed2c647406dbc8b21" alt="Channel selector with Fire POS selected" width="548" height="434" data-path="images/manuals/pos/linking/02-confirm-channel.png" />
</Frame>

## 3. Pick the target store

In the store selector in the header, choose the store the terminal will be registered against. The slot you generate in the next step is bound to that store — you cannot reassign it later.

<Frame>
  <img src="https://mintcdn.com/firepos/iHHtLmy85rEEiLUu/images/manuals/pos/linking/03-pick-store.png?fit=max&auto=format&n=iHHtLmy85rEEiLUu&q=85&s=5c8f922df99792526747be61c839396d" alt="Store selector in the backoffice header" width="312" height="337" data-path="images/manuals/pos/linking/03-pick-store.png" />
</Frame>

## 4. Open the Terminals section

In the side menu open **POS → Terminals**. You will see the list of already-registered terminals grouped by status (Active, Pending slots, Suspended, Revoked).

<Frame>
  <img src="https://mintcdn.com/firepos/iHHtLmy85rEEiLUu/images/manuals/pos/linking/04-terminals-section.png?fit=max&auto=format&n=iHHtLmy85rEEiLUu&q=85&s=043800bf30567b456aca86682db76c3f" alt="POS submenu with the Terminals option" width="288" height="912" data-path="images/manuals/pos/linking/04-terminals-section.png" />
</Frame>

## 5. Create a linking slot

1. In the top-right corner click **+ Create slot**.

   <Frame>
     <img src="https://mintcdn.com/firepos/iHHtLmy85rEEiLUu/images/manuals/pos/linking/05-create-slot-button.png?fit=max&auto=format&n=iHHtLmy85rEEiLUu&q=85&s=a8fc44b9a34534011cad87ff72a00de1" alt="Terminals page with the Create slot button" width="144" height="60" data-path="images/manuals/pos/linking/05-create-slot-button.png" />
   </Frame>

2. **Create linking slot modal.** Verify the target store and choose how long the code is valid (default **30 minutes**). Click **Generate code**.

   <Frame>
     <img src="https://mintcdn.com/firepos/iHHtLmy85rEEiLUu/images/manuals/pos/linking/06-create-slot-modal.png?fit=max&auto=format&n=iHHtLmy85rEEiLUu&q=85&s=04cf7db1439790885eb658f7092db93d" alt="Create slot modal with the target store and the validity field" width="448" height="362" data-path="images/manuals/pos/linking/06-create-slot-modal.png" />
   </Frame>

3. The backoffice shows a **6-digit code** with its expiration time. Use the **Copy** button or write it down. The code is shown once and can be used to link a single device.

   <Frame>
     <img src="https://mintcdn.com/firepos/NRvNyR3mABhD4tpM/images/manuals/pos/linking/07-slot-code.png?fit=max&auto=format&n=NRvNyR3mABhD4tpM&q=85&s=5baa089d148e262ff1c0e8d655621440" alt="Generated 6-digit code with the copy button and the expiration time" width="910" height="906" data-path="images/manuals/pos/linking/07-slot-code.png" />
   </Frame>

<Note>
  If the code expires before it is used, the slot becomes invalid. Repeat this step to generate a new one.
</Note>

## 6. Open the POS app

In the device browser, open **[pos.fire.rest](https://pos.fire.rest)** — or [stg.pos.fire.rest](https://stg.pos.fire.rest) if you generated the code on staging. If the terminal has never been linked, the home screen shows the **Link terminal** title and a 6-digit numeric keypad.

<Frame>
  <img src="https://mintcdn.com/firepos/NRvNyR3mABhD4tpM/images/manuals/pos/linking/08-open-pos-app.png?fit=max&auto=format&n=NRvNyR3mABhD4tpM&q=85&s=2b1c9dddb70ab1d421ba31bf4683819e" alt="POS screen with the Link terminal title and the numeric keypad" width="2986" height="1696" data-path="images/manuals/pos/linking/08-open-pos-app.png" />
</Frame>

## 7. Type the code

Type the 6 digits on the keypad. As soon as the sixth digit is entered, the app validates the code automatically — there is no confirm button.

<Frame>
  <img src="https://mintcdn.com/firepos/NRvNyR3mABhD4tpM/images/manuals/pos/linking/09-type-code.png?fit=max&auto=format&n=NRvNyR3mABhD4tpM&q=85&s=57d0e4097d93e941d70fd4eac7b0b3d9" alt="Numeric keypad with the 6 digits entered" width="832" height="1042" data-path="images/manuals/pos/linking/09-type-code.png" />
</Frame>

While the code is being validated a loading indicator is shown. If the code is invalid or expired, an error message appears and the keypad is cleared so you can try again.

## 8. The terminal is linked

Once validation succeeds, the terminal receives its name, store and internal credentials, then redirects automatically to the **cashier sign-in screen**. From that point on the device operates autonomously — cashiers can sign in with their PIN without using the code again.

<Frame>
  <img src="https://mintcdn.com/firepos/NRvNyR3mABhD4tpM/images/manuals/pos/linking/10-cashier-signin.png?fit=max&auto=format&n=NRvNyR3mABhD4tpM&q=85&s=6eb06ed43debce5ec16b545f73081883" alt="Cashier sign-in screen after linking the terminal" width="2972" height="1688" data-path="images/manuals/pos/linking/10-cashier-signin.png" />
</Frame>

<Check>
  The terminal is linked to the store and ready to operate.
</Check>

## Verifying from the backoffice

Go back to **POS → Terminals** and open the **Active** tab. The newly registered terminal appears in the list with its name, last seen time and **ACTIVE** status.

<Frame>
  <img src="https://mintcdn.com/firepos/NRvNyR3mABhD4tpM/images/manuals/pos/linking/11-terminal-active.png?fit=max&auto=format&n=NRvNyR3mABhD4tpM&q=85&s=dfbeee0c790b2b5881d2ed5a85455f56" alt="Terminal list with the new device in ACTIVE status" width="2396" height="1466" data-path="images/manuals/pos/linking/11-terminal-active.png" />
</Frame>

In the **Pending slots** tab the slot you generated should no longer be visible — it moved to **CLAIMED** and is consumed automatically.
