> ## 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.

# Payment Page

> Hosted payment page for POS orders

Redirect customers to a Quickei-hosted payment page for POS orders.

## How the Payment Page Works

1. Create an order with `payment_method` set to `payment_page` or `both`.
2. The API returns a `payment_url` — redirect your customer or embed it in an iframe.
3. The customer pays using their preferred Quickei wallet method.
4. Your `callback_url` receives a webhook and the page shows a success confirmation.

## Payment Page URL

```
https://quickei.io/pay/pos/{order_id}
```

## Payment Methods

| Value          | Behavior                                                                    |
| -------------- | --------------------------------------------------------------------------- |
| `qr_only`      | Only QR code data is returned — no hosted page. Use for app-to-app payment. |
| `payment_page` | Only the hosted payment page URL is returned — no QR code data.             |
| `both`         | Both QR code data and payment page URL are returned (default).              |

## Status Polling

`GET https://quickei.io/pay/pos/{order_id}/status`

The payment page automatically polls this endpoint to update the UI in real time.

## Integration Example

```php theme={null}
// 1. Create order
$response = Http::withBasicAuth(
    $clientId, $clientSecret
)->post('https://quickei.io/merchant-api/pos/v1/orders', [
    'amount'         => 25.00,
    'currency'       => 'EUR',
    'payment_method' => 'payment_page',
    'reference'      => 'ORDER-123',
    'callback_url'   => 'https://yoursite.com/webhook',
]);

$paymentUrl = $response['data']['payment_url'];

// 2. Redirect customer
return redirect($paymentUrl);
```

## Payment Page Features

* **Real-time Updates** — The page automatically detects payment and shows confirmation.
* **Mobile Responsive** — Optimized for all screen sizes with QR code display.
* **Countdown Timer** — Shows the remaining time before the order expires.
