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

# POS API Overview

> Accept in-store payments with QR codes and payment pages

Accept in-store payments with dynamic QR codes and hosted payment pages.

## What is the POS API?

The POS API lets you create payment orders from any point-of-sale system — physical terminals, kiosks, mobile apps, or ERP integrations like Odoo. Each order generates a dynamic QR code and/or a hosted payment page.

<CardGroup cols={3}>
  <Card title="QR Payments" icon="qrcode" color="#095367">
    Generate dynamic QR codes that customers scan with the Quickei app to pay instantly.
  </Card>

  <Card title="Payment Pages" icon="browser" color="#0891b2">
    Redirect customers to a hosted payment page — no frontend development needed.
  </Card>

  <Card title="Real-time Webhooks" icon="bolt" color="#095367">
    Get instant notifications when payments are completed, expired, or refunded.
  </Card>
</CardGroup>

## Base URL

```
https://quickei.io/merchant-api/pos/v1
```

## Authentication

The POS API uses **HTTP Basic Authentication**.

```bash theme={null}
# Encode client_id:client_secret as base64
Authorization: Basic base64(client_id:client_secret)

# Example
curl -X POST https://quickei.io/merchant-api/pos/v1/orders \
  -H "Authorization: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=" \
  -H "Content-Type: application/json"
```

<Tip>
  Find your `client_id` and `client_secret` in the [Merchant Dashboard](https://quickei.io/merchant/login) under **Developer API > API Keys**.
</Tip>

## Rate Limiting

The POS API allows **60 requests per minute**. If exceeded, you'll receive a `429 Too Many Requests` response.

## Order Lifecycle

<Steps>
  <Step title="PENDING">
    Order created, awaiting customer payment. A QR code and/or payment page is generated.
  </Step>

  <Step title="PAID">
    Customer completed payment. You receive a `pos.order.paid` webhook.
  </Step>

  <Step title="EXPIRED / CANCELLED">
    Order expired (timeout) or was cancelled by the merchant via API.
  </Step>

  <Step title="REFUNDED">
    Payment refunded to the customer (may require admin approval).
  </Step>
</Steps>

## Available Endpoints

| Method | Endpoint                                                | Description            |
| ------ | ------------------------------------------------------- | ---------------------- |
| `POST` | [`/orders`](/pos-api/02-create-order)                   | Create a new POS order |
| `GET`  | [`/orders`](/pos-api/03-list-orders)                    | List recent orders     |
| `GET`  | [`/orders/{order_id}`](/pos-api/04-get-order)           | Get order details      |
| `POST` | [`/orders/{order_id}/cancel`](/pos-api/05-cancel-order) | Cancel a pending order |
| `GET`  | [`/terminals`](/pos-api/06-terminals)                   | List your terminals    |
