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

# Self-Order & Kiosk

> Enable autonomous card payments in self-service kiosks and unattended point of sale systems with Compago terminals.

The Compago Self-Order & Kiosk plugin extends Odoo's self-service POS functionality by integrating Compago payment terminals for fully autonomous customer transactions. Customers can browse products, place orders, and complete card payments without any staff intervention, making it ideal for self-service kiosks, quick-service restaurants, and unattended retail environments.

## What You Can Do

With the Self-Order & Kiosk plugin, you can:

* **Fully Autonomous Payments**: Customers complete the entire transaction from product selection to payment without staff assistance
* **Card-Present Self-Service**: Accept chip, swipe, and contactless card payments through Compago terminals in kiosk mode
* **Seamless Customer Experience**: Integrated payment flow within the self-order interface
* **Automatic Payment Validation**: Real-time payment status monitoring and order confirmation
* **Timeout Protection**: 90-second inactivity timeout with automatic payment cancellation
* **Unattended Operations**: Perfect for 24/7 kiosks and self-service scenarios

## Difference Between Kiosk and Normal POS

Compago offers two distinct Odoo POS plugins designed for different business scenarios:

| Feature               | **Point of Sale (Normal POS)**                  | **Self-Order & Kiosk**                                      |
| --------------------- | ----------------------------------------------- | ----------------------------------------------------------- |
| **Use Case**          | Staff-operated checkout                         | Customer-operated self-service                              |
| **Interaction**       | Cashier processes the sale                      | Customer completes entire transaction                       |
| **Payment Flow**      | Staff initiates payment on terminal             | Customer initiates and completes payment                    |
| **Supervision**       | Staff present during transaction                | Fully unattended operation                                  |
| **Module Dependency** | `pos_compago`                                   | `pos_compago` + `pos_self_order` + `pos_self_order_compago` |
| **Best For**          | Retail stores, restaurants with counter service | Quick-service restaurants, cafeterias, self-service kiosks  |

<Note>
  Both plugins can coexist in the same Odoo instance. You can configure different POS systems for attended and unattended scenarios using the appropriate plugin for each use case.
</Note>

## Use Cases

This plugin is ideal for:

* Quick-service restaurants with ordering kiosks
* University and corporate cafeterias with self-checkout
* Movie theaters and entertainment venues
* Fast-food chains with unattended ordering stations
* Retail stores with self-service checkout lanes
* 24/7 convenience stores with minimal staffing
* Vending machine-style retail environments

## How It Works

Here's the complete self-service payment flow:

1. **Customer Browses**: Customer uses the self-order interface to browse products
2. **Add to Cart**: Customer selects items and adds them to the cart
3. **Review Order**: Customer reviews the order total and confirms
4. **Select Payment**: Customer chooses **Compago** as the payment method
5. **Payment Intent Created**: System creates a payment intent and activates the terminal
6. **Terminal Ready**: Compago terminal displays the transaction amount
7. **Customer Pays**: Customer presents their card (chip, swipe, or contactless)
8. **Payment Processing**: Terminal processes the payment autonomously
9. **Status Monitoring**: System polls payment status every 3 seconds
10. **Automatic Confirmation**: On success, order is marked as paid and confirmed
11. **Receipt Display**: Customer sees confirmation and can print receipt (if available)

<Tip>
  The system includes a 90-second inactivity timeout. If the customer doesn't complete the payment within this window, the payment intent is automatically cancelled to prevent abandoned transactions.
</Tip>

## Installation

### Prerequisites

Before installing the Self-Order & Kiosk plugin, ensure you have:

* **Point of Sale plugin** (`pos_compago`) already installed and configured
* The **Self-Order** module from Odoo enabled
* An active Compago account with API access
* At least one Compago physical terminal
* Your Odoo instance configured in **MXN currency**

<Warning>
  The Self-Order & Kiosk plugin depends on the **Point of Sale plugin** (`pos_compago`). You must install and configure the standard POS plugin first before proceeding with the Kiosk installation.
</Warning>

### Step 1: Install the Point of Sale Plugin

If you haven't already installed the base Compago POS plugin:

1. Follow the complete installation guide in **[Point of Sale (POS)](/odoo/point-of-sale)**
2. Verify the plugin is activated and configured with your API key
3. Test that terminal payments work in a regular POS session

### Step 2: Enable Self-Order Module in Odoo

The Self-Order & Kiosk plugin extends Odoo's native self-order functionality:

1. Open your Odoo instance
2. Go to **Apps** (enable Developer Mode if needed)
3. Search for **"Self-Order"** or **"pos\_self\_order"**
4. Click **Install** on the **POS Self-Order** module
5. Wait for the installation to complete

<Note>
  The Self-Order module is an official Odoo module available in Odoo 16.0+ for retail and restaurant POS scenarios.
</Note>

### Step 3: Download the Kiosk Plugin

Visit the Odoo App Store and download the Compago Self-Order & Kiosk Integration:

**Download link**: [https://apps.odoo.com/apps/modules/18.0/pos\_self\_order\_compago](https://apps.odoo.com/apps/modules/18.0/pos_self_order_compago)

<Note>
  You must have an **Odoo.sh instance** to install custom apps. Self-hosted or community editions may not support third-party POS integrations.
</Note>

### Step 4: Install the Plugin in Odoo.sh

1. Log in to your **Odoo.sh** dashboard
2. Navigate to your instance
3. Upload and install the `pos_self_order_compago` module
4. Restart your instance if required

### Step 5: Activate the Plugin

Once the module is uploaded to your Odoo.sh instance:

1. Open your Odoo instance
2. Go to **Apps** (you may need to enable Developer Mode)
3. Remove the "Apps" filter to show all modules
4. Search for **"Compago"** or **"Kiosk"** or **"Self Order"**
5. Click **Activate** on the **Compago – Self-Order/Kiosk** module

<Tip>
  If you don't see the module, click **Update Apps List** to refresh the module catalog.
</Tip>

## Configuration

### Step 1: Ensure Prerequisites

Before configuring the kiosk, verify:

* The **Point of Sale** app is installed
* The **Self-Order** module is installed
* The **Compago POS plugin** (`pos_compago`) is active and configured
* Your company is configured in **MXN currency**
* You have at least one bank journal configured in **MXN**
* You have a Compago physical terminal or terminal access

### Step 2: Create or Configure a Self-Order POS

To enable self-order functionality:

1. Navigate to **Point of Sale** → **Configuration** → **Settings**
2. Create a new POS or select an existing one
3. Enable **Self-Order Mode**
4. Select **Kiosk** as the self-order mode (not "Mobile")
5. Ensure the POS is configured to use **MXN currency**
6. **Save** the settings

<Note>
  Odoo offers two self-order modes: **Mobile** (for customer phones) and **Kiosk** (for fixed terminals). The Compago plugin requires **Kiosk** mode for terminal integration.
</Note>

### Step 3: Configure Compago Payment Method

If you haven't already created a Compago payment method during the base POS plugin setup:

1. Navigate to **Point of Sale** → **Configuration** → **Payment Methods**

2. Click **New** to create a new payment method

3. Configure the following fields:

   **Basic Information:**

   * **Name**: Enter a descriptive name (e.g., `Compago Kiosk`, `Self-Service Payment`)

   **Journal:**

   * **Journal**: Select a **Bank** journal from the dropdown
   * Verify the journal is configured in **MXN currency**

   **Integration Type:**

   * **Use a Payment Terminal**: Enable this option
   * **Integrate with**: Select **Compago** from the dropdown

4. **API Key**: Paste your Compago API key

5. **Environment**: Select **Production** (or **Demo** for testing)

6. **Save** the payment method

### Step 4: Add Compago to Your Kiosk POS

1. Navigate to **Point of Sale** → **Configuration** → **Settings**
2. Select your kiosk POS
3. Scroll to the **Payments** section
4. In the **Payment Methods** field, add the Compago payment method
5. **Save** the settings

<Warning>
  Ensure the Compago payment method is added to the correct POS. If you have multiple POS systems (e.g., one for attended checkout and one for kiosk), verify you're configuring the kiosk POS.
</Warning>

### Step 5: Configure Kiosk Display (Optional)

For optimal customer experience:

1. Configure display settings for the self-order interface
2. Set up product images and descriptions for customer-facing display
3. Configure receipt printing (if your kiosk has a customer-facing printer)
4. Test the entire customer flow on the actual kiosk hardware

## Using the Self-Order Kiosk

Once configured, the customer experience is fully autonomous:

### Customer Flow

1. Customer approaches the self-service kiosk
2. Customer browses products and adds items to cart
3. Customer reviews the order and total
4. Customer clicks **Pay** or **Checkout**
5. Customer selects **Compago** as the payment method
6. Compago terminal activates and displays the amount
7. Customer inserts, taps, or swipes their card
8. Terminal processes the payment
9. Customer sees confirmation on screen
10. Order is automatically sent to kitchen/fulfillment (if configured)
11. Customer can print receipt (if printer is available)

### Payment Monitoring

The system automatically monitors payment status:

* **Polling Interval**: Checks payment status every 3 seconds
* **Timeout**: 90 seconds of inactivity triggers automatic cancellation
* **Automatic Confirmation**: Successful payments immediately mark the order as paid
* **Failure Handling**: Failed or expired payments notify the customer and offer retry

All monitoring happens in the background without customer intervention.

## Testing the Integration

To verify the kiosk integration is working:

1. Open the self-order interface (access the kiosk URL or use the kiosk device)
2. Add a test product to the cart
3. Proceed to checkout
4. Select **Compago** as the payment method
5. Verify the terminal activates with the correct amount
6. Use a test card (demo environment) or real card (production environment)
7. Complete the payment on the terminal
8. Confirm the order is automatically marked as paid
9. Verify the order appears in your POS backend

<Warning>
  If testing in production, use a small amount and a real payment method. The transaction will be processed and charged.
</Warning>

## Troubleshooting

### Terminal doesn't activate in kiosk mode

* Verify the base POS plugin is configured correctly and terminal works in attended POS mode
* Ensure your API key is correct and active
* Check that the POS is configured in **Kiosk** mode (not Mobile)
* Verify the terminal is powered on, connected, and linked to your Compago account

### Payment gets stuck in "pending" state

* Check your network connection between Odoo and Compago's API
* Verify the terminal is online and responsive
* Ensure there are no firewall rules blocking API communication
* Check Odoo logs for specific error messages

### Payment times out before customer completes

* The default timeout is 90 seconds for security
* Ensure the terminal is easily accessible and clearly marked
* Provide on-screen instructions to guide customers
* Consider increasing terminal visibility or adding directional signage

### Order not marked as paid after successful payment

* Verify the payment webhook/callback is configured correctly
* Check that the POS session is open and active
* Review Odoo logs for payment confirmation errors
* Ensure the journal and currency settings are correct

### "Currency error" appears

* Ensure your company is configured in MXN
* Verify the selected journal is in MXN currency
* Check that the POS is configured to use MXN
* Ensure all products are priced in MXN

## Payment Security

The Self-Order & Kiosk plugin includes several security features:

* **Payment Intent Isolation**: Each payment creates a unique, single-use payment intent
* **Timeout Protection**: Abandoned payments are automatically cancelled after 90 seconds
* **Status Validation**: Payment status is verified server-side before order confirmation
* **Amount Verification**: Transaction amounts are validated against order totals
* **Cancellation Support**: Customers can cancel in-progress payments

All card data is processed directly by Compago terminals using PCI-compliant infrastructure. No sensitive payment information passes through your Odoo instance.

## Terminal Hardware

The Self-Order & Kiosk integration works with Compago-provided physical payment terminals in self-service configurations:

* **Kiosk-Mounted Terminals**: Terminals integrated into kiosk enclosures
* **Counter-Top Terminals**: Terminals placed on customer-accessible surfaces
* **Payment Totems**: Standalone payment stations for unattended environments

All terminals support:

* **Chip & PIN** (EMV)
* **Contactless** (NFC)
* **Mobile Wallets** (Apple Pay, Google Pay)

Contact Compago to discuss kiosk-specific terminal configurations and hardware recommendations.

## Support

If you encounter issues with the Self-Order & Kiosk plugin:

* Verify the base **[Point of Sale plugin](/odoo/point-of-sale)** is working correctly in attended mode
* Check your API key is valid in the [Compago Dashboard](https://app.compago.com)
* Ensure the POS is configured in **Kiosk** mode
* Verify the terminal is online and accessible to customers
* Review Odoo logs for detailed error messages
* Test the payment flow manually to isolate issues
* Contact Compago support at **[help@compago.com](mailto:help@compago.com)** for assistance with terminal or payment processing issues
