# Point of Sale (/docs/pos)



Resytech includes a full point of sale system for selling merchandise, snacks, and extras alongside your booking business. The POS is tightly integrated with Stripe for card processing and supports in-person terminal payments, saved cards, cash, and check transactions.

POS Settings [#pos-settings]

Configure your POS system from **Dashboard > POS > Settings**. Each location has its own POS configuration.

General Settings [#general-settings]

| Setting                          | Description                                                             |
| -------------------------------- | ----------------------------------------------------------------------- |
| **Enabled**                      | Turn POS on or off for this location                                    |
| **Sales Tax Rate**               | Primary sales tax percentage applied to taxable items                   |
| **Additional Tax Name**          | Label for a second tax (e.g., "Local Tax", "Tourism Fee")               |
| **Additional Tax Amount**        | The second tax amount (flat dollar amount or percentage)                |
| **Additional Tax Is Percentage** | Whether the additional tax is a percentage or flat amount               |
| **Stripe Terminal Location ID**  | Links this POS to a Stripe Terminal location for in-person card readers |

Payment Method Settings [#payment-method-settings]

| Setting                         | Description                                                       |
| ------------------------------- | ----------------------------------------------------------------- |
| **Allow Cash Payments**         | Enable recording cash transactions                                |
| **Allow Check Payments**        | Enable recording check transactions                               |
| **Allow Saved Cards**           | Enable charging a customer's card already on file                 |
| **Require Customer for Orders** | When enabled, every POS order must be linked to a customer record |

Product Sync Settings [#product-sync-settings]

| Setting                | Description                                          |
| ---------------------- | ---------------------------------------------------- |
| **Auto Sync Products** | Automatically sync products from your Stripe catalog |
| **Last Product Sync**  | Timestamp of the most recent product sync            |

Setting Up POS [#setting-up-pos]

1. Ensure Stripe is connected (see [Stripe Setup](/docs/payments/stripe-setup))
2. Navigate to **Dashboard > POS**
3. Enable POS for the location in settings
4. Configure your tax rates
5. Choose which payment methods to accept
6. Add products to your POS catalog or sync them from Stripe

Products [#products]

Product Fields [#product-fields]

Each POS product includes:

| Field           | Description                                            |
| --------------- | ------------------------------------------------------ |
| **Name**        | Product display name                                   |
| **Description** | Optional product description                           |
| **Unit Price**  | Price per unit                                         |
| **Category**    | Used to organize and filter products on the POS screen |
| **SKU**         | Stock keeping unit identifier                          |
| **Image**       | Optional product photo                                 |
| **Is Active**   | Whether the product appears on the POS screen          |
| **Is Taxable**  | Whether sales tax applies to this product              |
| **Sort Order**  | Controls display order within a category               |

Products are synced with Stripe. Each product has a linked **Stripe Product ID** and **Stripe Price ID** so that card payments are processed through your Stripe account.

Syncing Products from Stripe [#syncing-products-from-stripe]

If you manage your product catalog in Stripe, you can pull products into Resytech:

1. Navigate to **Dashboard > POS > Products**
2. Click **Sync Products**
3. New and updated products from Stripe are imported automatically

You can also enable **Auto Sync** in POS settings to keep products in sync without manual intervention.

Managing Product Visibility [#managing-product-visibility]

Toggle a product's **Is Active** status to show or hide it from the POS screen without deleting it. This is useful for seasonal items or products that are temporarily out of stock.

Terminals [#terminals]

Stripe Terminal card readers enable in-person tap, chip, and swipe payments.

Terminal Fields [#terminal-fields]

| Field             | Description                                                     |
| ----------------- | --------------------------------------------------------------- |
| **Label**         | A friendly name for the terminal (e.g., "Front Desk Reader")    |
| **Device Type**   | The Stripe Terminal hardware model                              |
| **Serial Number** | Hardware serial number                                          |
| **Status**        | Current connection status (online/offline)                      |
| **Is Default**    | Whether this terminal is auto-selected when processing payments |
| **Last Seen At**  | When the terminal last communicated with Stripe                 |

Registering a Terminal [#registering-a-terminal]

1. Navigate to **Dashboard > POS > Terminals**
2. Click **Register Reader**
3. Follow the on-screen pairing instructions
4. Assign a label to identify the terminal

You can register multiple terminals per location and set one as the default. Unregister a terminal at any time if it is no longer in use.

Processing Sales [#processing-sales]

Creating an Order [#creating-an-order]

1. Open the POS screen from **Dashboard > POS**
2. Browse or search products by category
3. Add items to the cart (adjust quantities as needed)
4. Optionally link the order to a **customer** or **booking**
5. Apply a **discount** if applicable
6. Add **notes** to the order
7. Click **Charge** to proceed to payment

Order Items [#order-items]

Each line item on an order includes:

* **Product reference** (or a custom name for ad-hoc items)
* **SKU**
* **Quantity**
* **Unit price** and calculated **total price**
* **Taxable** flag
* **Item-level notes**

Payment Methods [#payment-methods]

Stripe Terminal (Card Reader) [#stripe-terminal-card-reader]

1. Select the terminal to use (or the default is pre-selected)
2. The payment intent is sent to the card reader
3. The customer taps, inserts, or swipes their card
4. Confirm the payment once the reader signals success
5. If the customer cancels, use **Cancel Terminal Payment** to abort

Payment details recorded include the **Stripe Payment Intent ID**, **card brand**, and **last 4 digits** of the card.

Saved Card [#saved-card]

If the order is linked to a customer with a card on file, you can charge the saved card directly without a terminal.

Cash or Check [#cash-or-check]

1. Select **Cash** or **Check** as the payment type
2. Record the payment with an optional **reference ID** (e.g., check number)

Order Management [#order-management]

View and manage all POS orders from **Dashboard > POS > Orders**.

Searching and Filtering [#searching-and-filtering]

| Filter         | Description                                                       |
| -------------- | ----------------------------------------------------------------- |
| **Search**     | Free-text search across order numbers and details                 |
| **Status**     | Filter by Pending, Completed, Refunded, Partial Refund, or Voided |
| **Date Range** | Filter by start and end date                                      |
| **Customer**   | Filter orders for a specific customer                             |

Results are paginated (default 20 per page).

Order Statuses [#order-statuses]

| Status             | Description                                 |
| ------------------ | ------------------------------------------- |
| **Pending**        | Order created but payment not yet completed |
| **Completed**      | Payment received and order fulfilled        |
| **Refunded**       | Full refund issued                          |
| **Partial Refund** | A portion of the order amount was refunded  |
| **Voided**         | Order canceled before payment was completed |

Order Details [#order-details]

Each order record includes:

* **Order Number** for easy reference
* **Customer** and optional **Booking** link
* **Subtotal**, **Tax Amount**, **Additional Tax**, **Discount**, and **Grand Total** breakdown
* **Payment Type** and **Payment Reference ID**
* **Created By** (the staff member who created the order)
* **Timestamps** for creation and completion
* **Notes**
* Full list of **line items** and **payment records**

Voiding an Order [#voiding-an-order]

Void a pending or completed order when the transaction should be completely canceled. Voided orders remain in the system for record-keeping but are excluded from revenue calculations.

Refunding an Order [#refunding-an-order]

Issue a full or partial refund on completed orders:

1. Open the order detail
2. Click **Refund**
3. Enter the refund **amount** (leave blank for a full refund)
4. Provide a **reason** for the refund
5. The refund is processed through Stripe automatically

Partial refunds update the order status to **Partial Refund**. A full refund updates the status to **Refunded**.

Unified Financials [#unified-financials]

POS sales appear alongside booking revenue in your financial reports, giving you a complete picture of all business income. Each POS order is tied to a location, so multi-location reports break down POS revenue per site.

Related How-To Guides [#related-how-to-guides]

* [Set Up POS](/how-to/pos/set-up-pos)
* [Register a Terminal](/how-to/pos/register-a-terminal)
* [Create POS Products](/how-to/pos/create-pos-products)
* [Process a POS Order](/how-to/pos/process-a-pos-order)
* [Accept Terminal Payments](/how-to/pos/accept-terminal-payments)
* [Manage POS Orders](/how-to/pos/manage-pos-orders)
