1455 lines
59 KiB
YAML
1455 lines
59 KiB
YAML
openapi: 3.0.1
|
|
info:
|
|
title: Service Engine APIs for Customers
|
|
description: >-
|
|
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.
|
|
version: '1.0'
|
|
servers:
|
|
- url: https://api.integratielaag.nl/v1/touchpoint
|
|
tags:
|
|
- name: Customers
|
|
description: >-
|
|
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:
|
|
get:
|
|
tags:
|
|
- Customers
|
|
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
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
- name: customerNumber
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 1000001
|
|
- name: customerStatusId
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
- name: debtorNumber
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 100001
|
|
- name: debtorStatusId
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
- name: birthname
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: John
|
|
- name: surname
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: Doe
|
|
- name: emailAddress
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: email
|
|
example: john.doe@mymailprovider.com
|
|
- name: dateOfBirth
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date
|
|
example: "2000-01-01"
|
|
- name: addressStreet
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: Sesamestreet
|
|
- name: addressHouseNumber
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
- name: addressHouseNumberSuffix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: A
|
|
- name: addressPostalCode
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: 1234 AB
|
|
- name: addressCity
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: The Hague
|
|
- name: addressCountry
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: The Netherlands
|
|
- name: phoneNumber
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: "0123456789"
|
|
- name: ovChipcardNumber
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 0123456789
|
|
- name: ovChipcardAlias
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: My ovchipcard
|
|
- name: ovPayTokenNumber
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 0123456789
|
|
- name: ovPayTokenAlias
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: My Ov Pay Token
|
|
- name: ovPayTokenXTat
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: 180d04e0-a721-447e-a1d9-b416937b43bc
|
|
- name: ovPayTokenXBot
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: e1307c73-676a-4d07-967b-6141276f7c7c
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CustomersResponse'
|
|
'404':
|
|
description: No customer found
|
|
content:
|
|
application/json:
|
|
example:
|
|
{
|
|
"type": "https://api.integratielaag.nl/abt/1.0/touchpoint/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/1.0/touchpoint/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:
|
|
- Customers
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
|
|
required: false
|
|
description: The JWT of a customer in case of touchpoint were customer logs in themselves
|
|
- name: X-HTM-CUSTOMER-PROFILE-ID-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: feaaef83-a551-4283-8419-340b1ada3b55
|
|
required: false
|
|
description: The customerProfileId of a customer in the case of the SMP
|
|
- name: X-HTM-ROLE-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: Customer
|
|
required: false
|
|
description: The role of the HTM employee in the case of the SMP
|
|
- name: ovpayTokenId
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
required: false
|
|
description: The ovpaytoken id of a specific customer token
|
|
- name: tokenTypeId
|
|
in: query
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
explode: false
|
|
description: Filter on tokentype. 1 = EMV, 2 = OV-pas physical, 3 = OV-pas digital
|
|
required: false
|
|
- name: xTat
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: 4c2d60e2-cd03-4c80-ae70-573a301f0bff
|
|
required: false
|
|
description: Filter on the xTat of a customer token
|
|
- name: xBot
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: 91641b54-056c-49ea-b598-ccde81d6c45a
|
|
required: false
|
|
description: Filter on the xBot of a customer token
|
|
- name: ovPasNumber
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: 56HYRTL
|
|
required: false
|
|
description: Filter on the ovPasNumber of a customer token of type OV Pas
|
|
- name: lastDigits
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: 1234
|
|
required: false
|
|
description: Filter on the last digits of a customer token of type EMV
|
|
- name: tokenStatusId
|
|
in: query
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
explode: false
|
|
description: Filter on token status. 1 = Expired, 2 = Active, 3 = Replaced, 4 = Inactive, 5 = Suspended, 6 = Removed by customer
|
|
required: false
|
|
- name: expirationDate
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: 2027-01-01T09:00:00Z
|
|
required: false
|
|
description: Filter on the expirationDate of a customer token
|
|
- name: replaceByTokenId
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 2
|
|
required: false
|
|
description: Filter on the replaceByTokenId of a customer token
|
|
summary: Get a list of all OvPayTokens for a certain customer.
|
|
description: Get a list of all OvPayTokens for a certain customer, only returns the tokens for an identified customer through JWT or customerProfileId in the headers.
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
examples:
|
|
EMV without PAD:
|
|
summary: EMV without PAD
|
|
description: EMV without PAD
|
|
value:
|
|
{
|
|
"ovPayTokens": [
|
|
{
|
|
"ovPayTokenId": 1,
|
|
"tokenType": {
|
|
"tokenTypeId": 1,
|
|
"name": "EMV"
|
|
},
|
|
"alias": "MyToken",
|
|
"tokenStatus": {
|
|
"tokenStatusId": 1,
|
|
"name": "Active"
|
|
},
|
|
"expirationDate": "2023-02-01",
|
|
"replacedByTokenId": 2,
|
|
"autoReloadRegistration": null,
|
|
"ePurse": null,
|
|
"personalAccountData":{
|
|
"name": null,
|
|
"birthDate": null,
|
|
"photo": null
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips",
|
|
"method": "GET"
|
|
},
|
|
"create_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/tokenPersonalizations?ovpaytokenId=1",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
OVPAS without PAD:
|
|
summary: OVPAS without PAD
|
|
description: OVPAS without PAD
|
|
value:
|
|
{
|
|
"ovPayTokens": [
|
|
{
|
|
"ovPayTokenId": 1,
|
|
"tokenType": {
|
|
"tokenTypeId": 2,
|
|
"name": "OV-pas physical"
|
|
},
|
|
"alias": "MyToken",
|
|
"tokenStatus": {
|
|
"tokenStatusId": 1,
|
|
"name": "Active"
|
|
},
|
|
"expirationDate": "2023-02-01",
|
|
"replacedByTokenId": 2,
|
|
"autoReloadRegistration": null,
|
|
"ePurse": {
|
|
"e-PurseBalance": {
|
|
"currency": "EUR",
|
|
"amount": 350
|
|
},
|
|
"status": "ACTIVE",
|
|
"originDate": "2019-07-16T11:00:00+02:00"
|
|
},
|
|
"personalAccountData":{
|
|
"name": null,
|
|
"birthDate": null,
|
|
"photo": null
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips",
|
|
"method": "GET"
|
|
},
|
|
"create_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
OVPAS with PAD:
|
|
summary: OVPAS with PAD
|
|
description: OVPAS with PAD
|
|
value:
|
|
{
|
|
"ovPayTokens": [
|
|
{
|
|
"ovPayTokenId": 1,
|
|
"tokenType": {
|
|
"tokenTypeId": 2,
|
|
"name": "OV-pas physical"
|
|
},
|
|
"alias": "MyToken",
|
|
"tokenStatus": {
|
|
"tokenStatusId": 1,
|
|
"name": "Active"
|
|
},
|
|
"expirationDate": "2023-02-01",
|
|
"replacedByTokenId": 2,
|
|
"autoReloadRegistration": {
|
|
"autoReloadAmount": 500,
|
|
"retailerReferenceId": "abc",
|
|
"arrit": "425f7fc2-1103-4822-9c79-7c4aaa2fb6aa",
|
|
"autoReloadRegistrationStatus": "ACTIVE",
|
|
"autoReloadRegistrationStartDateTime": "2024-06-02T15:03:46Z"
|
|
},
|
|
"ePurse": {
|
|
"e-PurseBalance": {
|
|
"currency": "EUR",
|
|
"amount": 350
|
|
},
|
|
"status": "ACTIVE",
|
|
"originDate": "2019-07-16T11:00:00+02:00"
|
|
},
|
|
"personalAccountData":{
|
|
"name": {
|
|
"inaccuracyFlag": false,
|
|
"inaccuracyFlagReason": null,
|
|
"inaccuracyFlagSetCounter": 0,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
},
|
|
"birthDate": {
|
|
"inaccuracyFlag": false,
|
|
"inaccuracyFlagReason": null,
|
|
"inaccuracyFlagSetCounter": 0,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
},
|
|
"photo": {
|
|
"inaccuracyFlag": false,
|
|
"inaccuracyFlagReason": null,
|
|
"inaccuracyFlagSetCounter": 0,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips",
|
|
"method": "GET"
|
|
},
|
|
"update_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1",
|
|
"method": "PUT"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
OVPAS with partial PAD:
|
|
summary: OVPAS with partial PAD
|
|
description: OVPAS with partial PAD
|
|
value:
|
|
{
|
|
"ovPayTokens": [
|
|
{
|
|
"ovPayTokenId": 1,
|
|
"tokenType": {
|
|
"tokenTypeId": 2,
|
|
"name": "OV-pas physical"
|
|
},
|
|
"alias": "MyToken",
|
|
"tokenStatus": {
|
|
"tokenStatusId": 1,
|
|
"name": "Active"
|
|
},
|
|
"expirationDate": "2023-02-01",
|
|
"replacedByTokenId": 2,
|
|
"autoReloadRegistration": null,
|
|
"ePurse": {
|
|
"e-PurseBalance": {
|
|
"currency": "EUR",
|
|
"amount": 350
|
|
},
|
|
"status": "ACTIVE",
|
|
"originDate": "2019-07-16T11:00:00+02:00"
|
|
},
|
|
"personalAccountData":{
|
|
"name": {
|
|
"inaccuracyFlag": false,
|
|
"inaccuracyFlagReason": null,
|
|
"inaccuracyFlagSetCounter": 0,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
},
|
|
"birthDate": {
|
|
"inaccuracyFlag": true,
|
|
"inaccuracyFlagReason": "Invalid birthDate",
|
|
"inaccuracyFlagSetCounter": 1,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
},
|
|
"photo": {
|
|
"inaccuracyFlag": false,
|
|
"inaccuracyFlagReason": null,
|
|
"inaccuracyFlagSetCounter": 0,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips",
|
|
"method": "GET"
|
|
},
|
|
"update_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1",
|
|
"method": "PUT"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
OVPAS with invalid PAD:
|
|
summary: OVPAS with invalid PAD
|
|
description: OVPAS with invalid PAD
|
|
value:
|
|
{
|
|
"ovPayTokens": [
|
|
{
|
|
"ovPayTokenId": 1,
|
|
"tokenType": {
|
|
"tokenTypeId": 2,
|
|
"name": "OV-pas physical"
|
|
},
|
|
"alias": "MyToken",
|
|
"tokenStatus": {
|
|
"tokenStatusId": 1,
|
|
"name": "Active"
|
|
},
|
|
"expirationDate": "2023-02-01",
|
|
"replacedByTokenId": 2,
|
|
"autoReloadRegistration": null,
|
|
"ePurse": {
|
|
"e-PurseBalance": {
|
|
"currency": "EUR",
|
|
"amount": 350
|
|
},
|
|
"status": "ACTIVE",
|
|
"originDate": "2019-07-16T11:00:00+02:00"
|
|
},
|
|
"personalAccountData":{
|
|
"name": {
|
|
"inaccuracyFlag": true,
|
|
"inaccuracyFlagReason": "T.B.D",
|
|
"inaccuracyFlagSetCounter": 1,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
},
|
|
"birthDate": {
|
|
"inaccuracyFlag": true,
|
|
"inaccuracyFlagReason": "T.B.D",
|
|
"inaccuracyFlagSetCounter": 1,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
},
|
|
"photo": {
|
|
"inaccuracyFlag": true,
|
|
"inaccuracyFlagReason": "T.B.D",
|
|
"inaccuracyFlagSetCounter": 1,
|
|
"isValidated": false,
|
|
"changeCounter": 0,
|
|
"maxUpdatesVerificationCount": 0,
|
|
"lastChangeDate": "2019-08-24T14:15:22Z"
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips",
|
|
"method": "GET"
|
|
},
|
|
"update_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1",
|
|
"method": "PUT"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
post:
|
|
tags:
|
|
- Customers
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
|
|
required: false
|
|
description: The JWT of a customer in case of touchpoint were customer logs in themselves
|
|
- name: X-HTM-CUSTOMER-PROFILE-ID-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: feaaef83-a551-4283-8419-340b1ada3b55
|
|
required: false
|
|
description: The customerProfileId of a customer in the case of the SMP
|
|
- name: X-HTM-ROLE-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: Customer
|
|
required: false
|
|
summary: Create a new OV paytoken in the database for a given customer
|
|
description: Create a new OV paytoken for a customerProfile
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
examples:
|
|
Add EMV token:
|
|
summary: Add EMV token
|
|
description: Add EMV token
|
|
value:
|
|
{
|
|
"ovPayToken": {
|
|
"tokenTypeId": 1,
|
|
"serviceReferenceId": "NLOV1234567ABCDEFG",
|
|
"amount": 200,
|
|
"alias": "Mijn token"
|
|
}
|
|
}
|
|
Add OVpas physical token:
|
|
summary: Add OVpas physical token
|
|
description: Add OVpas physical token
|
|
value:
|
|
{
|
|
"ovPayToken": {
|
|
"tokenTypeId": 2,
|
|
"ovpasNumber": "OV34567",
|
|
"verificationCode": "211",
|
|
"alias": "Mijn token"
|
|
}
|
|
}
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
examples:
|
|
Add EMV token:
|
|
summary: Add EMV token
|
|
description: Add EMV token
|
|
value:
|
|
{
|
|
"ovPayToken": {
|
|
"customerProfileId": 8,
|
|
"ovPayTokenId": 1,
|
|
"tokenTypeId": 1,
|
|
"lastDigits": null,
|
|
"ovpasNumber": null,
|
|
"alias": "Mijn token",
|
|
"tokenStatusId": 2,
|
|
"expirationDate": "2028-08-31T23:59:00+02:00",
|
|
"replacedByTokenId": null,
|
|
"autoReloadRegistration": null,
|
|
"ePurse": null,
|
|
"personalAccountData":{
|
|
"name": null,
|
|
"birthDate": null,
|
|
"photo": null
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips",
|
|
"method": "GET"
|
|
},
|
|
"create_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
}
|
|
Add OVpas physical token:
|
|
summary: Add EMV token
|
|
description: Add EMV token
|
|
value:
|
|
{
|
|
"ovPayToken": {
|
|
"customerProfileId": 8,
|
|
"ovPayTokenId": 1,
|
|
"tokenTypeId": 2,
|
|
"lastDigits": null,
|
|
"ovpasNumber": "OV34567",
|
|
"alias": "Mijn token",
|
|
"tokenStatusId": 2,
|
|
"expirationDate": "2028-08-31T23:59:00+02:00",
|
|
"replacedByTokenId": null,
|
|
"autoReloadRegistration": null,
|
|
"ePurse": {
|
|
"e-PurseBalance": {
|
|
"currency": "EUR",
|
|
"amount": 00
|
|
},
|
|
"status": "INACTIVE",
|
|
"originDate": "2019-07-16T11:00:00+02:00"
|
|
},
|
|
"personalAccountData":{
|
|
"name": null,
|
|
"birthDate": null,
|
|
"photo": null
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=1",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips",
|
|
"method": "GET"
|
|
},
|
|
"create_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=1",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
}
|
|
/customers/tokens/{ovpayTokenId}:
|
|
post:
|
|
tags:
|
|
- Customers
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
|
|
required: false
|
|
description: The JWT of a customer in case of touchpoint were customer logs in themselves
|
|
- name: X-HTM-CUSTOMER-PROFILE-ID-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: feaaef83-a551-4283-8419-340b1ada3b55
|
|
required: false
|
|
description: The customerProfileId of a customer in the case of the SMP
|
|
- name: X-HTM-ROLE-HEADER
|
|
in: header
|
|
schema:
|
|
type: string
|
|
example: Customer
|
|
required: false
|
|
- name: ovpayTokenId
|
|
in: path
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
required: true
|
|
summary: Replace an OV paytoken for a customerProfile
|
|
description: Replace an OV paytoken in the database for a given customer with another token
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
examples:
|
|
Replace with new EMV token:
|
|
summary: Replace with new token
|
|
description: Replace with new token
|
|
value:
|
|
{
|
|
"ovPayToken": {
|
|
"newTokenId": null,
|
|
"tokenTypeId": 1,
|
|
"serviceReferenceId": "NLOV1234567ABCDEFG",
|
|
"amount": 230,
|
|
"alias": "Nieuw token"
|
|
}
|
|
}
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
examples:
|
|
Replace with new EMV token:
|
|
summary: Replace with new EMV token
|
|
description: Replace with new EMV token
|
|
value:
|
|
{
|
|
"ovPayToken": {
|
|
"customerProfileId": 8,
|
|
"ovPayTokenId": 5,
|
|
"tokenTypeId": 1,
|
|
"lastDigits": null,
|
|
"ovpasNumber": null,
|
|
"alias": "Mijn token",
|
|
"tokenStatusId": 2,
|
|
"expirationDate": "2028-08-31T23:59:00+02:00",
|
|
"replacedByTokenId": null,
|
|
"autoReloadRegistration": null,
|
|
"ePurse": null,
|
|
"personalAccountData":{
|
|
"name": null,
|
|
"birthDate": null,
|
|
"photo": null
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens?ovpaytokenId=5",
|
|
"method": "GET"
|
|
},
|
|
"partial_edit": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5",
|
|
"method": "PATCH"
|
|
},
|
|
"replace_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/replace",
|
|
"method": "POST"
|
|
},
|
|
"delete_token": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5",
|
|
"method": "DELETE"
|
|
},
|
|
"get_productinstances": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/productinstances",
|
|
"method": "GET"
|
|
},
|
|
"get_trips": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/5/trips",
|
|
"method": "GET"
|
|
},
|
|
"create_tokenPersonalization": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/pad?ovpaytokenId=5",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
},
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens",
|
|
"method": "POST"
|
|
}
|
|
}
|
|
}
|
|
/customers/tokens/{ovPayTokenId}/productinstances:
|
|
get:
|
|
tags:
|
|
- ServiceEngine Customers
|
|
summary: Get a list of all HTM products instantiated on the given OvPayToken
|
|
description: |-
|
|
Get a list of all HTM products instantiated on the given OvPayToken.
|
|
Only HTM products are returned; GBO does not allow HTM to get information on non-HTM product-instances.
|
|
Where relevant, operations to be performed are returned as HATEOAS links per product-instance.
|
|
parameters:
|
|
- name: ovPayTokenId
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
description: Id of the OvPayToken to get product-instances for.
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OvPayTokenProductInstancesResponse'
|
|
examples:
|
|
getEmptyProductInstances:
|
|
summary: No product-instances found on token
|
|
value:
|
|
productInstances: []
|
|
getSingleProductInstance:
|
|
summary: One non-renewable product-instance
|
|
value:
|
|
{
|
|
"productInstances": [
|
|
{
|
|
"productId": 1,
|
|
"name": "HTM 90% Korting",
|
|
"status": "Active",
|
|
"isRenewable": true,
|
|
"productCategory": {
|
|
"productCategoryId": 1,
|
|
"name": "Kortingsabonnement"
|
|
},
|
|
"fromInclusive": "2024-11-25T13:25:00+01:00",
|
|
"untilInclusive": "2024-12-25T03:59:59+01:00",
|
|
"orderId": "501B17EF-36C4-4039-B92C-6517969B464E",
|
|
"orderLineId": "38B17EF-36C4-4039-B92C-4817969B464E",
|
|
"contractId": "56B17EF-C436-9043-B76C-481797WEB464F",
|
|
"_links": {
|
|
"self": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances/1",
|
|
"method": "GET"
|
|
},
|
|
"get_order": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/orders/501B17EF-36C4-4039-B92C-6517969B464E",
|
|
"method": "GET"
|
|
},
|
|
"get_contract": {
|
|
"href": "https://api.integratielaag.nl/abt/1.0/touchpoint/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F",
|
|
"method": "GET"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
components:
|
|
schemas:
|
|
unavailable:
|
|
type: object
|
|
CustomersResponse:
|
|
type: object
|
|
properties:
|
|
customerProfileId:
|
|
type: integer
|
|
example: 1
|
|
customerNumber:
|
|
type: integer
|
|
example: 1000001
|
|
customerStatus:
|
|
type: object
|
|
properties:
|
|
customerStatusId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: Active
|
|
debtorNumber:
|
|
type: string
|
|
example: DB100001
|
|
debtorStatus:
|
|
type: object
|
|
properties:
|
|
debtorStatusId:
|
|
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'
|
|
emailAddress:
|
|
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: Home
|
|
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:
|
|
self:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/addresses/1
|
|
method:
|
|
type: string
|
|
example: GET
|
|
delete_address:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/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: Home
|
|
number:
|
|
type: string
|
|
example: "0123456789"
|
|
countryCode:
|
|
type: string
|
|
example: "0031"
|
|
_links:
|
|
type: object
|
|
properties:
|
|
self:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/phones/1
|
|
method:
|
|
type: string
|
|
example: GET
|
|
delete_phone:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/phones/1
|
|
method:
|
|
type: string
|
|
example: DELETE
|
|
_links:
|
|
type: object
|
|
properties:
|
|
self:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers
|
|
method:
|
|
type: string
|
|
example: GET
|
|
create_customer_status:
|
|
type: object
|
|
description: ONLY ALLOWED FOR SMP - Create a new customer status
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/statuses
|
|
method:
|
|
type: string
|
|
example: POST
|
|
partial_edit:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers
|
|
method:
|
|
type: string
|
|
example: PATCH
|
|
get_tokens:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens
|
|
method:
|
|
type: string
|
|
example: GET
|
|
create_token:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens
|
|
method:
|
|
type: string
|
|
example: POST
|
|
OvPayTokensResponse:
|
|
type: object
|
|
required:
|
|
- ovPayTokens
|
|
properties:
|
|
ovPayTokens:
|
|
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:
|
|
self:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1
|
|
method:
|
|
type: string
|
|
example: GET
|
|
partial_edit:
|
|
type: object
|
|
description: External touchpoints are only allowed to change alias - SMP can also change tokenStatus
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1
|
|
method:
|
|
type: string
|
|
example: PATCH
|
|
replace_token:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/replace
|
|
method:
|
|
type: string
|
|
example: POST
|
|
delete_token:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1
|
|
method:
|
|
type: string
|
|
example: DELETE
|
|
get_productinstances:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances
|
|
method:
|
|
type: string
|
|
example: GET
|
|
get_trips:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/trips
|
|
method:
|
|
type: string
|
|
example: GET
|
|
OvPayTokenProductInstancesResponse:
|
|
type: object
|
|
properties:
|
|
productInstances:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
productId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: HTM 90% Korting
|
|
status:
|
|
type: string
|
|
enum: [ "Active", "Ended", "Refunded" ]
|
|
example: Active
|
|
isRenewable:
|
|
type: boolean
|
|
example: true
|
|
productCategory:
|
|
type: object
|
|
description: The category of the originating HTM product definition
|
|
properties:
|
|
productCategoryId:
|
|
type: integer
|
|
example: 1
|
|
name:
|
|
type: string
|
|
example: Kortingsabonnement
|
|
fromInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
example: "2024-11-25T13:25:00+01:00"
|
|
untilInclusive:
|
|
type: string
|
|
format: date-time-offset
|
|
description: >-
|
|
If not present, this product-instance represents a subscription/contract without a real end date. If present, it can be either the natural end date or the refund timestamp.
|
|
example: "2024-12-25T03:59:59+01:00"
|
|
orderId:
|
|
type: string
|
|
format: uuid
|
|
example: 501B17EF-36C4-4039-B92C-6517969B464E
|
|
orderLineId:
|
|
type: string
|
|
format: uuid
|
|
example: 38B17EF-36C4-4039-B92C-4817969B464E
|
|
contractId:
|
|
type: string
|
|
format: uuid
|
|
example: 56B17EF-C436-9043-B76C-481797WEB464F
|
|
description: Only present for subscriptions/contracts
|
|
_links:
|
|
type: object
|
|
properties:
|
|
self:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/tokens/1/productinstances
|
|
method:
|
|
type: string
|
|
example: GET
|
|
get_order:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
description: Always present for any HTM product-instance
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/orders/501B17EF-36C4-4039-B92C-6517969B464E
|
|
method:
|
|
type: string
|
|
example: GET
|
|
get_contract:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
description: Only present for subscriptions/contracts
|
|
example: https://api.integratielaag.nl/abt/1.0/touchpoint/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F
|
|
method:
|
|
type: string
|
|
example: GET
|
|
|
|
|
|
|
|
|
|
|