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"
  }
}