Skip to main content
v2 keeps the same concepts as v1 but modernises authentication, ordering, and the catalog. v1 remains available; migrate when you’re ready.

Key changes

API-key auth

v2 uses a simple x-api-key header instead of bearer-token login/refresh.

Async ordering

Orders return immediately as processing; you poll for codes. No long, blocking requests.

Filtering & pagination

The catalog supports country/language/brand/category/tag filters and skip/take (max 100).

Wallet endpoint

A dedicated GET /v2/wallet returns balances; order responses also embed a wallet snapshot.

Endpoint mapping

v1v2Notes
POST /v1/orders/place-order (sync, returns pins)POST /v2/orders (async)Returns orderId + processing; poll for pins
GET /v1/orders/retrieve-order?id=GET /v2/orders/{reference}By orderId or externalOrderCode; codes only when completed
GET /v1/catalog/productsGET /v2/catalog/productsAdds filters + skip/take (max 100)
GET /v1/catalog/product?sku=&ean=GET /v2/catalog/products/{id}Fetch by product id
(none)GET /v2/walletNew dedicated wallet endpoint

Behavioural differences

The biggest change: ordering is asynchronous. Code that expected pins in the place-order response must now poll GET /v2/orders/{reference} until status is completed. See Order lifecycle.
Product ids are stable catalog ids — keep sending the productId from the catalog, exactly as in v1. Pricing validation is unchanged for fixed products (price must match) and range-checked for open-denomination products.