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

# Business Modes

> Choose whether a linked device runs a paid session, dispenses items, or takes an amount as a QRIS payment terminal

Business mode decides how a linked device delivers what the customer paid for. Each linked device uses one mode: **Service**, **Vending**, or **Terminal**.

Business mode is different from prepaid and postpaid. Prepaid and postpaid describe *when* the customer pays. Business mode describes *what happens* after the order is confirmed.

## Service, Vending, or Terminal

| | Service | Vending | Terminal |
| - | - | - | - |
| What the customer buys | Time-bound or usage-bound use of the device | One or more physical items | A payment for an amount the merchant enters on the device |
| What happens after payment | A session starts on the device | The device dispenses the paid units | The device confirms the payment and is ready for the next transaction |
| Items per order | One item per order | Multiple items in one cart | No catalog items, one amount per transaction |
| Payment type | Prepaid or postpaid | Prepaid only | Paid upfront with QRIS |
| Per-device inventory | Not used | Vending Stock per device | Not used |
| Session tracking | Yes, with start, end, and duration | No, the order completes at dispense | No, the transaction completes at payment |
| Public page | Store page with single-item checkout | Store page with a cart | Not available |
| Kiosk mode | Not available | Available on supported devices | Not available |
| Examples | Laundry, massage chair, EV charging, locker storage | Snack machine, drink dispenser, capsule vendor | Counter payment device, cashier QRIS display, pay-at-device stand |

> **[Service Mode](https://firmngin.dev/docs/device-billing/service-mode.md)**
>
> Session-based use of the device after payment.

> **[Vending Mode](https://firmngin.dev/docs/device-billing/vending-mode.md)**
>
> Instant dispense after payment, with a multi-item cart and per-device stock.

> **[Terminal Mode](https://firmngin.dev/docs/device-billing/terminal-mode.md)**
>
> Enter an amount on the device and let the customer pay by scanning a QRIS code, with no catalog or session.

## Set the business mode

1. Open **Device Billing** in the dashboard and select your merchant.
2. Go to **Linked Devices**.
3. Open the setup drawer for the device you want to configure.
4. Find the **Business Mode** card.
5. Choose **Service**, **Vending**, or **Terminal**.

The dashboard confirms the change after it is saved.

\[image:linked device setup drawer showing the Business Mode card with Service, Vending, and Terminal options]

> [!NOTE]
>
> Business mode is set per linked device, not per merchant. One merchant can have service, vending, and terminal devices at the same time.

## What changes when you switch

Switching business mode changes the dashboard setup and the customer experience.

| Area | Service | Vending | Terminal |
| - | - | - | - |
| Device drawer menu | Overview, Sessions, Map Entity, Flow | Adds **Vending Stock** | Overview and **Transactions** only |
| Public page | Single-item checkout | Cart with quantity per item | Store page is disabled |
| Catalog items used | Prepaid and postpaid items | Prepaid items only | None |
| After payment | Session controls on the order page | Dispense and receipt | Device returns to idle for the next amount |

Switching a device to **Service** or **Terminal** also turns **Kiosk mode** off, because kiosk is a vending-only option.

Switching a device to **Terminal** disables its public store page. Visitors who open the page see that the store page is disabled, and orders cannot be placed from it. Map Entity, Flow, and verification settings are hidden while the device is in Terminal mode.

Switching a device out of **Terminal** cancels any pending Terminal transaction on that device first, so its QR code can no longer be paid and the device clears it. If a customer already paid the transaction, or the cancellation cannot be confirmed yet, the switch is refused and the device stays in Terminal mode. Let the paid transaction settle, or try again in a moment. See [Terminal Mode](https://firmngin.dev/docs/device-billing/terminal-mode.md#switching-modes).

## Choose the right mode

Choose **Service** when the customer pays to use the device for a period of time or for measured usage, and the order should stay open until the session ends.

Choose **Vending** when the customer pays for physical units and the order is complete as soon as the device dispenses them.

Choose **Terminal** when the amount changes from one customer to the next, and you want to collect it as a QRIS payment on the device instead of selling catalog items.

```mermaid actions={false} theme={null}
sequenceDiagram
    participant Merchant
    participant Firmngin
    participant Device
    Merchant->>Firmngin: Choose a business mode for the linked device
    alt Service mode
        Merchant->>Firmngin: Add prepaid or postpaid service items
        Firmngin->>Device: Apply session-based order behavior
    else Vending mode
        Merchant->>Firmngin: Add prepaid vending items
        Merchant->>Firmngin: Set stock for this device
        opt Kiosk mode on a supported device
            Merchant->>Firmngin: Enable Kiosk mode
            Firmngin->>Device: Use on-device QRIS checkout
        end
        Firmngin->>Device: Apply dispense-based order behavior
    else Terminal mode
        Merchant->>Device: Enter the amount
        Device->>Firmngin: Request a QRIS code for the amount
        Firmngin->>Device: Return the QRIS code
        Firmngin->>Device: Confirm the payment and return to idle
    end
```

> [!WARNING]
>
> Review your catalog after switching modes. Postpaid and usage-based items cannot be sold from a vending device, so they stay unavailable on that device's public page. A terminal device does not sell catalog items at all.

## Checklist

Before opening the device to customers:

* The device uses the intended business mode.
* Catalog items match the mode's supported payment types.
* Vending devices have stock reviewed for every item sold on that device.
* Flow settings, verification, and stop behavior are tested in the selected mode.
* The public page has been reviewed end to end.
* Terminal devices have been tested with a paid transaction and a cancelled transaction, using **Simulate payment** on a test/debug merchant.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.