develop #38

Merged
bboterm merged 451 commits from develop into main 2025-11-19 14:28:14 +00:00
Showing only changes of commit feaaec2a53 - Show all commits

View File

@ -13,11 +13,12 @@ tags:
Service Engine APIs for HTM Customers. These are NOT the CRUD APIs to access raw data in the database.
To be used by touchpoints to get information about HTM customers.
paths:
/customers:
/customers:
get:
tags:
- ServiceEngine Customers
summary: Get a customer profile based on search parameters, only returns a unique profile
summary: Get a single customer profile based on search parameters
description: Get a single customer profile based on search parameters. Only returns a profile if a single result matches the parameters; when multiple results are found, additional seach parameters are required to disambiguate.
parameters:
- name: customerProfileId
in: query
@ -28,17 +29,17 @@ paths:
in: query
schema:
type: integer
example: 1
example: 1000001
- name: debtorNumber
in: query
schema:
type: integer
example: 1
example: 100001
- name: birthname
in: query
schema:
type: string
example: Jon
example: John
- name: surname
in: query
schema:
@ -49,7 +50,7 @@ paths:
schema:
type: string
format: email
example: jon.doe@mymailprovider.com
example: john.doe@mymailprovider.com
- name: dateOfBirth
in: query
schema:
@ -90,7 +91,7 @@ paths:
in: query
schema:
type: string
example: The Netherlands
example: "0123456789"
- name: ovChipcardNumber
in: query
schema:
@ -123,17 +124,53 @@ paths:
example: e1307c73-676a-4d07-967b-6141276f7c7c
responses:
'200':
description: Ok
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CustomersResponse'
'404':
description: Customer not found
description: No customer found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomersResponse'
example:
{
"type": "https://api.integratielaag.nl/abt/serviceengine/1.0/customers",
"apiErrorCode": "400.1",
"title": "Niet gevonden",
"detail": "Klant niet gevonden",
"instance": "555d00b5-bc3f-4591-949b-479e76d49ea7",
"errors": [
{
"subApiErrorCode": "0017"
}
]
}
'409':
description: Multiple customers found
content:
application/json:
example:
{
"type": "https://api.integratielaag.nl/abt/serviceengine/1.0/customers",
"apiErrorCode": "409.1",
"title": "Meer dan 1 klantprofiel gevonden",
"detail": "Meer dan 1 klantprofiel gevonden. Verfijn je zoekcriteria.",
"instance": "555d00b5-bc3f-4591-949b-479e76d49ea7"
}
/customers/tokens:
get:
tags:
- ServiceEngine Customers
summary: Get a list of all OvPayTokens for a certain customer
description: Get a list of all OvPayTokens for a certain customer.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OvPayTokensResponse'
/customers/tokens/{tokenId}/product-instances:
get:
tags:
@ -166,6 +203,335 @@ paths:
Entries: []
components:
schemas:
CustomersResponse:
type: object
properties:
customerProfileId:
type: integer
example: 1
customerNumber:
type: integer
example: 1000001
debtorNumber:
type: string
example: DB100001
customerStatus:
type: object
properties:
customerStatusId:
type: integer
example: 1
name:
type: string
example: Active
person:
type: object
properties:
prefix:
type: string
example: Mr
birthname:
type: string
example: John
surname:
type: string
example: Doe
suffix:
type: string
example: Jr.
dateOfBirth:
type: string
format: date
example: '2023-02-01'
emailAdress:
type: string
format: email
example: 4j2dD@example.com
addresses:
type: array
items:
type: object
properties:
addressId:
type: integer
example: 1
isPreferred:
type: boolean
example: true
addressType:
type: object
properties:
addressTypeId:
type: integer
example: 1
name:
type: string
example: Brug
street:
type: string
example: Appelstraat
houseNumber:
type: integer
example: 1
houseNumberSuffix:
type: string
example: BS
postalCode:
type: string
example: 1234AB
city:
type: string
example: Den Haag
country:
type: string
example: Nederland
_links:
type: object
properties:
delete:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/addresses/1
method:
type: string
example: DELETE
phones:
type: array
items:
type: object
properties:
phoneId:
type: integer
example: 1
isPreferred:
type: boolean
example: true
phoneType:
type: object
properties:
phoneTypeId:
type: integer
example: 1
name:
type: string
example: Mobiel
number:
type: string
example: "0123456789"
countryCode:
type: string
example: "0031"
_links:
type: object
properties:
delete:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/phones/1
method:
type: string
example: DELETE
_links:
type: object
properties:
partial_edit:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers
method:
type: string
example: PATCH
templated:
type: boolean
example: true
get_tokens:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/tokens
method:
type: string
example: GET
templated:
type: boolean
example: true
create_token:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/tokens
method:
type: string
example: POST
templated:
type: boolean
example: true
_templates:
type: object
properties:
partial_edit:
type: object
properties:
method:
type: string
example: PATCH
properties:
example:
[
{ name: person, required: true, properties: [
{ name: prefix, required: false, type: string },
{ name: birthname, required: false, type: string },
{ name: surname, required: false, type: string },
{ name: suffix, required: false, type: string },
{ name: dateOfBirth, required: false, type: string },
{ name: emailAdress, required: false, type: string },
{ name: addresses, required: false, multi: true, properties: [
{ name: addressId, required: false, type: integer },
{ name: isPreferred, required: false, type: boolean },
{ name: addressTypeId, required: false, type: integer },
{ name: street, required: false, type: string },
{ name: houseNumber, required: false, type: integer },
{ name: houseNumberSuffix, required: false, type: string },
{ name: postalCode, required: false, type: string },
{ name: city, required: false, type: string },
{ name: country, required: false, type: string }
]},
{ name: phones, required: false, multi: true, properties: [
{ name: phoneId, required: false, type: integer },
{ name: isPreferred, required: false, type: boolean },
{ name: phoneTypeId, required: false, type: integer },
{ name: number, required: false, type: string },
{ name: countryCode, required: false, type: string }
]}
] }
]
create_token:
type: object
properties:
method:
type: string
example: POST
properties:
example:
[
{ name: ovPayToken, required: true, properties: [
{ name: tokenTypeId, required: true, type: integer },
{ name: alias, required: true, type: string },
{ name: serviceReferenceId, required: false, type: string },
{ name: amount, required: false, type: integer },
]}
]
OvPayTokensResponse:
type: object
required:
- ovPayTokens
properties:
Entries:
type: array
items:
type: object
properties:
ovPayTokenId:
type: integer
example: 1
tokenType:
type: object
properties:
tokenTypeId:
type: integer
example: 1
name:
type: string
example: EMV
alias:
type: string
example: MyToken
tokenStatus:
type: object
properties:
tokenStatusId:
type: integer
example: 1
name:
type: string
example: Active
expirationDate:
type: string
format: date
example: '2023-02-01'
replacedByTokenId:
type: integer
example: 1
_links:
type: object
properties:
partial_edit:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/tokens/1
method:
type: string
example: PATCH
templated:
type: boolean
example: true
delete:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/tokens/1
method:
type: string
example: DELETE
product-instances:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/tokens/1/product-instances
method:
type: string
example: GET
trips:
type: object
properties:
href:
type: string
example: https://api.integratielaag.nl/abt/serviceengine/1.0/customers/tokens/1/trips
method:
type: string
example: GET
_templates:
type: object
properties:
partial_edit:
type: object
properties:
method:
type: string
example: PATCH
properties:
example:
[
{ name: ovPayToken, required: true, properties: [
{ name: tokenStatusId, required: false, type: integer },
{ name: alias, required: false, type: string }
]}
]
TokenProductInstancesResponse:
type: object
required:
@ -173,5 +539,5 @@ components:
properties:
Entries:
type: array
CustomersResponse:
type: object