API Documentation

Integrate Quicka into your applications with our comprehensive REST API.

OpenAPI Specification
Full API schema in OpenAPI 3.1 format
Authentication
JWT tokens for users, API keys for merchants
Base URL
All API requests use this base URL
https://api.quicka.io
Authentication

JWT Authentication (Users)

For user-facing endpoints, include the JWT token in the Authorization header:

Authorization: Bearer <access_token>

API Key Authentication (Merchants)

For merchant endpoints, include your API key in the X-API-Key header:

X-API-Key: qk_your_api_key_here

Idempotency

For operations that modify data (orders, redemptions), include an idempotency key to prevent duplicate processing:

X-Idempotency-Key: unique-request-id-123

API Endpoints

Authentication
POST/auth/register
POST/auth/login
POST/auth/totp/verify
POST/auth/refresh
POST/auth/logout
GET/auth/me
Account
GET/account/balance
GET/account/ledger
Catalog
GET/catalog/products
GET/catalog/products/{id}
Orders
POST/orders
GET/orders
GET/orders/{id}
POST/orders/{id}/cancel
Gift Cards
POST/giftcards/redeem
Withdrawals
POST/withdrawals
GET/withdrawals
GET/withdrawals/{id}
POST/withdrawals/{id}/cancel
Merchant API
POST/merchant/api-key/generate
DELETE/merchant/api-key
POST/merchant/giftcards/redeem
GET/merchant/balance
GET/merchant/ledger
Example: Create an Order
Purchase gift cards using your wallet balance
curl -X POST https://api.quicka.io/orders \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -H "X-Idempotency-Key: order-$(uuidgen)" \
  -d '{
    "items": [
      {
        "product_option_id": 42,
        "quantity": 1
      }
    ]
  }'

# Response
{
  "id": 123,
  "status": "FULFILLED",
  "total_debit_cents": 2500,
  "created_at": "2026-01-17T10:30:00Z",
  "items": [
    {
      "id": 456,
      "product_code": "STEAM_USD",
      "product_title": "Steam Gift Card",
      "quantity": 1,
      "unit_denom_cents": 2500,
      "unit_price_cents": 2500,
      "status": "FULFILLED",
      "fulfillments": [
        {
          "unit_index": 0,
          "gift_card_number": "XXXX-XXXX-XXXX-XXXX",
          "gift_card_pin": "1234",
          "fulfilled_at": "2026-01-17T10:30:01Z"
        }
      ]
    }
  ]
}

Ready to integrate?

Create an account to get started with the Quicka API.