Storekeeper API
One clean, token-authenticated REST surface over Storekeeper. Read your orders,
catalog, stock, customers, and accounting reports without touching the low-level
Storekeeper protocols.
Open the interactive reference
OpenAPI spec
What is Storekeeper?
Storekeeper is a commerce platform for retail and hospitality: a point of
sale (POS), a webshop, a back office, inventory and stock control, customer management, and
invoicing, all on one account. Shops, bakeries, delis, and multi-location franchises use it
to run day-to-day trading.
Storekeeper runs the entire retail stack for a business. This API is how you read and work
with that account's data from the outside, over plain HTTPS and JSON, on your own schedule.
What is this API?
api.storekeeper.me is the public API of Storekeeper: the
supported, recommended, and only permitted way to connect to a Storekeeper account
programmatically. No other integration method is allowed. It authenticates you once, then
returns flat, predictable JSON. It holds no database of its own: your bearer token
is an encrypted blob of your Storekeeper credentials, so every call acts as you, on
your account.
Your subscription must cover both the number of calls you make and the scope you access.
Staying within those limits keeps your integration supported.
Use cases
Accounting and BI
Financial report, VAT breakdown, payment reconciliation, daily close (Z-report),
and best sellers. Feed into AFAS, Exact, or a dashboard.
Order operations
List and search orders by date, shop, and status. Read a single order with its
addresses and line items.
Catalog and inventory
Search the catalog, read a product, pull price rows, and check per-location stock
for sync or availability checks.
CRM
Search customers, read a customer with contact details, and list customer segments
for marketing or pricing.
Getting started
Every endpoint (except auth and these docs) needs a bearer token. Three steps:
1. Log in
# exchange your Storekeeper login for a 30-minute bearer token
curl -s https://api.storekeeper.me/api/auth/login \
-H 'Content-Type: application/json' \
-d '{"account":"demo","email":"you@example.com","password":"******"}'
# returns { "token": "...", "expires_at": 1750000000, "expires_in": 1800 }
2. Call an endpoint
TOKEN="..." # the token from step 1
curl -s "https://api.storekeeper.me/api/orders?from=2026-07-01&to=2026-07-22&limit=25" \
-H "Authorization: Bearer $TOKEN"
3. Know who you are
curl -s https://api.storekeeper.me/api/me -H "Authorization: Bearer $TOKEN"
# returns account, token expiry, user identity, roles, locked location
Tokens expire after 30 minutes. Call /api/auth/login (or
/api/auth/refresh) again for a fresh one. A 401 with a
hint means it is time to re-authenticate.
Conventions
- Dates are
YYYY-MM-DD in the Europe/Amsterdam timezone. Ranges are inclusive.
- Money is decimal euros.
_wt is incl. VAT (Dutch met). Plain or _ex is excl. VAT.
- Lists return
{count, total, data}. Paginated lists add {start, limit}, so you drive paging (pass start and limit). A truncated flag appears where a hard ceiling was hit.
- Errors are JSON
{error, message, status}: 400 bad input, 401 auth, 404 not found, 502 upstream Storekeeper error.
Resolving ids
Reports return raw Storekeeper ids. Resolve them to names with the reference endpoints:
| id emitted by reports | resolver endpoint |
shop_id | GET /api/shops |
tax_rate_id | GET /api/tax-rates |
product_group_id | GET /api/turnover-groups |
provider_method_type_id | GET /api/payment-methods |
location_id | GET /api/locations |
Endpoint catalog
Auth
POST/api/auth/login
POST/api/auth/refresh
GET/api/me
Orders
GET/api/orders
GET/api/orders/{id}
GET/api/orders/{id}/items
GET/api/discount-orders
Catalog & stock
GET/api/products
GET/api/products/{id}
GET/api/product-prices
GET/api/stock
Customers
GET/api/customers
GET/api/customers/{id}
GET/api/customer-segments
Reports
GET/api/financial-report
GET/api/reports/payments
GET/api/reports/daily-close
GET/api/reports/product-sales
Reference data
GET/api/shops
GET/api/locations
GET/api/tax-rates
GET/api/turnover-groups
GET/api/payment-methods
Try it live in the interactive reference
Storekeeper API
Een strak, token-geverifieerd REST-oppervlak over Storekeeper. Lees je orders,
assortiment, voorraad, klanten en boekhoudrapporten zonder de low-level
Storekeeper-protocollen aan te raken.
Open de interactieve referentie
OpenAPI-spec
Wat is Storekeeper?
Storekeeper is een commerceplatform voor retail en horeca: een kassa
(POS), een webshop, een backoffice, voorraadbeheer, klantbeheer en facturatie, allemaal op
een account. Winkels, bakkerijen, delicatessenzaken en franchises met meerdere locaties
gebruiken het om hun dagelijkse verkoop te draaien.
Storekeeper draait de volledige retailstack voor een onderneming. Deze API is hoe je de data
van dat account van buitenaf leest en bewerkt, via gewone HTTPS en JSON, op je eigen moment.
Wat is deze API?
api.storekeeper.me is de publieke API van Storekeeper: de
ondersteunde, aanbevolen en enige toegestane manier om programmatisch met een
Storekeeper-account te verbinden. Geen enkele andere integratiemethode is toegestaan. Je
verifieert een keer, daarna geeft hij platte, voorspelbare JSON terug. Hij heeft geen eigen
database: je bearer-token is een versleutelde blob van je Storekeeper-inloggegevens,
dus elke aanroep handelt als jou, op jouw account.
Je abonnement moet zowel het aantal aanroepen dat je doet als de scope die je gebruikt
toestaan. Binnen die limieten blijven houdt je integratie ondersteund.
Toepassingen
Boekhouding en BI
Financieel rapport, btw-uitsplitsing, betalingsreconciliatie, dagafsluiting
(Z-rapport) en bestsellers. Koppel aan AFAS, Exact of een dashboard.
Orderbeheer
Orders lijsten en zoeken op datum, winkel en status. Lees een enkele order met
adressen en orderregels.
Assortiment en voorraad
Doorzoek het assortiment, lees een product, haal prijsregels op en controleer
voorraad per locatie voor sync of beschikbaarheid.
CRM
Zoek klanten, lees een klant met contactgegevens en lijst klantsegmenten voor
marketing of prijsstelling.
Aan de slag
Elk endpoint (behalve auth en deze documentatie) heeft een bearer-token nodig. Drie stappen:
1. Inloggen
# wissel je Storekeeper-login in voor een bearer-token van 30 minuten
curl -s https://api.storekeeper.me/api/auth/login \
-H 'Content-Type: application/json' \
-d '{"account":"demo","email":"jij@voorbeeld.nl","password":"******"}'
# geeft { "token": "...", "expires_at": 1750000000, "expires_in": 1800 }
2. Een endpoint aanroepen
TOKEN="..." # het token uit stap 1
curl -s "https://api.storekeeper.me/api/orders?from=2026-07-01&to=2026-07-22&limit=25" \
-H "Authorization: Bearer $TOKEN"
3. Weten wie je bent
curl -s https://api.storekeeper.me/api/me -H "Authorization: Bearer $TOKEN"
# geeft account, tokenvervaltijd, gebruikersidentiteit, rollen, vaste locatie
Tokens verlopen na 30 minuten. Roep /api/auth/login (of
/api/auth/refresh) opnieuw aan voor een verse. Een 401 met een
hint betekent dat je opnieuw moet inloggen.
Conventies
- Datums zijn
JJJJ-MM-DD in de tijdzone Europe/Amsterdam. Bereiken zijn inclusief.
- Bedragen zijn decimale euro's.
_wt is incl. btw (met). Zonder of _ex is excl. btw.
- Lijsten geven
{count, total, data} terug. Gepagineerde lijsten voegen {start, limit} toe, dus jij bepaalt de paginering (geef start en limit mee). Een truncated-vlag verschijnt waar een harde limiet is bereikt.
- Fouten zijn JSON
{error, message, status}: 400 foute invoer, 401 auth, 404 niet gevonden, 502 fout bij Storekeeper.
Ids vertalen
Rapporten geven ruwe Storekeeper-ids terug. Vertaal ze naar namen met de referentie-endpoints:
| id uit rapporten | referentie-endpoint |
shop_id | GET /api/shops |
tax_rate_id | GET /api/tax-rates |
product_group_id | GET /api/turnover-groups |
provider_method_type_id | GET /api/payment-methods |
location_id | GET /api/locations |
Endpoint-overzicht
Auth
POST/api/auth/login
POST/api/auth/refresh
GET/api/me
Orders
GET/api/orders
GET/api/orders/{id}
GET/api/orders/{id}/items
GET/api/discount-orders
Catalog & stock
GET/api/products
GET/api/products/{id}
GET/api/product-prices
GET/api/stock
Customers
GET/api/customers
GET/api/customers/{id}
GET/api/customer-segments
Reports
GET/api/financial-report
GET/api/reports/payments
GET/api/reports/daily-close
GET/api/reports/product-sales
Reference data
GET/api/shops
GET/api/locations
GET/api/tax-rates
GET/api/turnover-groups
GET/api/payment-methods
Probeer het live in de interactieve referentie