Auth Specification
This document provides essential information on how to make a successful request using the Auth API. The API enables secure access to our services by requiring authentication credentials. To interact with our APIs, we support OAuth 2.0 client credentials with basic authentication. This ensures secure and controlled access to protected resources. For details on the OAuth 2.0 client credentials flow, refer to the official specification: https://datatracker.ietf.org/doc/html/rfc6749#section-4.4
Additionally, we provide a Postman collection that includes a sample Authorization API call. You can download and import the collection into Postman to quickly set up and test authentication requests.
In the following sections, you will find details on authentication requirements, request structure, and best practices for securely integrating with the Authorization API.
How does it work?
You need an access token to use the API. To obtain an access token you need to call the Auth API. The OAuth 2.0 specifications recommend passing the client_id and client_secret values as an HTTP-Basic Authentication header. Don't have credentials yet? You can request them in the top right of this portal under the button "Get API keys".
Your client_id and client_secret need to be base64 encoded before you can send them in the header.
In pseudo-code:
result = Base64Encode
(concat('ns4fQc14Zg4hKFCNaSzArVuwszX95X
', ':','ZIjFyTsNgQNyxI
'))
In this example, ns4fQc14Zg4hKFCNaSzArVuwszX95X
is the client_id and ZIjFyTsNgQNyxI
is the client_secret.
The result being: bnM0ZlFjMTRaZzRoS0ZDTmFTekFyVnV3c3pYOTVYOlpJakZ5VHNOZ1FOeXhJ==
Request
Request Body
data-urlencode
StringMandatory
Request Curl example
curl --location --request POST '<hostValueWillBeSharedBySurePay>/oauth/client_credential/accesstoken' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic <your basic token>' \
--data-urlencode 'grant_type=client_credentials'
Response
Response Body
On a succesfull request, you will receive an access_token
as well as some other information about your customer profile, your products, when your token was issued and after how many seconds it expires.
At SurePay we do not work with refresh_tokens
and therefore you cannot refresh this token. It is advised to make another API call with basic authentication to fetch a new access_token
when this one expires.
refresh_token_expires_in
StringMandatoryapi_product_list
StringMandatoryapi_product_list_json
Array of StringsMandatoryorganization
StringMandatorydeveloper.email
StringMandatorytoken_type
StringMandatoryissued_at
StringMandatoryclient_id
StringMandatoryaccess_token
StringMandatoryapplication_name
StringMandatoryscope
StringOptionalexpires_in
StringMandatoryrefresh_count
StringMandatorystatus
StringMandatory
Response example
{
{
"refresh_token_expires_in": "0",
"api_product_list": "[Account Check V2 - Banks - Acc]"
"api_product_list_json": [
"Account Check V2 - Banks - Acc"
],
"organization_name": "SurePay",
"developer.email": "service@surepay.nl",
"token_type": "BearerToken",
"issued_at": "1693214579017",
"client_id": "<your client ID>",
"access_token": "<your bearer token>",
"application_name": "8ce4bc06-07c2-4e4e-9dfe-1234567ef7d3",
"scope": "",
"expires_in": "3599",
"refresh_count": "0",
"status": "approved"
}
}