1382 lines
42 KiB
YAML
1382 lines
42 KiB
YAML
openapi: "3.0.3"
|
|
info:
|
|
title: ABT Customers CRUD APIs v2
|
|
version: "1.0"
|
|
description: CRUD APIs for ABT Customer database. These are NOT the functional APIs from Service Engine.
|
|
servers:
|
|
- url: https://api.integratielaag.nl
|
|
paths:
|
|
/customers:
|
|
get:
|
|
tags:
|
|
- ABTCustomers
|
|
summary: Search customer profiles
|
|
description: >-
|
|
Search for all customer profile list in the ABT database matching given query parameters
|
|
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: array
|
|
items:
|
|
type: integer
|
|
description: Filter on possible customer statuses. 1 = Inactive, 2 = Active, 3 = Blocked, 4 = Frozen, 5 = Cleaned
|
|
- name: debtorNumber
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: DB100001
|
|
- name: debtorStatusId
|
|
in: query
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
description: Filter on possible debtor statuses. 1 = Active, 2 = Inactive
|
|
- name: birthname
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: John
|
|
- name: surname
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: Doe
|
|
- name: prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: De
|
|
- name: suffix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: PhD
|
|
- 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: 1234AB
|
|
- name: addressCity
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: The Hague
|
|
- name: addressCountry
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: NL
|
|
- name: phoneNumber
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: "0123456789"
|
|
- name: phoneCountryCode
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: "+31"
|
|
- name: ovChipcardNumber
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: 0123456789
|
|
- name: ovChipcardAlias
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: My ovchipcard
|
|
- name: ovPasNumber
|
|
in: query
|
|
schema:
|
|
type: string
|
|
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
|
|
- name: mandateReference
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: PAYT-1
|
|
- name: iban
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: NL20INGB0001234567
|
|
- name: bic
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: NL20INGB
|
|
- name: swift
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: NL20INGB
|
|
- name: ascription
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: j.jansen
|
|
- name: billingAlias
|
|
in: query
|
|
schema:
|
|
type: string
|
|
example: j.jansen
|
|
responses:
|
|
200:
|
|
description: Successfully retrieved customer profile(s)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/getCustomerProfiles"
|
|
examples:
|
|
fullCustomerProfile:
|
|
value:
|
|
customers:
|
|
- customerProfileId: 1
|
|
customerNumber: 1000001
|
|
debtorNumber: DB100001
|
|
debtorStatus:
|
|
debtorStatusId: 1
|
|
name: Inactive
|
|
vascustomerNumber: CST005
|
|
customerPreference:
|
|
language:
|
|
languageId: 1
|
|
name: Dutch
|
|
ietfCode: nl-NL
|
|
iso639Code: nl
|
|
customerStatusInstances:
|
|
- customerStatus:
|
|
name: Active
|
|
customerStatusId: 2
|
|
fromInclusive: "2022-08-04 15:01:00.000"
|
|
toInclusive: "2022-08-05 15:01:00.000"
|
|
- customerStatus:
|
|
name: Blocked
|
|
customerStatusId: 3
|
|
fromInclusive: "2022-08-05 15:01:00.000"
|
|
toInclusive: null
|
|
person:
|
|
birthname: Pieter
|
|
surname: De valen
|
|
prefix: De
|
|
suffix: PhD
|
|
dateOfBirth: "2002-10-29"
|
|
emailAddresses: TEST@HTM.NL
|
|
addresses:
|
|
- addressId: 1
|
|
street: mystreet
|
|
houseNumber: 1
|
|
houseNumberSuffix: null
|
|
postalCode: 0000AA
|
|
city: Den Haag
|
|
country: NL
|
|
isPreferred: false
|
|
addressType:
|
|
addressTypeId: 2
|
|
name: Office
|
|
- addressId: 2
|
|
street: mystreet 33
|
|
houseNumber: 1
|
|
houseNumberSuffix: null
|
|
postalCode: 4455CA
|
|
city: Den BOSCH
|
|
country: NL
|
|
isPreferred: true
|
|
addressType:
|
|
addressTypeId: 2
|
|
name: Office
|
|
phones:
|
|
- phoneId: 1
|
|
number: "3112345678"
|
|
countryCode: "+31"
|
|
phoneType:
|
|
phoneTypeId: 1
|
|
name: Home
|
|
isPreferred: true
|
|
- phoneId: 2
|
|
number: "333225588"
|
|
countryCode: "+31"
|
|
phoneType:
|
|
phoneTypeId: 2
|
|
name: Work
|
|
isPreferred: false
|
|
ovChipcards:
|
|
- ovChipCardId: 1
|
|
chipCardNumber: 1234123412341234
|
|
validUntil: "2023-01-01"
|
|
alias: alias
|
|
- ovChipCardId: 2
|
|
chipCardNumber: 1234123412341235
|
|
validUntil: "2025-01-01"
|
|
alias: alias
|
|
ovPayTokens:
|
|
- ovPayTokenId: 126
|
|
tokenType:
|
|
tokenTypeId: 1
|
|
name: EMV
|
|
xTat: 0115b0df-db38-4702-8811-6f7de00db3ac
|
|
xBot: 71a88843-32b8-4d52-ac25-de2458c47775
|
|
alias: alias
|
|
lastDigits: "5678"
|
|
ovpasNumber: null
|
|
tokenStatus:
|
|
tokenStatusId: 2
|
|
name: Active
|
|
expirationDate: "2025-04-20T17:05:52.000+02:00"
|
|
replacedByTokenId: 1
|
|
- ovPayTokenId: 127
|
|
tokenType:
|
|
tokenTypeId: 2
|
|
name: OV-pas physical
|
|
xTat: 0115b0df-db38-4702-8811-6f7de00db3ac
|
|
xBot: 71a88843-32b8-4d52-ac25-de2458c47775
|
|
alias: alias
|
|
lastDigits: "5674"
|
|
ovpasNumber: OV34568
|
|
tokenStatus:
|
|
tokenStatusId: 2
|
|
name: Active
|
|
expirationDate: "2024-04-20T17:05:52.000+02:00"
|
|
replacedByTokenId: 2
|
|
auditTrails:
|
|
- auditTrailId: 1
|
|
customerProfileId: 1
|
|
action: insert
|
|
user: user
|
|
timestamp: "2023-10-20T17:05:52.000+02:00"
|
|
correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
|
|
- customerProfileId: 2
|
|
customerNumber: 1000002
|
|
debtorNumber: TEST001
|
|
debtorStatus:
|
|
debtorStatusId: 1
|
|
name: Inactive
|
|
vascustomerNumber: CST005
|
|
customerPreference:
|
|
language:
|
|
languageId: 1
|
|
name: Dutch
|
|
ietfCode: nl-NL
|
|
iso639Code: nl
|
|
customerStatusInstances:
|
|
- customerStatus:
|
|
name: Active
|
|
customerStatusId: 2
|
|
fromInclusive: "2022-08-04 15:01:00.000"
|
|
toInclusive: "2022-08-05 15:01:00.000"
|
|
- customerStatus:
|
|
name: Blocked
|
|
customerStatusId: 3
|
|
fromInclusive: "2022-08-05 15:01:00.000"
|
|
toInclusive: null
|
|
person:
|
|
birthname: Pieter
|
|
surname: De valen
|
|
prefix: De
|
|
suffix: PhD
|
|
dateOfBirth: "2002-10-29"
|
|
emailAddresses: TEST@HTM.NL
|
|
address:
|
|
- addressId: 1
|
|
street: mystreet
|
|
houseNumber: 1
|
|
houseNumberSuffix: null
|
|
postalCode: 0000AA
|
|
city: Den Haag
|
|
country: NL
|
|
isPreferred: false
|
|
addressType:
|
|
addressTypeId: 2
|
|
name: Office
|
|
- addressId: 2
|
|
street: mystreet 33
|
|
houseNumber: 1
|
|
houseNumberSuffix: null
|
|
postalCode: 4455CA
|
|
city: Den BOSCH
|
|
country: NL
|
|
isPreferred: true
|
|
addressType:
|
|
addressTypeId: 2
|
|
name: Office
|
|
phones:
|
|
- phoneId: 1
|
|
number: "3112345678"
|
|
countryCode: "+31"
|
|
phoneType:
|
|
phoneTypeId: 1
|
|
name: Home
|
|
isPreferred: true
|
|
- phoneId: 2
|
|
number: "333225588"
|
|
countryCode: "+31"
|
|
phoneType:
|
|
phoneTypeId: 2
|
|
name: Work
|
|
isPreferred: false
|
|
ovChipcards:
|
|
- ovChipCardId: 1
|
|
chipCardNumber: 1234123412341234
|
|
validUntil: "2023-01-01"
|
|
alias: alias
|
|
- ovChipCardId: 2
|
|
chipCardNumber: 1234123412341235
|
|
validUntil: "2025-01-01"
|
|
alias: alias
|
|
ovPayTokens:
|
|
- ovPayTokenId: 126
|
|
tokenType:
|
|
tokenTypeId: 2
|
|
name: OV-pas physical
|
|
xTat: 0115b0df-db38-4702-8811-6f7de00db3ac
|
|
xBot: 71a88843-32b8-4d52-ac25-de2458c47775
|
|
alias: alias
|
|
lastDigits: "5678"
|
|
ovpasNumber: OV34567
|
|
tokenStatus:
|
|
tokenStatusId: 2
|
|
name: active
|
|
expirationDate: "2025-04-20T17:05:52.000+02:00"
|
|
replacedByTokenId: 1
|
|
- ovPayTokenId: 127
|
|
tokenType:
|
|
tokenTypeId: 2
|
|
name: OV-pas physical
|
|
xTat: 0115b0df-db38-4702-8811-6f7de00db3ac
|
|
xBot: 71a88843-32b8-4d52-ac25-de2458c47775
|
|
alias: alias
|
|
lastDigits: "5674"
|
|
ovpasNumber: OV34568
|
|
tokenStatus:
|
|
tokenStatusId: 2
|
|
name: active
|
|
expirationDate: "2024-04-20T17:05:52.000+02:00"
|
|
replacedByTokenId: 2
|
|
auditTrails:
|
|
- auditTrailId: 1
|
|
customerProfileId: 1
|
|
action: insert
|
|
user: user
|
|
timestamp: "2023-10-20T17:05:52.000+02:00"
|
|
correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
|
|
href: null
|
|
400:
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/400Response"
|
|
401:
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/401Response"
|
|
404:
|
|
description: Not Found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/404Response"
|
|
500:
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/500Response"
|
|
security:
|
|
- default: []
|
|
x-auth-type: Application & Application User
|
|
x-throttling-tier: Unlimited
|
|
post:
|
|
tags:
|
|
- ABTCustomers
|
|
summary: Create a customer profile
|
|
description: >-
|
|
Create a customer profile in the ABT database with status ACTIVE and
|
|
debtorStatus Inactive with a start date based on the timestamp of this
|
|
post call.
|
|
|
|
- Requested format for postal code:
|
|
- 0000AA
|
|
parameters: []
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/postCustomerProfile"
|
|
examples:
|
|
minimumProfile:
|
|
value: {}
|
|
basicCustomerProfile:
|
|
value:
|
|
debtorStatusId: 2
|
|
person:
|
|
birthname: Jan
|
|
surname: Jansen
|
|
emailAddress: j.jansen@hatseflats.nl
|
|
fullCustomerProfile:
|
|
value:
|
|
customerPreference:
|
|
languageId: 1
|
|
debtorStatusId: 2
|
|
person:
|
|
birthname: Jan
|
|
surname: Jansen
|
|
prefix: dhr
|
|
suffix: jr
|
|
dateOfBirth: "1970-01-01"
|
|
emailAddress: j.jansen@hatseflats.nl
|
|
addresses:
|
|
- street: Laan van Meerdervoort
|
|
houseNumber: 5
|
|
houseNumberSuffix: B
|
|
postalCode: 2500AA
|
|
city: Den Haag
|
|
country: NL
|
|
isPreferred: true
|
|
addressTypeId: 1
|
|
- street: Beeklaan
|
|
houseNumber: 30
|
|
houseNumberSuffix: B
|
|
postalCode: 2500AA
|
|
city: Den Haag
|
|
country: NL
|
|
isPreferred: false
|
|
addressTypeId: 2
|
|
phones:
|
|
- number: "6123456789"
|
|
countryCode: "+31"
|
|
phoneTypeId: 1
|
|
isPreferred: true
|
|
- number: "7012345678"
|
|
countryCode: "+31"
|
|
phoneTypeId: 2
|
|
isPreferred: false
|
|
required: true
|
|
responses:
|
|
"201":
|
|
description: Successful created a customer profile
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/postCustomerProfileCustomerNumberResponse"
|
|
"400":
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/400Response"
|
|
examples:
|
|
InvalidPostalCodeFormatForAddressCountryNLError:
|
|
value:
|
|
code: "400"
|
|
type: Bad Request - Input parameters
|
|
message: Invalid input parameter for country validation (NL).
|
|
description: >-
|
|
ECMA 262 regex \"^(?:\\d{4}[A-Z]{2})?$\" does not match
|
|
input string \"2500 AA\
|
|
MissingRequiredParameterError:
|
|
value:
|
|
code: "400"
|
|
type: Bad Request - Input parameters
|
|
message: Invalid input parameter.
|
|
description: >-
|
|
object has missing required properties
|
|
([\"addressTypeId\"])
|
|
InvalidDataTypeError:
|
|
value:
|
|
code: "400"
|
|
type: Bad Request - Input parameters
|
|
message: Invalid input parameter.
|
|
description: >-
|
|
Bad Request - please verify the value for the following
|
|
field \"id\
|
|
"401":
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/401Response"
|
|
"409":
|
|
description: Conflict
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/409Response"
|
|
examples:
|
|
emailAddressAlreadyPresent:
|
|
value:
|
|
code: "409"
|
|
type: Conflict
|
|
message: emailAddress already exists.
|
|
description: ""
|
|
"500":
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/500Response"
|
|
security:
|
|
- default: []
|
|
x-auth-type: Application & Application User
|
|
x-throttling-tier: Unlimited
|
|
/ovpaytokens:
|
|
get:
|
|
tags:
|
|
- Token
|
|
summary: Find OVpay tokens.
|
|
description: Find OVpay tokens.
|
|
parameters:
|
|
- in: query
|
|
name: ovPayTokenId
|
|
schema:
|
|
type: integer
|
|
example: 71
|
|
required: false
|
|
description: The id of the token.
|
|
- in: query
|
|
name: customerProfileId
|
|
schema:
|
|
type: integer
|
|
example: 12
|
|
required: false
|
|
description: The id of the customer profile.
|
|
- in: query
|
|
name: tokenTypeId
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
example: [1, 2]
|
|
explode: false
|
|
required: false
|
|
description: Filter on possible token types. 1 = EMV, 2 = OV-pas physical, 3 = OV-pas digital.
|
|
- in: query
|
|
name: xTat
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
example: 700b0516-bf8b-4e6e-bf16-13bfeb078e23
|
|
explode: false
|
|
required: false
|
|
description: The XTAT of the token.
|
|
- in: query
|
|
name: xBot
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
example: de1a9a7a-a777-4473-889c-44a3bb07daae
|
|
explode: false
|
|
required: false
|
|
description: The XBOT of the token.
|
|
- in: query
|
|
name: alias
|
|
schema:
|
|
type: string
|
|
example: Mijn OV-pas
|
|
required: false
|
|
description: The alias of the token.
|
|
- in: query
|
|
name: lastDigits
|
|
schema:
|
|
type: integer
|
|
example: 3301
|
|
required: false
|
|
description: The last digits of the token.
|
|
- in: query
|
|
name: ovpasNumber
|
|
schema:
|
|
type: string
|
|
example: 63AW974
|
|
required: false
|
|
description: Number of the OVpas.
|
|
- in: query
|
|
name: tokenStatusId
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
example: [1, 2]
|
|
explode: false
|
|
required: false
|
|
description: Filter on possible token statuses. 1 = expired, 2 = active, 3 = replaced, 4 = inactive, 5 = suspended, 6 = removed by customer.
|
|
- in: query
|
|
name: expirationDate
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: 2029-03-22T09:00:00
|
|
required: false
|
|
description: The expiration date of the token.
|
|
- in: query
|
|
name: replacedByTokenId
|
|
schema:
|
|
type: integer
|
|
example: 12
|
|
required: false
|
|
description: The id of the token that replaced this token.
|
|
responses:
|
|
200:
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example:
|
|
{
|
|
"ovPayTokens":
|
|
[
|
|
{
|
|
"ovPayTokenId": 71,
|
|
"customerProfileId": 12,
|
|
"tokenType":
|
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
|
"xTat": "700b0516-bf8b-4e6e-bf16-13bfeb078e23",
|
|
"xBot": "de1a9a7a-a777-4473-889c-44a3bb07daae",
|
|
"alias": "Mijn OV-pas",
|
|
"lastDigits": 3301,
|
|
"ovpasNumber": "63AW974",
|
|
"tokenStatus": { "tokenStatusId": 2, "name": "Active" },
|
|
"expirationDate": "2029-03-22T09:00:00",
|
|
"replacedByTokenId": 12,
|
|
},
|
|
],
|
|
"href": null,
|
|
}
|
|
/directdebitmandates:
|
|
get:
|
|
tags:
|
|
- Mandates
|
|
summary: Find direct debit mandates.
|
|
description: Find direct debit mandates.
|
|
parameters:
|
|
- in: query
|
|
name: directDebitMandateId
|
|
schema:
|
|
type: integer
|
|
example: 71
|
|
required: false
|
|
description: The id of the direct debit mandate.
|
|
- in: query
|
|
name: customerProfileId
|
|
schema:
|
|
type: integer
|
|
example: 12
|
|
required: false
|
|
description: The id of the customer related to the mandate.
|
|
- in: query
|
|
name: billingInformationId
|
|
schema:
|
|
type: integer
|
|
example: 51
|
|
required: false
|
|
description: The id of the billing information related to the mandate.
|
|
- in: query
|
|
name: directDebitMandateTypeId
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
example: [1, 2]
|
|
explode: false
|
|
required: false
|
|
description: The id of the direct debit mandate type. 1 = Paper contract, 2 = PIN transaction, 3 = SEPA eMandate, 4 = Digital signature, 5 = iDEAL transaction.
|
|
- in: query
|
|
name: mandateAddressId
|
|
schema:
|
|
type: integer
|
|
example: 21
|
|
required: false
|
|
description: The id of the address related to the mandate.
|
|
- in: query
|
|
name: createdBefore
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: 2020-12-31T23:59:59
|
|
required: false
|
|
description: Filter on created before.
|
|
- in: query
|
|
name: createdAfter
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: 2020-01-01T00:00:00
|
|
required: false
|
|
description: Filter on created after.
|
|
- in: query
|
|
name: mandateReference
|
|
schema:
|
|
type: string
|
|
example: CORE01
|
|
required: false
|
|
description: Filter on mandate reference.
|
|
- in: query
|
|
name: mandateState
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: [SIGNED, PREPARED]
|
|
explode: false
|
|
required: false
|
|
description: Filter on possible states of the mandate. SIGNED = signed, PREPARED = prepared, CANCELLED = cancelled.
|
|
- in: query
|
|
name: updatedBefore
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: 2020-12-31T23:59:59
|
|
required: false
|
|
description: Filter on updated before.
|
|
- in: query
|
|
name: updatedAfter
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
example: 2020-01-01T00:00:00
|
|
required: false
|
|
description: Filter on updated after.
|
|
responses:
|
|
200:
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/unavailable"
|
|
example:
|
|
[
|
|
{
|
|
"directDebitMandateId": 71,
|
|
"customerProfileId": 12,
|
|
"billingInformationId": 51,
|
|
"directDebitMandateType":
|
|
{
|
|
"directDebitMandateTypeId": 1,
|
|
"name": "import",
|
|
"description": "import",
|
|
},
|
|
"mandateAddressId": 21,
|
|
"created": "2024-03-22T08:55:00",
|
|
"mandateReference": "CORE01",
|
|
"mandateState": "SINGED",
|
|
"updateTimestamp": "2024-03-22T08:55:00",
|
|
},
|
|
]
|
|
components:
|
|
securitySchemes:
|
|
default:
|
|
type: oauth2
|
|
flows:
|
|
implicit:
|
|
authorizationUrl: https://services.acc.api.htm.nl/authorize
|
|
scopes: {}
|
|
schemas:
|
|
unavailable:
|
|
type: object
|
|
rfc9457:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
format: url
|
|
example: https://example.com/probs/out-of-credit
|
|
title:
|
|
type: string
|
|
example: You do not have enough credit.
|
|
detail:
|
|
type: string
|
|
example: Your current balance is 30, but that costs 50.
|
|
instance:
|
|
type: string
|
|
example: /account/12345/msgs/abc
|
|
balance:
|
|
type: string
|
|
example: 30
|
|
accounts:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- /account/12345
|
|
- /account/67890
|
|
getAuditTrails:
|
|
type: object
|
|
properties:
|
|
auditTrailId:
|
|
type: integer
|
|
customerProfileId:
|
|
type: integer
|
|
action:
|
|
type: string
|
|
user:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
format: datetime
|
|
correlationId:
|
|
type: string
|
|
getOvPayTokens:
|
|
type: object
|
|
properties:
|
|
ovPayTokenId:
|
|
type: integer
|
|
tokenTypeId:
|
|
type: integer
|
|
xTat:
|
|
type: string
|
|
xBot:
|
|
type: string
|
|
alias:
|
|
type: string
|
|
lastDigits:
|
|
type: integer
|
|
ovpasNumber:
|
|
type: string
|
|
tokenStatusId:
|
|
type: integer
|
|
expirationDate:
|
|
type: string
|
|
replacedByTokenId:
|
|
type: integer
|
|
getOvChipcards:
|
|
type: object
|
|
properties:
|
|
ovChipCardId:
|
|
type: integer
|
|
chipCardNumber:
|
|
type: integer
|
|
validUntil:
|
|
type: string
|
|
format: date
|
|
alias:
|
|
type: string
|
|
getCustomerStatusInstance:
|
|
type: object
|
|
properties:
|
|
customerStatus:
|
|
$ref: "#/components/schemas/getCustomerStatus"
|
|
fromInclusive:
|
|
type: string
|
|
format: date
|
|
toInclusive:
|
|
type: string
|
|
format: date
|
|
getCustomerStatus:
|
|
type: object
|
|
properties:
|
|
customerStatusId:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
getDebtorStatus:
|
|
type: object
|
|
properties:
|
|
debtorStatusId:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
getPerson:
|
|
type: object
|
|
properties:
|
|
birthname:
|
|
type: string
|
|
surname:
|
|
type: string
|
|
prefix:
|
|
type: string
|
|
suffix:
|
|
type: string
|
|
dateOfBirth:
|
|
type: string
|
|
format: date
|
|
emailAddresses:
|
|
type: string
|
|
format: email
|
|
addresses:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/getAddresses"
|
|
phones:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/getPhones"
|
|
getAddresses:
|
|
type: object
|
|
properties:
|
|
addressId:
|
|
type: integer
|
|
street:
|
|
type: string
|
|
houseNumber:
|
|
type: integer
|
|
houseNumberSuffix:
|
|
type: string
|
|
postalCode:
|
|
type: string
|
|
city:
|
|
type: string
|
|
country:
|
|
type: string
|
|
isPreferred:
|
|
type: boolean
|
|
addressType:
|
|
$ref: "#/components/schemas/getAddressType"
|
|
getAddressType:
|
|
type: object
|
|
properties:
|
|
addressTypeId:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
getPhones:
|
|
type: object
|
|
properties:
|
|
phoneId:
|
|
type: integer
|
|
number:
|
|
type: string
|
|
countryCode:
|
|
type: string
|
|
phoneType:
|
|
$ref: "#/components/schemas/getPhoneType"
|
|
isPreferred:
|
|
type: boolean
|
|
getPhoneType:
|
|
type: object
|
|
properties:
|
|
phoneTypeId:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
getCustomerPreference:
|
|
type: object
|
|
properties:
|
|
language:
|
|
$ref: "#/components/schemas/getCustomerLanguage"
|
|
getCustomerLanguage:
|
|
type: object
|
|
properties:
|
|
languageId:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
ietfCode:
|
|
type: string
|
|
iso639Code:
|
|
type: string
|
|
getCustomerProfiles:
|
|
type: object
|
|
properties:
|
|
customers:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/getCustomerProfile"
|
|
getCustomerProfile:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
debtorNumber:
|
|
type: integer
|
|
debtorStatus:
|
|
$ref: "#/components/schemas/getDebtorStatus"
|
|
vascustomerNumber:
|
|
type: integer
|
|
customerPreference:
|
|
$ref: "#/components/schemas/getCustomerPreference"
|
|
customerStatusInstances:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/getCustomerStatusInstance"
|
|
person:
|
|
$ref: "#/components/schemas/getPerson"
|
|
ovChipcards:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/getOvChipcards"
|
|
ovPayTokens:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/getOvPayTokens"
|
|
auditTrails:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/getAuditTrails"
|
|
ovPayTokenEntity:
|
|
type: object
|
|
properties:
|
|
tokenType:
|
|
type: object
|
|
properties:
|
|
tokenTypeId:
|
|
type: string
|
|
name:
|
|
type: string
|
|
xTat:
|
|
type: string
|
|
xBot:
|
|
type: string
|
|
alias:
|
|
type: string
|
|
lastDigits:
|
|
type: integer
|
|
ovpasNumber:
|
|
type: string
|
|
tokenStatus:
|
|
type: object
|
|
properties:
|
|
tokenStatusId:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
expirationDate:
|
|
type: string
|
|
replacedByTokenId:
|
|
type: integer
|
|
postPhone:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
$ref: "#/components/schemas/phonePostEntity"
|
|
personEntity:
|
|
type: object
|
|
properties:
|
|
birthname:
|
|
type: string
|
|
surname:
|
|
type: string
|
|
prefix:
|
|
type: string
|
|
suffix:
|
|
type: string
|
|
dateOfBirth:
|
|
type: string
|
|
format: date
|
|
emailAddress:
|
|
type: string
|
|
addressPostEntity:
|
|
required:
|
|
- addressTypeId
|
|
- city
|
|
- country
|
|
- houseNumber
|
|
- postalCode
|
|
- street
|
|
type: object
|
|
properties:
|
|
street:
|
|
type: string
|
|
houseNumber:
|
|
type: integer
|
|
houseNumberSuffix:
|
|
type: string
|
|
postalCode:
|
|
type: string
|
|
city:
|
|
type: string
|
|
country:
|
|
type: string
|
|
isPreferred:
|
|
type: boolean
|
|
addressTypeId:
|
|
type: integer
|
|
phonePostEntity:
|
|
required:
|
|
- countryCode
|
|
- number
|
|
- phoneTypeId
|
|
type: object
|
|
properties:
|
|
number:
|
|
type: string
|
|
countryCode:
|
|
type: string
|
|
phoneTypeId:
|
|
type: integer
|
|
isPreferred:
|
|
type: boolean
|
|
defaultCustomerProfileResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
postCustomerProfile:
|
|
type: object
|
|
properties:
|
|
debtorStatusId:
|
|
type: integer
|
|
customerPreference:
|
|
$ref: '#/components/schemas/customerPreferencesEntity'
|
|
person:
|
|
$ref: '#/components/schemas/personEntity'
|
|
addresses:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/addressPostEntity'
|
|
phones:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/phonePostEntity'
|
|
customerPreferencesEntity:
|
|
type: object
|
|
properties:
|
|
languageId:
|
|
type: string
|
|
postCustomerProfileCustomerNumberResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
postCustomerProfileAddressResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
addressId:
|
|
type: integer
|
|
example: 1
|
|
postCustomerProfilePhoneResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
phoneId:
|
|
type: integer
|
|
example: 1
|
|
postCustomerProfileBillingInformationResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
billingInformationId:
|
|
type: integer
|
|
example: 1
|
|
postCustomerProfileDirectDebitMandateResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
directDebitMandateId:
|
|
type: integer
|
|
example: 1
|
|
postCustomerProfileOvChipCardResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
ovChipCardId:
|
|
type: integer
|
|
example: 1
|
|
patchCustomerProfileResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
patchCustomerPreferencesResponse:
|
|
type: object
|
|
properties:
|
|
customerNumber:
|
|
type: integer
|
|
example: 10000001
|
|
ovPayTokenGetEntity:
|
|
type: object
|
|
properties:
|
|
ovPayTokenId:
|
|
type: integer
|
|
example: 1
|
|
tokenTypeId:
|
|
type: integer
|
|
example: 1
|
|
xTat:
|
|
type: string
|
|
example: 0044831b-8e80c-4f82-r989a-8d85ee1996
|
|
xBot:
|
|
type: string
|
|
example: 0044831b-8e80c-4f82-r989a-8d85ee1996
|
|
lastDigits:
|
|
type: string
|
|
example: "0001"
|
|
ovpasNumber:
|
|
type: integer
|
|
example: 1
|
|
alias:
|
|
type: string
|
|
example: alias
|
|
tokenStatusId:
|
|
type: integer
|
|
expirationDate:
|
|
type: string
|
|
replacedByTokenId:
|
|
type: integer
|
|
getCustomerProfileOvPayTokenResponse:
|
|
type: object
|
|
properties:
|
|
ovPayToken:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ovPayTokenGetEntity"
|
|
postCustomerProfileOvPayTokenResponse:
|
|
type: object
|
|
properties:
|
|
ovPaytoken:
|
|
type: object
|
|
example: 10000001
|
|
ovPayTokenId:
|
|
type: integer
|
|
example: 1
|
|
400Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "400"
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Bad Request
|
|
description:
|
|
type: string
|
|
example: >-
|
|
'Bad Request: Input parameters missing! Please fill in at least 1
|
|
valid input parameter.
|
|
401Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "900901"
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Invalid Credentials
|
|
description:
|
|
type: string
|
|
example: >-
|
|
Invalid Credentials. Make sure you have provided the correct
|
|
security credentials
|
|
404Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "404"
|
|
type:
|
|
type: string
|
|
example: Status report
|
|
message:
|
|
type: string
|
|
example: Not Found
|
|
description:
|
|
type: string
|
|
example: The requested resource is not available.
|
|
409Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "409"
|
|
type:
|
|
type: string
|
|
example: Conflict
|
|
message:
|
|
type: string
|
|
example: Entry already exists
|
|
description:
|
|
type: string
|
|
422Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "422"
|
|
type:
|
|
type: string
|
|
example: Unprocessable entity
|
|
message:
|
|
type: string
|
|
example: >-
|
|
Forbidden state transition requested! From Active to Cleared not
|
|
allowed.
|
|
description:
|
|
type: string
|
|
500Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "500"
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Internal Server Error
|
|
description:
|
|
type: string
|