POS API
/
Orders
Create Order
Creates a new POS payment order with a dynamic QR code and/or payment page.
POST
{{base_url}}/orders
Parameters
| Field | Type | Details |
|---|---|---|
amount |
decimal | required — Amount to charge. Must be greater than 0. |
currency |
string | required — ISO 4217 currency code (e.g. EUR, USD). Must match an active wallet. |
payment_method |
string (opt) | qr_only, payment_page, or both (default: both) |
reference |
string (opt) | Your internal order/invoice reference (max 255 chars) |
description |
string (opt) | Order description shown on the payment page (max 500 chars) |
terminal_id |
string (opt) | POS terminal identifier (max 64 chars) |
callback_url |
string (opt) | Webhook URL for order status updates |
expires_in |
integer (opt) | Expiration in seconds (60–3600, default: 300) |
idempotency_key |
string (opt) | Unique key to prevent duplicate orders (max 64 chars) |
Example Request
POST /merchant-api/pos/v1/orders Authorization: Basic {base64_credentials} Content-Type: application/json { "amount": 25.00, "currency": "EUR", "payment_method": "both", "reference": "INV-2024-001", "description": "Table 5 - Lunch", "terminal_id": "terminal-01", "callback_url": "https://example.com/webhook", "expires_in": 300, "idempotency_key": "idem_abc123" }
Success Response 200
{
"message": {
"success": ["POS order created successfully"]
},
"data": {
"order_id": "POS-20240115-A1B2C3",
"amount": "25.00 EUR",
"raw_amount": 25.00,
"currency": "EUR",
"payment_method": "both",
"reference": "INV-2024-001",
"description": "Table 5 - Lunch",
"terminal_id": "terminal-01",
"status": "PENDING",
"qr_data": "quickei://pay?order=POS-20240115-A1B2C3&a=25.00&c=EUR",
"payment_url": "https://quickei.com/pay/pos/POS-20240115-A1B2C3",
"trx_id": null,
"paid_at": null,
"expires_at": "2024-01-15T14:05:00+00:00",
"created_at": "2024-01-15T14:00:00+00:00"
}
}