> ## Documentation Index
> Fetch the complete documentation index at: https://storekit.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Authenticatie

> Hoe een client zich authenticeert bij de storekit merchant MCP: OAuth 2.1 met protected-resource discovery en een storekit dashboard-login.

De merchant MCP authenticeert met OAuth 2.1. Elke toolcall is beperkt tot het account waartoe de token herleidt; niets in de argumenten van een tool kan dat wijzigen.

| | OAuth (aanmelden) |
| - | - |
| Header | `Authorization: Bearer <token>` |
| Identiteit | Een storekit dashboard-gebruiker |
| Account | Het eerste account van de gebruiker |
| Nodig | Een account op de bèta-wachtlijst — [vraag toegang aan](https://t09czsyu90l.typeform.com/to/G6rIJWNv) |

Een niet-geauthenticeerd verzoek krijgt `401` met een `WWW-Authenticate`-header (zie hieronder).

## OAuth

Het endpoint is een OAuth 2.1 protected resource. De autorisatieserver wordt gehost door [Scalekit](https://www.scalekit.com), waarbij het inloggen zelf gedelegeerd wordt aan het storekit-dashboard, zodat een gebruiker inlogt met zijn gewone storekit-credentials.

**1. Discovery**

Een niet-geauthenticeerde `POST /mcp` geeft terug:

```http theme={null}
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="OAuth", resource_metadata="https://mcp.storekit.com/.well-known/oauth-protected-resource"
```

Doe een `GET` op die URL voor de protected-resource metadata:

```json theme={null}
{
  "resource": "https://mcp.storekit.com",
  "authorization_servers": ["https://storekit.eu.scalekit.com/resources/res_143363546435027719"],
  "bearer_methods_supported": ["header"],
  "scopes_supported": ["read"]
}
```

De metadata van de autorisatieserver zelf staat zoals gebruikelijk op zijn `/.well-known/oauth-authorization-server`-pad. Clients registreren zichzelf daarbij; er is geen client-ID of secret om te configureren. Clients die de MCP-autorisatiespec ondersteunen (Claude, ChatGPT, Cursor, VS Code, Claude Code) doen dit allemaal zonder configuratie.

**2. Aanmelden**

De autorisatieserver stuurt de gebruiker door naar het storekit-dashboard, dat **Connecting your MCP client, please wait...** toont terwijl het het loginverzoek bevestigt met de storekit-API, en de gebruiker daarna terugstuurt naar de client. Een gebruiker die niet is ingelogd op het dashboard, logt eerst in. Als de gebruiker bij meerdere accounts hoort, herleidt de token naar hun **eerste** account; er is geen accountkiezer.

**3. Calls**

Stuur het access token als `Authorization: Bearer`. De `sub` van de token is de storekit-gebruiker; de `scope`-claim wordt aan het verzoek gehangen als `scopes` (default `read`). Ververs zoals je OAuth-bibliotheek voorschrijft; een verlopen token krijgt een `401` en de client draait discovery opnieuw.

> [!NOTE]
>
> Rollen van dashboard-gebruikers en per-filiaal-toegang zijn niet van toepassing op MCP. Een token voor een gebruiker die in het dashboard één filiaal kan zien, leest elk filiaal op het account en kan de twee write-tools aanroepen. Kies wie er verbinding maakt met dat in het achterhoofd — zie [Rechten en privacy](/docs/nl/guides/ai/permissions-and-privacy).

## Het endpoint controleren

Een niet-geauthenticeerde call is voldoende om te bevestigen dat de server bereikbaar is en om de discovery-header te zien die een client volgt:

```bash theme={null}
curl -si https://mcp.storekit.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

Verwacht `401 Unauthorized` met de hierboven getoonde `WWW-Authenticate`-header. Vragen over toegang of de bèta: [mcp@storekit.com](mailto:mcp@storekit.com).

## Origin- en Host-checks

Verzoeken met een `Origin`-header worden gecontroleerd tegen de allow-list van browser-origins van storekit wanneer die is geconfigureerd, en met `403` afgewezen vóór authenticatie als ze niet overeenkomen. Verzoeken zonder een `Origin`-header (elke desktopclient, CLI en server) gaan rechtstreeks naar authenticatie. De `Host`-header moet overeenkomen met de publieke hostnaam.

## Rate limit

60 verzoeken per rollende minuut, gekoppeld aan gebruiker (op IP vóór authenticatie). Wie dat overschrijdt, krijgt HTTP `429` met een `Retry-After`-header, buiten de MCP-envelop om.


## Related topics

- [TISSL](/docs/nl/guides/integrations/pos/tissl.md)
- [Zonal (Aztec)](/docs/nl/guides/integrations/pos/zonal.md)
- [Bancontact](/docs/nl/guides/payments/bancontact.md)
- [Beveiligingsbeleid](/docs/nl/privacy-security/security-policy.md)
- [Errors](/docs/nl/developers/mcp/errors.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.