> ## Documentation Index
> Fetch the complete documentation index at: https://sailia-mintlify-5b02008a.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Point of sale

> Sell products, process walk-in bookings, and manage in-person transactions.

The Sailia point of sale (POS) lets you handle in-person transactions — from walk-in activity bookings to shop product sales. It runs in your browser and gives staff a fast way to add items, apply discounts, and take payment on the spot.

## What you can do in the POS

| Action                   | Description                                                                                                           |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| **Book activities**      | Create walk-in bookings for courses, hires, and events                                                                |
| **Sell shop products**   | Add physical or digital products to a basket                                                                          |
| **Apply discount codes** | Enter promotional codes or let auto-apply discounts take effect                                                       |
| **Set custom prices**    | Override the default price on products with [custom pricing](/point-of-sale/custom-pricing) enabled                   |
| **Redeem gift cards**    | Accept [gift card](/pricing/gift-cards) payments                                                                      |
| **Process payments**     | Take card payments through a [card reader](/point-of-sale/card-readers), record cash, or send a payment link by email |

## POS terminals

A POS terminal is a virtual workstation that your staff use to process sales. Each terminal can be assigned to a specific location and linked to a physical card reader.

* The first terminal is created automatically — additional terminals require the **Manage POS** permission.
* You can activate or deactivate terminals without deleting them.
* Each terminal has its own grid layout, so you can customise the product tiles shown to staff at different locations.

To connect a physical Stripe card reader to your terminal, see the [card readers](/point-of-sale/card-readers) guide.

## Processing a sale

<Steps>
  <Step title="Add items to the basket">
    Tap activities or shop products to add them to the current basket. For items with [custom pricing](/point-of-sale/custom-pricing), a keypad appears to enter the price.
  </Step>

  <Step title="Apply discounts (optional)">
    Enter a discount code or let auto-apply discounts take effect. You can also apply [membership discounts](/pricing/discount-codes#membership-discounts) if the customer is a member.
  </Step>

  <Step title="Select a customer">
    For items that require a customer account — such as activities, memberships, and activity passes — the POS prompts you to select a customer before adding the item. Enter the customer's email to search for an existing account. If no match is found, you can create a new account directly from the prompt. For shop products and other items that don't require an account, you can continue as a walk-in.
  </Step>

  <Step title="Take payment">
    Choose a payment method — card, cash, invoice, or other. See [payment methods](#payment-methods) below.
  </Step>
</Steps>

## Pending baskets

When the POS has no active order, it displays a list of recent pending baskets for the current terminal. This helps staff quickly resume an in-progress sale instead of starting a new one.

Each card shows the customer name (or "Walk-in customer" if no account is linked), the basket total, and when it was last updated. Select a card to load that basket into the POS and continue where it left off.

<Note>
  Only baskets that still contain items and have not expired are shown. Up to ten recent pending baskets appear at a time.
</Note>

### Open a pending basket from its receipt

You can also resume a pending basket directly from the [bookings dashboard](/activities/managing-bookings#bookings-dashboard). Open the order receipt for the basket and select **View in POS** to load it into the point of sale.

The **View in POS** button only appears on receipts for baskets in a **Pending** state, and is available to staff with the **Operator Booking** permission. Once a basket has been paid or otherwise completed, the button is no longer shown.

## Customer selection

When you add an item that requires a customer account, the POS opens a customer selection prompt. This uses an email-first flow to quickly find or create the right account.

### Find an existing customer

Type the customer's email address or name into the search field. Matching accounts appear as you type, showing the account email and the primary account holder's name.

If a search matches someone in a family — for example, a child's name — the result still shows the main account, with a label like **Tom Owen + 4 more** indicating how many other people are on that account. Select the row to link the family account to the order; you can choose the specific family member after the account is selected.

<Note>
  Family members no longer appear as separate rows in the search results. This keeps the list focused on accounts and avoids confusion when adding a participant who is not yet part of any family.
</Note>

### Create a new account

If no account matches the email, select the option to create a new one. The email you entered is carried over automatically. Fill in the remaining fields — phone number, full name, and optionally a date of birth — then save. The new account is linked to the order immediately.

### Walk-in sales

For items that don't require a customer account — such as shop products — a **Continue as walk-in** option appears at the bottom of the prompt. Walk-in sales are not linked to any customer account.

<Note>
  Activities, memberships, and activity passes always require a customer account. The walk-in option is only available for items like shop products and one-off payments.
</Note>

## Payment methods

The POS supports four payment methods. The method you choose determines how the transaction is recorded and settled.

| Method      | How it works                                                                                                                                                            |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Card**    | Charges the customer through a connected Stripe [card reader](/point-of-sale/card-readers). The payment is processed in real time and appears in your Stripe dashboard. |
| **Cash**    | Records the sale as a cash payment. Requires an open [till shift](#till-shifts).                                                                                        |
| **Invoice** | Generates an invoice for the customer. The basket stays pending until the invoice is paid. You can set a due date (defaults to 30 days) and add a payment reference.    |
| **Other**   | Records the payment as received through an external method. The basket is completed immediately. Use this for bank transfers or any method not listed above.            |

You can also email a payment link to the customer directly from the POS. The customer receives a link to complete the payment online.

## Till shifts

A till shift tracks cash transactions for a POS terminal during a period of time — typically a single day or staff shift. Opening a shift is required before you can accept cash payments.

### Open a shift

<Steps>
  <Step title="Select a terminal">
    Choose the POS terminal you are working on.
  </Step>

  <Step title="Enter the opening cash amount">
    Count the cash in the drawer and enter the amount. This becomes your starting balance.
  </Step>

  <Step title="Add a note (optional)">
    Record any details about the shift — for example, the staff member opening the till.
  </Step>
</Steps>

Only one shift can be open per terminal at a time. If a shift is already open, you must close it before starting a new one.

### Close a shift

When you close a shift, count the cash in the drawer and enter the amount. Sailia calculates the expected cash total based on the opening amount plus all cash received and refunded during the shift.

If the closing amount does not match the expected amount, the difference is flagged as a variance — useful for identifying discrepancies.

### Shift statistics

While a shift is open, you can view:

* **Cash received** — total cash taken during the shift
* **Cash refunded** — total cash refunds issued
* **Expected cash** — opening amount plus net cash transactions
* **Transaction count** — number of transactions in the shift

After closing, you can view a full list of balance transactions for the shift, including the transaction type, amount, fees, and net total.

## Cash payments

Cash payments are recorded separately from card payments. When you record a cash sale:

* The order is marked as paid with a **cash** payment method
* The payout appears in your finances under cash payouts
* If [accounting sync](/integrations/accounting-sync) is enabled, cash payouts are sent to the **Sailia Cash Clearing Account** in Xero

## POS and inventory

The POS shares real-time data with your online booking page. When you sell an activity session through the POS, available spots decrease immediately for online customers too. This prevents double-booking across sales channels.

<Warning>
  Capacity limits apply to POS sales the same way they do to online bookings. You cannot add a customer to a fully booked session through the POS.
</Warning>

## POS grid layout

The POS uses a tile grid to give staff quick access to products, activities, memberships, activity passes, gift cards, and discount codes. You can organise tiles into folders and customise how each tile appears.

### Tile types

| Type              | Description                                                                                          |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| **Shop product**  | Links to a specific shop product                                                                     |
| **Activity**      | Links to an activity or session                                                                      |
| **Membership**    | Links to a membership                                                                                |
| **Activity pass** | Links to an activity pass                                                                            |
| **Gift card**     | Adds a gift card to the basket                                                                       |
| **Discount code** | Applies a specific discount code                                                                     |
| **Folder**        | Groups related tiles together                                                                        |
| **Category**      | Shortcut to a product category (Activities, Shop items, Memberships, Activity passes, or Gift cards) |

### Live product names

Tile names update automatically when you rename the underlying product, activity, membership, or activity pass. You don't need to edit POS tiles after renaming an item elsewhere in Sailia.

### Custom tile titles

You can set a custom title on any tile to override the default product name. Custom titles are useful when the full product name is too long for the grid or when you want a shorter label for quick scanning.

* Custom titles have a maximum length of 20 characters.
* If no custom title is set, the tile shows the current name of the linked item.
* Long titles are truncated on the tile. Hover the tile to see the full title.
* Folders and category tiles also use custom titles for their display name.

### Tile meta captions

Each tile shows a short caption in the bottom-left corner that gives staff at-a-glance context without opening the item. The caption depends on the tile type:

| Tile type                           | Caption shown                                                                                                                                   |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Shop product** (no variants)      | Default price                                                                                                                                   |
| **Shop product** (with variants)    | Number of variants — for example, `3 variants`                                                                                                  |
| **Activity**                        | Ticket price range — for example, `£5.00 – £12.00`. Shows a single price when all tickets are the same price. Upsell-only tickets are excluded. |
| **Membership** or **Activity pass** | Default price                                                                                                                                   |
| **Gift card**                       | Default price                                                                                                                                   |
| **Discount code**                   | Discount amount — `10%` for percentage codes, or the fixed amount for fixed-value codes                                                         |
| **Folder**                          | Folder icon                                                                                                                                     |
| **Category**                        | `Category` label                                                                                                                                |

Captions update automatically when prices, variants, or discount values change on the underlying item — you don't need to edit POS tiles after pricing changes elsewhere in Sailia.

### Folders

Group related tiles into folders to keep the grid organised. When you delete a folder, all tiles inside it are removed at the same time.

### Duplicate a layout

If you manage multiple POS terminals, you can copy the grid layout from one terminal to another. This replaces all tiles on the target terminal with a copy of the source terminal's layout, including folder structure.

Duplicating a layout requires the **Manage POS** permission.

## Permissions

Any staff member with POS access can process sales. To configure which staff can access the POS, manage their permissions in the [staff settings](/staff/management).

The **Manage POS** permission is required to:

* Create additional POS terminals
* Duplicate grid layouts between terminals

## Related guides

<Columns cols={2}>
  <Card title="Card readers" icon="credit-card" href="/point-of-sale/card-readers">
    Set up a Stripe card reader for in-person payments.
  </Card>

  <Card title="Custom pricing" icon="calculator" href="/point-of-sale/custom-pricing">
    Override product prices at the point of sale.
  </Card>

  <Card title="Shop products" icon="bag-shopping" href="/point-of-sale/shop-products">
    Set up products to sell through the POS and online.
  </Card>

  <Card title="Payments and Stripe" icon="stripe" href="/payments/stripe">
    Connect Stripe and manage payouts.
  </Card>
</Columns>
