Triodos Bank UK Token Endpoint API
The Token Endpoint provides and revokes access tokens and refresh tokens.
The Token Endpoint provides and revokes access tokens and refresh tokens.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/triodos-bank-uk-token-endpoint-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Triodos Auth service Token Endpoint API
description: Triodos Auth service
termsOfService: https://www.triodos.com
contact:
name: Triodos Support
url: https://www.triodos.com
email: info@triodos.com
license:
name: Creative Commons Attribution 4.0 International Public License
url: https://creativecommons.org/licenses/by/4.0/
version: '1.0'
servers:
- url: https://xs2a-sandbox.triodos.com/auth
description: Triodos Auth Sandbox
tags:
- name: Token Endpoint
description: The Token Endpoint provides and revokes access tokens and refresh tokens.
externalDocs:
description: OpenID Connect Core 1.0 - Chapter 3.1.3 Token Endpoint
url: https://openid.net/specs/openid-connect-core-1_0.html
paths:
/{tenant}/v1/token:
post:
tags:
- Token Endpoint
summary: Get token
description: To obtain an Access Token and a Refresh Token, the RP (Client) sends a Token Request to the Token Endpoint to obtain a Token Response, as described in Section 3.2 of OAuth 2.0.
operationId: token
parameters:
- name: Authorization
in: header
description: Client secret basic authentication.
required: true
schema:
type: string
- name: tenant
in: path
description: Branch of the request.
required: true
schema:
type: string
enum:
- uk
- nl
- be_fr
- be_nl
requestBody:
content:
'*/*':
schema:
required:
- grant_type
type: object
properties:
redirect_uri:
type: string
description: Must be identical to the "redirect_uri" parameter that was included in the authorization request. Not needed when requesting a refresh token.
code:
type: string
description: The authorization code received from the authorization server. Not needed when requesting a refresh token.
refresh_token:
type: string
description: The refresh token received from the authorization server. Not needed when using an authorization code.
grant_type:
type: string
description: Specify "authorization_code" when an authorization code is provided or "refresh_token" when a refresh token is provided.
enum:
- IMPLICIT
- AUTHORIZATION_CODE
- REFRESH_TOKEN
- PASSWORD
- CLIENT_CREDENTIALS
- JWT_BEARER
code_verifier:
type: string
description: Client provided code verifier for additional challenge-response verification, see RFC7636 for more information. Not needed when requesting a refresh token.
responses:
'200':
description: After receiving and validating a valid and authorized Token Request from the Client, the Authorization Server returns a successful response that includes an ID Token, an Access Token and a Refresh Token.
content:
application/json:
schema:
$ref: '#/components/schemas/OIDCClientInformation'
'400':
description: unsupported_grant_type, invalid_request, invalid_grant or unauthorized_client
/{tenant}/v1/token/revoke:
post:
tags:
- Token Endpoint
summary: Revoke token
description: The client requests the revocation of a particular token by making an HTTP POST request to the token revocation endpoint URL. See RFC7009 for more information.
operationId: tokenRevocation
parameters:
- name: Authorization
in: header
description: Client secret basic authentication.
required: true
schema:
type: string
- name: tenant
in: path
description: Branch of the request.
required: true
schema:
type: string
enum:
- uk
- nl
- be_fr
- be_nl
requestBody:
content:
'*/*':
schema:
required:
- token
type: object
properties:
token:
type: string
description: The token that the client wants to get revoked.
token_type_hint:
type: string
description: A hint about the type of the token submitted for revocation.
responses:
'200':
description: If the request is technically correct, regardless of the token was actually found or revoked.
content:
application/json:
schema:
$ref: '#/components/schemas/OIDCClientInformation'
'400':
description: unauthorized_client
'401':
description: access_denied
components:
schemas:
Secret:
type: object
properties:
value:
type: string
expirationDate:
type: string
format: date-time
sha256:
type: string
format: byte
valueBytes:
type: string
format: byte
SoftwareID:
type: object
properties:
value:
type: string
TokenTypeURI:
type: object
properties:
uri:
type: string
format: uri
HashAlgorithm:
type: object
properties:
value:
type: string
ClientRegistrationType:
type: object
properties:
value:
type: string
JWEAlgorithm:
type: object
properties:
name:
type: string
requirement:
type: string
enum:
- REQUIRED
- RECOMMENDED
- OPTIONAL
KeyType:
type: object
properties:
value:
type: string
requirement:
type: string
enum:
- REQUIRED
- RECOMMENDED
- OPTIONAL
AuthorizationDetail:
type: object
properties:
identifier:
$ref: '#/components/schemas/Identifier'
actions:
type: array
items:
$ref: '#/components/schemas/Action'
type:
$ref: '#/components/schemas/AuthorizationType'
locations:
type: array
items:
$ref: '#/components/schemas/Location'
dataTypes:
type: array
items:
$ref: '#/components/schemas/DataType'
privileges:
type: array
items:
$ref: '#/components/schemas/Privilege'
ClientID:
type: object
properties:
value:
type: string
Identifier:
type: object
properties:
value:
type: string
ClientAuthenticationMethod:
type: object
properties:
value:
type: string
Action:
type: object
properties:
value:
type: string
JWTClaimsSet:
type: object
properties:
claims:
type: object
additionalProperties:
type: object
expirationTime:
type: string
format: date-time
issuer:
type: string
subject:
type: string
audience:
type: array
items:
type: string
notBeforeTime:
type: string
format: date-time
issueTime:
type: string
format: date-time
jwtid:
type: string
Location:
type: object
properties:
value:
type: string
uri:
type: string
format: uri
Value:
type: object
properties:
value:
type: string
JWSHeader:
type: object
properties:
customParams:
type: object
additionalProperties:
type: object
parsedBase64URL:
$ref: '#/components/schemas/Base64URL'
jwk:
$ref: '#/components/schemas/JWK'
algorithm:
$ref: '#/components/schemas/JWSAlgorithm'
base64URLEncodePayload:
type: boolean
includedParams:
uniqueItems: true
type: array
items:
type: string
keyID:
type: string
jwkurl:
type: string
format: uri
x509CertURL:
type: string
format: uri
x509CertThumbprint:
$ref: '#/components/schemas/Base64URL'
x509CertSHA256Thumbprint:
$ref: '#/components/schemas/Base64URL'
x509CertChain:
type: array
items:
$ref: '#/components/schemas/Base64'
type:
$ref: '#/components/schemas/JOSEObjectType'
contentType:
type: string
criticalParams:
uniqueItems: true
type: array
items:
type: string
GrantType:
type: object
properties:
value:
type: string
shortName:
type: string
scopeRequirementInTokenRequest:
type: string
enum:
- REQUIRED
- OPTIONAL
- NOT_ALLOWED
requestParameterNames:
uniqueItems: true
type: array
items:
type: string
JOSEObjectType:
type: object
properties:
type:
type: string
Base64URL:
type: object
OIDCClientInformation:
type: object
properties:
id:
$ref: '#/components/schemas/ClientID'
metadata:
$ref: '#/components/schemas/ClientMetadata'
secret:
$ref: '#/components/schemas/Secret'
registrationURI:
type: string
format: uri
oidcmetadata:
$ref: '#/components/schemas/OIDCClientMetadata'
registrationAccessToken:
$ref: '#/components/schemas/BearerAccessToken'
idissueDate:
type: string
format: date-time
ClientMetadata:
type: object
properties:
scope:
type: array
properties:
first:
$ref: '#/components/schemas/Value'
last:
$ref: '#/components/schemas/Value'
empty:
type: boolean
items:
$ref: '#/components/schemas/Value'
responseTypes:
uniqueItems: true
type: array
items:
type: array
properties:
empty:
type: boolean
items:
$ref: '#/components/schemas/Value'
grantTypes:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/GrantType'
nameEntries:
type: object
additionalProperties:
type: string
logoURIEntries:
type: object
additionalProperties:
type: string
format: uri
policyURIEntries:
type: object
additionalProperties:
type: string
format: uri
signedJWKSetURI:
type: string
format: uri
requestObjectURIs:
uniqueItems: true
type: array
items:
type: string
format: uri
requestObjectJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
requestObjectJWEAlg:
$ref: '#/components/schemas/JWEAlgorithm'
requestObjectJWEEnc:
$ref: '#/components/schemas/EncryptionMethod'
softwareID:
$ref: '#/components/schemas/SoftwareID'
softwareVersion:
$ref: '#/components/schemas/SoftwareVersion'
softwareStatement:
$ref: '#/components/schemas/SignedJWT'
backChannelTokenDeliveryMode:
$ref: '#/components/schemas/BackChannelTokenDeliveryMode'
backChannelClientNotificationEndpoint:
type: string
format: uri
backChannelAuthRequestJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
clientRegistrationTypes:
type: array
items:
$ref: '#/components/schemas/ClientRegistrationType'
organizationName:
type: string
customFields:
type: object
properties:
empty:
type: boolean
additionalProperties:
type: object
name:
type: string
uri:
type: string
format: uri
tlsclientCertificateBoundAccessTokens:
type: boolean
redirectionURIs:
uniqueItems: true
type: array
items:
type: string
format: uri
emailContacts:
type: array
items:
type: string
urientries:
type: object
additionalProperties:
type: string
format: uri
tokenEndpointAuthJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
tlsclientAuthSubjectDN:
type: string
tlsclientAuthSanDNS:
type: string
tlsclientAuthSanURI:
type: string
tlsclientAuthSanIP:
type: string
tlsclientAuthSanEmail:
type: string
dpoPBoundAccessTokens:
type: boolean
authorizationJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
authorizationJWEAlg:
$ref: '#/components/schemas/JWEAlgorithm'
authorizationJWEEnc:
$ref: '#/components/schemas/EncryptionMethod'
authorizationDetailsTypes:
type: array
items:
$ref: '#/components/schemas/AuthorizationType'
logoURI:
type: string
format: uri
policyURI:
type: string
format: uri
termsOfServiceURI:
type: string
format: uri
termsOfServiceURIEntries:
type: object
additionalProperties:
type: string
format: uri
jwkset:
$ref: '#/components/schemas/JWKSet'
tokenEndpointAuthMethod:
$ref: '#/components/schemas/ClientAuthenticationMethod'
jwksetURI:
type: string
format: uri
supportsBackChannelUserCodeParam:
type: boolean
writeOnly: true
redirectionURI:
type: string
format: uri
redirectionURIStrings:
uniqueItems: true
type: array
items:
type: string
mutualTLSSenderConstrainedAccessTokens:
type: boolean
KeyRevocation:
type: object
properties:
reason:
$ref: '#/components/schemas/Reason'
revocationTime:
type: string
format: date-time
Base64:
type: object
Privilege:
type: object
properties:
value:
type: string
DataType:
type: object
properties:
value:
type: string
JWSAlgorithm:
type: object
properties:
name:
type: string
requirement:
type: string
enum:
- REQUIRED
- RECOMMENDED
- OPTIONAL
KeyUse:
type: object
properties:
value:
type: string
OIDCClientMetadata:
type: object
properties:
scope:
type: array
properties:
first:
$ref: '#/components/schemas/Value'
last:
$ref: '#/components/schemas/Value'
empty:
type: boolean
items:
$ref: '#/components/schemas/Value'
responseTypes:
uniqueItems: true
type: array
items:
type: array
properties:
empty:
type: boolean
items:
$ref: '#/components/schemas/Value'
grantTypes:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/GrantType'
nameEntries:
type: object
additionalProperties:
type: string
logoURIEntries:
type: object
additionalProperties:
type: string
format: uri
policyURIEntries:
type: object
additionalProperties:
type: string
format: uri
signedJWKSetURI:
type: string
format: uri
requestObjectURIs:
uniqueItems: true
type: array
items:
type: string
format: uri
requestObjectJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
requestObjectJWEAlg:
$ref: '#/components/schemas/JWEAlgorithm'
requestObjectJWEEnc:
$ref: '#/components/schemas/EncryptionMethod'
softwareID:
$ref: '#/components/schemas/SoftwareID'
softwareVersion:
$ref: '#/components/schemas/SoftwareVersion'
softwareStatement:
$ref: '#/components/schemas/SignedJWT'
backChannelTokenDeliveryMode:
$ref: '#/components/schemas/BackChannelTokenDeliveryMode'
backChannelClientNotificationEndpoint:
type: string
format: uri
backChannelAuthRequestJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
clientRegistrationTypes:
type: array
items:
$ref: '#/components/schemas/ClientRegistrationType'
organizationName:
type: string
customFields:
type: object
properties:
empty:
type: boolean
additionalProperties:
type: object
applicationType:
type: string
enum:
- native
- web
subjectType:
type: string
enum:
- pairwise
- public
- ephemeral
sectorIDURI:
type: string
format: uri
userInfoJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
userInfoJWEAlg:
$ref: '#/components/schemas/JWEAlgorithm'
userInfoJWEEnc:
$ref: '#/components/schemas/EncryptionMethod'
defaultMaxAge:
type: integer
format: int32
defaultACRs:
type: array
items:
$ref: '#/components/schemas/ACR'
initiateLoginURI:
type: string
format: uri
frontChannelLogoutURI:
type: string
format: uri
backChannelLogoutURI:
type: string
format: uri
attachmentDigestAlg:
$ref: '#/components/schemas/HashAlgorithm'
idtokenJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
idtokenJWEAlg:
$ref: '#/components/schemas/JWEAlgorithm'
idtokenJWEEnc:
$ref: '#/components/schemas/EncryptionMethod'
postLogoutRedirectionURIs:
uniqueItems: true
type: array
items:
type: string
format: uri
name:
type: string
uri:
type: string
format: uri
tlsclientCertificateBoundAccessTokens:
type: boolean
redirectionURIs:
uniqueItems: true
type: array
items:
type: string
format: uri
emailContacts:
type: array
items:
type: string
urientries:
type: object
additionalProperties:
type: string
format: uri
tokenEndpointAuthJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
tlsclientAuthSubjectDN:
type: string
tlsclientAuthSanDNS:
type: string
tlsclientAuthSanURI:
type: string
tlsclientAuthSanIP:
type: string
tlsclientAuthSanEmail:
type: string
dpoPBoundAccessTokens:
type: boolean
authorizationJWSAlg:
$ref: '#/components/schemas/JWSAlgorithm'
authorizationJWEAlg:
$ref: '#/components/schemas/JWEAlgorithm'
authorizationJWEEnc:
$ref: '#/components/schemas/EncryptionMethod'
authorizationDetailsTypes:
type: array
items:
$ref: '#/components/schemas/AuthorizationType'
logoURI:
type: string
format: uri
policyURI:
type: string
format: uri
termsOfServiceURI:
type: string
format: uri
termsOfServiceURIEntries:
type: object
additionalProperties:
type: string
format: uri
jwkset:
$ref: '#/components/schemas/JWKSet'
tokenEndpointAuthMethod:
$ref: '#/components/schemas/ClientAuthenticationMethod'
jwksetURI:
type: string
format: uri
supportsBackChannelUserCodeParam:
type: boolean
writeOnly: true
redirectionURI:
type: string
format: uri
redirectionURIStrings:
uniqueItems: true
type: array
items:
type: string
mutualTLSSenderConstrainedAccessTokens:
type: boolean
SignedJWT:
type: object
properties:
payload:
$ref: '#/components/schemas/Payload'
parsedParts:
type: array
items:
$ref: '#/components/schemas/Base64URL'
header:
$ref: '#/components/schemas/JWSHeader'
signature:
$ref: '#/components/schemas/Base64URL'
state:
type: string
enum:
- UNSIGNED
- SIGNED
- VERIFIED
jwtclaimsSet:
$ref: '#/components/schemas/JWTClaimsSet'
parsedString:
type: string
signingInput:
type: string
format: byte
JWKSet:
type: object
properties:
keys:
type: array
items:
$ref: '#/components/schemas/JWK'
empty:
type: boolean
additionalMembers:
type: object
additionalProperties:
type: object
Algorithm:
type: object
properties:
name:
type: string
requirement:
type: string
enum:
- REQUIRED
- RECOMMENDED
- OPTIONAL
EncryptionMethod:
type: object
properties:
name:
type: string
requirement:
type: string
enum:
- REQUIRED
- RECOMMENDED
- OPTIONAL
Payload:
type: object
properties:
origin:
type: string
enum:
- JSON
- STRING
- BYTE_ARRAY
- BASE64URL
- JWS_OBJECT
- SIGNED_JWT
SoftwareVersion:
type: object
properties:
value:
type: string
AccessTokenType:
type: object
properties:
value:
type: string
BearerAccessToken:
type: object
properties:
value:
type: string
type:
$ref: '#/components/schemas/AccessTokenType'
lifetime:
type: integer
format: int64
scope:
type: array
properties:
first:
$ref: '#/components/schemas/Value'
last:
$ref: '#/components/schemas/Value'
empty:
type: boolean
items:
$ref: '#/components/schemas/Value'
authorizationDetails:
type: array
items:
$ref: '#/components/schemas/AuthorizationDetail'
issuedTokenType:
$ref: '#/components/schemas/TokenTypeURI'
parameterNames:
uniqueItems: true
type: array
items:
type: string
customParameters:
type: object
additionalProperties:
type: object
Reason:
type: object
properties:
value:
type: string
AuthorizationType:
type: object
properties:
value:
type: string
uri:
type: string
format: uri
ACR:
type: object
properties:
value:
type: string
JWK:
type: object
properties:
keyStore:
type: object
properties:
type:
type: string
provider:
type: object
additionalProperties:
type: string
expirationTime:
type: string
format: date-time
private:
type: boolean
algorithm:
$ref: '#/components/schemas/Algorithm'
keyType:
$ref: '#/components/schemas/KeyType'
keyID:
type: string
x509CertURL:
type: string
format: uri
x509CertThumbprint:
$ref: '#/components/schemas/Base64URL'
x509CertSHA256Thumbprint:
$ref: '#/components/schemas/Base64URL'
x509CertChain:
type: array
items:
$ref: '#/components/schemas/Base64'
notBeforeTime:
type: string
format: date-time
issueTime:
type: string
format: date-time
keyUse:
$ref: '#/components/schemas/KeyUse'
keyOperations:
uniqueItems: true
type: array
items:
type: string
enum:
- sign
- verify
- encrypt
- decrypt
- wrapKey
- unwrapKey
- deriveKey
- deriveBits
parsedX509CertChain:
type: array
items:
type: object
properties:
subjectDN:
type: object
properties:
name:
type: string
issuerDN:
type: object
properties:
name:
type: string
tbscertificate:
type: string
format: byte
sigAlgName:
type: string
sigAlgOID:
type: string
issuerUniqueID:
type: array
items:
type: boolean
subjectUniqueID:
type: array
items:
type: boolean
subjectAlternativeNames:
type: array
items:
type: array
items:
type: object
issuerAlternativeNames:
type: array
items:
type: array
items:
type: object
sigAlgParams:
type: string
format: byte
notBefore:
type: string
format: date-time
notAfter:
type: string
format: date-time
extendedKeyUsage:
type: array
items:
type: string
keyUsage:
type: array
items:
type: boolean
signature:
type: string
format: byte
basicConstraints:
type: integer
format: int32
issuerX500Principal:
type: object
properties:
name:
type: string
encoded:
type: string
format: byte
subjectX500Principal:
type: object
properties:
name:
type: string
encoded:
type: string
format: byte
version:
type: integer
format: int32
serialNumber:
type: integer
nonCriticalExtensionOIDs:
uniqueItems: true
type: array
items:
type: string
criticalExtensionOIDs:
uniqueItems: true
type: array
items:
type: string
type:
type: string
encoded:
type: string
format: byte
publicKey:
type: object
properties:
encoded:
type: string
format: byte
format:
type: string
algorithm:
type: string
keyRevocation:
$ref: '#/components/schemas/KeyRevocation'
requiredParams:
type: object
additionalProperties:
type: object
BackChannelTokenDeliveryMode:
type: object
properties:
value:
type: string
externalDocs:
description: OpenID Connect 1.0 specifications
url: https://openid.net/connect/