Skip to content

Getting Started

The Shopwave API is a RESTful commerce platform covering payments, loyalty, point of sale, and promotions. Use it to manage products, process baskets and transactions, run reports, and more — all from your own application.

Base URL

https://api.staging.merchantstack.com

Prerequisites

Before making API calls you need:

  1. A Shopwave partner account — register at developer.merchantstack.com
  2. An OAuth2 application — create one via the Applications API or the partner dashboard to get your identifier (client ID) and secret (client secret)
  3. An access token — obtained through the OAuth2 authorization code flow

Test a request

Once you have an access token (see Authentication), make a request:

bash
curl https://api.staging.merchantstack.com/product \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "x-accept-version: 2.0"
js
const data = await fetch('https://api.staging.merchantstack.com/product', {
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
    'x-accept-version': '2.0'
  }
}).then(r => r.json())

console.log(data.products)

You can also try any endpoint directly from the API Reference — authenticate and send requests right in the browser.

Example response

json
{
  "products": {
    "135592": {
      "id": 135592,
      "name": "Classic Beef Burger",
      "barcode": "4280380013331",
      "details": "Our burgers are handmade just for you",
      "instances": {
        "531661": {
          "id": 531661,
          "price": "1600.0",
          "taxPercentage": "0.200",
          "activeDate": "2023-03-28T13:58:00.000Z"
        }
      }
    }
  },
  "api": {
    "message": {
      "success": {
        "202": {
          "id": 202,
          "code": "tokenValid",
          "statusCode": 200,
          "title": "Token is valid",
          "details": "Token is validated and found valid."
        }
      }
    },
    "codeBaseVersion": "2.0",
    "executionTime_milliSeconds": 29
  }
}

Key conventions

  • Resources are keyed by IDproducts, stores, baskets etc. are objects (maps), not arrays
  • Prices are strings — values are in pence/minor currency units (e.g. "1600.0" = £16.00)
  • API version header — always send x-accept-version: 2.0

What's next