Skip to main content
The Issuer API uses OAuth 2.0 client credentials. OpenCard delivers a client_id, client_secret, issuer {slug}, and scope list when your integration starts.

Get an access token

Replace {base_url} with https://sandbox-api.opencard.io or https://api.opencard.io. Replace {slug} in scope names with your assigned slug. Response 200:
Tokens expire — cache until shortly before expires_in and refresh with a new token request.

Call the API

Always send Accept: application/json. Without it, auth failures may return an HTML login page instead of a JSON error body.

Scopes

OpenCard assigns scopes per issuer slug. Typical boilerplate scopes: Your exact scope string is provided at onboarding. Request only the scopes you need in the token call — space-separated.
Sandbox and production use separate credentials. Never point production traffic at sandbox URLs or vice versa.