diff --git a/src/java/rabbitmq-poc/.gitignore b/src/java/rabbitmq-poc/.gitignore
new file mode 100644
index 0000000..fc3f89c
--- /dev/null
+++ b/src/java/rabbitmq-poc/.gitignore
@@ -0,0 +1,39 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/src/java/rabbitmq-poc/pom.xml b/src/java/rabbitmq-poc/pom.xml
new file mode 100644
index 0000000..ef24740
--- /dev/null
+++ b/src/java/rabbitmq-poc/pom.xml
@@ -0,0 +1,49 @@
+
+ 4.0.0
+ nl.ovpay
+ rabbitmq
+ 1.0-SNAPSHOT
+ OVpay - RabbitMQ POC
+
+
+ com.rabbitmq
+ amqp-client
+ 5.23.0
+
+
+
+
+ org.apache.logging.log4j
+ log4j-api
+ 2.23.1
+
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.23.1
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ 2.23.1
+
+
+ org.json
+ json
+ 20240303
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 11
+ 11
+
+
+
+
+
diff --git a/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/DummyX509TrustManager.java b/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/DummyX509TrustManager.java
new file mode 100644
index 0000000..aa92afc
--- /dev/null
+++ b/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/DummyX509TrustManager.java
@@ -0,0 +1,40 @@
+package nl.ovpay.queue;
+
+import java.security.cert.X509Certificate;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+public final class DummyX509TrustManager implements X509TrustManager {
+
+ private static DummyX509TrustManager INSTANCE;
+
+ private DummyX509TrustManager() {
+ // prevent instantiation
+ }
+
+ public static DummyX509TrustManager getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new DummyX509TrustManager();
+ }
+ return INSTANCE;
+ }
+
+ public static TrustManager[] getDummyArray() {
+ if (INSTANCE == null) {
+ INSTANCE = new DummyX509TrustManager();
+ }
+ return new TrustManager[] { INSTANCE };
+ }
+
+ public X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
+
+ public void checkClientTrusted(X509Certificate[] certs, String authType) {
+ }
+
+ public void checkServerTrusted(X509Certificate[] certs, String authType) {
+ }
+}
+
+
diff --git a/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/Helpers.java b/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/Helpers.java
new file mode 100644
index 0000000..fce38e7
--- /dev/null
+++ b/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/Helpers.java
@@ -0,0 +1,90 @@
+package nl.ovpay.queue;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.StringJoiner;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+
+import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public final class Helpers {
+
+ private static Logger LOGGER = LoggerFactory.getLogger(Helpers.class);
+
+ public static String getAlertId(String string) throws IOException {
+ return new JSONObject(string).get("alertId").toString();
+ }
+
+ public static String getXbot(String string) throws IOException {
+ return new JSONObject(string).get("xbot").toString();
+ }
+
+ public static void getAlertDetails(String alertId, String xBot, String gboBearerToken) throws Exception {
+ SSLContext sc = SSLContext.getInstance("SSL");
+ sc.init(null, DummyX509TrustManager.getDummyArray(), new java.security.SecureRandom());
+ HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+
+
+ URL url = new URL("https://api.sbx.idbt.translink.nl/api/v3/id-media/tokens/xbot/" + xBot + "/alerts/" + alertId + "/details");
+ URLConnection con = url.openConnection();
+ HttpURLConnection http = (HttpURLConnection)con;
+ http.setRequestMethod("GET");
+ http.setDoOutput(true);
+ http.setRequestProperty("Authorization", "Bearer " + gboBearerToken);
+ http.connect();
+
+ try(InputStream is = http.getInputStream()) {
+ String response = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ LOGGER.info("GBO API 8851 alert details response for xBOT " + xBot + ": \n" + new JSONObject(response).toString(2));
+ }
+ }
+
+ public static String getGboBearerToken() throws IOException, NoSuchAlgorithmException, KeyManagementException {
+ SSLContext sc = SSLContext.getInstance("SSL");
+ sc.init(null, DummyX509TrustManager.getDummyArray(), new java.security.SecureRandom());
+ HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+
+ URL url = new URL("https://api.sbx.idbt.translink.nl/api/v3/auth/oauth2/token");
+ URLConnection con = url.openConnection();
+ HttpURLConnection http = (HttpURLConnection)con;
+ http.setRequestMethod("POST");
+ http.setDoOutput(true);
+
+ Map arguments = new HashMap<>();
+ arguments.put("client_id", "HTM-auth-client");
+ arguments.put("client_secret", "HTM-auth-827kJJ");
+ arguments.put("grant_type", "client_credentials");
+ StringJoiner sj = new StringJoiner("&");
+ for(Map.Entry entry : arguments.entrySet())
+ sj.add(URLEncoder.encode(entry.getKey(), "UTF-8") + "="
+ + URLEncoder.encode(entry.getValue(), "UTF-8"));
+ byte[] out = sj.toString().getBytes(StandardCharsets.UTF_8);
+ int length = out.length;
+
+ http.setFixedLengthStreamingMode(length);
+ http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+ http.connect();
+ try(OutputStream os = http.getOutputStream()) {
+ os.write(out);
+ }
+ try(InputStream is = http.getInputStream()) {
+ String response = new String(is.readAllBytes(), StandardCharsets.UTF_8);
+ JSONObject json = new JSONObject(response);
+ LOGGER.info("Got GBO bearer token: " + json.get("access_token"));
+ return json.get("access_token").toString();
+ }
+ }
+}
diff --git a/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/RabbitConnector.java b/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/RabbitConnector.java
new file mode 100644
index 0000000..a408dc0
--- /dev/null
+++ b/src/java/rabbitmq-poc/src/main/java/nl/ovpay/queue/RabbitConnector.java
@@ -0,0 +1,68 @@
+package nl.ovpay.queue;
+
+import java.util.Map;
+
+import com.rabbitmq.client.AMQP;
+import com.rabbitmq.client.Channel;
+import com.rabbitmq.client.Connection;
+import com.rabbitmq.client.ConnectionFactory;
+import com.rabbitmq.client.DeliverCallback;
+import com.rabbitmq.client.impl.ForgivingExceptionHandler;
+import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RabbitConnector {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(RabbitConnector.class);
+
+ public static void main(String[] args) throws Exception {
+ ConnectionFactory factory = new ConnectionFactory();
+ factory.setVirtualHost("/");
+ factory.setAutomaticRecoveryEnabled(true);
+ factory.setPort(443);
+ factory.setHost("not.sbx.idbt.translink.nl");
+ factory.setUsername("BEID_3_ALERTS_nZs3");
+ factory.setPassword("VyubhPnczKgTB2zJ");
+ factory.useSslProtocol("TLSv1.2");
+ factory.setExceptionHandler(new ForgivingExceptionHandler());
+ Map configs = factory.getClientProperties();
+ LOGGER.info("Client properties: \n" + new JSONObject(configs).toString(2));
+
+ Connection connection = factory.newConnection();
+ Channel channel = connection.createChannel();
+ DeliverCallback deliverCallback = initDeliverCallback(channel);
+
+ AMQP.Queue.DeclareOk queue = channel.queueDeclarePassive("BEID_3.ALERTS");
+ LOGGER.info(
+ "Declared queue: " + queue.getQueue() + ", consumer count: " + queue.getConsumerCount() + ", message count: " +
+ queue.getMessageCount());
+
+ // Second parameter controls autoAck - false = no autoAck = messages are only deleted from queue after consumer acknowledges them
+ channel.basicConsume(queue.getQueue(), false, deliverCallback, consumerTag -> {});
+ LOGGER.info("Waiting for messages from the queue. To exit press CTRL+C");
+ }
+
+ private static DeliverCallback initDeliverCallback(Channel channel) {
+ return (consumerTag, delivery) -> {
+ final String message = new String(delivery.getBody(), "UTF-8");
+ LOGGER.info("Received from message from the queue: \n " + new JSONObject(message).toString(2));
+
+ LOGGER.info("Acknowledging message with delivery tag: " + delivery.getEnvelope().getDeliveryTag());
+ channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
+ LOGGER.info("Successfully acknowledged message with delivery tag: " + delivery.getEnvelope().getDeliveryTag());
+
+ LOGGER.info("Getting alert details via GBO API 8851...");
+ try {
+ String alertId = Helpers.getAlertId(message);
+ String xBot = Helpers.getXbot(message);
+ String gboBearerToken = Helpers.getGboBearerToken();
+
+ Helpers.getAlertDetails(alertId, xBot, gboBearerToken);
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ };
+ }
+}
diff --git a/src/java/rabbitmq-poc/src/main/resources/log4j2.xml b/src/java/rabbitmq-poc/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..47eb2d8
--- /dev/null
+++ b/src/java/rabbitmq-poc/src/main/resources/log4j2.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/openapi/contracts/contracts-crud.yaml b/src/openapi/contracts/contracts-crud.yaml
index 09e1de6..0c3e90e 100644
--- a/src/openapi/contracts/contracts-crud.yaml
+++ b/src/openapi/contracts/contracts-crud.yaml
@@ -27,7 +27,7 @@ paths:
type: integer
example: 1
required: false
- description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated.
+ description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated, 6 = pending cancellation, 7 = pending termination.
responses:
"200":
description: OK
@@ -53,7 +53,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"created": "2024-08-01 15:01:00.000",
},
{
@@ -70,7 +69,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"created": "2024-08-01 15:01:00.000",
},
],
@@ -98,7 +96,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 0,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"contractVersions":
[
{
@@ -152,7 +149,7 @@ paths:
type: integer
explode: false
required: false
- description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated.
+ description: Filter on possible contract status. 1 = new, 2 = active, 3 = suspended, 4 = cancelled, 5 = terminated, 6 = pending cancellation, 7 = pending termination.
- in: query
name: billingDay
schema:
@@ -206,7 +203,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"contractInvoices":
[
{
@@ -265,7 +261,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"contractInvoices":
[
{
@@ -351,7 +346,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"contractVersions":
[
{
@@ -429,7 +423,6 @@ paths:
"productName": "HTM 20% korting 2024",
"billingDay": 15,
"highestInvoiceTerm": 2,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
},
}
responses:
@@ -878,6 +871,8 @@ paths:
{ "contractStatusId": 3, "name": "suspended" },
{ "contractStatusId": 4, "name": "cancelled" },
{ "contractStatusId": 5, "name": "terminated" },
+ { "contractStatusId": 6, "name": "pending cancellation" },
+ { "contractStatusId": 7, "name": "pending termination" },
],
}
/actiontypes:
@@ -892,7 +887,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/ContractStatus"
+ $ref: "#/components/schemas/ActionType"
example:
{
"actionTypes":
@@ -957,10 +952,6 @@ components:
highestInvoiceTerm:
type: integer
example: 1
- xSpit:
- type: string
- format: uuid
- example: 1c345237-4d84-47f0-93c2-7b94338e3355
contractVersions:
type: array
items:
@@ -1077,7 +1068,7 @@ components:
example: 2
name:
type: string
- enum: [new, active, suspended, cancelled, terminated]
+ enum: [new, active, suspended, cancelled, terminated, pending cancellation, pending termination]
example: active
ActionType:
type: object
diff --git a/src/openapi/contracts/contracts-se.yaml b/src/openapi/contracts/contracts-se.yaml
index 98ac462..934903f 100644
--- a/src/openapi/contracts/contracts-se.yaml
+++ b/src/openapi/contracts/contracts-se.yaml
@@ -43,7 +43,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"created": "2024-08-01 15:01:00.000",
},
{
@@ -59,7 +58,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"created": "2024-08-01 15:01:00.000",
},
]
@@ -128,7 +126,6 @@ paths:
"termDuration": "P0Y1M0D",
"billingDay": 15,
"highestInvoiceTerm": 1,
- "xSpit": "1c345237-4d84-47f0-93c2-7b94338e3355",
"contractVersions":
[
{
diff --git a/src/openapi/customers/customers-crud-v2.yaml b/src/openapi/customers/customers-crud-v2.yaml
new file mode 100644
index 0000000..72ef1eb
--- /dev/null
+++ b/src/openapi/customers/customers-crud-v2.yaml
@@ -0,0 +1,285 @@
+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/v1
+paths:
+ /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:
+ bearerToken:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+ 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
diff --git a/src/openapi/customers/customers.yaml b/src/openapi/customers/customers.yaml
new file mode 100644
index 0000000..65a9763
--- /dev/null
+++ b/src/openapi/customers/customers.yaml
@@ -0,0 +1,5376 @@
+openapi: 3.0.1
+info:
+ title: ABTCustomers
+ version: '1.0'
+servers:
+ - url: https://services.acc.api.htm.nl/abt/abtcustomers/1.0
+ - url: http://services.acc.api.htm.nl/abt/abtcustomers/1.0
+security:
+ - default: []
+tags:
+ - name: ABTCustomers
+ - name: ABTCustomersSelfService
+ - name: ABTCustomersFinancials
+ - name: ABTCustomersFinancialsSelfService
+paths:
+ /customers/{customerNumber}/financials/directdebitmandates/{directDebitMandateId}:
+ patch:
+ tags:
+ - ABTCustomersFinancials
+ summary: Modify direct debit mandate information for a customer profile.
+ description: Modify direct debit mandate for a customer profile.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: directDebitMandateId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/directDebitMandatePatch'
+ examples:
+ updateFullDirectDebitMandate:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ billingInformationId: 1
+ mandateAddressId: 2
+ mandateReference: Dit is een test Reference
+ mandateState: SIGNED
+ updateDirectDebitMandateType:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ updateBillingInformationId:
+ value:
+ directDebitMandate:
+ billingInformationId: 2
+ updateMandateAddressId:
+ value:
+ directDebitMandate:
+ mandateAddressId: 3
+ updateMandateReference:
+ value:
+ directDebitMandate:
+ mandateReference: Updated Reference
+ updateMandateState:
+ value:
+ directDebitMandate:
+ mandateState: PREPARED
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/patchCustomerProfileCustomerNumberResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /customers/{customerNumber}/financials/billinginformation/{billingInformationId}:
+ patch:
+ tags:
+ - ABTCustomersFinancials
+ summary: Modify billing information for a customer profile.
+ description: Modify billing information for a customer profile.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: billingInformationId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/billingInformationPatch'
+ examples:
+ updateFullBillingInformation:
+ value:
+ billingInformation:
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ updateIssuerCountry:
+ value:
+ billingInformation:
+ issuerCountry: DE
+ updateIban:
+ value:
+ billingInformation:
+ iban: '0987654321'
+ updateBic:
+ value:
+ billingInformation:
+ bic: DEUT
+ updateSwift:
+ value:
+ billingInformation:
+ swift: UpdatedSwift
+ updateAscription:
+ value:
+ billingInformation:
+ ascription: Updated Ascription
+ updateAlias:
+ value:
+ billingInformation:
+ alias: Updated Alias
+ updateBillingAddressId:
+ value:
+ billingInformation:
+ billingAddressId: 3
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/patchCustomerProfileCustomerNumberResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /customers/{customerNumber}/financials/billinginformation:
+ post:
+ tags:
+ - ABTCustomersFinancials
+ summary: Create billing information for a customer profile.
+ description: Create billing information for a customer profile.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/billingInformationPost'
+ examples:
+ fullFinancialInformation:
+ value:
+ billingInformation:
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ minimumBillingInformation:
+ value:
+ billingInformation:
+ issuerCountry: NL
+ iban: '1234567890'
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/postCustomerProfileBillingInformationResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /customers/{customerNumber}/financials/directdebitmandates:
+ post:
+ tags:
+ - ABTCustomersFinancials
+ summary: Create direct debit mandate for a customer profile.
+ description: Create direct debit mandate for a customer profile.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/directDebitMandatePost'
+ examples:
+ fullFinancialInformation:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ minimumdirectDebitMandate:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/postCustomerProfileDirectDebitMandateResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /customers/{customerNumber}/financials:
+ get:
+ tags:
+ - ABTCustomersFinancials
+ summary: Search for customer profile financial information
+ description: 'search for a customer profile in the ABT database with query parameters '
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '200':
+ description: Successful retrieved a customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/getCustomerProfileFinancials'
+ examples:
+ fullFinancialInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation:
+ - billingInformationId: 1
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ - billingInformationId: 2
+ issuerCountry: BE
+ iban: '0987654321'
+ bic: null
+ swift: null
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 3
+ directDebitMandate:
+ - directDebitMandateId: 1
+ directDebitMandateTypeName: PIN Transaction
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ mandateState: SIGNED
+ updateTimestamp: '2024-01-01T00:00:00.00'
+ - directDebitMandateId: 2
+ directDebitMandateTypeName: Paper Contract
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ mandateState: CANCELLED
+ updateTimestamp: '2024-01-01T00:00:00.00'
+ missingBillingInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation: []
+ directDebitMandate:
+ - directDebitMandateId: 1
+ directDebitMandateTypeName: PIN transaction
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ - directDebitMandateId: 2
+ directDebitMandateTypeName: Paper Contract
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ missingDebitMandateInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation:
+ - billingInformationId: 1
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ - billingInformationId: 2
+ issuerCountry: BE
+ iban: '0987654321'
+ bic: null
+ swift: null
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 3
+ directDebitMandate: []
+ minimumFinancialInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation: []
+ directDebitMandate: []
+ '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
+ /selfservice/customers/{customerNumber}/financials/directdebitmandates/{directDebitMandateId}:
+ patch:
+ tags:
+ - ABTCustomersFinancialsSelfService
+ summary: Modify direct debit mandate information for a customer profile.
+ description: Modify direct debit mandate for a customer profile.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: directDebitMandateId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/directDebitMandatePatch'
+ examples:
+ updateFullDirectDebitMandate:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ billingInformationId: 1
+ mandateAddressId: 2
+ mandateReference: Dit is een test Reference
+ mandateState: SIGNED
+ updateDirectDebitMandateType:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ updateBillingInformationId:
+ value:
+ directDebitMandate:
+ billingInformationId: 2
+ updateMandateAddressId:
+ value:
+ directDebitMandate:
+ mandateAddressId: 3
+ updateMandateReference:
+ value:
+ directDebitMandate:
+ mandateReference: Updated Reference
+ updateMandateState:
+ value:
+ directDebitMandate:
+ mandateState: PREPARED
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/patchCustomerProfileCustomerNumberResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /selfservice/customers/{customerNumber}/financials/billinginformation/{billingInformationId}:
+ patch:
+ tags:
+ - ABTCustomersFinancialsSelfService
+ summary: Modify billing information for a customer profile.
+ description: Modify billing information for a customer profile.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: billingInformationId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/billingInformationPatch'
+ examples:
+ updateFullBillingInformation:
+ value:
+ billingInformation:
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ updateIssuerCountry:
+ value:
+ billingInformation:
+ issuerCountry: DE
+ updateIban:
+ value:
+ billingInformation:
+ iban: '0987654321'
+ updateBic:
+ value:
+ billingInformation:
+ bic: DEUT
+ updateSwift:
+ value:
+ billingInformation:
+ swift: UpdatedSwift
+ updateAscription:
+ value:
+ billingInformation:
+ ascription: Updated Ascription
+ updateAlias:
+ value:
+ billingInformation:
+ alias: Updated Alias
+ updateBillingAddressId:
+ value:
+ billingInformation:
+ billingAddressId: 3
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/patchCustomerProfileCustomerNumberResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /selfservice/customers/{customerNumber}/financials/billinginformation:
+ post:
+ tags:
+ - ABTCustomersFinancialsSelfService
+ summary: Create billing information for a customer profile.
+ description: Create billing information for a customer profile.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/billingInformationPost'
+ examples:
+ fullFinancialInformation:
+ value:
+ billingInformation:
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ minimumBillingInformation:
+ value:
+ billingInformation:
+ issuerCountry: NL
+ iban: '1234567890'
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/postCustomerProfileBillingInformationResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /selfservice/customers/{customerNumber}/financials/directdebitmandates:
+ post:
+ tags:
+ - ABTCustomersFinancialsSelfService
+ summary: Create direct debit mandate for a customer profile.
+ description: Create direct debit mandate for a customer profile.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/directDebitMandatePost'
+ examples:
+ fullFinancialInformation:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ minimumdirectDebitMandate:
+ value:
+ directDebitMandate:
+ directDebitMandateTypeId: 1
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ required: true
+ responses:
+ '201':
+ description: Successful created financial information for a customer profile.
+ content:
+ application/json:
+ schema:
+ $ref: >-
+ #/components/schemas/postCustomerProfileDirectDebitMandateResponse
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ '401':
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401Response'
+ '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
+ /selfservice/customers/{customerNumber}/financials:
+ get:
+ tags:
+ - ABTCustomersFinancialsSelfService
+ summary: Search for customer profile financial information
+ description: 'search for a customer profile in the ABT database with query parameters '
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '200':
+ description: Successful retrieved a customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/getCustomerProfileFinancials'
+ examples:
+ fullFinancialInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation:
+ - billingInformationId: 1
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ updateTimestamp: '2024-01-01T00:00:00.00'
+ - billingInformationId: 2
+ issuerCountry: BE
+ iban: '0987654321'
+ bic: null
+ swift: null
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 3
+ updateTimestamp: '2024-01-01T00:00:00.00'
+ directDebitMandate:
+ - directDebitMandateId: 1
+ directDebitMandateTypeName: PIN transaction
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ mandateState: SIGNED
+ - directDebitMandateId: 2
+ directDebitMandateTypeName: Paper Contract
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ mandateState: CANCELLED
+ missingBillingInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation: []
+ directDebitMandate:
+ - directDebitMandateId: 1
+ directDebitMandateTypeName: PIN transaction
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ - directDebitMandateId: 2
+ directDebitMandateTypeName: Paper Contract
+ billingInformationId: 1
+ mandateAddressId: 2
+ created: '1900-01-01T00:00:00.000'
+ mandateReference: Dit is een test Reference
+ missingDebitMandateInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation:
+ - billingInformationId: 1
+ issuerCountry: NL
+ iban: '1234567890'
+ bic: ING
+ swift: Swift
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 2
+ - billingInformationId: 2
+ issuerCountry: BE
+ iban: '0987654321'
+ bic: null
+ swift: null
+ ascription: Dit is een Test
+ alias: Alias Test
+ billingAddressId: 3
+ directDebitMandate: []
+ minimumFinancialInformation:
+ value:
+ customerNumber: 1000003
+ billingInformation: []
+ directDebitMandate: []
+ '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
+ /customers/list:
+ get:
+ tags:
+ - ABTCustomers
+ summary: Search for customer profile list
+ description: >-
+ search for a customer profile list in the ABT database with query
+ parameters
+ parameters:
+ - name: customerProfileId
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: number
+ - name: customerNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: number
+ - name: emailAddress
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: chipCardNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: ovPasNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: phoneNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: phoneCountryCode
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressStreet
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressHouseNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: number
+ - name: addressHouseNumberSuffix
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressPostalCode
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressCity
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressCountry
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: birthname
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: surname
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: dateOfBirth
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: customerStatus
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Successful retrieved a customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/getCustomerProfileList'
+ examples:
+ fullCustomerProfile:
+ value:
+ Entries:
+ - customerProfileId: 1
+ customerNumber: 1000001
+ debtorNumber: TEST001
+ debtorStateId: 1
+ vascustomerNumber: CST005
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: active
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: '2022-08-05 15:01:00.000'
+ - name: blocked
+ fromInclusive: '2022-08-05 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: Pieter
+ surname: De valen
+ prefix: dhr
+ suffix: De
+ dateOfBirth: '2002-10-29'
+ emailAddress: TEST@HTM.NL
+ address:
+ - addressId: 1
+ street: mystreet
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 0000AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressType: Office
+ - addressId: 2
+ street: mystreet 33
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 4455CA
+ city: Den BOSCH
+ country: NL
+ isPreferred: true
+ addressType: Office
+ phone:
+ - phoneId: 1
+ number: '3112345678'
+ countryCode: NL
+ phoneType: TestNaam
+ isPreferred: true
+ - phoneId: 2
+ number: '333225588'
+ countryCode: ES
+ phoneType: TestNaam
+ isPreferred: false
+ ovChipCard:
+ - ovChipCardId: 1
+ chipCardNumber: 1234123412341234
+ validUntil: '2023-01-01'
+ alias: alias
+ - ovChipCardId: 2
+ chipCardNumber: 1234123412341235
+ validUntil: '2025-01-01'
+ alias: alias
+ ovPayToken:
+ - ovPayTokenId: 126
+ tokenTypeId: 1
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 1
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ - ovPayTokenId: 127
+ tokenTypeId: 1
+ xTat: hhe2830283
+ xBot: jdhd828033
+ alias: alias
+ lastDigits: '5674'
+ ovpasNumber: OV34568
+ tokenStatusId: 1
+ expirationDate: '2024-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 2
+ audit:
+ - auditTrailId: 1
+ customerProfileId: 1
+ action: insert
+ user: user
+ timestamp: '2023-10-20T17:05:52.000+02:00'
+ correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
+ - customerNumber: 1000002
+ debtorNumber: TEST001
+ debtorStateId: 1
+ vascustomerNumber: CST005
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: active
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: '2022-08-05 15:01:00.000'
+ - name: blocked
+ fromInclusive: '2022-08-05 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: Pieter
+ surname: De valen
+ prefix: dhr
+ suffix: De
+ dateOfBirth: '2002-10-29'
+ emailAddress: TEST@HTM.NL
+ address:
+ - addressId: 1
+ street: mystreet
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 0000AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressType: Office
+ - addressId: 2
+ street: mystreet 33
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 4455CA
+ city: Den BOSCH
+ country: NL
+ isPreferred: true
+ addressType: Office
+ phone:
+ - phoneId: 1
+ number: '3112345678'
+ countryCode: NL
+ phoneType: TestNaam
+ isPreferred: true
+ - phoneId: 2
+ number: '333225588'
+ countryCode: ES
+ phoneType: TestNaam
+ isPreferred: false
+ ovChipCard:
+ - ovChipCardId: 1
+ chipCardNumber: 1234123412341234
+ validUntil: '2023-01-01'
+ alias: alias
+ - ovChipCardId: 2
+ chipCardNumber: 1234123412341235
+ validUntil: '2025-01-01'
+ alias: alias
+ ovPayToken:
+ - ovPayTokenId: 126
+ tokenTypeId: 1
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 1
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ - ovPayTokenId: 127
+ tokenTypeId: 1
+ xTat: hhe2830283
+ xBot: jdhd828033
+ alias: alias
+ lastDigits: '5674'
+ ovpasNumber: OV34568
+ tokenStatusId: 1
+ expirationDate: '2024-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 2
+ audit:
+ - 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
+ minimumCustomerProfile:
+ value:
+ Entries:
+ - customerNumber: 1000008
+ debtorNumber: null
+ debtorStateId: null
+ vascustomerNumber: null
+ customerPreference:
+ languageId: null
+ customerStatus:
+ - name: active
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: null
+ surname: null
+ prefix: null
+ suffix: null
+ dateOfBirth: null
+ emailAddress: TEST@TEST1.NL
+ address: []
+ phone: []
+ ovChipCard: []
+ ovPayToken: []
+ audit: []
+ missingPersonDetailsCustomerProfile:
+ value:
+ Entries:
+ - emailAddress: TEST04@HTM.NL
+ customerNumber: 1000005
+ debtorNumber: TEST004
+ debtorStateId: 1
+ vascustomerNumber: CST005
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: inactive
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: Sophie
+ surname: Haardenburg
+ prefix: Mw
+ suffix: null
+ dateOfBirth: 1955-09-05+01:00
+ emailAddress: TEST@TEST1.NL
+ address: []
+ phone: []
+ ovChipCard:
+ - ovChipCardId: 1
+ chipCardNumber: 1234123412341234
+ validUntil: '2023-01-01'
+ alias: alias
+ - ovChipCardId: 2
+ chipCardNumber: 1234123412341235
+ validUntil: '2025-01-01'
+ alias: alias
+ ovPayToken:
+ - ovPayTokenId: 126
+ tokenTypeId: 1
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 1
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ - ovPayTokenId: 127
+ tokenTypeId: 1
+ xTat: hhe2830283
+ xBot: jdhd828033
+ alias: alias
+ lastDigits: '5674'
+ ovpasNumber: OV34568
+ tokenStatusId: 1
+ expirationDate: '2024-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 2
+ audit:
+ - auditTrailId: 1
+ customerProfileId: 1
+ action: insert
+ user: user
+ timestamp: '2023-10-20T17:05:52.000+02:00'
+ correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
+ '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
+ /customers:
+ get:
+ tags:
+ - ABTCustomers
+ summary: Search for customer profile
+ description: 'search for a customer profile in the ABT database with query parameters '
+ parameters:
+ - name: customerProfileId
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: number
+ - name: customerNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: number
+ - name: emailAddress
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: chipCardNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: ovPasNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: phoneNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: phoneCountryCode
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressStreet
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressHouseNumber
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: number
+ - name: addressHouseNumberSuffix
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressPostalCode
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressCity
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: addressCountry
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: birthname
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: surname
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: dateOfBirth
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ - name: customerStatus
+ in: query
+ required: false
+ style: form
+ explode: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Successful retrieved a customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/getCustomerProfile'
+ examples:
+ fullCustomerProfile:
+ value:
+ customerProfileId: 1
+ customerNumber: 1000001
+ debtorNumber: TEST001
+ vascustomerNumber: CST005
+ debtorStateId: 1
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: active
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: '2022-08-05 15:01:00.000'
+ - name: blocked
+ fromInclusive: '2022-08-05 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: Pieter
+ surname: De valen
+ prefix: dhr
+ suffix: De
+ dateOfBirth: '2002-10-29'
+ emailAddress: TEST@HTM.NL
+ address:
+ - addressId: 1
+ street: mystreet
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 0000AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressType: Office
+ - addressId: 2
+ street: mystreet 33
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 4455CA
+ city: Den BOSCH
+ country: NL
+ isPreferred: true
+ addressType: Office
+ phone:
+ - phoneId: 1
+ number: '3112345678'
+ countryCode: NL
+ phoneType: TestNaam
+ isPreferred: true
+ - phoneId: 2
+ number: '333225588'
+ countryCode: ES
+ phoneType: TestNaam
+ isPreferred: false
+ ovChipCard:
+ - ovChipCardId: 1
+ chipCardNumber: 1234123412341234
+ validUntil: '2023-01-01'
+ alias: alias
+ - ovChipCardId: 2
+ chipCardNumber: 1234123412341235
+ validUntil: '2025-01-01'
+ alias: alias
+ ovPayToken:
+ - ovPayTokenId: 126
+ tokenTypeId: 1
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 1
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ - ovPayTokenId: 127
+ tokenTypeId: 1
+ xTat: hhe2830283
+ xBot: jdhd828033
+ alias: alias
+ lastDigits: '5674'
+ ovpasNumber: OV34568
+ tokenStatusId: 1
+ expirationDate: '2024-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 2
+ audit:
+ - auditTrailId: 1
+ customerProfileId: 1
+ action: insert
+ user: user
+ timestamp: '2023-10-20T17:05:52.000+02:00'
+ correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
+ minimumCustomerProfile:
+ value:
+ customerNumber: 1000008
+ debtorNumber: null
+ debtorStateId: null
+ vascustomerNumber: null
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: active
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: null
+ surname: null
+ prefix: null
+ suffix: null
+ dateOfBirth: null
+ emailAddress: TEST@TEST1.NL
+ address: []
+ phone: []
+ ovChipCard: []
+ ovPayToken: []
+ audit: []
+ missingPersonDetailsCustomerProfile:
+ value:
+ emailAddress: TEST04@HTM.NL
+ customerNumber: 1000005
+ debtorNumber: TEST004
+ debtorStateId: 1
+ vascustomerNumber: CST008
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: inactive
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: Sophie
+ surname: Haardenburg
+ prefix: Mw
+ suffix: null
+ dateOfBirth: '1955-09-05'
+ emailAddress: TEST@TEST1.NL
+ address: []
+ phone: []
+ ovChipCard:
+ - ovChipCardId: 1
+ chipCardNumber: 1234123412341234
+ validUntil: '2023-01-01'
+ alias: alias
+ - ovChipCardId: 2
+ chipCardNumber: 1234123412341235
+ validUntil: '2025-01-01'
+ alias: alias
+ ovPayToken:
+ - ovPayTokenId: 126
+ tokenTypeId: 1
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 1
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ - ovPayTokenId: 127
+ tokenTypeId: 1
+ xTat: hhe2830283
+ xBot: jdhd828033
+ alias: alias
+ lastDigits: '5674'
+ ovpasNumber: OV34568
+ tokenStatusId: 1
+ expirationDate: '2024-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 2
+ audit:
+ - auditTrailId: 1
+ customerProfileId: 1
+ action: insert
+ user: user
+ timestamp: '2023-10-20T17:05:52.000+02:00'
+ correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
+ '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: '0031'
+ phoneTypeId: 1
+ isPreferred: true
+ - number: '7012345678'
+ countryCode: '0031'
+ 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
+ /customers/{customerNumber}/customerpreferences:
+ patch:
+ tags:
+ - ABTCustomers
+ summary: Modify customer preference elements
+ description: Modify customer preference fields
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerPreferences'
+ examples:
+ PatchCustomerPreferences:
+ value:
+ customerPreference:
+ languageId: 2
+ responses:
+ '202':
+ description: Successful modified the customer preferences
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerPreferencesResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ examples:
+ InvalidDataTypeError:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ Bad Request - please verify the value for the following
+ field \"languageId\
+ InvalidReferenceIdError:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ Bad Request: Update Or Delete failed as conflicted with
+ foreign Key constraint 'languageId'
+ '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
+ /customers/{customerNumber}:
+ patch:
+ tags:
+ - ABTCustomers
+ summary: Modify customer profile elements
+ description: Modify customer profile fields
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerProfile'
+ examples:
+ PatchCustomerProfile:
+ value:
+ debtorStatusId: 2
+ responses:
+ '202':
+ description: Successful modified the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerProfileResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ examples:
+ InvalidDataTypeError:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ Bad Request - please verify the value for the following
+ field \"debtorStatusId\
+ '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
+ /customers/{customerNumber}/ovchipcards:
+ post:
+ tags:
+ - ABTCustomers
+ summary: Create a new OV chipcard for a customerProfile.
+ description: Create a new OV chipcard in the database for a given customer.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postOvChipCard'
+ examples:
+ postNewOvChipCard:
+ value:
+ ovChipCard:
+ chipCardNumber: 1234123412341234
+ validUntil: '2024-01-01'
+ alias: alias
+ responses:
+ '201':
+ description: Successful created an OV chipcard
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfileOvChipCardResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ examples:
+ chipCardNumberInvalidTooSmall:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ numeric instance is lower than the required minimum
+ (minimum: 1000000000000000, found: 999999999999999)
+ chipCardNumberInvalidTooLarge:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ numeric instance is greater than the required maximum
+ (maximum: 9999999999999999, found: 10000000000000000)
+ '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
+ /customers/{customerNumber}/ovchipcards/{ovChipCardId}:
+ delete:
+ tags:
+ - ABTCustomers
+ summary: Delete a OV chipcard for a customerProfile.
+ description: Delete a OV chipcard in the database for a given customer.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: ovChipCardId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ /customers/{customerNumber}/ovpaytokens:
+ get:
+ tags:
+ - ABTCustomers
+ summary: Get a OV paytoken for a customerProfile.
+ description: Get a new OV paytoken in the database for a given customer.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: ovPayTokenId
+ in: query
+ required: false
+ style: form
+ explode: false
+ schema:
+ type: integer
+ - name: xbot
+ in: query
+ required: false
+ style: form
+ explode: false
+ schema:
+ type: string
+ - name: xtat
+ in: query
+ required: false
+ style: form
+ explode: false
+ schema:
+ type: string
+ - name: ovPasNumber
+ in: query
+ required: false
+ style: form
+ explode: false
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Successfully retrieved an OVPay token
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/getCustomerProfileOvPayTokenResponse'
+ '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 new OV paytoken for a customerProfile.
+ description: Create a new OV paytoken in the database for a given customer.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postOvPayToken'
+ examples:
+ postNewOvPayTokenCard:
+ value:
+ ovPayToken:
+ tokenTypeId: 2
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 2
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ responses:
+ '201':
+ description: Successful created an OVPay token
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfileOvPayTokenResponse'
+ '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
+ /customers/{customerNumber}/statuses:
+ post:
+ tags:
+ - ABTCustomers
+ summary: Create a new customer status for a customerProfile.
+ description: >-
+ Create a new customer status for a customerProfile. The call will do the
+ following in the given order: a new status will be created with
+ fromInclusive equal to the time of the call. ToInclusive in the old, now
+ historic, status will also be set equal to the time of the call, deeming
+ it 'not currently active'.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerStatus'
+ examples:
+ postNewStatus:
+ value:
+ customerStatus:
+ name: blocked
+ responses:
+ '201':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/defaultCustomerProfileResponse'
+ '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'
+ '422':
+ description: Unprocessable entity
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/422Response'
+ '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
+ /customers/{customerNumber}/persons:
+ patch:
+ tags:
+ - ABTCustomers
+ summary: Partial update customer person details
+ description: Partial update a customer person details in the ABT database
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchPerson'
+ examples:
+ updatePerson:
+ value:
+ person:
+ birthname: Jan
+ surname: Jansen
+ prefix: dhr
+ suffix: jr
+ dateOfBirth: '1970-01-01'
+ emailAddress: TEST@TEST1.NL
+ updatePersonBirthname:
+ value:
+ person:
+ birthname: Jan
+ updatePersonSurname:
+ value:
+ person:
+ surname: Jansen
+ updatePersonPrefix:
+ value:
+ person:
+ prefix: dhr
+ updatePersonSuffix:
+ value:
+ person:
+ suffix: jr
+ updatePersonDateOfBirth:
+ value:
+ person:
+ dateOfBirth: '1970-01-01'
+ updatePersonEmailAddress:
+ value:
+ person:
+ emailAddress: TEST@TEST1.NL
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/defaultCustomerProfileResponse'
+ '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
+ /customers/{customerNumber}/ovpaytokens/{ovPayTokenId}:
+ delete:
+ tags:
+ - ABTCustomers
+ summary: Delete a OV PayToken for a customerProfile.
+ description: Delete a OV PayToken in the database for a given customer.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: ovPayTokenId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ patch:
+ tags:
+ - ABTCustomers
+ summary: Partial update customer ovpaytokens
+ description: Partial update of a customer ovpaytokens in the ABT database
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: ovPayTokenId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchOvPayToken'
+ examples:
+ updateOvPayTokens:
+ value:
+ ovPayToken:
+ tokenTypeId: 2
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 2
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ updateOvPayTokenTypeId:
+ value:
+ ovPayToken:
+ tokenTypeId: 2
+ updateOvPayTokenXTat:
+ value:
+ ovPayToken:
+ xTat: twioq73033
+ updateOvPayTokenXBot:
+ value:
+ ovPayToken:
+ xBot: hjihwqui27
+ updateOvPayTokenAlias:
+ value:
+ ovPayToken:
+ alias: alias
+ updateOvPayTokenLastDigits:
+ value:
+ ovPayToken:
+ lastDigits: '5678'
+ updateOvPayTokenOvpasNumber:
+ value:
+ ovPayToken:
+ ovpasNumber: OV34567
+ updateOvPayTokenStatusId:
+ value:
+ ovPayToken:
+ tokenStatusId: 1
+ updateOvPayTokenExpirationDate:
+ value:
+ ovPayToken:
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ updateOvPayTokenReplacedByTokenId:
+ value:
+ ovPayToken:
+ replacedByTokenId: 1
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/defaultCustomerProfileResponse'
+ '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
+ /customers/{customerNumber}/addresses:
+ post:
+ tags:
+ - ABTCustomers
+ summary: Create a single customer address
+ description: Create a single customer address in the ABT database
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postAddress'
+ examples:
+ addFullAddress:
+ value:
+ address:
+ street: Laan van Meerdervoort
+ houseNumber: 5
+ houseNumberSuffix: B
+ postalCode: 2500AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressTypeId: 1
+ addMinimumAddress:
+ value:
+ address:
+ street: Laan van Meerdervoort
+ houseNumber: 5
+ postalCode: 2500AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressTypeId: 1
+ responses:
+ '201':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfileAddressResponse'
+ '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'
+ '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
+ /customers/{customerNumber}/phones:
+ post:
+ tags:
+ - ABTCustomers
+ summary: Create a single customer phonenumber
+ description: Create a single customer phonenumber in the ABT database
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postPhone'
+ examples:
+ addPhone:
+ value:
+ phone:
+ number: '06123456789'
+ countryCode: '0031'
+ phoneTypeId: 1
+ isPreferred: true
+ responses:
+ '201':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfilePhoneResponse'
+ '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
+ /customers/{customerNumber}/addresses/{addressId}:
+ delete:
+ tags:
+ - ABTCustomers
+ summary: Delete a customer address
+ description: Delete a customer address from the ABT database
+ parameters:
+ - name: addressId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ patch:
+ tags:
+ - ABTCustomers
+ summary: Partial update customer addresses
+ description: Partial update a customer address in the ABT database
+ parameters:
+ - name: addressId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchAddress'
+ examples:
+ updateAddress:
+ value:
+ address:
+ street: Laan van Meerdervoort
+ houseNumber: 5
+ houseNumberSuffix: B
+ postalCode: 2500AA
+ city: Den Haag
+ country: NL
+ addressTypeId: 2
+ isPreferred: true
+ updateStreet:
+ value:
+ address:
+ street: Nieuwe Parklaan
+ updateHouseNumber:
+ value:
+ address:
+ houseNumber: 10
+ updateHouseNumberSuffix:
+ value:
+ address:
+ houseNumberSuffix: C
+ updatePostalCode:
+ value:
+ address:
+ postalCode: 2597LG
+ updateCity:
+ value:
+ address:
+ city: Amsterdam
+ updateCountry:
+ value:
+ address:
+ country: UK
+ updateAddressTypeId:
+ value:
+ address:
+ addressTypeId: 3
+ updateIsPreferred:
+ value:
+ address:
+ isPreferred: false
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/addressPatchOKResponse'
+ '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\
+ 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'
+ '404':
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404Response'
+ '409':
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/409Response'
+ '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
+ /customers/{customerNumber}/phones/{phoneId}:
+ delete:
+ tags:
+ - ABTCustomers
+ summary: Delete a customer phone
+ description: Delete a customer phone from the ABT database
+ parameters:
+ - name: phoneId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ patch:
+ tags:
+ - ABTCustomers
+ summary: Partial update customer phones
+ description: Partial update a customer phone in the ABT database
+ parameters:
+ - name: phoneId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchPhone'
+ examples:
+ updatePhone:
+ value:
+ phone:
+ number: '06123456789'
+ countryCode: '0031'
+ phoneTypeId: 2
+ isPreferred: true
+ updatePhoneNumber:
+ value:
+ phone:
+ number: '06987654321'
+ updateCountryCode:
+ value:
+ phone:
+ countryCode: '0044'
+ updatePhoneTypeId:
+ value:
+ phone:
+ phoneTypeId: 2
+ updateisPreferred:
+ value:
+ phone:
+ isPreferred: true
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/phonePatchOKResponse'
+ '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'
+ '409':
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/409Response'
+ '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
+ /selfservice/customers:
+ get:
+ tags:
+ - ABTCustomersSelfService
+ summary: Search for customer profile
+ description: Search for a customer profile based on the sub element from JWT
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Successful retrieved a customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/getCustomerProfile'
+ examples:
+ fullCustomerProfile:
+ value:
+ customerNumber: 1000001
+ debtorNumber: TEST001
+ vascustomerNumber: CST005
+ debtorStateId: 1
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: active
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: '2022-08-05 15:01:00.000'
+ - name: blocked
+ fromInclusive: '2022-08-05 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: Pieter
+ surname: De valen
+ prefix: dhr
+ suffix: De
+ dateOfBirth: '2002-10-29'
+ emailAddress: TEST@HTM.NL
+ address:
+ - addressId: 1
+ street: mystreet
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 0000AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressType: Office
+ - addressId: 2
+ street: mystreet 33
+ houseNumber: 1
+ houseNumberSuffix: null
+ postalCode: 4455CA
+ city: Den BOSCH
+ country: NL
+ isPreferred: true
+ addressType: Office
+ phone:
+ - phoneId: 1
+ number: '3112345678'
+ countryCode: NL
+ phoneType: TestNaam
+ isPreferred: true
+ - phoneId: 2
+ number: '333225588'
+ countryCode: ES
+ phoneType: TestNaam
+ isPreferred: false
+ ovChipCard:
+ - ovChipCardId: 1
+ chipCardNumber: 1234123412341234
+ validUntil: '2023-01-01'
+ alias: alias
+ - ovChipCardId: 2
+ chipCardNumber: 1234123412341235
+ validUntil: '2025-01-01'
+ alias: alias
+ ovPayToken:
+ - ovPayTokenId: 126
+ tokenTypeId: 1
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 1
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ - ovPayTokenId: 127
+ tokenTypeId: 1
+ xTat: hhe2830283
+ xBot: jdhd828033
+ alias: alias
+ lastDigits: '5674'
+ ovpasNumber: OV34568
+ tokenStatusId: 1
+ expirationDate: '2024-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 2
+ audit:
+ - auditTrailId: 1
+ customerProfileId: 1
+ action: insert
+ user: user
+ timestamp: '2023-10-20T17:05:52.000+02:00'
+ correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
+ minimumCustomerProfile:
+ value:
+ customerNumber: 1000008
+ debtorNumber: null
+ debtorStateId: null
+ vascustomerNumber: null
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: active
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: null
+ surname: null
+ prefix: null
+ suffix: null
+ dateOfBirth: null
+ emailAddress: TEST@TEST1.NL
+ address: []
+ phone: []
+ ovChipCard: []
+ ovPayToken: []
+ audit: []
+ missingPersonDetailsCustomerProfile:
+ value:
+ emailAddress: TEST04@HTM.NL
+ customerNumber: 1000005
+ debtorNumber: TEST004
+ debtorStateId: 1
+ vascustomerNumber: CST008
+ customerPreference:
+ languageId: 1
+ customerStatus:
+ - name: inactive
+ fromInclusive: '2022-08-04 15:01:00.000'
+ toInclusive: null
+ person:
+ birthname: Sophie
+ surname: Haardenburg
+ prefix: Mw
+ suffix: null
+ dateOfBirth: '1955-09-05'
+ emailAddress: TEST@TEST1.NL
+ address: []
+ phone: []
+ ovChipCard:
+ - ovChipCardId: 1
+ chipCardNumber: 1234123412341234
+ validUntil: '2023-01-01'
+ alias: alias
+ - ovChipCardId: 2
+ chipCardNumber: 1234123412341235
+ validUntil: '2025-01-01'
+ alias: alias
+ ovPayToken:
+ - ovPayTokenId: 126
+ tokenTypeId: 1
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 1
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ - ovPayTokenId: 127
+ tokenTypeId: 1
+ xTat: hhe2830283
+ xBot: jdhd828033
+ alias: alias
+ lastDigits: '5674'
+ ovpasNumber: OV34568
+ tokenStatusId: 1
+ expirationDate: '2024-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 2
+ audit:
+ - auditTrailId: 1
+ customerProfileId: 1
+ action: insert
+ user: user
+ timestamp: '2023-10-20T17:05:52.000+02:00'
+ correlationId: 01c6d8b4-1cd3-4f9b-85ea-c9adca53ce95
+ '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:
+ - ABTCustomersSelfService
+ summary: Create for customer profile
+ description: Create a customer profile based on the sub element from JWT
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ 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: '0031'
+ phoneTypeId: 1
+ isPreferred: true
+ - number: '7012345678'
+ countryCode: '0031'
+ 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'
+ '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
+ /selfservice/customers/{customerNumber}:
+ patch:
+ tags:
+ - ABTCustomersSelfService
+ summary: Modify customer profile elements
+ description: Modify customer profile fields
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerProfile'
+ examples:
+ PatchCustomerProfile:
+ value:
+ debtorStatusId: 2
+ responses:
+ '202':
+ description: Successful modified the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerProfileResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ examples:
+ InvalidDataTypeError:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ Bad Request - please verify the value for the following
+ field \"debtorStatusId\
+ security:
+ - default: []
+ x-auth-type: Application & Application User
+ x-throttling-tier: Unlimited
+ /selfservice/customers/{customerNumber}/customerpreferences:
+ patch:
+ tags:
+ - ABTCustomersSelfService
+ summary: Modify customer preference elements
+ description: Modify customer preference fields
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerPreferences'
+ examples:
+ PatchCustomerPreferences:
+ value:
+ customerPreference:
+ languageId: 2
+ responses:
+ '202':
+ description: Successful modified the customer preferences
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchCustomerPreferencesResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ examples:
+ InvalidDataTypeError:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ Bad Request - please verify the value for the following
+ field \"languageId\
+ '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
+ /selfservice/customers/{customerNumber}/ovchipcards:
+ post:
+ tags:
+ - ABTCustomersSelfService
+ summary: Create a new OV chipcard for a customerProfile.
+ description: Create a new OV chipcard in the database for a given customer.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postOvChipCard'
+ examples:
+ postNewOvChipCard:
+ value:
+ ovChipCard:
+ chipCardNumber: 1234123412341234
+ validUntil: '2024-01-01'
+ alias: alias
+ responses:
+ '201':
+ description: Successful created an OV chipcard
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfileOvChipCardResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400Response'
+ examples:
+ chipCardNumberInvalidTooSmall:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ numeric instance is lower than the required minimum
+ (minimum: 1000000000000000, found: 999999999999999)
+ chipCardNumberInvalidTooLarge:
+ value:
+ code: '400'
+ type: Bad Request - Input parameters
+ message: Invalid input parameter.
+ description: >-
+ numeric instance is greater than the required maximum
+ (maximum: 9999999999999999, found: 10000000000000000)
+ '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
+ /selfservice/customers/{customerNumber}/ovchipcards/{ovChipCardId}:
+ delete:
+ tags:
+ - ABTCustomersSelfService
+ summary: Delete a OV chipcard for a customerProfile.
+ description: Delete a OV chipcard in the database for a given customer.
+ parameters:
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: ovChipCardId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ /selfservice/customers/{customerNumber}/ovpaytokens:
+ post:
+ tags:
+ - ABTCustomersSelfService
+ summary: Create a new OV paytoken for a customerProfile.
+ description: Create a new OV paytoken in the database for a given customer.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postOvPayToken'
+ examples:
+ postNewOvPayTokenCard:
+ value:
+ ovPayToken:
+ tokenTypeId: 2
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 2
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ responses:
+ '201':
+ description: Successful created an OV paytoken
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfileOvPayTokenResponse'
+ '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
+ /selfservice/customers/{customerNumber}/statuses:
+ post:
+ tags:
+ - ABTCustomersSelfService
+ summary: Create a new customer status for a customerProfile.
+ description: >-
+ Create a new customer status for a customerProfile. The call will do the
+ following in the given order: a new status will be created with
+ fromInclusive equal to the time of the call. ToInclusive in the old, now
+ historic, status will also be set equal to the time of the call, deeming
+ it 'not currently active'.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerStatus'
+ examples:
+ postNewStatus:
+ value:
+ customerStatus:
+ name: blocked
+ responses:
+ '201':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfileCustomerNumberResponse'
+ '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'
+ '422':
+ description: Unprocessable entity
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/422Response'
+ '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
+ /selfservice/customers/{customerNumber}/persons:
+ patch:
+ tags:
+ - ABTCustomersSelfService
+ summary: Partial update customer person details
+ description: Partial update a customer person details in the ABT database
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchPerson'
+ examples:
+ updatePerson:
+ value:
+ person:
+ birthname: Jan
+ surname: Jansen
+ prefix: dhr
+ suffix: jr
+ dateOfBirth: '1970-01-01'
+ emailAddress: TEST@TEST1.NL
+ updatePersonBirthname:
+ value:
+ person:
+ birthname: Jan
+ updatePersonSurname:
+ value:
+ person:
+ surname: Jansen
+ updatePersonPrefix:
+ value:
+ person:
+ prefix: dhr
+ updatePersonSuffix:
+ value:
+ person:
+ suffix: jr
+ updatePersonDateOfBirth:
+ value:
+ person:
+ dateOfBirth: '1970-01-01'
+ updatePersonEmailAddress:
+ value:
+ person:
+ emailAddress: TEST@TEST1.NL
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/defaultCustomerProfileResponse'
+ '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
+ /selfservice/customers/{customerNumber}/ovpaytokens/{ovPayTokenId}:
+ delete:
+ tags:
+ - ABTCustomersSelfService
+ summary: Delete a OV PayToken for a customerProfile.
+ description: Delete a OV PayToken in the database for a given customer.
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: ovPayTokenId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ patch:
+ tags:
+ - ABTCustomersSelfService
+ summary: Partial update customer ovpaytokens
+ description: Partial update of a customer ovpaytokens in the ABT database
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: ovPayTokenId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchOvPayToken'
+ examples:
+ updateOvPayTokens:
+ value:
+ ovPayToken:
+ tokenTypeId: 2
+ xTat: twioq73033
+ xBot: hjihwqui27
+ alias: alias
+ lastDigits: '5678'
+ ovpasNumber: OV34567
+ tokenStatusId: 2
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ replacedByTokenId: 1
+ updateOvPayTokenTypeId:
+ value:
+ ovPayToken:
+ tokenTypeId: 2
+ updateOvPayTokenXTat:
+ value:
+ ovPayToken:
+ xTat: twioq73033
+ updateOvPayTokenXBot:
+ value:
+ ovPayToken:
+ xBot: hjihwqui27
+ updateOvPayTokenAlias:
+ value:
+ ovPayToken:
+ alias: alias
+ updateOvPayTokenLastDigits:
+ value:
+ ovPayToken:
+ lastDigits: '5678'
+ updateOvPayTokenOvpasNumber:
+ value:
+ ovPayToken:
+ ovpasNumber: OV34567
+ updateOvPayTokenStatusId:
+ value:
+ ovPayToken:
+ tokenStatusId: 1
+ updateOvPayTokenExpirationDate:
+ value:
+ ovPayToken:
+ expirationDate: '2025-04-20T17:05:52.000+02:00'
+ updateOvPayTokenReplacedByTokenId:
+ value:
+ ovPayToken:
+ replacedByTokenId: 1
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/defaultCustomerProfileResponse'
+ '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
+ /selfservice/customers/{customerNumber}/addresses:
+ post:
+ tags:
+ - ABTCustomersSelfService
+ summary: Create a single customer address
+ description: Create a single customer address in the ABT database
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postAddress'
+ examples:
+ addFullAddress:
+ value:
+ address:
+ street: Laan van Meerdervoort
+ houseNumber: 5
+ houseNumberSuffix: B
+ postalCode: 2500AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressTypeId: 1
+ addMinimumAddress:
+ value:
+ address:
+ street: Laan van Meerdervoort
+ houseNumber: 5
+ postalCode: 2500AA
+ city: Den Haag
+ country: NL
+ isPreferred: true
+ addressTypeId: 1
+ responses:
+ '201':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfileAddressResponse'
+ '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'
+ '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
+ /selfservice/customers/{customerNumber}/phones:
+ post:
+ tags:
+ - ABTCustomersSelfService
+ summary: Create a single customer phonenumber
+ description: Create a single customer phonenumber in the ABT database
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postPhone'
+ examples:
+ addPhone:
+ value:
+ phone:
+ number: '06123456789'
+ countryCode: '0031'
+ phoneTypeId: 1
+ isPreferred: true
+ responses:
+ '201':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/postCustomerProfilePhoneResponse'
+ '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
+ /selfservice/customers/{customerNumber}/addresses/{addressId}:
+ delete:
+ tags:
+ - ABTCustomersSelfService
+ summary: Delete a customer address
+ description: Delete a customer address from the ABT database
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: addressId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ patch:
+ tags:
+ - ABTCustomersSelfService
+ summary: Partial update customer addresses
+ description: Partial update a customer address in the ABT database
+ parameters:
+ - name: addressId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchAddress'
+ examples:
+ updateAddress:
+ value:
+ address:
+ street: Laan van Meerdervoort
+ houseNumber: 5
+ houseNumberSuffix: B
+ postalCode: 2500AA
+ city: Den Haag
+ country: NL
+ addressTypeId: 2
+ isPreferred: true
+ updateStreet:
+ value:
+ address:
+ street: Nieuwe Parklaan
+ updateHouseNumber:
+ value:
+ address:
+ houseNumber: 10
+ updateHouseNumberSuffix:
+ value:
+ address:
+ houseNumberSuffix: C
+ updatePostalCode:
+ value:
+ address:
+ postalCode: 2597LG
+ updateCity:
+ value:
+ address:
+ city: Amsterdam
+ updateCountry:
+ value:
+ address:
+ country: UK
+ updateAddressTypeId:
+ value:
+ address:
+ addressTypeId: 3
+ updateIsPreferred:
+ value:
+ address:
+ isPreferred: false
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/addressPatchOKResponse'
+ '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\
+ 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'
+ '404':
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404Response'
+ '409':
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/409Response'
+ '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
+ /selfservice/customers/{customerNumber}/phones/{phoneId}:
+ delete:
+ tags:
+ - ABTCustomersSelfService
+ summary: Delete a customer phone
+ description: Delete a customer phone from the ABT database
+ parameters:
+ - name: X-HTM-JWT-AUTH-HEADER
+ in: header
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: string
+ - name: phoneId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ responses:
+ '202':
+ description: Deleted record successfully
+ '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
+ patch:
+ tags:
+ - ABTCustomersSelfService
+ summary: Partial update customer phones
+ description: Partial update a customer phone in the ABT database
+ parameters:
+ - name: phoneId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ - name: customerNumber
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/patchPhone'
+ examples:
+ updatePhone:
+ value:
+ phone:
+ number: '06123456789'
+ countryCode: '0031'
+ phoneTypeId: 2
+ isPreferred: true
+ updatePhoneNumber:
+ value:
+ phone:
+ number: '06987654321'
+ updateCountryCode:
+ value:
+ phone:
+ countryCode: '0044'
+ updatePhoneTypeId:
+ value:
+ phone:
+ phoneTypeId: 2
+ updateisPreferred:
+ value:
+ phone:
+ isPreferred: true
+ responses:
+ '202':
+ description: Successful updated the customer profile
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/phonePatchOKResponse'
+ '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'
+ '409':
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/409Response'
+ '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
+components:
+ schemas:
+ audit:
+ type: object
+ properties:
+ auditTrailId:
+ type: integer
+ customerProfileId:
+ type: integer
+ action:
+ type: string
+ user:
+ type: string
+ timestamp:
+ type: string
+ format: datetime
+ correlationId:
+ type: string
+ ovPayToken:
+ 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
+ getOvChipCard:
+ type: object
+ properties:
+ ovChipCardId:
+ type: integer
+ chipCardNumber:
+ type: integer
+ validUntil:
+ type: string
+ format: date
+ alias:
+ type: string
+ getCustomerStatus:
+ type: object
+ properties:
+ name:
+ type: string
+ fromInclusive:
+ type: string
+ format: date
+ toInclusive:
+ type: string
+ format: date
+ getPerson:
+ type: object
+ properties:
+ birthname:
+ type: string
+ surname:
+ type: string
+ prefix:
+ type: string
+ suffix:
+ type: string
+ dateOfBirth:
+ type: string
+ format: date
+ emailAddress:
+ type: string
+ format: email
+ address:
+ type: array
+ items:
+ $ref: '#/components/schemas/getAddress'
+ phone:
+ type: array
+ items:
+ $ref: '#/components/schemas/getPhone'
+ getAddress:
+ 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:
+ type: string
+ getPhone:
+ type: object
+ properties:
+ phoneId:
+ type: integer
+ number:
+ type: string
+ countryCode:
+ type: string
+ phoneType:
+ type: string
+ isPreferred:
+ type: boolean
+ getCustomerPreference:
+ type: object
+ properties:
+ languageId:
+ type: integer
+ getCustomerProfileList:
+ type: object
+ properties:
+ Entries:
+ type: array
+ items:
+ $ref: '#/components/schemas/getCustomerProfile'
+ getCustomerProfile:
+ type: object
+ properties:
+ customerNumber:
+ type: integer
+ debtorNumber:
+ type: integer
+ debtorStateId:
+ type: integer
+ vascustomerNumber:
+ type: integer
+ customerPreference:
+ $ref: '#/components/schemas/getCustomerPreference'
+ customerStatus:
+ type: array
+ items:
+ $ref: '#/components/schemas/getCustomerStatus'
+ person:
+ $ref: '#/components/schemas/getPerson'
+ ovChipCard:
+ type: array
+ items:
+ $ref: '#/components/schemas/getOvChipCard'
+ ovPayToken:
+ type: array
+ items:
+ $ref: '#/components/schemas/ovPayToken'
+ audit:
+ type: array
+ items:
+ $ref: '#/components/schemas/audit'
+ directDebitMandatePostEntity:
+ required:
+ - billingInformationId
+ - created
+ - directDebitMandateTypeName
+ - mandateAddressId
+ - mandateReference
+ type: object
+ properties:
+ directDebitMandateTypeName:
+ type: string
+ billingInformationId:
+ type: integer
+ mandateAddressId:
+ type: integer
+ created:
+ type: string
+ mandateReference:
+ type: string
+ directDebitMandatePost:
+ type: object
+ properties:
+ directDebitMandate:
+ $ref: '#/components/schemas/directDebitMandatePostEntity'
+ directDebitMandatePatchEntity:
+ type: object
+ properties:
+ directDebitMandateTypeName:
+ type: string
+ billingInformationId:
+ type: integer
+ mandateAddressId:
+ type: integer
+ mandateReference:
+ type: string
+ mandateState:
+ type: string
+ enum:
+ - SIGNED
+ - CANCELLED
+ - PREPARED
+ directDebitMandatePatch:
+ type: object
+ properties:
+ directDebitMandate:
+ $ref: '#/components/schemas/directDebitMandatePatchEntity'
+ directDebitMandateGETEntity:
+ type: object
+ properties:
+ directDebitMandateId:
+ type: integer
+ directDebitMandateTypeId:
+ type: integer
+ billingInformationId:
+ type: integer
+ mandateAddressId:
+ type: integer
+ created:
+ type: string
+ mandateReference:
+ type: string
+ mandateState:
+ type: string
+ updateTimestamp:
+ type: string
+ billingInformationGETEntity:
+ required:
+ - alias
+ - ascription
+ - bic
+ - billingAddressId
+ - billingInformationId
+ - iban
+ - issuerCountry
+ - swift
+ type: object
+ properties:
+ billingInformationId:
+ type: integer
+ issuerCountry:
+ type: string
+ iban:
+ type: string
+ bic:
+ type: string
+ swift:
+ type: string
+ ascription:
+ type: string
+ alias:
+ type: string
+ billingAddressId:
+ type: integer
+ billingInformationPostEntity:
+ required:
+ - alias
+ - ascription
+ - billingAddressId
+ - iban
+ - issuerCountry
+ type: object
+ properties:
+ issuerCountry:
+ type: string
+ iban:
+ type: string
+ bic:
+ type: string
+ swift:
+ type: string
+ ascription:
+ type: string
+ alias:
+ type: string
+ billingAddressId:
+ type: integer
+ billingInformationPost:
+ type: object
+ properties:
+ billingInformation:
+ $ref: '#/components/schemas/billingInformationPostEntity'
+ billingInformationPatchEntity:
+ type: object
+ properties:
+ issuerCountry:
+ type: string
+ iban:
+ type: string
+ bic:
+ type: string
+ swift:
+ type: string
+ ascription:
+ type: string
+ alias:
+ type: string
+ billingAddressId:
+ type: integer
+ billingInformationPatch:
+ type: object
+ properties:
+ billingInformation:
+ $ref: '#/components/schemas/billingInformationPatchEntity'
+ getCustomerProfileFinancials:
+ type: object
+ properties:
+ customerNumber:
+ type: integer
+ billingInformation:
+ type: array
+ items:
+ $ref: '#/components/schemas/billingInformationGETEntity'
+ directDebitMandate:
+ type: array
+ items:
+ $ref: '#/components/schemas/directDebitMandateGETEntity'
+ customerPreferencesEntity:
+ type: object
+ properties:
+ languageId:
+ type: string
+ 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'
+ postCustomerStatusEntity:
+ type: object
+ properties:
+ name:
+ type: string
+ postCustomerStatus:
+ type: object
+ properties:
+ customerStatus:
+ $ref: '#/components/schemas/postCustomerStatusEntity'
+ postOvChipCardEntity:
+ required:
+ - chipCardNumber
+ type: object
+ properties:
+ chipCardNumber:
+ type: integer
+ validUntil:
+ type: string
+ format: date
+ alias:
+ type: string
+ patchCustomerProfile:
+ type: object
+ properties:
+ debtorStatusId:
+ type: integer
+ patchCustomerPreferencesEntity:
+ type: object
+ properties:
+ languageId:
+ type: string
+ patchCustomerPreferences:
+ type: object
+ properties:
+ customerPreference:
+ $ref: '#/components/schemas/patchCustomerPreferencesEntity'
+ postOvChipCard:
+ type: object
+ properties:
+ ovChipCard:
+ $ref: '#/components/schemas/postOvChipCardEntity'
+ postOvPayToken:
+ required:
+ - alias
+ - lastDigits
+ - tokenTypeId
+ - xBot
+ - xTat
+ type: object
+ properties:
+ ovPayToken:
+ type: object
+ properties:
+ tokenTypeId:
+ type: string
+ xTat:
+ type: string
+ xBot:
+ type: string
+ alias:
+ type: string
+ lastDigits:
+ type: integer
+ ovpasNumber:
+ type: string
+ tokenStatusId:
+ type: integer
+ expirationDate:
+ type: string
+ replacedByTokenId:
+ type: integer
+ ovPayTokenEntity:
+ type: object
+ properties:
+ tokenTypeId:
+ type: string
+ xTat:
+ type: string
+ xBot:
+ type: string
+ alias:
+ type: string
+ lastDigits:
+ type: integer
+ ovpasNumber:
+ type: string
+ tokenStatusId:
+ type: integer
+ expirationDate:
+ type: string
+ replacedByTokenId:
+ type: integer
+ patchOvPayToken:
+ type: object
+ properties:
+ ovPayToken:
+ $ref: '#/components/schemas/ovPayTokenEntity'
+ patchPerson:
+ type: object
+ properties:
+ person:
+ $ref: '#/components/schemas/personEntity'
+ patchAddress:
+ type: object
+ properties:
+ address:
+ $ref: '#/components/schemas/addressPatchEntity'
+ patchPhone:
+ type: object
+ properties:
+ phone:
+ $ref: '#/components/schemas/phonePatchEntity'
+ postAddress:
+ type: object
+ properties:
+ address:
+ $ref: '#/components/schemas/addressPostEntity'
+ 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
+ addressPatchEntity:
+ type: object
+ properties:
+ street:
+ type: string
+ houseNumber:
+ type: integer
+ houseNumberSuffix:
+ type: string
+ postalCode:
+ type: string
+ city:
+ type: string
+ country:
+ type: string
+ addressTypeId:
+ type: integer
+ isPreferred:
+ type: boolean
+ phonePostEntity:
+ required:
+ - countryCode
+ - number
+ - phoneTypeId
+ type: object
+ properties:
+ number:
+ type: string
+ countryCode:
+ type: string
+ phoneTypeId:
+ type: integer
+ isPreferred:
+ type: boolean
+ phonePatchEntity:
+ type: object
+ properties:
+ number:
+ type: string
+ countryCode:
+ type: string
+ phoneTypeId:
+ type: integer
+ isPreferred:
+ type: boolean
+ defaultCustomerProfileResponse:
+ type: object
+ properties:
+ customerNumber:
+ type: integer
+ example: 10000001
+ phonePatchOKResponse:
+ type: object
+ properties:
+ id:
+ type: integer
+ example: 1
+ addressPatchOKResponse:
+ type: object
+ properties:
+ id:
+ type: integer
+ example: 1
+ 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
+ patchCustomerProfileCustomerNumberResponse:
+ type: object
+ properties:
+ customerNumber:
+ type: integer
+ example: 10000001
+ 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
+ securitySchemes:
+ default:
+ type: oauth2
+ flows:
+ implicit:
+ authorizationUrl: https://services.acc.api.htm.nl/authorize
+ scopes: {}
diff --git a/src/openapi/customers/customers_reference-crud.yaml b/src/openapi/customers/customers_reference-crud.yaml
new file mode 100644
index 0000000..ffb2500
--- /dev/null
+++ b/src/openapi/customers/customers_reference-crud.yaml
@@ -0,0 +1,1047 @@
+openapi: 3.0.1
+info:
+ title: ABTCustomerReference
+ version: '1.0'
+servers:
+ - url: https://services.dev.api.htm.nl/abt/customerreference/1.0
+ - url: http://services.dev.api.htm.nl/abt/customerreference/1.0
+security:
+ - default: []
+tags:
+ - name: ABTCustomerReference
+paths:
+ /directdebitmandatetype:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of direct debit mandate types
+ description: gives list of direct debit mandate types
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of direct debit mandate types
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/directDebitMandateTypes'
+ '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
+ /phonetype:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of phone types
+ description: gives list of phone types
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of phoneTypes
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/phoneTypes'
+ '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:
+ - ABTCustomerReference
+ summary: Create a phone type
+ description: Create a phone type with a specific value
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/phoneType'
+ required: true
+ responses:
+ '201':
+ description: Successful created a new phone type
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: integer
+ example: 1
+ '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
+ /phonetype/{phoneTypeId}:
+ put:
+ tags:
+ - ABTCustomerReference
+ summary: Update a phone type
+ description: Update an existing phone type with a specific value
+ parameters:
+ - name: phoneTypeId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ format: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/phoneType'
+ required: true
+ responses:
+ '202':
+ description: Successful updated an existing a phone type
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: integer
+ example: 1
+ '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
+ delete:
+ tags:
+ - ABTCustomerReference
+ summary: Remove a phone type
+ description: Remove an existing phone type with a specific value
+ parameters:
+ - name: phoneTypeId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ format: integer
+ responses:
+ '202':
+ description: Successful removed a phone type
+ '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:
+ oneOf:
+ - $ref: '#/components/schemas/404ResponseId'
+ - $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
+ /addresstype:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of address types
+ description: gives list of address types
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of addressTypes
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/addressTypes'
+ '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:
+ - ABTCustomerReference
+ summary: Create a address type
+ description: Create a address type with a specific value
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/addressType'
+ required: true
+ responses:
+ '201':
+ description: Successful created a new address type
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: integer
+ example: 1
+ '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
+ /addresstype/{addressTypeId}:
+ put:
+ tags:
+ - ABTCustomerReference
+ summary: Update a address type
+ description: Update an existing address type with a specific value
+ parameters:
+ - name: addressTypeId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ format: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/addressType'
+ required: true
+ responses:
+ '202':
+ description: Successful updated an existing a address type
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id:
+ type: integer
+ example: 1
+ '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
+ delete:
+ tags:
+ - ABTCustomerReference
+ summary: Remove a address type
+ description: Remove an existing address type with a specific value
+ parameters:
+ - name: addressTypeId
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema:
+ type: integer
+ format: integer
+ responses:
+ '202':
+ description: Successful removed a address type
+ '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:
+ oneOf:
+ - $ref: '#/components/schemas/404ResponseId'
+ - $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
+ /customerstatus:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of customer status
+ description: gives list of customer status
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of customer status
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/customerStatus'
+ example:
+ Entries:
+ - customerStatusId: 1
+ name: Inactive
+ - customerStatusId: 2
+ name: Active
+ - customerStatusId: 3
+ name: Blocked
+ - customerStatusId: 4
+ name: Frozen
+ - customerStatusId: 5
+ name: Cleared
+ '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
+ /tokentype:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of token types
+ description: gives list of token types
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of customer status
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/tokenType'
+ example:
+ Entries:
+ - tokenTypeId: 1
+ name: Debit card
+ - tokenTypeId: 2
+ name: Credit card
+ - tokenTypeId: 3
+ name: OVPas physical
+ - tokenTypeId: 4
+ name: OVPas digital
+ '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
+ /customerreferences:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of all possible customer reference values
+ description: gives list of all possible customer reference values availbale
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of all possible customer reference values
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/customerReferences'
+ example:
+ Entries:
+ phoneTypes:
+ - name: mobile
+ id: 1
+ - name: fixed line
+ id: 2
+ addressTypes:
+ - name: home
+ id: 1
+ - name: office
+ id: 2
+ customerStatuses:
+ - name: active
+ id: 1
+ - name: blocked
+ id: 2
+ - name: inactive
+ id: 3
+ - name: new
+ id: 4
+ tokenTypes:
+ - name: Debit card
+ id: 1
+ - name: Credit card
+ id: 2
+ - name: OVPas physical
+ id: 3
+ - name: OVPas digital
+ id: 4
+ directDebitMandateTypes:
+ - name: Paper Contract
+ id: 1
+ - name: PIN transaction
+ id: 2
+ tokenStatuses:
+ - name: Expired
+ id: 1
+ - name: Active
+ id: 2
+ - name: Replaced
+ id: 3
+ - name: Inactive
+ id: 4
+ - name: Suspended
+ id: 5
+ - name: Removed by customer
+ id: 6
+ debtorStatuses:
+ - name: Inactive
+ id: 1
+ - name: Active
+ id: 2
+ languages:
+ - id: 1
+ name: Nederlands
+ ietfCode: nl-Nl
+ iso639Code: nl
+ - id: 2
+ name: English
+ ietfCode: en-US
+ iso639Code: en
+ '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
+ /tokenstatus:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of all token status
+ description: gives list of all token statuses
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of customer status
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/language'
+ example:
+ Entries:
+ - tokenStatusId: 1
+ name: Expired
+ - tokenStatusId: 2
+ name: Active
+ - tokenStatusId: 3
+ name: Replaced
+ - tokenStatusId: 4
+ name: Inactive
+ - tokenStatusId: 5
+ name: Suspended
+ - tokenStatusId: 6
+ name: Removed by customer
+ '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
+ /language:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of all languages
+ description: gives list of all languages
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of languages
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/language'
+ example:
+ Entries:
+ - languageId: 1
+ name: Expired
+ ietfCode: nl-NL
+ iso639Code: nl
+ - languageId: 2
+ name: Expired
+ ietfCode: en-US
+ iso639Code: en
+ '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
+ /debtorstatus:
+ get:
+ tags:
+ - ABTCustomerReference
+ summary: List of all debtorstatuses
+ description: gives list of all debtorstatuses
+ parameters: []
+ responses:
+ '200':
+ description: Successful retrieved list of debtorstatuses
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/tokenStatus'
+ example:
+ Entries:
+ - debtorStatusId: 1
+ name: Inactive
+ - debtorStatusId: 2
+ name: Active
+ '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
+components:
+ schemas:
+ directDebitMandateTypeList:
+ type: array
+ items:
+ properties:
+ directDebitMandateTypeId:
+ type: integer
+ example: 1
+ name:
+ type: string
+ example: name
+ directDebitMandateType:
+ properties:
+ name:
+ type: string
+ example: name
+ id:
+ type: integer
+ example: 1
+ directDebitMandateTypes:
+ type: object
+ properties:
+ Entries:
+ $ref: '#/components/schemas/directDebitMandateTypeList'
+ phoneType:
+ properties:
+ name:
+ type: string
+ example: name
+ phoneTypeIdList:
+ type: array
+ items:
+ properties:
+ phoneTypeId:
+ type: integer
+ example: 123
+ name:
+ type: string
+ example: name
+ phoneTypes:
+ type: object
+ properties:
+ Entries:
+ $ref: '#/components/schemas/phoneTypeIdList'
+ addressType:
+ properties:
+ name:
+ type: string
+ example: name
+ addressTypeIdList:
+ type: array
+ items:
+ properties:
+ addressTypeId:
+ type: integer
+ example: 123
+ name:
+ type: string
+ example: name
+ addressTypes:
+ type: object
+ properties:
+ Entries:
+ $ref: '#/components/schemas/addressTypeIdList'
+ customerStatuses:
+ type: object
+ properties:
+ Entries:
+ $ref: '#/components/schemas/customerStatusIdList'
+ customerStatusIdList:
+ type: array
+ items:
+ properties:
+ customerStatusId:
+ type: integer
+ name:
+ type: string
+ customerStatus:
+ properties:
+ name:
+ type: string
+ example: name
+ tokenTypes:
+ type: object
+ properties:
+ Entries:
+ $ref: '#/components/schemas/customerStatusIdList'
+ tokenTypeIdList:
+ type: array
+ items:
+ properties:
+ tokenTypeId:
+ type: integer
+ name:
+ type: string
+ tokenType:
+ properties:
+ name:
+ type: string
+ example: name
+ tokenStatuses:
+ type: object
+ properties:
+ Entries:
+ $ref: '#/components/schemas/customerStatusIdList'
+ tokenStatusIdList:
+ type: array
+ items:
+ properties:
+ tokenStatusId:
+ type: integer
+ name:
+ type: string
+ tokenStatus:
+ properties:
+ tokenStatusId:
+ type: integer
+ example: 1
+ name:
+ type: string
+ example: name
+ debtorStatus:
+ properties:
+ debtorStatusId:
+ type: integer
+ example: 1
+ name:
+ type: string
+ example: name
+ language:
+ properties:
+ languageId:
+ type: integer
+ example: 1
+ name:
+ type: string
+ example: name
+ ietfCode:
+ type: string
+ example: nl-NL
+ iso639Code:
+ type: string
+ example: nl
+ customerReferences:
+ type: object
+ properties:
+ Entries:
+ oneOf:
+ - $ref: '#/components/schemas/addressType'
+ - $ref: '#/components/schemas/phoneType'
+ - $ref: '#/components/schemas/customerStatus'
+ - $ref: '#/components/schemas/tokenType'
+ - $ref: '#/components/schemas/directDebitMandateType'
+ - $ref: '#/components/schemas/tokenStatus'
+ 400Response:
+ type: object
+ properties:
+ code:
+ type: string
+ example: '400'
+ type:
+ type: string
+ message:
+ type: string
+ example: Bad Request
+ description:
+ type: string
+ example: '''2023-02-01 00:00:00'' is not a valid Datetime'
+ 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.
+ 404ResponseId:
+ type: object
+ properties:
+ error:
+ type: string
+ example: 'No record found for id: 5'
+ 500Response:
+ type: object
+ properties:
+ code:
+ type: string
+ example: '500'
+ type:
+ type: string
+ message:
+ type: string
+ example: Internal Server Error
+ description:
+ type: string
+ securitySchemes:
+ default:
+ type: oauth2
+ flows:
+ implicit:
+ authorizationUrl: https://services.dev.api.htm.nl/authorize
+ scopes: {}
diff --git a/src/openapi/orders/service_engine_orders.yaml b/src/openapi/orders/service_engine_orders.yaml
index 31c4e6b..dbee45f 100644
--- a/src/openapi/orders/service_engine_orders.yaml
+++ b/src/openapi/orders/service_engine_orders.yaml
@@ -715,6 +715,139 @@ paths:
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
description: The JWT of the logged in customer (in case of a web shop).
+ get:
+ parameters:
+ - in: query
+ name: orderId
+ schema:
+ type: string
+ format: uuid
+ example: afce35b2-1dff-4ace-98d0-4b9ac405c87d
+ description: The order id.
+ - in: query
+ name: orderNumber
+ schema:
+ type: string
+ example: "ORD123456"
+ description: The order number.
+ - in: query
+ name: externalOrderId
+ schema:
+ type: string
+ example: 7bef22f6-70a3-4655-bc2a-c40c61581b32
+ description: The external order id.
+ - in: query
+ name: customerProfileId
+ schema:
+ type: integer
+ example: 42
+ description: The customer profile id.
+ - in: query
+ name: xTat
+ schema:
+ type: string
+ example: 7208e73e-87a6-46d9-bb6d-867ffc460c9b
+ description: xTat used in order fulfillment. Note that this is a joined parameter via PurchasedProduct.
+ tags:
+ - Order Retrieval v2.1
+ summary: Find orders.
+ description: Find orders.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/unavailable"
+ example:
+ {
+ "orders":
+ [
+ {
+ "orderId": "afce35b2-1dff-4ace-98d0-4b9ac405c87d",
+ "externalOrderId": "bac3958b-804a-43e3-b5f7-0b0fffaae5b7",
+ "orderNumber": "123456",
+ "customerProfileId": 42,
+ "totalAmount": 121,
+ "touchPoint":
+ {
+ "salesTouchpointId": 3,
+ "name": "Website (Perplex)",
+ "isActive": true,
+ "retailerId": 1001,
+ },
+ "language":
+ {
+ "languageId": 1,
+ "name": "Nederlands",
+ "iso639Code": "nl-NL",
+ "ietfCode": "nl",
+ },
+ "billingAddressId": 1,
+ "shippingAddressId": 1,
+ "createdOn": "2024-03-22T09:00:00",
+ "lastUpdatedOn": "2024-03-22T09:00:00",
+ "order_OrderStatus":
+ {
+ "order_orderStatusId": "f1d0e1a7-a3cf-4876-b8f2-073add10667f",
+ "orderStatus":
+ { "orderStatusId": 4, "name": "paid" },
+ "createdOn": "2024-03-22T09:00:00",
+ "description": "Order succesvol betaald",
+ },
+ "payments":
+ [
+ {
+ "createdOn": "2024-03-22T09:00:00",
+ "amountDebit": 121,
+ "paymentMethodId": 1,
+ "touchPointId": 1,
+ "isRefund": false,
+ "htmPaymentReference": "HTM-1234",
+ "pspPaymentReference": "Buckaroo-1234",
+ "paymentStatuses":
+ [
+ {
+ "createdOn": "2024-03-22T09:00:00",
+ "statusCode": "190",
+ "statusDescription": "Success",
+ "statusSubCode": "S001",
+ "statusSubDescription": "PaymentSuccessFul",
+ },
+ ],
+ "mandateInput":
+ {
+ "directDebitMandateTypeId": 1,
+ "createdOn": "2024-03-22T09:00:00",
+ "bic": "RABONL2U",
+ "iban": "NL44RABO0123456789",
+ "ascription": "J. de Vries",
+ "place": "Den Haag",
+ },
+ },
+ ],
+ "_links":
+ {
+ "self":
+ {
+ "href": "https://api.example.com/items/1",
+ "method": "GET",
+ "templated": true,
+ },
+ },
+ },
+ ],
+ "_links":
+ {
+ "self":
+ {
+ "href": "https://api.example.com/items",
+ "method": "GET",
+ "templated": true,
+ },
+ },
+ "href": "string",
+ }
post:
tags:
- Order Creation v2.1
diff --git a/src/openapi/products/products-crud-v2.2.yaml b/src/openapi/products/products-crud-v2.2.yaml
index d73bc24..0f69225 100644
--- a/src/openapi/products/products-crud-v2.2.yaml
+++ b/src/openapi/products/products-crud-v2.2.yaml
@@ -59,6 +59,12 @@ paths:
"isTravelProduct": true,
"name": "Kortingsabonnement"
},
+ "tokenTypes": [
+ {
+ "tokenTypeId": 1,
+ "name": "EMV"
+ }
+ ],
"sellableTouchPointIds": null,
"amountInclTax": null,
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
@@ -83,6 +89,7 @@ paths:
"isTravelProduct": false,
"name": "Barcode"
},
+ "tokenTypes": null,
"sellableTouchPointIds": [
1,
2,
@@ -112,6 +119,7 @@ paths:
"isTravelProduct": false,
"name": "Barcode"
},
+ "tokenTypes": null,
"sellableTouchPointIds": [
3,
4
@@ -139,6 +147,12 @@ paths:
"isTravelProduct": true,
"name": "Kortingsabonnement"
},
+ "tokenTypes": [
+ {
+ "tokenTypeId": 1,
+ "name": "EMV"
+ }
+ ],
"sellableTouchPointIds": null,
"amountInclTax": null,
"imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg",
@@ -154,6 +168,7 @@ paths:
"isTravelProduct": false,
"name": "Barcode"
},
+ "tokenTypes": null,
"sellableTouchPointIds": [
1,
2,
@@ -174,6 +189,12 @@ paths:
"isTravelProduct": true,
"name": "Kortingsabonnement"
},
+ "tokenTypes": [
+ {
+ "tokenTypeId": 1,
+ "name": "EMV"
+ }
+ ],
"sellableTouchPointIds": [
1,
2
@@ -192,6 +213,12 @@ paths:
"isTravelProduct": true,
"name": "Kortingsabonnement"
},
+ "tokenTypes": [
+ {
+ "tokenTypeId": 1,
+ "name": "EMV"
+ }
+ ],
"sellableTouchPointIds": [
3,
4
@@ -219,6 +246,7 @@ paths:
"isTravelProduct": false,
"name": "Barcode"
},
+ "tokenTypes": null,
"sellableTouchPointIds": [
3,
4
@@ -237,6 +265,12 @@ paths:
"isTravelProduct": true,
"name": "Kortingsabonnement"
},
+ "tokenTypes": [
+ {
+ "tokenTypeId": 1,
+ "name": "EMV"
+ }
+ ],
"sellableTouchPointIds": [
3,
4
@@ -2074,6 +2108,20 @@ components:
name:
type: string
example: Kortingsabonnement
+ tokenTypes:
+ type: array
+ items:
+ type: object
+ required:
+ - tokenTypeId
+ - name
+ properties:
+ tokenTypeId:
+ type: integer
+ example: 1
+ name:
+ type: string
+ example: EMV
sellableTouchPointIds:
type: array
items: