ovpay/src/openapi/container/abt-container-tokens.yaml
2026-06-24 11:07:34 +02:00

359 lines
12 KiB
YAML

openapi: 3.0.1
info:
title: Integraion layer APIs for token storage for ABT
description: >-
APIs that give business processes access to the security and authorization state of a token within the scope of HTM. In the backend this is connected to a container which handles the accessToken en refreshToken management.
version: "1.0"
servers:
- url: https://services.acc.api.htm.nl/abt/containertokens/1.0
tags:
- name: tokens
paths:
/tokens:
parameters:
post:
tags:
- tokens
summary: Create a new token entry in the vault
description: Create a new token entry in the vault, if the customerProfileId has been supplied create in the customerToken DB otherwise in the AnonymousToken DB
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateTokenBody"
examples:
token:
value:
{
"xTAT": "cf694905-7f76-4799-b0bc-490716921323",
"otpKey": "123456789123456789123456789abcde"
}
responses:
"201":
description: Created
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
example:
"Ok"
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
Missing Parameters:
value:
status: 400
title: Missing Mandatory Parameter
detail: Required parameter {0} is missing.
Invalid Parameters:
value:
status: 400
title: Invalid Parameter
detail: Required parameter {0} is invalid.
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
Unauthorized:
value:
status: 401
title: Unauthorized
detail: Invalid Access Token
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
TAT not found:
value:
status: 404
title: Not Found
detail: TAT Account Not Found
"500":
description: Internal server error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
example:
error: An unknown error has occurred
/tokens/{xtat}/status:
parameters:
- name: xtat
in: path
schema:
type: string
example: uuid
required: true
description: The xTAT for the token for which the status needs to be checked
- name: customerProfileId
in: query
schema:
type: integer
example: 323
required: false
description: The id of the customer Profile for which the request is being done, if customer has identified themselves
get:
tags:
- tokens
summary: Request the security and authorization status of an OV pas token
description: Request the security and authorization status of an OV pas token, if the customerProfileId has been supplied look in the customerToken DB otherwise check the AnonymousToken DB.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/TokenStatusResponse"
examples:
Not secured, not authorized :
summary: Not secured, not authorized
value:
{
"isAuthorized": false,
"isSecured": false
}
Secured, not authorized :
summary: Secured, not authorized
value:
{
"isAuthorized": true,
"isSecured": false
}
Secured and authorized :
summary: Secured and authorized
value:
{
"isAuthorized": true,
"isSecured": true
}
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
Missing Parameters:
value:
status: 400
title: Missing Mandatory Parameter
detail: Required parameter {0} is missing.
Invalid Parameters:
value:
status: 400
title: Invalid Parameter
detail: Required parameter {0} is invalid.
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
Unauthorized:
value:
status: 401
title: Unauthorized
detail: Invalid Access Token
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
TAT not found:
value:
status: 404
title: Not Found
detail: TAT Account Not Found
"500":
description: Internal server error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
example:
error: An unknown error has occurred
/tokens/{xtat}/validate:
parameters:
- name: xtat
in: path
schema:
type: string
example: uuid
required: true
description: The xTAT for the token for which the status needs to be checked
- name: customerProfileId
in: query
schema:
type: integer
example: 323
required: false
description: The id of the customer Profile for which the request is being done, if customer has identified themselves
patch:
tags:
- tokens
summary: Validate the supplied OTP and secure and/or authorize the token
description: Validate the supplied OTP and secure and/or authorize the token if the customerProfileId has been supplied look in the customerToken DB otherwise check the AnonymousToken DB.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ValidateTokenBody"
examples:
token:
value:
{
"otp": "1234564"
}
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/TokenStatusResponse"
examples:
Not secured, not authorized :
summary: Not secured, not authorized
value:
{
"isAuthorized": false,
"isSecured": false
}
Secured, not authorized :
summary: Secured, not authorized
value:
{
"isAuthorized": true,
"isSecured": false
}
Secured and authorized :
summary: Secured and authorized
value:
{
"isAuthorized": true,
"isSecured": true
}
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
Missing Parameters:
value:
status: 400
title: Missing Mandatory Parameter
detail: Required parameter {0} is missing.
Invalid Parameters:
value:
status: 400
title: Invalid Parameter
detail: Required parameter {0} is invalid.
"401":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
Unauthorized:
value:
status: 401
title: Unauthorized
detail: Invalid Access Token
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
examples:
TAT not found:
value:
status: 404
title: Not Found
detail: TAT Account Not Found
"500":
description: Internal server error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
example:
error: An unknown error has occurred
components:
schemas:
unavailable:
type: object
ErrorResponse:
description: Default response when an invalid request has been sent
type: object
properties:
status:
type: integer
description: >-
A status IS An integer that represents the HTTP status code of the
response.
example: 400
title:
type: string
description: A title IS A string that provides a brief summary of the error.
detail:
type: string
description: A detail IS A string that provides more details about the error.
CreateTokenBody:
description: Body for when the a new token entry is created
type: object
required:
- xTAT
- otpKey
properties:
xTAT:
type : string
description: >-
Unique identifier for the GBO transit account
example: 03071794-482a-4168-b60f-84669a9e6a76
otpKey:
type : string
description: >-
Key used to validate the OTP at GBO
example: 123456789123456789123456789abcde
TokenStatusResponse:
description: Response for when the status of a token is requested
type: object
properties:
isSecured:
type: boolean
description: >-
Is the OVpas secured according to the GBO
example: False
isAuthorized:
type: boolean
description: >-
Does HTM have the authorization to access the secured the data of the OVpas
example: False
ValidateTokenBody:
description: Body for when the a token entry is validated
type: object
required:
- otp
properties:
otp:
type : string
description: >-
OTP to be used to secure the token and retrieve the JWT at GBO
example: 1234567