{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-api-reference/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Authentication","siteUrl":"https://docs.solarisgroup.com/","description":"Official technical reference for Solaris Embedded Finance APIs (Banking, Lending, KYC).","keywords":"Banking-as-a-Service, BaaS, Embedded Finance, Solaris, solarisbank, solarisgroup, solaris group, fintech, api reference docs, developer portal","lang":"en-US","llmstxt":{"hide":false,"title":"Solaris Developer Hub","description":"Comprehensive documentation for Solaris Embedded Finance APIs.","sections":[{"title":"Guides and release notes","includeFiles":["guides/**/*.md","release-notes/**/*.md","help/**/*.md"],"excludeFiles":[]},{"title":"API reference","includeFiles":["api-reference/**/*.yaml","api-reference/**/*.md"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"authentication","__idx":0},"children":["Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Solaris uses the OAuth2 framework for authentication. To access the API, you must exchange your credentials for a short-lived ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bearer Access Token"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"1-obtain-an-access-token","__idx":1},"children":["1. Obtain an access token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To generate a token, send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," request to the authentication URL for your environment."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"prerequisites","__idx":2},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Credentials:"]}," You need your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_id"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_secret"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Encoding:"]}," Combine your credentials into a string (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_id:client_secret"]},") and encode it using ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Base64"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Header:"]}," Pass the encoded string in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization"]}," header: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Basic {base64_string}"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"token-endpoints","__idx":3},"children":["Token endpoints"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Environment"},"children":["Environment"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Auth URL"},"children":["Auth URL"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sandbox"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://auth.solaris-sandbox.de/oauth2/token"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://auth.solarisbank.de/oauth2/token"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"request-access-token","__idx":4},"children":["Request access token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["grant_type"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_credentials"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["scope"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["partners"]}," (Required for standard API access)"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","data-title":"Sandbox (cURL)","header":{"title":"Sandbox (cURL)","controls":{"copy":{}}},"source":"curl -X POST \"https://auth.solaris-sandbox.de/oauth2/token\" \\\n  -H \"Authorization: Basic {base64_encoded_credentials}\" \\\n  -H \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=client_credentials\" \\\n  -d \"scope=partners\"\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","data-title":"Production (cURL)","header":{"title":"Production (cURL)","controls":{"copy":{}}},"source":"curl -X POST \"https://auth.solarisbank.de/oauth2/token\" \\\n  -H \"Authorization: Basic {base64_encoded_credentials}\" \\\n  -H \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=client_credentials\" \\\n  -d \"scope=partners\"\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example response:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"access_token\": \"7TosiPbZUa22LTfL3JcyTZvG2C5v...\", \n    \"expires_in\": 3599, \n    \"scope\": \"partners\", \n    \"token_type\": \"bearer\" \n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"2-use-the-access-token","__idx":5},"children":["2. Use the access token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Include the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["access_token"]}," from the previous step in the header of every API request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Header format:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization: Bearer {your_access_token}"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"danger","name":"Security Warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Never pass the access token in the URL query parameters. It must always be sent in the HTTP Header."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"token-expiration","__idx":6},"children":["Token expiration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Access tokens are valid for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1 hour"]}," (3600 seconds)."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you make a request with an expired token, the API returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401 Unauthorized"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your application must handle this error by requesting a new token using the OAuth2 endpoint above."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"legacy-oauth","__idx":7},"children":["Legacy OAuth"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Deprecated"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/oauth/token"]}," endpoint is deprecated. New integrations must use the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth2"]}," endpoints described above."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For existing integrations using the legacy flow:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request URL:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","header":{"controls":{"copy":{}}},"source":"POST /oauth/token?grant_type=client_credentials\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["JSON Auth Example:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"POST https://api.solaris-sandbox.de/oauth/token\nContent-Type: application/json\n\n{\n    \"grant_type\": \"client_credentials\",\n    \"client_id\": \"your_client_id\",\n    \"client_secret\": \"your_client_secret\"\n}\n","lang":"json"},"children":[]}]},"headings":[{"value":"Authentication","id":"authentication","depth":1},{"value":"1. Obtain an access token","id":"1-obtain-an-access-token","depth":2},{"value":"Prerequisites","id":"prerequisites","depth":3},{"value":"Token endpoints","id":"token-endpoints","depth":3},{"value":"Request access token","id":"request-access-token","depth":3},{"value":"2. Use the access token","id":"2-use-the-access-token","depth":2},{"value":"Token expiration","id":"token-expiration","depth":3},{"value":"Legacy OAuth","id":"legacy-oauth","depth":2}],"frontmatter":{"seo":{"title":"Authentication"}},"lastModified":"2025-12-11T10:27:53.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/api-reference/authentication","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}