Basis-URLs
| Umgebung | Basis-URL |
|---|---|
| Produktion | https://coreapi.io |
| Sandbox | https://preview.coreapi.io |
/api, zum Beispiel https://coreapi.io/api/plans.
Einrichtung: API-Token
Setup-Endpunkte (alles unter/api/plans) authentifizierst du mit einem API-Token deiner Organisation. Das Token ist fest an genau eine Organisation gebunden, du brauchst also keinen zusätzlichen Organisations-Header.
Token erstellen
Lege ein API-Token in den Entwickler-Einstellungen an. Eine ausführliche Anleitung findest du unter Authentication.
Kundenbereich: Kunden-Token
Die drei Wechsel-Endpunkte unter/api/customer/... laufen im Kontext eines angemeldeten Kunden. Sie erwarten ein Kunden-Token (Bearer) mit der Berechtigung customer:plan:switch.
Serverseitig erzeugst du ein solches Token mit deinem API-Token (Berechtigung customer:authenticate):
accessToken schickst du dann als Bearer-Token an die Kundenbereich-Endpunkte:
Im Namen eines Kunden handeln (X-On-Behalf-Of)
Für Server-zu-Server-Integrationen musst du nicht für jeden Kunden ein eigenes Token erzeugen. Du verwendest deinen API-Token und legst über den HeaderX-On-Behalf-Of fest, in wessen Namen die Anfrage läuft:
customer:plan:switch. Voraussetzungen:
- Dein API-Token braucht die Berechtigung
customer:authenticate. - Der Kunde muss zu deiner Organisation gehören, sonst antwortet die API mit
404. - Während der Impersonation gelten ausschließlich die Kunden-Berechtigungen, nicht die Admin-Rechte deines Tokens. Reine Admin-Endpunkte sind in einer solchen Anfrage also nicht erreichbar.
Ein Tarifwechsel ist bewusst nur im Kundenbereich möglich, nicht in der Wallet. So entscheidet immer der Kunde selbst über seinen Auf- oder Abstieg.
Berechtigungen
| Berechtigung | Wofür |
|---|---|
plan:read | Pläne und Checkout-Links lesen |
plan:write | Pläne anlegen, ändern, aktivieren, löschen und Checkout-Links erstellen |
customer:plan:switch | Tarifoptionen abrufen, Wechsel-Vorschau und Wechsel (mit Kunden-Token) |
customer:authenticate | Kunden-Token erzeugen über POST /customers/{id}/authenticate (Admin) |
401 (nicht authentifiziert) oder 403 (authentifiziert, aber nicht berechtigt).