Compare commits
35 Commits
features/E
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
| 5133903efb | |||
| cf0d24632f | |||
| aa4721c651 | |||
| 46bf7874d9 | |||
| 1a14918f4a | |||
| 7147318900 | |||
| e0f78d2e38 | |||
| ab57e27c1d | |||
| 68c7ccc279 | |||
| 8946026860 | |||
| fb8723124a | |||
| 6d7c260e9e | |||
| 292588b7ba | |||
| 4bd216bd37 | |||
| bfaa1ddcb1 | |||
| 55bac27561 | |||
|
|
715a9668fc | ||
| b4f20a9758 | |||
| 22cb3ddd92 | |||
| 1f3e2289dc | |||
| 3ff55e5888 | |||
| 987f64a081 | |||
| 00448486f3 | |||
| ed61633579 | |||
| d34ba20d19 | |||
| 3e1f23afe3 | |||
|
|
6260cc5d63 | ||
| 3ae52206fc | |||
| a52dfcab93 | |||
| 80b0de274e | |||
|
|
3ffc525d48 | ||
|
|
105a18c0ac | ||
| e4b3ab4ccf | |||
| 01aa8a9f1a | |||
| bb917c3635 |
@ -28,10 +28,33 @@ public final class Helpers {
|
|||||||
return new JSONObject(string).get("alertId").toString();
|
return new JSONObject(string).get("alertId").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getTripId(String string) throws IOException {
|
||||||
|
return new JSONObject(string).get("tripId").toString();
|
||||||
|
}
|
||||||
|
|
||||||
public static String getXbot(String string) throws IOException {
|
public static String getXbot(String string) throws IOException {
|
||||||
return new JSONObject(string).get("xbot").toString();
|
return new JSONObject(string).get("xbot").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void getTripDetails(String tripId, 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 + "/trips/details/" + tripId);
|
||||||
|
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 8659 trip details response for xBOT " + xbot + " and tripId " + tripId + ": \n" + new JSONObject(response).toString(2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void getAlertDetails(String alertId, String xBot, String gboBearerToken) throws Exception {
|
public static void getAlertDetails(String alertId, String xBot, String gboBearerToken) throws Exception {
|
||||||
SSLContext sc = SSLContext.getInstance("SSL");
|
SSLContext sc = SSLContext.getInstance("SSL");
|
||||||
sc.init(null, DummyX509TrustManager.getDummyArray(), new java.security.SecureRandom());
|
sc.init(null, DummyX509TrustManager.getDummyArray(), new java.security.SecureRandom());
|
||||||
@ -48,7 +71,7 @@ public final class Helpers {
|
|||||||
|
|
||||||
try(InputStream is = http.getInputStream()) {
|
try(InputStream is = http.getInputStream()) {
|
||||||
String response = new String(is.readAllBytes(), StandardCharsets.UTF_8);
|
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));
|
LOGGER.info("GBO API 8851 alert details response for xBOT " + xBot + " and alertId " + alertId + ": \n" + new JSONObject(response).toString(2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,14 +16,28 @@ public class RabbitConnector {
|
|||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(RabbitConnector.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(RabbitConnector.class);
|
||||||
|
|
||||||
|
// TRIPS
|
||||||
|
// SubscriptionId = 3e246de5-d3ad-468f-834b-1aaebf52244c
|
||||||
|
// Use API 9853 to manually add xBOT to queue
|
||||||
|
private static final String QUEUE_NAME = "BEID_3.TRIPS";
|
||||||
|
private static final String USER_NAME = "BEID_3_TRIPS_HlTT";
|
||||||
|
private static final String PASSWORD = "xJR4C8hIqhHQw0sn";
|
||||||
|
|
||||||
|
// ALERTS
|
||||||
|
// SubscriptionId = 17c8100b-88a2-4cef-b40d-8dca4f93d311
|
||||||
|
// Use API 9853 to manually add xBOT to queue
|
||||||
|
// private static final String QUEUE_NAME = "BEID_3.ALERTS";
|
||||||
|
// private static final String USER_NAME = "BEID_3_ALERTS_nZs3";
|
||||||
|
// private static final String PASSWORD = "VyubhPnczKgTB2zJ";
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
ConnectionFactory factory = new ConnectionFactory();
|
ConnectionFactory factory = new ConnectionFactory();
|
||||||
factory.setVirtualHost("/");
|
factory.setVirtualHost("/");
|
||||||
factory.setAutomaticRecoveryEnabled(true);
|
factory.setAutomaticRecoveryEnabled(true);
|
||||||
factory.setPort(443);
|
factory.setPort(443);
|
||||||
factory.setHost("not.sbx.idbt.translink.nl");
|
factory.setHost("not.sbx.idbt.translink.nl");
|
||||||
factory.setUsername("BEID_3_ALERTS_nZs3");
|
factory.setUsername(USER_NAME);
|
||||||
factory.setPassword("VyubhPnczKgTB2zJ");
|
factory.setPassword(PASSWORD);
|
||||||
factory.useSslProtocol("TLSv1.2");
|
factory.useSslProtocol("TLSv1.2");
|
||||||
factory.setExceptionHandler(new ForgivingExceptionHandler());
|
factory.setExceptionHandler(new ForgivingExceptionHandler());
|
||||||
Map<String, Object> configs = factory.getClientProperties();
|
Map<String, Object> configs = factory.getClientProperties();
|
||||||
@ -33,7 +47,7 @@ public class RabbitConnector {
|
|||||||
Channel channel = connection.createChannel();
|
Channel channel = connection.createChannel();
|
||||||
DeliverCallback deliverCallback = initDeliverCallback(channel);
|
DeliverCallback deliverCallback = initDeliverCallback(channel);
|
||||||
|
|
||||||
AMQP.Queue.DeclareOk queue = channel.queueDeclarePassive("BEID_3.ALERTS");
|
AMQP.Queue.DeclareOk queue = channel.queueDeclarePassive(QUEUE_NAME);
|
||||||
LOGGER.info(
|
LOGGER.info(
|
||||||
"Declared queue: " + queue.getQueue() + ", consumer count: " + queue.getConsumerCount() + ", message count: " +
|
"Declared queue: " + queue.getQueue() + ", consumer count: " + queue.getConsumerCount() + ", message count: " +
|
||||||
queue.getMessageCount());
|
queue.getMessageCount());
|
||||||
@ -52,17 +66,39 @@ public class RabbitConnector {
|
|||||||
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
|
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
|
||||||
LOGGER.info("Successfully acknowledged message with delivery tag: " + delivery.getEnvelope().getDeliveryTag());
|
LOGGER.info("Successfully acknowledged message with delivery tag: " + delivery.getEnvelope().getDeliveryTag());
|
||||||
|
|
||||||
LOGGER.info("Getting alert details via GBO API 8851...");
|
if (QUEUE_NAME.equals("BEID_3.TRIPS")) {
|
||||||
|
getTripDetails(message);
|
||||||
|
} else if (QUEUE_NAME.equals("BEID_3.ALERTS")) {
|
||||||
|
getAlertDetails(message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void getAlertDetails(String message) {
|
||||||
try {
|
try {
|
||||||
String alertId = Helpers.getAlertId(message);
|
String alertId = Helpers.getAlertId(message);
|
||||||
String xBot = Helpers.getXbot(message);
|
String xBot = Helpers.getXbot(message);
|
||||||
String gboBearerToken = Helpers.getGboBearerToken();
|
String gboBearerToken = Helpers.getGboBearerToken();
|
||||||
|
|
||||||
|
LOGGER.info("Getting alert details for xBOT {} and alertId {} via GBO API 8851...", xBot, alertId);
|
||||||
Helpers.getAlertDetails(alertId, xBot, gboBearerToken);
|
Helpers.getAlertDetails(alertId, xBot, gboBearerToken);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
|
private static void getTripDetails(String message) {
|
||||||
|
try {
|
||||||
|
String tripId = Helpers.getTripId(message);
|
||||||
|
String xBot = Helpers.getXbot(message);
|
||||||
|
String gboBearerToken = Helpers.getGboBearerToken();
|
||||||
|
|
||||||
|
LOGGER.info("Getting trip details for xBOT {} and tripId {} via GBO API 8659...", xBot, tripId);
|
||||||
|
Helpers.getTripDetails(tripId, xBot, gboBearerToken);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -597,9 +597,13 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
$ref: "#/components/schemas/unavailable"
|
$ref: "#/components/schemas/unavailable"
|
||||||
examples:
|
examples:
|
||||||
List all contract payments for a single debtor:
|
Empty list:
|
||||||
summary: List all contract payments for a single debtor
|
summary: Empty list
|
||||||
description: List all contract payments for single debtor with debtor number 'D123456'.
|
description: List all contract payments for a debtor with no payments.
|
||||||
|
value: { "contractPayments": [] }
|
||||||
|
Successful direct debit:
|
||||||
|
summary: Successful direct debit
|
||||||
|
description: One payment for a debtor with a successful direct debit.
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"contractPayments":
|
"contractPayments":
|
||||||
@ -607,8 +611,133 @@ paths:
|
|||||||
{
|
{
|
||||||
"paymentId": "151845776",
|
"paymentId": "151845776",
|
||||||
"totalAmount": "26.62",
|
"totalAmount": "26.62",
|
||||||
"paymentMethod": "Twikey",
|
"paymentMethod": "Automatische incasso",
|
||||||
"paymentDate": "2024-09-12",
|
"paymentDate": "2024-09-12",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
|
"invoice":
|
||||||
|
{
|
||||||
|
"invoiceId": "147722263",
|
||||||
|
"invoiceNumber": "F2024-0001",
|
||||||
|
"description": "HTM Maandkorting 20%",
|
||||||
|
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||||
|
},
|
||||||
|
"_links":
|
||||||
|
{
|
||||||
|
"get_contractdetails":
|
||||||
|
{
|
||||||
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
|
||||||
|
"method": "GET",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
Direct debit reversal:
|
||||||
|
summary: Direct debit reversal
|
||||||
|
description: One payment for a debtor with a reversed direct debit.
|
||||||
|
value:
|
||||||
|
{
|
||||||
|
"contractPayments":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"paymentId": "151845776",
|
||||||
|
"totalAmount": "-26.62",
|
||||||
|
"paymentMethod": "Stornering",
|
||||||
|
"paymentDate": "2024-09-12",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
|
"invoice":
|
||||||
|
{
|
||||||
|
"invoiceId": "147722263",
|
||||||
|
"invoiceNumber": "F2024-0001",
|
||||||
|
"description": "HTM Maandkorting 20%",
|
||||||
|
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||||
|
},
|
||||||
|
"_links":
|
||||||
|
{
|
||||||
|
"get_contractdetails":
|
||||||
|
{
|
||||||
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
|
||||||
|
"method": "GET",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
iDEAL payment:
|
||||||
|
summary: iDEAL payment
|
||||||
|
description: One payment for a debtor with an iDEAL payment.
|
||||||
|
value:
|
||||||
|
{
|
||||||
|
"contractPayments":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"paymentId": "151845776",
|
||||||
|
"totalAmount": "26.62",
|
||||||
|
"paymentMethod": "iDEAL",
|
||||||
|
"paymentDate": "2024-09-12",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
|
"invoice":
|
||||||
|
{
|
||||||
|
"invoiceId": "147722263",
|
||||||
|
"invoiceNumber": "F2024-0001",
|
||||||
|
"description": "HTM Maandkorting 20%",
|
||||||
|
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||||
|
},
|
||||||
|
"_links":
|
||||||
|
{
|
||||||
|
"get_contractdetails":
|
||||||
|
{
|
||||||
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
|
||||||
|
"method": "GET",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
Bank transfer:
|
||||||
|
summary: Bank transfer
|
||||||
|
description: One payment for a debtor with a bank transfer.
|
||||||
|
value:
|
||||||
|
{
|
||||||
|
"contractPayments":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"paymentId": "151845776",
|
||||||
|
"totalAmount": "26.62",
|
||||||
|
"paymentMethod": "Overboeking",
|
||||||
|
"paymentDate": "2024-09-12",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
|
"invoice":
|
||||||
|
{
|
||||||
|
"invoiceId": "147722263",
|
||||||
|
"invoiceNumber": "F2024-0001",
|
||||||
|
"description": "HTM Maandkorting 20%",
|
||||||
|
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||||
|
},
|
||||||
|
"_links":
|
||||||
|
{
|
||||||
|
"get_contractdetails":
|
||||||
|
{
|
||||||
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
|
||||||
|
"method": "GET",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
List of four payments for one invoice:
|
||||||
|
summary: List of four payments for one invoice
|
||||||
|
description: Four payments for a debtor for one invoice; a direct debit, a direct debit reversal, a bank transfer and an iDEAL payment.
|
||||||
|
value:
|
||||||
|
{
|
||||||
|
"contractPayments":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"paymentId": "151845776",
|
||||||
|
"totalAmount": "26.62",
|
||||||
|
"paymentMethod": "Automatische incasso",
|
||||||
|
"paymentDate": "2024-09-12",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
"invoice":
|
"invoice":
|
||||||
{
|
{
|
||||||
"invoiceId": "147722263",
|
"invoiceId": "147722263",
|
||||||
@ -626,22 +755,67 @@ paths:
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"paymentId": "151845851",
|
"paymentId": "151845776",
|
||||||
"totalAmount": "45.21",
|
"totalAmount": "-26.62",
|
||||||
"paymentMethod": "Twikey",
|
"paymentMethod": "Stornering",
|
||||||
"paymentDate": "2024-09-12",
|
"paymentDate": "2024-09-12",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
"invoice":
|
"invoice":
|
||||||
{
|
{
|
||||||
"invoiceId": "147722266",
|
"invoiceId": "147722263",
|
||||||
"invoiceNumber": "F2024-0002",
|
"invoiceNumber": "F2024-0001",
|
||||||
"description": "HTM Maandkorting 20%",
|
"description": "HTM Maandkorting 20%",
|
||||||
"publicLink": "https://factuurinzien.nl/d/ddb245d6df67999eca48c4a71b5661b93038e20a/i/dp5h1i5cuu94nopiolkdst3u17vkmzo",
|
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||||
},
|
},
|
||||||
"_links":
|
"_links":
|
||||||
{
|
{
|
||||||
"get_contractdetails":
|
"get_contractdetails":
|
||||||
{
|
{
|
||||||
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/7b2f8c1a-3d9d-4c2d-960e-4471e8e28b6a",
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
|
||||||
|
"method": "GET",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"paymentId": "151845777",
|
||||||
|
"totalAmount": "10.00",
|
||||||
|
"paymentMethod": "Overboeking",
|
||||||
|
"paymentDate": "2024-09-13",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
|
"invoice":
|
||||||
|
{
|
||||||
|
"invoiceId": "147722263",
|
||||||
|
"invoiceNumber": "F2024-0001",
|
||||||
|
"description": "HTM Maandkorting 20%",
|
||||||
|
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||||
|
},
|
||||||
|
"_links":
|
||||||
|
{
|
||||||
|
"get_contractdetails":
|
||||||
|
{
|
||||||
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
|
||||||
|
"method": "GET",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"paymentId": "151845778",
|
||||||
|
"totalAmount": "16.62",
|
||||||
|
"paymentMethod": "iDEAL",
|
||||||
|
"paymentDate": "2024-09-14",
|
||||||
|
"iban": "NL25INGB******1337",
|
||||||
|
"invoice":
|
||||||
|
{
|
||||||
|
"invoiceId": "147722263",
|
||||||
|
"invoiceNumber": "F2024-0001",
|
||||||
|
"description": "HTM Maandkorting 20%",
|
||||||
|
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||||
|
},
|
||||||
|
"_links":
|
||||||
|
{
|
||||||
|
"get_contractdetails":
|
||||||
|
{
|
||||||
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a",
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -187,25 +187,21 @@ paths:
|
|||||||
examples:
|
examples:
|
||||||
minimalCustomerProfile:
|
minimalCustomerProfile:
|
||||||
value:
|
value:
|
||||||
{
|
{ "person": { "emailAddress": "j.jansen@hatseflats.nl" } }
|
||||||
"person": {
|
|
||||||
"emailAddress": "j.jansen@hatseflats.nl"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fullCustomerProfile:
|
fullCustomerProfile:
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"customerPreference": {
|
"customerPreference": { "languageId": 1 },
|
||||||
"languageId": 1
|
"person":
|
||||||
},
|
{
|
||||||
"person": {
|
|
||||||
"birthname": "Jan",
|
"birthname": "Jan",
|
||||||
"surname": "Jansen",
|
"surname": "Jansen",
|
||||||
"prefix": "dhr",
|
"prefix": "dhr",
|
||||||
"suffix": "jr",
|
"suffix": "jr",
|
||||||
"dateOfBirth": "1970-01-01",
|
"dateOfBirth": "1970-01-01",
|
||||||
"emailAddress": "j.jansen@hatseflats.nl",
|
"emailAddress": "j.jansen@hatseflats.nl",
|
||||||
"addresses": [
|
"addresses":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"street": "Laan van Meerdervoort",
|
"street": "Laan van Meerdervoort",
|
||||||
"houseNumber": 5,
|
"houseNumber": 5,
|
||||||
@ -214,7 +210,7 @@ paths:
|
|||||||
"city": "Den Haag",
|
"city": "Den Haag",
|
||||||
"country": "NL",
|
"country": "NL",
|
||||||
"isPreferred": true,
|
"isPreferred": true,
|
||||||
"addressTypeId": 1
|
"addressTypeId": 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"street": "Beeklaan",
|
"street": "Beeklaan",
|
||||||
@ -224,24 +220,26 @@ paths:
|
|||||||
"city": "Den Haag",
|
"city": "Den Haag",
|
||||||
"country": "NL",
|
"country": "NL",
|
||||||
"isPreferred": false,
|
"isPreferred": false,
|
||||||
"addressTypeId": 2
|
"addressTypeId": 2,
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
"phones": [
|
"phones":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"number": "6123456789",
|
"number": "6123456789",
|
||||||
"countryCode": "0031",
|
"countryCode": "0031",
|
||||||
"phoneTypeId": 1,
|
"phoneTypeId": 1,
|
||||||
"isPreferred": true
|
"isPreferred": true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"number": "7012345678",
|
"number": "7012345678",
|
||||||
"countryCode": "0031",
|
"countryCode": "0031",
|
||||||
"phoneTypeId": 2,
|
"phoneTypeId": 2,
|
||||||
"isPreferred": false
|
"isPreferred": false,
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
"devices": [
|
"devices":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"externalDeviceId": "123e4567-e89b-12d3-a456-426614174000",
|
"externalDeviceId": "123e4567-e89b-12d3-a456-426614174000",
|
||||||
"alias": "My iPhone",
|
"alias": "My iPhone",
|
||||||
@ -249,9 +247,9 @@ paths:
|
|||||||
{
|
{
|
||||||
"externalDeviceId": "987e6543-e21b-12d3-a456-426614174999",
|
"externalDeviceId": "987e6543-e21b-12d3-a456-426614174999",
|
||||||
"alias": "My iPad",
|
"alias": "My iPad",
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
responses:
|
responses:
|
||||||
"201":
|
"201":
|
||||||
@ -296,20 +294,22 @@ paths:
|
|||||||
patchCustomer:
|
patchCustomer:
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"person": {
|
"person":
|
||||||
|
{
|
||||||
"birthname": "Jan",
|
"birthname": "Jan",
|
||||||
"surname": "Jansen",
|
"surname": "Jansen",
|
||||||
"prefix": "dhr",
|
"prefix": "dhr",
|
||||||
"suffix": "jr",
|
"suffix": "jr",
|
||||||
"dateOfBirth": "1970-01-01",
|
"dateOfBirth": "1970-01-01",
|
||||||
"addresses": [
|
"addresses":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"addressId": 2,
|
"addressId": 2,
|
||||||
"street": "Laan van Meerdervoort",
|
"street": "Laan van Meerdervoort",
|
||||||
"houseNumber": 5,
|
"houseNumber": 5,
|
||||||
"postalCode": "2500AA",
|
"postalCode": "2500AA",
|
||||||
"city": "Den Haag",
|
"city": "Den Haag",
|
||||||
"country": "NL"
|
"country": "NL",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"addressId": 1,
|
"addressId": 1,
|
||||||
@ -319,26 +319,28 @@ paths:
|
|||||||
"postalCode": "2500AA",
|
"postalCode": "2500AA",
|
||||||
"city": "Den Haag",
|
"city": "Den Haag",
|
||||||
"country": "NL",
|
"country": "NL",
|
||||||
"addressTypeId": 2
|
"addressTypeId": 2,
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
"phones": [
|
"phones":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"phoneId": 1,
|
"phoneId": 1,
|
||||||
"number": "6123456789",
|
"number": "6123456789",
|
||||||
"countryCode": "0031",
|
"countryCode": "0031",
|
||||||
"phoneTypeId": 1,
|
"phoneTypeId": 1,
|
||||||
"isPreferred": true
|
"isPreferred": true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"phoneId": 2,
|
"phoneId": 2,
|
||||||
"number": "7012345678",
|
"number": "7012345678",
|
||||||
"countryCode": "0031",
|
"countryCode": "0031",
|
||||||
"phoneTypeId": 2,
|
"phoneTypeId": 2,
|
||||||
"isPreferred": false
|
"isPreferred": false,
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
"devices": [
|
"devices":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"deviceId": "813afdd8-bf8c-4e26-bfda-4da79552bd38",
|
"deviceId": "813afdd8-bf8c-4e26-bfda-4da79552bd38",
|
||||||
"externalDeviceId": "123e4567-e89b-12d3-a456-426614174000",
|
"externalDeviceId": "123e4567-e89b-12d3-a456-426614174000",
|
||||||
@ -348,9 +350,9 @@ paths:
|
|||||||
"deviceId": "4f4249a2-ac6c-44f9-b740-66e66b6f3c28",
|
"deviceId": "4f4249a2-ac6c-44f9-b740-66e66b6f3c28",
|
||||||
"externalDeviceId": "987e6543-e21b-12d3-a456-426614174999",
|
"externalDeviceId": "987e6543-e21b-12d3-a456-426614174999",
|
||||||
"alias": "My iPad",
|
"alias": "My iPad",
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
@ -490,8 +492,9 @@ paths:
|
|||||||
"customerProfileId": 1,
|
"customerProfileId": 1,
|
||||||
"ovPayTokenId": 1,
|
"ovPayTokenId": 1,
|
||||||
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
||||||
|
"ovpasNumber": "",
|
||||||
|
"alias": "Mijn EMV pas",
|
||||||
"tokenType": { "tokenTypeId": 1, "name": "EMV" },
|
"tokenType": { "tokenTypeId": 1, "name": "EMV" },
|
||||||
"alias": "MyToken",
|
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
"expirationDate": "2028-02-01",
|
"expirationDate": "2028-02-01",
|
||||||
@ -567,6 +570,7 @@ paths:
|
|||||||
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34567",
|
||||||
"alias": "MyToken",
|
"alias": "MyToken",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
@ -649,6 +653,7 @@ paths:
|
|||||||
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34567",
|
||||||
"alias": "MyToken",
|
"alias": "MyToken",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
@ -707,7 +712,7 @@ paths:
|
|||||||
"gboAgeProfileId": 1,
|
"gboAgeProfileId": 1,
|
||||||
"name": "Kind (4 t/m 11 jaar)",
|
"name": "Kind (4 t/m 11 jaar)",
|
||||||
"ageFromInclusive": 4,
|
"ageFromInclusive": 4,
|
||||||
"ageToInclusive": 11
|
"ageToInclusive": 11,
|
||||||
},
|
},
|
||||||
"_links":
|
"_links":
|
||||||
{
|
{
|
||||||
@ -771,6 +776,7 @@ paths:
|
|||||||
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34567",
|
||||||
"alias": "MyToken",
|
"alias": "MyToken",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
@ -804,7 +810,7 @@ paths:
|
|||||||
"gboAgeProfileId": 1,
|
"gboAgeProfileId": 1,
|
||||||
"name": "Kind (4 t/m 11 jaar)",
|
"name": "Kind (4 t/m 11 jaar)",
|
||||||
"ageFromInclusive": 4,
|
"ageFromInclusive": 4,
|
||||||
"ageToInclusive": 11
|
"ageToInclusive": 11,
|
||||||
},
|
},
|
||||||
"_links":
|
"_links":
|
||||||
{
|
{
|
||||||
@ -868,6 +874,7 @@ paths:
|
|||||||
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34567",
|
||||||
"alias": "MyToken",
|
"alias": "MyToken",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
@ -919,7 +926,7 @@ paths:
|
|||||||
"gboAgeProfileId": 1,
|
"gboAgeProfileId": 1,
|
||||||
"name": "Kind (4 t/m 11 jaar)",
|
"name": "Kind (4 t/m 11 jaar)",
|
||||||
"ageFromInclusive": 4,
|
"ageFromInclusive": 4,
|
||||||
"ageToInclusive": 11
|
"ageToInclusive": 11,
|
||||||
},
|
},
|
||||||
"_links":
|
"_links":
|
||||||
{
|
{
|
||||||
@ -983,6 +990,7 @@ paths:
|
|||||||
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34567",
|
||||||
"alias": "MyToken",
|
"alias": "MyToken",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
@ -1003,6 +1011,7 @@ paths:
|
|||||||
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV54567",
|
||||||
"alias": "MyToken",
|
"alias": "MyToken",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 3, "name": "Replaced (*)" },
|
{ "tokenStatusId": 3, "name": "Replaced (*)" },
|
||||||
@ -1024,6 +1033,7 @@ paths:
|
|||||||
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34547",
|
||||||
"alias": "MyToken",
|
"alias": "MyToken",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 4, "name": "On stock" },
|
{ "tokenStatusId": 4, "name": "On stock" },
|
||||||
@ -1037,7 +1047,7 @@ paths:
|
|||||||
"birthdate": null,
|
"birthdate": null,
|
||||||
"photo": null,
|
"photo": null,
|
||||||
},
|
},
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"customerProfileId": 132,
|
"customerProfileId": 132,
|
||||||
@ -1045,6 +1055,7 @@ paths:
|
|||||||
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34831",
|
||||||
"alias": "Mijn OV Pas",
|
"alias": "Mijn OV Pas",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 5, "name": "Suspended" },
|
{ "tokenStatusId": 5, "name": "Suspended" },
|
||||||
@ -1058,7 +1069,7 @@ paths:
|
|||||||
"birthdate": null,
|
"birthdate": null,
|
||||||
"photo": null,
|
"photo": null,
|
||||||
},
|
},
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"customerProfileId": 166,
|
"customerProfileId": 166,
|
||||||
@ -1066,6 +1077,7 @@ paths:
|
|||||||
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV34984",
|
||||||
"alias": "Mijn OV Pas",
|
"alias": "Mijn OV Pas",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{
|
{
|
||||||
@ -1082,7 +1094,7 @@ paths:
|
|||||||
"birthdate": null,
|
"birthdate": null,
|
||||||
"photo": null,
|
"photo": null,
|
||||||
},
|
},
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"customerProfileId": 166,
|
"customerProfileId": 166,
|
||||||
@ -1090,6 +1102,7 @@ paths:
|
|||||||
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV54368",
|
||||||
"alias": "My retired token",
|
"alias": "My retired token",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 1, "name": "Retired" },
|
{ "tokenStatusId": 1, "name": "Retired" },
|
||||||
@ -1103,7 +1116,7 @@ paths:
|
|||||||
"birthdate": null,
|
"birthdate": null,
|
||||||
"photo": null,
|
"photo": null,
|
||||||
},
|
},
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"customerProfileId": 1,
|
"customerProfileId": 1,
|
||||||
@ -1111,6 +1124,7 @@ paths:
|
|||||||
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
"xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969",
|
||||||
"tokenType":
|
"tokenType":
|
||||||
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
|
"ovpasNumber": "OV98263",
|
||||||
"alias": "My found token",
|
"alias": "My found token",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 7, "name": "Renewed Active" },
|
{ "tokenStatusId": 7, "name": "Renewed Active" },
|
||||||
@ -1124,7 +1138,7 @@ paths:
|
|||||||
"birthdate": null,
|
"birthdate": null,
|
||||||
"photo": null,
|
"photo": null,
|
||||||
},
|
},
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
_links:
|
_links:
|
||||||
@ -1214,7 +1228,7 @@ paths:
|
|||||||
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
||||||
"tokenType": { "tokenTypeId": 1, "name": "EMV" },
|
"tokenType": { "tokenTypeId": 1, "name": "EMV" },
|
||||||
"lastDigits": null,
|
"lastDigits": null,
|
||||||
"ovPasNumber": null,
|
"ovpasNumber": null,
|
||||||
"alias": "Mijn token",
|
"alias": "Mijn token",
|
||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
@ -1950,11 +1964,12 @@ paths:
|
|||||||
type: integer
|
type: integer
|
||||||
example: 1
|
example: 1
|
||||||
required: true
|
required: true
|
||||||
summary: Replace an OVpay token with another (+ transfer products) - V2 (for Integratielaag)
|
summary: |-
|
||||||
description: |
|
NOT TO BE CALLED BY TOUCHPOINTS - Replace an OVpay token with another (+ transfer products) - V2
|
||||||
|
description: |-
|
||||||
|
**NOTE: This endpoint is for usage by integratielaag only. Touchpoints should use
|
||||||
|
`/customers/tokens/{ovpayTokenId}/transfer` instead.**\
|
||||||
Transfer products from one OVpay token to another, and replace the tokens in the database.
|
Transfer products from one OVpay token to another, and replace the tokens in the database.
|
||||||
This endpoint is for usage by integratielaag only. Touch points should use
|
|
||||||
`/customers/tokens/{ovpayTokenId}/transfer` instead.
|
|
||||||
requestBody:
|
requestBody:
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
@ -2369,7 +2384,7 @@ paths:
|
|||||||
"ePurse": null,
|
"ePurse": null,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": null, "birthdate": null, "photo": null },
|
{ "name": null, "birthdate": null, "photo": null },
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
"newOvPayToken":
|
"newOvPayToken":
|
||||||
{
|
{
|
||||||
@ -2386,7 +2401,7 @@ paths:
|
|||||||
"ePurse": null,
|
"ePurse": null,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": null, "birthdate": null, "photo": null },
|
{ "name": null, "birthdate": null, "photo": null },
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
"isTransferable": true,
|
"isTransferable": true,
|
||||||
"transferableObjects":
|
"transferableObjects":
|
||||||
@ -2399,7 +2414,7 @@ paths:
|
|||||||
"ePurse": true,
|
"ePurse": true,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": true, "birthdate": true, "photo": true },
|
{ "name": true, "birthdate": true, "photo": true },
|
||||||
"gboAgeProfile": true
|
"gboAgeProfile": true,
|
||||||
},
|
},
|
||||||
"_links":
|
"_links":
|
||||||
{
|
{
|
||||||
@ -2423,50 +2438,57 @@ paths:
|
|||||||
"tokenStatus":
|
"tokenStatus":
|
||||||
{ "tokenStatusId": 2, "name": "Active" },
|
{ "tokenStatusId": 2, "name": "Active" },
|
||||||
"expirationDate": "2028-02-01",
|
"expirationDate": "2028-02-01",
|
||||||
"productInstances": [
|
"productInstances":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"productId": 1,
|
"productId": 1,
|
||||||
"name": "HTM 90% Korting EMV",
|
"name": "HTM 90% Korting EMV",
|
||||||
"status": "Active",
|
"status": "Active",
|
||||||
"isRenewable": true,
|
"isRenewable": true,
|
||||||
"productCategory": {
|
"productCategory":
|
||||||
|
{
|
||||||
"productCategoryId": 1,
|
"productCategoryId": 1,
|
||||||
"name": "Kortingsabonnement"
|
"name": "Kortingsabonnement",
|
||||||
},
|
},
|
||||||
"fromInclusive": "2025-11-25T13:25:00+01:00",
|
"fromInclusive": "2025-11-25T13:25:00+01:00",
|
||||||
"untilInclusive": "2025-12-25T03:59:59+01:00",
|
"untilInclusive": "2025-12-25T03:59:59+01:00",
|
||||||
"orderId": "501B17EF-36C4-4039-B92C-6517969B464E",
|
"orderId": "501B17EF-36C4-4039-B92C-6517969B464E",
|
||||||
"orderLineId": "38B17EF-36C4-4039-B92C-4817969B464E",
|
"orderLineId": "38B17EF-36C4-4039-B92C-4817969B464E",
|
||||||
"contractId": "56B17EF-C436-9043-B76C-481797WEB464F",
|
"contractId": "56B17EF-C436-9043-B76C-481797WEB464F",
|
||||||
"_links": {
|
"_links":
|
||||||
"self": {
|
{
|
||||||
|
"self":
|
||||||
|
{
|
||||||
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/tokens/1/productinstances/1",
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/tokens/1/productinstances/1",
|
||||||
"method": "GET"
|
"method": "GET",
|
||||||
},
|
},
|
||||||
"get_order": {
|
"get_order":
|
||||||
|
{
|
||||||
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/orders/501B17EF-36C4-4039-B92C-6517969B464E",
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/orders/501B17EF-36C4-4039-B92C-6517969B464E",
|
||||||
"method": "GET"
|
"method": "GET",
|
||||||
},
|
},
|
||||||
"get_contract": {
|
"get_contract":
|
||||||
|
{
|
||||||
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F",
|
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F",
|
||||||
"method": "GET"
|
"method": "GET",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
"replacedByTokenId": null,
|
"replacedByTokenId": null,
|
||||||
"autoReloadRegistration": null,
|
"autoReloadRegistration": null,
|
||||||
"ePurse": null,
|
"ePurse": null,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": null, "birthdate": null, "photo": null },
|
{ "name": null, "birthdate": null, "photo": null },
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
"newOvPayToken":
|
"newOvPayToken":
|
||||||
{
|
{
|
||||||
"customerProfileId": null,
|
"customerProfileId": null,
|
||||||
"ovPayTokenId": null,
|
"ovPayTokenId": null,
|
||||||
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
|
||||||
"tokenType": { "tokenTypeId": 2, "name": "OV-pas physical" },
|
"tokenType":
|
||||||
|
{ "tokenTypeId": 2, "name": "OV-pas physical" },
|
||||||
"alias": null,
|
"alias": null,
|
||||||
"tokenStatus": null,
|
"tokenStatus": null,
|
||||||
"expirationDate": "2028-02-01",
|
"expirationDate": "2028-02-01",
|
||||||
@ -2476,7 +2498,7 @@ paths:
|
|||||||
"ePurse": null,
|
"ePurse": null,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": null, "birthdate": null, "photo": null },
|
{ "name": null, "birthdate": null, "photo": null },
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
"isTransferable": false,
|
"isTransferable": false,
|
||||||
"transferableObjects":
|
"transferableObjects":
|
||||||
@ -2513,7 +2535,7 @@ paths:
|
|||||||
"ePurse": null,
|
"ePurse": null,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": null, "birthdate": null, "photo": null },
|
{ "name": null, "birthdate": null, "photo": null },
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
"newOvPayToken":
|
"newOvPayToken":
|
||||||
{
|
{
|
||||||
@ -2530,7 +2552,7 @@ paths:
|
|||||||
"ePurse": null,
|
"ePurse": null,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": null, "birthdate": null, "photo": null },
|
{ "name": null, "birthdate": null, "photo": null },
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
"isTransferable": false,
|
"isTransferable": false,
|
||||||
"transferableObjects":
|
"transferableObjects":
|
||||||
@ -2602,8 +2624,8 @@ paths:
|
|||||||
"gboAgeProfileId": 1,
|
"gboAgeProfileId": 1,
|
||||||
"name": "Kind (4 t/m 11 jaar)",
|
"name": "Kind (4 t/m 11 jaar)",
|
||||||
"ageFromInclusive": 4,
|
"ageFromInclusive": 4,
|
||||||
"ageToInclusive": 11
|
"ageToInclusive": 11,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
"newOvPayToken":
|
"newOvPayToken":
|
||||||
{
|
{
|
||||||
@ -2620,7 +2642,7 @@ paths:
|
|||||||
"ePurse": null,
|
"ePurse": null,
|
||||||
"personalAccountData":
|
"personalAccountData":
|
||||||
{ "name": null, "birthdate": null, "photo": null },
|
{ "name": null, "birthdate": null, "photo": null },
|
||||||
"gboAgeProfile": null
|
"gboAgeProfile": null,
|
||||||
},
|
},
|
||||||
"isTransferable": false,
|
"isTransferable": false,
|
||||||
"transferableObjects":
|
"transferableObjects":
|
||||||
@ -2678,8 +2700,8 @@ paths:
|
|||||||
"gboAgeProfileId": 1,
|
"gboAgeProfileId": 1,
|
||||||
"name": "Kind (4 t/m 11 jaar)",
|
"name": "Kind (4 t/m 11 jaar)",
|
||||||
"ageFromInclusive": 4,
|
"ageFromInclusive": 4,
|
||||||
"ageToInclusive": 11
|
"ageToInclusive": 11,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
"newOvPayToken":
|
"newOvPayToken":
|
||||||
{
|
{
|
||||||
@ -2714,8 +2736,8 @@ paths:
|
|||||||
"gboAgeProfileId": 4,
|
"gboAgeProfileId": 4,
|
||||||
"name": "Kind (19 t/m 65 jaar)",
|
"name": "Kind (19 t/m 65 jaar)",
|
||||||
"ageFromInclusive": 19,
|
"ageFromInclusive": 19,
|
||||||
"ageToInclusive": 65
|
"ageToInclusive": 65,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
"isTransferable": false,
|
"isTransferable": false,
|
||||||
"transferableObjects":
|
"transferableObjects":
|
||||||
@ -2857,9 +2879,9 @@ paths:
|
|||||||
type: integer
|
type: integer
|
||||||
example: 1
|
example: 1
|
||||||
post:
|
post:
|
||||||
summary: "**INTEGRATIELAAG** Transfer old OVpay token to new OVpay token."
|
summary: "Transfer old OVpay token to new OVpay token."
|
||||||
description: |-
|
description: |-
|
||||||
**Note that this is an integratielaag endpoint, not a Service Engine endpoint!**
|
**Note that this directly calls the integratielaag and not the Service Engine!**
|
||||||
First transfers all personal account data (if present), then all products, of an existing OVpay token
|
First transfers all personal account data (if present), then all products, of an existing OVpay token
|
||||||
to a new OVpay token. The new token will also be persisted in the profile as a replacement
|
to a new OVpay token. The new token will also be persisted in the profile as a replacement
|
||||||
of the old token. This call is asynchronous, and progress can be monitored using the
|
of the old token. This call is asynchronous, and progress can be monitored using the
|
||||||
@ -2998,9 +3020,9 @@ paths:
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Token Replace v2
|
- Token Replace v2
|
||||||
summary: "**INTEGRATIELAAG** Get the status of the initiated token transfer process (POST)."
|
summary: "Get the status of the initiated token transfer process (POST)."
|
||||||
description: |
|
description: |
|
||||||
**Note that this is an integratielaag endpoint, not a Service Engine endpoint!** Get the status of the
|
**Note that this directly calls the integratielaag and not the Service Engine!** Get the status of the
|
||||||
asynchronous token transfer processing.
|
asynchronous token transfer processing.
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
@ -3078,7 +3100,7 @@ paths:
|
|||||||
"gboAgeProfileId": 1,
|
"gboAgeProfileId": 1,
|
||||||
"name": "Kind (4 t/m 11 jaar)",
|
"name": "Kind (4 t/m 11 jaar)",
|
||||||
"ageFromInclusive": 4,
|
"ageFromInclusive": 4,
|
||||||
"ageToInclusive": 11
|
"ageToInclusive": 11,
|
||||||
},
|
},
|
||||||
"_links":
|
"_links":
|
||||||
{
|
{
|
||||||
@ -3119,60 +3141,22 @@ paths:
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
"202":
|
||||||
|
description: Accepted
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/unavailable"
|
||||||
|
examples:
|
||||||
Token transfer in progress:
|
Token transfer in progress:
|
||||||
description: |
|
description: |
|
||||||
The transfer of the token is still in progress. The response body shows the details of the
|
The transfer of the token is still in progress. The response body shows the details of the
|
||||||
processing status.
|
processing status.
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"properties":
|
"startTime": "2025-02-14T05:32:47.067Z",
|
||||||
{
|
|
||||||
"waitEndTime": "2025-06-04T09:29:21.9641991Z",
|
|
||||||
"startTime": "2025-06-04T09:29:21.9641991Z",
|
|
||||||
"status": "Running",
|
"status": "Running",
|
||||||
"correlation":
|
"clientTrackingId": "08584620957189579629541919368CU00",
|
||||||
{
|
|
||||||
"clientTrackingId": "08584525775244808022011782750CU00",
|
|
||||||
},
|
|
||||||
"workflow":
|
|
||||||
{
|
|
||||||
"id": "/workflows/9cd96b77c0b94b31832778569f8ef2f9/versions/08584532480062676349",
|
|
||||||
"name": "08584532480062676349",
|
|
||||||
"type": "workflows/versions",
|
|
||||||
},
|
|
||||||
"trigger":
|
|
||||||
{
|
|
||||||
"name": "token_transfer",
|
|
||||||
"inputsLink":
|
|
||||||
{
|
|
||||||
"uri": "https://htm-abt-logicapp-acc.azurewebsites.net:443/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/9cd96b77c0b94b31832778569f8ef2f9/runs/08584525775235278538475939776CU00/contents/TriggerInputs?api-version=2022-05-01&code=C6PDQGl3MGwt8KyA9BjWDdQbzBwm-01gEmZaTp-hPJ5UAzFuPU-thg%3d%3d&se=2025-06-04T13%3A00%3A00.0000000Z&sp=%2Fruns%2F08584525775235278538475939776CU00%2Fcontents%2FTriggerInputs%2Fread&sv=1.0&sig=6Uxs33K7cQ7jONWzhv9XFPzx4RRHZ6smzfM6wNPk5Mc",
|
|
||||||
"contentSize": 298,
|
|
||||||
},
|
|
||||||
"outputsLink":
|
|
||||||
{
|
|
||||||
"uri": "https://htm-abt-logicapp-acc.azurewebsites.net:443/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/9cd96b77c0b94b31832778569f8ef2f9/runs/08584525775235278538475939776CU00/contents/TriggerOutputs?api-version=2022-05-01&code=C6PDQGl3MGwt8KyA9BjWDdQbzBwm-01gEmZaTp-hPJ5UAzFuPU-thg%3d%3d&se=2025-06-04T13%3A00%3A00.0000000Z&sp=%2Fruns%2F08584525775235278538475939776CU00%2Fcontents%2FTriggerOutputs%2Fread&sv=1.0&sig=vJ6pmCsmz2aP7f73MVOmCTes3YvC1e2w0ZLqdypLXrM",
|
|
||||||
"contentSize": 6110,
|
|
||||||
},
|
|
||||||
"startTime": "2025-06-04T09:29:21.9497457Z",
|
|
||||||
"endTime": "2025-06-04T09:29:21.9497457Z",
|
|
||||||
"originHistoryName": "08584525775235278538475939776CU00",
|
|
||||||
"correlation":
|
|
||||||
{
|
|
||||||
"clientTrackingId": "08584525775244808022011782750CU00",
|
|
||||||
},
|
|
||||||
"status": "Succeeded",
|
|
||||||
},
|
|
||||||
"outputs": {},
|
|
||||||
"response":
|
|
||||||
{
|
|
||||||
"startTime": "2025-06-04T09:29:21.9642901Z",
|
|
||||||
"correlation": {},
|
|
||||||
"status": "Waiting",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"id": "/workflows/9cd96b77c0b94b31832778569f8ef2f9/runs/08584525775235278538475939776CU00",
|
|
||||||
"name": "08584525775235278538475939776CU00",
|
|
||||||
"type": "workflows/runs",
|
|
||||||
}
|
}
|
||||||
"404":
|
"404":
|
||||||
description: Not found
|
description: Not found
|
||||||
@ -3371,10 +3355,7 @@ paths:
|
|||||||
$ref: "#/components/schemas/unavailable"
|
$ref: "#/components/schemas/unavailable"
|
||||||
examples:
|
examples:
|
||||||
Update alias of a device:
|
Update alias of a device:
|
||||||
value:
|
value: { "alias": "My old iPhone 13" }
|
||||||
{
|
|
||||||
"alias": "My old iPhone 13",
|
|
||||||
}
|
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: OK
|
description: OK
|
||||||
|
|||||||
@ -31,6 +31,12 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
type: integer
|
type: integer
|
||||||
description: Filter by customer profile ID
|
description: Filter by customer profile ID
|
||||||
|
- name: ovPayTokenId
|
||||||
|
in: query
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: Filter by OV Pay token ID
|
||||||
- name: isCurrentlyActive
|
- name: isCurrentlyActive
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
@ -44,6 +50,13 @@ paths:
|
|||||||
type: integer
|
type: integer
|
||||||
default: 1
|
default: 1
|
||||||
description: Limit the number of subscription activities returned per subscription (default is 1)
|
description: Limit the number of subscription activities returned per subscription (default is 1)
|
||||||
|
- name: expand
|
||||||
|
in: query
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
enum: [none, notificationPreference, eventTypeChannel]
|
||||||
|
default: none
|
||||||
|
description: "Expand nested attributes. Possible values: `none`, `notificationPreference`, and `eventTypeChannel`."
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: A list of notification subscriptions
|
description: A list of notification subscriptions
|
||||||
@ -53,17 +66,21 @@ paths:
|
|||||||
$ref: "#/components/schemas/GetNotificationSubscriptionsResponse"
|
$ref: "#/components/schemas/GetNotificationSubscriptionsResponse"
|
||||||
examples:
|
examples:
|
||||||
emptyNotificationSubscriptionResponse:
|
emptyNotificationSubscriptionResponse:
|
||||||
|
summary: No notification subscriptions found
|
||||||
value:
|
value:
|
||||||
notificationSubscriptions: []
|
notificationSubscriptions: []
|
||||||
href: null
|
href: null
|
||||||
fullNotificationSubscriptionResponse:
|
notificationSubscriptionResponse?expand=none:
|
||||||
|
summary: Return notification subscriptions without nested attributes (expand=none)
|
||||||
value:
|
value:
|
||||||
notificationSubscriptions:
|
notificationSubscriptions:
|
||||||
- notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
- notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
notificationCategory:
|
notificationCategory:
|
||||||
notificationCategoryId: 1
|
notificationCategoryId: 1
|
||||||
name: Mijn Reizen
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
customerProfileId: 1337
|
customerProfileId: 1337
|
||||||
|
ovPayTokenId: 42
|
||||||
subscriptionActivities:
|
subscriptionActivities:
|
||||||
- subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387
|
- subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387
|
||||||
user: "1001337"
|
user: "1001337"
|
||||||
@ -77,7 +94,9 @@ paths:
|
|||||||
notificationCategory:
|
notificationCategory:
|
||||||
notificationCategoryId: 2
|
notificationCategoryId: 2
|
||||||
name: Nieuwsbrief aanmelding
|
name: Nieuwsbrief aanmelding
|
||||||
|
groupName: Marketing
|
||||||
customerProfileId: 1338
|
customerProfileId: 1338
|
||||||
|
ovPayTokenId: null
|
||||||
subscriptionActivities:
|
subscriptionActivities:
|
||||||
- subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4
|
- subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4
|
||||||
user: "1001338"
|
user: "1001338"
|
||||||
@ -88,6 +107,113 @@ paths:
|
|||||||
timestamp: "2025-10-02T14:00:00Z"
|
timestamp: "2025-10-02T14:00:00Z"
|
||||||
isActive: true
|
isActive: true
|
||||||
href: null
|
href: null
|
||||||
|
notificationSubscriptionResponse?expand=notificationPreference:
|
||||||
|
summary: Return notification subscriptions with nested notification preferences (expand=notificationPreference)
|
||||||
|
value:
|
||||||
|
notificationSubscriptions:
|
||||||
|
- notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
|
notificationCategory:
|
||||||
|
notificationCategoryId: 1
|
||||||
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
|
customerProfileId: 1337
|
||||||
|
ovPayTokenId: 42
|
||||||
|
subscriptionActivities:
|
||||||
|
- subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387
|
||||||
|
user: "1001337"
|
||||||
|
timestamp: "2025-10-02T15:00:00Z"
|
||||||
|
isActive: true
|
||||||
|
- subscriptionActivityId: f78bc171-a50e-4b88-88d3-a76585bffd54
|
||||||
|
user: "1001337"
|
||||||
|
timestamp: "2025-10-02T14:00:00Z"
|
||||||
|
isActive: false
|
||||||
|
notificationPreferences:
|
||||||
|
- notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc
|
||||||
|
eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
|
||||||
|
resourceIdentifier: null
|
||||||
|
- notificationPreferenceId: e5f6a7b8-c9d0-41e2-f012-34567890abcd
|
||||||
|
eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
|
||||||
|
resourceIdentifier: 44
|
||||||
|
- notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd
|
||||||
|
notificationCategory:
|
||||||
|
notificationCategoryId: 2
|
||||||
|
name: Nieuwsbrief aanmelding
|
||||||
|
groupName: Marketing
|
||||||
|
customerProfileId: 1338
|
||||||
|
ovPayTokenId: null
|
||||||
|
subscriptionActivities:
|
||||||
|
- subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4
|
||||||
|
user: "1001338"
|
||||||
|
timestamp: "2025-10-02T15:00:00Z"
|
||||||
|
isActive: false
|
||||||
|
- subscriptionActivityId: cb2fc1d3-f143-4dd7-8608-4538e5637e3a
|
||||||
|
user: "1001338"
|
||||||
|
timestamp: "2025-10-02T14:00:00Z"
|
||||||
|
isActive: true
|
||||||
|
notificationPreferences: []
|
||||||
|
href: null
|
||||||
|
notificationSubscriptionResponse?expand=eventTypeChannel:
|
||||||
|
summary: Return notification subscriptions with nested event type channels (expand=eventTypeChannel)
|
||||||
|
value:
|
||||||
|
notificationSubscriptions:
|
||||||
|
- notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
|
notificationCategory:
|
||||||
|
notificationCategoryId: 1
|
||||||
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
|
customerProfileId: 1337
|
||||||
|
ovPayTokenId: 42
|
||||||
|
subscriptionActivities:
|
||||||
|
- subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387
|
||||||
|
user: "1001337"
|
||||||
|
timestamp: "2025-10-02T15:00:00Z"
|
||||||
|
isActive: true
|
||||||
|
- subscriptionActivityId: f78bc171-a50e-4b88-88d3-a76585bffd54
|
||||||
|
user: "1001337"
|
||||||
|
timestamp: "2025-10-02T14:00:00Z"
|
||||||
|
isActive: false
|
||||||
|
notificationPreferences:
|
||||||
|
- notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc
|
||||||
|
eventTypeChannel:
|
||||||
|
eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
|
||||||
|
channel:
|
||||||
|
channelId: 1
|
||||||
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
|
isDefault: true
|
||||||
|
isMandatory: false
|
||||||
|
resourceIdentifier: null
|
||||||
|
- notificationPreferenceId: e5f6a7b8-c9d0-41e2-f012-34567890abcd
|
||||||
|
eventTypeChannelId:
|
||||||
|
eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
|
||||||
|
channel:
|
||||||
|
channelId: 2
|
||||||
|
name: email
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
|
isDefault: false
|
||||||
|
isMandatory: false
|
||||||
|
resourceIdentifier: 44
|
||||||
|
- notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd
|
||||||
|
notificationCategory:
|
||||||
|
notificationCategoryId: 2
|
||||||
|
name: Nieuwsbrief aanmelding
|
||||||
|
groupName: Marketing
|
||||||
|
customerProfileId: 1338
|
||||||
|
ovPayTokenId: null
|
||||||
|
subscriptionActivities:
|
||||||
|
- subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4
|
||||||
|
user: "1001338"
|
||||||
|
timestamp: "2025-10-02T15:00:00Z"
|
||||||
|
isActive: false
|
||||||
|
- subscriptionActivityId: cb2fc1d3-f143-4dd7-8608-4538e5637e3a
|
||||||
|
user: "1001338"
|
||||||
|
timestamp: "2025-10-02T14:00:00Z"
|
||||||
|
isActive: true
|
||||||
|
notificationPreferences: []
|
||||||
"400":
|
"400":
|
||||||
description: Bad request
|
description: Bad request
|
||||||
content:
|
content:
|
||||||
@ -175,10 +301,6 @@ paths:
|
|||||||
type: object
|
type: object
|
||||||
$ref: "#/components/schemas/500Response"
|
$ref: "#/components/schemas/500Response"
|
||||||
/notificationsubscriptions/{notificationSubscriptionId}:
|
/notificationsubscriptions/{notificationSubscriptionId}:
|
||||||
delete:
|
|
||||||
summary: Delete a notification subscription by ID
|
|
||||||
tags:
|
|
||||||
- Notification Subscriptions
|
|
||||||
parameters:
|
parameters:
|
||||||
- name: notificationSubscriptionId
|
- name: notificationSubscriptionId
|
||||||
in: path
|
in: path
|
||||||
@ -187,6 +309,63 @@ paths:
|
|||||||
type: string
|
type: string
|
||||||
format: uuid
|
format: uuid
|
||||||
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
|
patch:
|
||||||
|
summary: Update a notification subscription by ID
|
||||||
|
tags:
|
||||||
|
- Notification Subscriptions
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/PatchNotificationSubscriptionRequest"
|
||||||
|
examples:
|
||||||
|
updateNotificationSubscriptionRequest:
|
||||||
|
value:
|
||||||
|
ovPayTokenId: 43
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: Notification subscription updated successfully
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/PatchNotificationSubscriptionResponse"
|
||||||
|
examples:
|
||||||
|
updateNotificationSubscriptionResponse:
|
||||||
|
value:
|
||||||
|
notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
|
"400":
|
||||||
|
description: Bad request
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/400Response"
|
||||||
|
"401":
|
||||||
|
description: Unauthorized
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/401Response"
|
||||||
|
"404":
|
||||||
|
description: Not found
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/404Response"
|
||||||
|
"500":
|
||||||
|
description: Internal server error
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/500Response"
|
||||||
|
delete:
|
||||||
|
summary: Delete a notification subscription by ID
|
||||||
|
tags:
|
||||||
|
- Notification Subscriptions
|
||||||
responses:
|
responses:
|
||||||
"204":
|
"204":
|
||||||
description: No content
|
description: No content
|
||||||
@ -282,12 +461,196 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
type: object
|
type: object
|
||||||
$ref: "#/components/schemas/500Response"
|
$ref: "#/components/schemas/500Response"
|
||||||
|
/notificationsubscriptions/{notificationSubscriptionId}/notificationpreferences:
|
||||||
|
parameters:
|
||||||
|
- name: notificationSubscriptionId
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
|
post:
|
||||||
|
summary: Add a notification preference to a notification subscription
|
||||||
|
tags:
|
||||||
|
- Notification Preferences
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/PostNotificationPreferenceRequest"
|
||||||
|
examples:
|
||||||
|
addNotificationPreferenceNotNull:
|
||||||
|
summary: With non-null resource identifier
|
||||||
|
value:
|
||||||
|
eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
|
||||||
|
resourceIdentifier: 44
|
||||||
|
addNotificationPreferenceNull:
|
||||||
|
summary: With null resource identifier
|
||||||
|
value:
|
||||||
|
eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
|
||||||
|
resourceIdentifier: null
|
||||||
|
responses:
|
||||||
|
"201":
|
||||||
|
description: Notification preference added successfully
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/PostNotificationPreferenceResponse"
|
||||||
|
examples:
|
||||||
|
addNotificationPreferenceResponse:
|
||||||
|
value:
|
||||||
|
notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc
|
||||||
|
"400":
|
||||||
|
description: Bad request
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/400Response"
|
||||||
|
"401":
|
||||||
|
description: Unauthorized
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/401Response"
|
||||||
|
"404":
|
||||||
|
description: Not found
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/404Response"
|
||||||
|
"500":
|
||||||
|
description: Internal server error
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/500Response"
|
||||||
|
/notificationpreferences/{notificationPreferenceId}:
|
||||||
|
parameters:
|
||||||
|
- name: notificationPreferenceId
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d4e5f6a7-b8c9-40d1-ef01-234567890abc
|
||||||
|
patch:
|
||||||
|
summary: Update a notification preference by ID
|
||||||
|
tags:
|
||||||
|
- Notification Preferences
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/PatchNotificationPreferenceRequest"
|
||||||
|
examples:
|
||||||
|
updateNotificationPreferenceRequest:
|
||||||
|
value:
|
||||||
|
resourceIdentifier: 55
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: Notification preference updated successfully
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/PatchNotificationPreferenceResponse"
|
||||||
|
examples:
|
||||||
|
updateNotificationPreferenceResponse:
|
||||||
|
value:
|
||||||
|
notificationPreferenceId: d4e5f6a7-b8c9-40d1-ef01-234567890abc
|
||||||
|
"400":
|
||||||
|
description: Bad request
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/400Response"
|
||||||
|
"401":
|
||||||
|
description: Unauthorized
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/401Response"
|
||||||
|
"404":
|
||||||
|
description: Not found
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/404Response"
|
||||||
|
"500":
|
||||||
|
description: Internal server error
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/500Response"
|
||||||
|
delete:
|
||||||
|
summary: Delete a notification preference by ID
|
||||||
|
tags:
|
||||||
|
- Notification Preferences
|
||||||
|
responses:
|
||||||
|
"204":
|
||||||
|
description: No content
|
||||||
|
"400":
|
||||||
|
description: Bad request
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/400Response"
|
||||||
|
"401":
|
||||||
|
description: Unauthorized
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/401Response"
|
||||||
|
"404":
|
||||||
|
description: Not found
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/404Response"
|
||||||
|
"500":
|
||||||
|
description: Internal server error
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
$ref: "#/components/schemas/500Response"
|
||||||
/notificationcategories:
|
/notificationcategories:
|
||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Notification Categories
|
- Notification Categories
|
||||||
summary: Get all notification categories.
|
summary: Get all notification categories.
|
||||||
parameters:
|
parameters:
|
||||||
|
- name: notificationCategoryId
|
||||||
|
in: query
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: Filter by notification category ID
|
||||||
|
- name: name
|
||||||
|
in: query
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: Filter by notification category name (case-insensitive, partial match)
|
||||||
|
- name: groupName
|
||||||
|
in: query
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
description: Filter by notification category group name (case-insensitive, partial match)
|
||||||
- name: expand
|
- name: expand
|
||||||
in: query
|
in: query
|
||||||
schema:
|
schema:
|
||||||
@ -303,41 +666,58 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
$ref: "#/components/schemas/GetNotificationCategoriesResponse"
|
$ref: "#/components/schemas/GetNotificationCategoriesResponse"
|
||||||
examples:
|
examples:
|
||||||
|
emptyNotificationCategoriesResponse:
|
||||||
|
summary: No notification categories found
|
||||||
|
value:
|
||||||
|
notificationCategories: []
|
||||||
getNotifactionCategories?expand=none:
|
getNotifactionCategories?expand=none:
|
||||||
summary: Return all the notification categories without nested attributes (expand=none)
|
summary: Return all the notification categories without nested attributes (expand=none)
|
||||||
value:
|
value:
|
||||||
notificationCategories:
|
notificationCategories:
|
||||||
- notificationCategoryId: 1
|
- notificationCategoryId: 1
|
||||||
name: Mijn Reizen
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
- notificationCategoryId: 2
|
- notificationCategoryId: 2
|
||||||
name: Nieuwsbrief aanmelding
|
name: Nieuwsbrief aanmelding
|
||||||
|
groupName: Marketing
|
||||||
- notificationCategoryId: 3
|
- notificationCategoryId: 3
|
||||||
name: Mijn Passen
|
name: Serviceberichten
|
||||||
|
groupName: Mijn Passen
|
||||||
getNotifactionCategories?expand=eventType:
|
getNotifactionCategories?expand=eventType:
|
||||||
summary: Return all the notification categories with nested event types (expand=eventType)
|
summary: Return all the notification categories with nested event types (expand=eventType)
|
||||||
value:
|
value:
|
||||||
notificationCategories:
|
notificationCategories:
|
||||||
- notificationCategoryId: 1
|
- notificationCategoryId: 1
|
||||||
name: Mijn Reizen
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
eventTypes:
|
eventTypes:
|
||||||
- eventTypeId: 2
|
- eventTypeId: 2
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, TRAVEL_SCHEME
|
name: TRIPS
|
||||||
subName: CI
|
subName: CKI
|
||||||
prettyName: Check In
|
prettyName: Normal Check-in
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab
|
||||||
|
name: GBO_TRIPS
|
||||||
|
externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210
|
||||||
- eventTypeId: 3
|
- eventTypeId: 3
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, PAD
|
name: PAD
|
||||||
subName: null
|
subName: AMEND
|
||||||
prettyName: Profielgegevens op de pas
|
prettyName: PAD Wijzigen/Aanvullen
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||||
|
name: GBO_PAD
|
||||||
|
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||||
- notificationCategoryId: 2
|
- notificationCategoryId: 2
|
||||||
name: Nieuwsbrief aanmelding
|
name: Nieuwsbrief aanmelding
|
||||||
|
groupName: Marketing
|
||||||
eventTypes:
|
eventTypes:
|
||||||
- eventTypeId: 1
|
- eventTypeId: 1
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
@ -347,76 +727,108 @@ paths:
|
|||||||
subName: null
|
subName: null
|
||||||
prettyName: HTM nieuwsbrief
|
prettyName: HTM nieuwsbrief
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription: null
|
||||||
- notificationCategoryId: 3
|
- notificationCategoryId: 3
|
||||||
name: Mijn Passen
|
name: Serviceberichten
|
||||||
|
groupName: Mijn Passen
|
||||||
eventTypes:
|
eventTypes:
|
||||||
- eventTypeId: 4
|
- eventTypeId: 4
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, CARD
|
name: PRODUCT
|
||||||
subName: null
|
subName: ACTIVATE
|
||||||
prettyName: Mijn passen
|
prettyName: Product Geactiveerd
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de
|
||||||
|
name: GBO_PRODUCT
|
||||||
|
externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef
|
||||||
- eventTypeId: 5
|
- eventTypeId: 5
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, PAD
|
name: PAD
|
||||||
subName: null
|
subName: MARK
|
||||||
prettyName: Profielgegevens op de pas
|
prettyName: PAD Markering
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||||
|
name: GBO_PAD
|
||||||
|
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||||
getNotifactionCategories?expand=eventTypeChannel:
|
getNotifactionCategories?expand=eventTypeChannel:
|
||||||
summary: Return all the notification categories with all nested attributes (expand=eventTypeChannel)
|
summary: Return all the notification categories with all nested attributes (expand=eventTypeChannel)
|
||||||
value:
|
value:
|
||||||
notificationCategories:
|
notificationCategories:
|
||||||
- notificationCategoryId: 1
|
- notificationCategoryId: 1
|
||||||
name: Mijn Reizen
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
eventTypes:
|
eventTypes:
|
||||||
- eventTypeId: 2
|
- eventTypeId: 2
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, TRAVEL_SCHEME
|
name: TRIPS
|
||||||
subName: CI
|
subName: CKI
|
||||||
prettyName: Check In
|
prettyName: Normal Check-in
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab
|
||||||
|
name: GBO_TRIPS
|
||||||
|
externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210
|
||||||
eventTypeChannels:
|
eventTypeChannels:
|
||||||
- eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
|
- eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
|
||||||
channel:
|
channel:
|
||||||
channelId: 1
|
channelId: 1
|
||||||
name: push
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
isDefault: true
|
isDefault: true
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
|
- eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
|
||||||
channel:
|
channel:
|
||||||
channelId: 2
|
channelId: 2
|
||||||
name: email
|
name: email
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
isDefault: false
|
isDefault: false
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- eventTypeId: 3
|
- eventTypeId: 3
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, PAD
|
name: PAD
|
||||||
subName: null
|
subName: AMEND
|
||||||
prettyName: Profielgegevens op de pas
|
prettyName: PAD Wijzigen/Aanvullen
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||||
|
name: GBO_PAD
|
||||||
|
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||||
eventTypeChannels:
|
eventTypeChannels:
|
||||||
- eventTypeChannelId: 8e7df8f1-7e50-482f-8301-d399e75fd432
|
- eventTypeChannelId: 8e7df8f1-7e50-482f-8301-d399e75fd432
|
||||||
channel:
|
channel:
|
||||||
channelId: 1
|
channelId: 1
|
||||||
name: push
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
isDefault: true
|
isDefault: true
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- eventTypeChannelId: 72960a92-1855-469f-9cfd-5d72f57106f2
|
- eventTypeChannelId: 72960a92-1855-469f-9cfd-5d72f57106f2
|
||||||
channel:
|
channel:
|
||||||
channelId: 2
|
channelId: 2
|
||||||
name: email
|
name: email
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
isDefault: false
|
isDefault: false
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- notificationCategoryId: 2
|
- notificationCategoryId: 2
|
||||||
name: Nieuwsbrief aanmelding
|
name: Nieuwsbrief aanmelding
|
||||||
|
groupName: Marketing
|
||||||
eventTypes:
|
eventTypes:
|
||||||
- eventTypeId: 1
|
- eventTypeId: 1
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
@ -426,56 +838,81 @@ paths:
|
|||||||
subName: null
|
subName: null
|
||||||
prettyName: HTM nieuwsbrief
|
prettyName: HTM nieuwsbrief
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription: null
|
||||||
eventTypeChannels:
|
eventTypeChannels:
|
||||||
- eventTypeChannelId: 447a1116-6cd7-4645-8c3d-43237b6186cd
|
- eventTypeChannelId: 447a1116-6cd7-4645-8c3d-43237b6186cd
|
||||||
channel:
|
channel:
|
||||||
channelId: 2
|
channelId: 2
|
||||||
name: email
|
name: email
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
isDefault: true
|
isDefault: true
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- notificationCategoryId: 3
|
- notificationCategoryId: 3
|
||||||
name: Mijn Passen
|
name: Serviceberichten
|
||||||
|
groupName: Mijn Passen
|
||||||
eventTypes:
|
eventTypes:
|
||||||
- eventTypeId: 4
|
- eventTypeId: 4
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, CARD
|
name: PRODUCT
|
||||||
subName: null
|
subName: ACTIVATE
|
||||||
prettyName: Mijn passen
|
prettyName: Product Geactiveerd
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de
|
||||||
|
name: GBO_PRODUCT
|
||||||
|
externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef
|
||||||
eventTypeChannels:
|
eventTypeChannels:
|
||||||
- eventTypeChannelId: be07c7bb-714b-4637-acf5-a67025ad8e60
|
- eventTypeChannelId: be07c7bb-714b-4637-acf5-a67025ad8e60
|
||||||
channel:
|
channel:
|
||||||
channelId: 1
|
channelId: 1
|
||||||
name: push
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
isDefault: true
|
isDefault: true
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- eventTypeChannelId: 0c797b5a-ed34-494b-8c64-0a832830d392
|
- eventTypeChannelId: 0c797b5a-ed34-494b-8c64-0a832830d392
|
||||||
channel:
|
channel:
|
||||||
channelId: 2
|
channelId: 2
|
||||||
name: email
|
name: email
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
isDefault: false
|
isDefault: false
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- eventTypeId: 5
|
- eventTypeId: 5
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
eventOriginId: 1
|
eventOriginId: 1
|
||||||
name: GBO
|
name: GBO
|
||||||
name: ALERTS, PAD
|
name: PAD
|
||||||
subName: null
|
subName: MARK
|
||||||
prettyName: Profielgegevens op de pas
|
prettyName: PAD Markering
|
||||||
optinRequired: false
|
optinRequired: false
|
||||||
|
originSubscription:
|
||||||
|
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||||
|
name: GBO_PAD
|
||||||
|
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||||
eventTypeChannels:
|
eventTypeChannels:
|
||||||
- eventTypeChannelId: b910368f-c045-4e8e-b01d-bcbc78708bac
|
- eventTypeChannelId: b910368f-c045-4e8e-b01d-bcbc78708bac
|
||||||
channel:
|
channel:
|
||||||
channelId: 1
|
channelId: 1
|
||||||
name: push
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
isDefault: true
|
isDefault: true
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- eventTypeChannelId: 93e773da-ba3b-48da-9a0e-ee478eaa752f
|
- eventTypeChannelId: 93e773da-ba3b-48da-9a0e-ee478eaa752f
|
||||||
channel:
|
channel:
|
||||||
channelId: 2
|
channelId: 2
|
||||||
name: email
|
name: email
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
isDefault: false
|
isDefault: false
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
"400":
|
"400":
|
||||||
@ -596,12 +1033,24 @@ paths:
|
|||||||
channels:
|
channels:
|
||||||
- channelId: 1
|
- channelId: 1
|
||||||
name: push
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
- channelId: 2
|
- channelId: 2
|
||||||
name: email
|
name: email
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
- channelId: 3
|
- channelId: 3
|
||||||
name: sms
|
name: sms
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
- channelId: 4
|
- channelId: 4
|
||||||
name: mail
|
name: mail
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 4
|
||||||
|
name: customers
|
||||||
"400":
|
"400":
|
||||||
description: Bad request
|
description: Bad request
|
||||||
content:
|
content:
|
||||||
@ -750,6 +1199,7 @@ paths:
|
|||||||
notificationCategory:
|
notificationCategory:
|
||||||
notificationCategoryId: 1
|
notificationCategoryId: 1
|
||||||
name: Mijn Reizen
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
- eventType:
|
- eventType:
|
||||||
eventTypeId: 16
|
eventTypeId: 16
|
||||||
eventOrigin:
|
eventOrigin:
|
||||||
@ -762,6 +1212,7 @@ paths:
|
|||||||
notificationCategory:
|
notificationCategory:
|
||||||
notificationCategoryId: 1
|
notificationCategoryId: 1
|
||||||
name: Mijn Reizen
|
name: Mijn Reizen
|
||||||
|
groupName: Mijn Passen
|
||||||
"400":
|
"400":
|
||||||
description: Bad request
|
description: Bad request
|
||||||
content:
|
content:
|
||||||
@ -827,6 +1278,9 @@ paths:
|
|||||||
channel:
|
channel:
|
||||||
channelId: 1
|
channelId: 1
|
||||||
name: push
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
isDefault: true
|
isDefault: true
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
- eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5
|
- eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5
|
||||||
@ -842,6 +1296,9 @@ paths:
|
|||||||
channel:
|
channel:
|
||||||
channelId: 1
|
channelId: 1
|
||||||
name: push
|
name: push
|
||||||
|
resourceName:
|
||||||
|
resourceNameId: 8
|
||||||
|
name: devices
|
||||||
isDefault: true
|
isDefault: true
|
||||||
isMandatory: false
|
isMandatory: false
|
||||||
"400":
|
"400":
|
||||||
@ -962,6 +1419,24 @@ components:
|
|||||||
type: string
|
type: string
|
||||||
format: uuid
|
format: uuid
|
||||||
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
|
PatchNotificationSubscriptionRequest:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
notificationCategoryId:
|
||||||
|
type: integer
|
||||||
|
example: 1
|
||||||
|
customerProfileId:
|
||||||
|
type: integer
|
||||||
|
example: 1337
|
||||||
|
required:
|
||||||
|
- notificationCategoryId
|
||||||
|
PatchNotificationSubscriptionResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
notificationSubscriptionId:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||||
PostSubscriptionActivityRequest:
|
PostSubscriptionActivityRequest:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -986,6 +1461,40 @@ components:
|
|||||||
type: string
|
type: string
|
||||||
format: uuid
|
format: uuid
|
||||||
example: 30b32657-1ba1-44e0-8868-4db807695387
|
example: 30b32657-1ba1-44e0-8868-4db807695387
|
||||||
|
PostNotificationPreferenceRequest:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
eventTypeChannelId:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f
|
||||||
|
resourceIdentifier:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d4e5f678-49ab-bcde-2345-678901bcdef0
|
||||||
|
required:
|
||||||
|
- eventTypeChannelId
|
||||||
|
PostNotificationPreferenceResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
notificationPreferenceId:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d4e5f678-49ab-bcde-2345-678901bcdef0
|
||||||
|
PatchNotificationPreferenceRequest:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
resourceIdentifier:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d4e5f678-49ab-bcde-2345-678901bcdef0
|
||||||
|
PatchNotificationPreferenceResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
notificationPreferenceId:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d4e5f678-49ab-bcde-2345-678901bcdef0
|
||||||
GetEventOriginsResponse:
|
GetEventOriginsResponse:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -1076,6 +1585,24 @@ components:
|
|||||||
optInRequired:
|
optInRequired:
|
||||||
type: boolean
|
type: boolean
|
||||||
example: true
|
example: true
|
||||||
|
originSubscription:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
originSubscriptionId:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: a1b2c3d4-e5f6-4789-abcd-1234567890ab
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
example: GBO_TRIPS
|
||||||
|
externalSubscriptionId:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: fedcba98-7654-3210-fedc-ba9876543210
|
||||||
|
required:
|
||||||
|
- originSubscriptionId
|
||||||
|
- name
|
||||||
|
- externalSubscriptionId
|
||||||
eventTypeChannels:
|
eventTypeChannels:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
@ -1107,9 +1634,22 @@ components:
|
|||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
example: push
|
example: push
|
||||||
|
resourceName:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
resourceNameId:
|
||||||
|
type: integer
|
||||||
|
example: 8
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
example: devices
|
||||||
|
required:
|
||||||
|
- resourceNameId
|
||||||
|
- name
|
||||||
required:
|
required:
|
||||||
- channelId
|
- channelId
|
||||||
- name
|
- name
|
||||||
|
- resourceName
|
||||||
NotificationCategory:
|
NotificationCategory:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -1119,6 +1659,9 @@ components:
|
|||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
example: Mijn Reizen
|
example: Mijn Reizen
|
||||||
|
groupName:
|
||||||
|
type: string
|
||||||
|
example: Mijn Passen
|
||||||
eventTypes:
|
eventTypes:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
|||||||
@ -2999,8 +2999,12 @@ paths:
|
|||||||
transactionItems:
|
transactionItems:
|
||||||
- transactionItemId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7
|
- transactionItemId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7
|
||||||
status: returned to src
|
status: returned to src
|
||||||
|
aggregationReference: null
|
||||||
|
accountingSystemReference: null
|
||||||
- transactionItemId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3
|
- transactionItemId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3
|
||||||
status: returned to src
|
status: returned to src
|
||||||
|
aggregationReference: null
|
||||||
|
accountingSystemReference: null
|
||||||
List of transactions items to return:
|
List of transactions items to return:
|
||||||
summary: List of transaction items to return to transaction database
|
summary: List of transaction items to return to transaction database
|
||||||
description: List of transaction items to return to transaction database in bulk.
|
description: List of transaction items to return to transaction database in bulk.
|
||||||
@ -3008,8 +3012,12 @@ paths:
|
|||||||
transactionItems:
|
transactionItems:
|
||||||
- transactionItemId: eacb9bdc-c6b5-4277-942b-cebb102944f5
|
- transactionItemId: eacb9bdc-c6b5-4277-942b-cebb102944f5
|
||||||
status: returned to trx-db
|
status: returned to trx-db
|
||||||
|
aggregationReference: null
|
||||||
|
accountingSystemReference: null
|
||||||
- transactionItemId: 2f361bfb-9df0-4e0f-af7c-7b9be3e7bc61
|
- transactionItemId: 2f361bfb-9df0-4e0f-af7c-7b9be3e7bc61
|
||||||
status: returned to trx-db
|
status: returned to trx-db
|
||||||
|
aggregationReference: null
|
||||||
|
accountingSystemReference: null
|
||||||
responses:
|
responses:
|
||||||
"202":
|
"202":
|
||||||
description: Accepted
|
description: Accepted
|
||||||
@ -3061,10 +3069,32 @@ paths:
|
|||||||
Body of a batch of transaction items that was successfully patched.
|
Body of a batch of transaction items that was successfully patched.
|
||||||
A number of transaction items were patched.
|
A number of transaction items were patched.
|
||||||
value:
|
value:
|
||||||
|
startTime: 2025-02-14T05:32:47.067Z
|
||||||
|
status: Finished
|
||||||
|
clientTrackingId: 08584620957189579629541919368CU00
|
||||||
summary:
|
summary:
|
||||||
created: 0
|
created: 0
|
||||||
updated: 15
|
updated: 15
|
||||||
total: 15
|
total: 15
|
||||||
|
"202":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/GetResponseStatus"
|
||||||
|
examples:
|
||||||
|
Batch is still being processed:
|
||||||
|
summary: Batch is still being processed
|
||||||
|
description: |
|
||||||
|
Batch is still being processed
|
||||||
|
value:
|
||||||
|
startTime: 2025-02-14T05:32:47.067Z
|
||||||
|
status: Running
|
||||||
|
clientTrackingId: 08584620957189579629541919368CU00
|
||||||
|
summary:
|
||||||
|
created: 0
|
||||||
|
updated: 0
|
||||||
|
total: 0
|
||||||
security:
|
security:
|
||||||
- default: []
|
- default: []
|
||||||
x-auth-type: Application & Application User
|
x-auth-type: Application & Application User
|
||||||
@ -3089,8 +3119,10 @@ paths:
|
|||||||
processingFailures:
|
processingFailures:
|
||||||
- processingFailureId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7
|
- processingFailureId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7
|
||||||
resolved: true
|
resolved: true
|
||||||
|
change: Configuratie aangepast voor artikelnummer 1337.
|
||||||
- processingFailureId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3
|
- processingFailureId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3
|
||||||
resolved: true
|
resolved: true
|
||||||
|
change: Configuratie aangepast voor artikelnummer 1337.
|
||||||
responses:
|
responses:
|
||||||
"202":
|
"202":
|
||||||
description: Accepted
|
description: Accepted
|
||||||
@ -3142,10 +3174,32 @@ paths:
|
|||||||
Body of a batch of processing failures that was successfully patched.
|
Body of a batch of processing failures that was successfully patched.
|
||||||
A number of processing failures were patched.
|
A number of processing failures were patched.
|
||||||
value:
|
value:
|
||||||
|
startTime: 2025-02-14T05:32:47.067Z
|
||||||
|
status: Finished
|
||||||
|
clientTrackingId: 08584620957189579629541919368CU00
|
||||||
summary:
|
summary:
|
||||||
created: 0
|
created: 0
|
||||||
updated: 15
|
updated: 15
|
||||||
total: 15
|
total: 15
|
||||||
|
"202":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/GetResponseStatus"
|
||||||
|
examples:
|
||||||
|
Batch is still being processed:
|
||||||
|
summary: Batch is still being processed
|
||||||
|
description: |
|
||||||
|
Batch is still being processed
|
||||||
|
value:
|
||||||
|
startTime: 2025-02-14T05:32:47.067Z
|
||||||
|
status: Running
|
||||||
|
clientTrackingId: 08584620957189579629541919368CU00
|
||||||
|
summary:
|
||||||
|
created: 0
|
||||||
|
updated: 0
|
||||||
|
total: 0
|
||||||
security:
|
security:
|
||||||
- default: []
|
- default: []
|
||||||
x-auth-type: Application & Application User
|
x-auth-type: Application & Application User
|
||||||
|
|||||||
@ -5,6 +5,12 @@ info:
|
|||||||
description: CRUD APIs for ABT Orders database. These are NOT the functional APIs from Service Engine.
|
description: CRUD APIs for ABT Orders database. These are NOT the functional APIs from Service Engine.
|
||||||
servers:
|
servers:
|
||||||
- url: https://services.acc.api.htm.nl/abt/abtorder/1.0
|
- url: https://services.acc.api.htm.nl/abt/abtorder/1.0
|
||||||
|
tags:
|
||||||
|
- name: Order
|
||||||
|
- name: Order Line
|
||||||
|
- name: Payment
|
||||||
|
- name: Customer
|
||||||
|
- name: Order Voucher
|
||||||
paths:
|
paths:
|
||||||
/orders:
|
/orders:
|
||||||
get:
|
get:
|
||||||
@ -50,6 +56,14 @@ paths:
|
|||||||
example: 1
|
example: 1
|
||||||
required: false
|
required: false
|
||||||
description: The id of the touch point where the order was initiated.
|
description: The id of the touch point where the order was initiated.
|
||||||
|
- in: query
|
||||||
|
name: deviceId
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: "7a28bd54-7ca9-499a-a722-d15ab858ab99"
|
||||||
|
required: false
|
||||||
|
description: The id of the device used to place the order.
|
||||||
- in: query
|
- in: query
|
||||||
name: languageId
|
name: languageId
|
||||||
schema:
|
schema:
|
||||||
@ -98,6 +112,14 @@ paths:
|
|||||||
explode: false
|
explode: false
|
||||||
required: false
|
required: false
|
||||||
description: Filter on most recent order status. 1 = concept, 2 = awaitingPayment, 3 = pendingPayment, 4 = paid, 5 = delivered, 6 = cancelled.
|
description: Filter on most recent order status. 1 = concept, 2 = awaitingPayment, 3 = pendingPayment, 4 = paid, 5 = delivered, 6 = cancelled.
|
||||||
|
- in: query
|
||||||
|
name: issuedVoucherId
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: "b0a9f3c9-9b92-4f8c-b78d-6129be7218a6"
|
||||||
|
required: false
|
||||||
|
description: Filter on applied issuedVoucherId for the order.
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: OK
|
description: OK
|
||||||
@ -119,6 +141,7 @@ paths:
|
|||||||
"touchPointId": 1,
|
"touchPointId": 1,
|
||||||
"name": "Perplex"
|
"name": "Perplex"
|
||||||
},
|
},
|
||||||
|
"deviceId": "42e77532-d831-41da-b07a-7edb9bb7f004",
|
||||||
"language":
|
"language":
|
||||||
{
|
{
|
||||||
"languageId": 1,
|
"languageId": 1,
|
||||||
@ -148,6 +171,30 @@ paths:
|
|||||||
"description": "Betaling in behandeling",
|
"description": "Betaling in behandeling",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
"orderVouchers": [
|
||||||
|
{
|
||||||
|
"orderVoucherId": "399bd3b3-9721-4f09-a936-d64637de1621",
|
||||||
|
"issuedVoucher":{
|
||||||
|
"issuedVoucherId": "a0996218-bc5e-4826-9020-cda98a32838d",
|
||||||
|
"voucherCode": "Voucher1234",
|
||||||
|
"purchasedProductId": 31,
|
||||||
|
"fromInclusive": "2025-03-22T08:55:00",
|
||||||
|
"untillInclusive": "2026-03-22T08:55:00"
|
||||||
|
},
|
||||||
|
"orderLineId": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"orderVoucherId": "f6c7ac42-1811-4e4d-82af-53e18fe16110",
|
||||||
|
"issuedVoucher":{
|
||||||
|
"issuedVoucherId": "54668baf-4905-4e9a-af02-09c170f295ed",
|
||||||
|
"voucherCode": "Voucher124",
|
||||||
|
"purchasedProductId": 35,
|
||||||
|
"fromInclusive": "2025-03-22T08:55:00",
|
||||||
|
"untillInclusive": "2026-03-22T08:55:00"
|
||||||
|
},
|
||||||
|
"orderLineId": "7a7a9d1a-3fc8-4058-a28b-082860aaa311"
|
||||||
|
}
|
||||||
|
],
|
||||||
"orderLines":
|
"orderLines":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -327,19 +374,22 @@ paths:
|
|||||||
"customerProfileId": 1337,
|
"customerProfileId": 1337,
|
||||||
"totalAmount": 121,
|
"totalAmount": 121,
|
||||||
"touchPointId": 1,
|
"touchPointId": 1,
|
||||||
|
"deviceId": "b8ca9fdf-0bb9-4e49-b48d-41e395563377",
|
||||||
"languageId": 1,
|
"languageId": 1,
|
||||||
"createdOn": "2024-03-22T09:00:00",
|
"createdOn": "2024-03-22T09:00:00",
|
||||||
"order_OrderStatus":
|
"order_OrderStatus":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"orderStatusId": 4,
|
"orderStatusId": 1,
|
||||||
"createdOn": "2024-03-22T09:00:00",
|
|
||||||
"description": "Order succesvol betaald",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"orderStatusId": 3,
|
|
||||||
"createdOn": "2024-03-22T08:55:00",
|
"createdOn": "2024-03-22T08:55:00",
|
||||||
"description": "Betaling in behandeling",
|
"description": "Concept order",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"orderVouchers":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"issuedVoucherId": "e81b2197-a6c2-45b6-9560-8ce8442e8604",
|
||||||
|
"orderLineId": "97824d2e-5189-456d-b6da-4cca511a7685"
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"orderLines":
|
"orderLines":
|
||||||
@ -390,57 +440,6 @@ paths:
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"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",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"orderCustomer":
|
|
||||||
{
|
|
||||||
"birthname": "Jan",
|
|
||||||
"surname": "Vries",
|
|
||||||
"prefix": "de",
|
|
||||||
"emailAddress": "jandevries@outlook.com",
|
|
||||||
"dateOfBirth": "1970-01-01",
|
|
||||||
"orderCustomerAddresses":
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"addressTypeId": 1,
|
|
||||||
"street": "Kon. Julianaplein",
|
|
||||||
"houseNumber": 10,
|
|
||||||
"houseNumberSuffix": "a",
|
|
||||||
"postalCode": "2595 AA",
|
|
||||||
"city": "Den Haag",
|
|
||||||
"country": "NL",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
responses:
|
responses:
|
||||||
"201":
|
"201":
|
||||||
@ -487,6 +486,7 @@ paths:
|
|||||||
"touchPointId": 1,
|
"touchPointId": 1,
|
||||||
"name": "Perplex"
|
"name": "Perplex"
|
||||||
},
|
},
|
||||||
|
"deviceId": null,
|
||||||
"language":
|
"language":
|
||||||
{
|
{
|
||||||
"languageId": 1,
|
"languageId": 1,
|
||||||
@ -512,6 +512,7 @@ paths:
|
|||||||
"description": "Betaling in behandeling",
|
"description": "Betaling in behandeling",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
"orderVouchers": null,
|
||||||
"orderLines":
|
"orderLines":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -658,6 +659,7 @@ paths:
|
|||||||
example:
|
example:
|
||||||
{
|
{
|
||||||
"customerProfileId": 1337,
|
"customerProfileId": 1337,
|
||||||
|
"deviceId": "fe68e624-b75f-48ca-a179-d5f86a8ab7d5",
|
||||||
"totalAmount": 121,
|
"totalAmount": 121,
|
||||||
"languageId": 1,
|
"languageId": 1,
|
||||||
"lastUpdatedOn": "2024-03-22T09:00:00",
|
"lastUpdatedOn": "2024-03-22T09:00:00",
|
||||||
@ -678,6 +680,7 @@ paths:
|
|||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: OK
|
description: OK
|
||||||
|
|
||||||
/orders/{orderId}/statuses:
|
/orders/{orderId}/statuses:
|
||||||
parameters:
|
parameters:
|
||||||
- in: path
|
- in: path
|
||||||
@ -715,6 +718,143 @@ paths:
|
|||||||
{
|
{
|
||||||
"order_orderStatusId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
|
"order_orderStatusId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
|
||||||
}
|
}
|
||||||
|
/orders/{orderId}/ordervouchers:
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: orderId
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d1dd439b-6072-4b97-89c9-724268865b93
|
||||||
|
required: true
|
||||||
|
description: The id of the order to process.
|
||||||
|
post:
|
||||||
|
summary: Add an order voucher.
|
||||||
|
description: Add an order voucher.
|
||||||
|
tags:
|
||||||
|
- Order Voucher
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/unavailable"
|
||||||
|
example:
|
||||||
|
{
|
||||||
|
"issuedVoucherId": "eec6af41-1a60-49f6-a92e-440054a92f13",
|
||||||
|
"orderLineId": "7a9d6e15-7c5c-421d-9ea9-00b9bb6dbe67"
|
||||||
|
}
|
||||||
|
responses:
|
||||||
|
"201":
|
||||||
|
description: Created
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/unavailable"
|
||||||
|
example:
|
||||||
|
{
|
||||||
|
"orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
|
||||||
|
}
|
||||||
|
/ordervouchers:
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: orderVoucherId
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d1dd439b-6072-4b97-89c9-724268865b93
|
||||||
|
required: false
|
||||||
|
description: The id of the orderVoucher you are looking for.
|
||||||
|
- in: query
|
||||||
|
name: orderId
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 90c926b9-3178-4757-acca-34cff66b980c
|
||||||
|
required: false
|
||||||
|
description: The id of the order
|
||||||
|
- in: query
|
||||||
|
name: orderLineId
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 9e3363c8-e776-4675-b108-99b8c2e38eb6
|
||||||
|
required: false
|
||||||
|
description: The id of the orderLine
|
||||||
|
get:
|
||||||
|
summary: Find vouchers on the order
|
||||||
|
description: Find vouchers on the order
|
||||||
|
tags:
|
||||||
|
- Order Voucher
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/unavailable"
|
||||||
|
example:
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"orderVoucherId": "19ef6882-8eda-43bf-b48e-9b4ff8745a50",
|
||||||
|
"issuedVoucher":{
|
||||||
|
"issuedVoucherId": "54668baf-4905-4e9a-af02-09c170f295ed",
|
||||||
|
"voucherCode": "Voucher124",
|
||||||
|
"purchasedProductId": 35,
|
||||||
|
"fromInclusive": "2025-03-22T08:55:00",
|
||||||
|
"untillInclusive": "2026-03-22T08:55:00"
|
||||||
|
},
|
||||||
|
"orderId": "f59e4769-53a0-4156-8991-6f9119ba629f",
|
||||||
|
"orderLineId": "eeb86071-4f59-405d-b2be-7d7a77044bfa"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
/ordervouchers/{ordervoucherId}:
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: ordervoucherId
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
example: d1dd439b-6072-4b97-89c9-724268865b93
|
||||||
|
required: true
|
||||||
|
description: The id of the order to process.
|
||||||
|
patch:
|
||||||
|
summary: Update an order voucher.
|
||||||
|
description: Update an order voucher.
|
||||||
|
tags:
|
||||||
|
- Order Voucher
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/unavailable"
|
||||||
|
example:
|
||||||
|
{
|
||||||
|
"issuedVoucherId": "eec6af41-1a60-49f6-a92e-440054a92f13",
|
||||||
|
"orderLineId": "7a9d6e15-7c5c-421d-9ea9-00b9bb6dbe67"
|
||||||
|
}
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/unavailable"
|
||||||
|
example:
|
||||||
|
{
|
||||||
|
"orderVoucherId": "b9cf0096-4211-4be6-ac21-7bc34bc8e066",
|
||||||
|
}
|
||||||
|
delete:
|
||||||
|
summary: Delete an order voucher.
|
||||||
|
description: Delete an order voucher.
|
||||||
|
tags:
|
||||||
|
- Order Voucher
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/unavailable"
|
||||||
|
example:
|
||||||
|
{}
|
||||||
/orders/{orderId}/orderlines:
|
/orders/{orderId}/orderlines:
|
||||||
parameters:
|
parameters:
|
||||||
- in: path
|
- in: path
|
||||||
@ -1844,6 +1984,7 @@ paths:
|
|||||||
"touchPointId": 1,
|
"touchPointId": 1,
|
||||||
"name": "Perplex"
|
"name": "Perplex"
|
||||||
},
|
},
|
||||||
|
"deviceId": null,
|
||||||
"isRefund": false,
|
"isRefund": false,
|
||||||
"htmPaymentReference": "HTM-1234",
|
"htmPaymentReference": "HTM-1234",
|
||||||
"pspPaymentReference": "Buckaroo-1234",
|
"pspPaymentReference": "Buckaroo-1234",
|
||||||
|
|||||||
@ -1009,6 +1009,8 @@ paths:
|
|||||||
"value": "vlad.harkonnen@househarkonnen.net",
|
"value": "vlad.harkonnen@househarkonnen.net",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
"fromInclusive": "2024-10-04T12:34:56.000",
|
||||||
|
"untilInclusive": "2025-10-04T12:34:56.000",
|
||||||
}
|
}
|
||||||
responses:
|
responses:
|
||||||
"201":
|
"201":
|
||||||
@ -1104,6 +1106,8 @@ paths:
|
|||||||
"value": "vlad.harkonnen@househarkonnen.net",
|
"value": "vlad.harkonnen@househarkonnen.net",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
"fromInclusive": "2024-10-04T12:34:56.000",
|
||||||
|
"untilInclusive": "2025-10-04T12:34:56.000",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@ -1181,7 +1185,8 @@ paths:
|
|||||||
Create Single Purchased GBO Product:
|
Create Single Purchased GBO Product:
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"purchasedProducts":[
|
"purchasedProducts":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"productId": 11,
|
"productId": 11,
|
||||||
"createdOn": "2024-10-04T12:34:56.000",
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
@ -1218,13 +1223,14 @@ paths:
|
|||||||
],
|
],
|
||||||
"purchasedTapconnectTickets": [],
|
"purchasedTapconnectTickets": [],
|
||||||
"issuedVouchers": [],
|
"issuedVouchers": [],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
Create Single Purchased TapConnet Ticket:
|
Create Single Purchased TapConnet Ticket:
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"purchasedProducts":[
|
"purchasedProducts":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"productId": 11,
|
"productId": 11,
|
||||||
"createdOn": "2024-10-04T12:34:56.000",
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
@ -1255,13 +1261,14 @@ paths:
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
"issuedVouchers": [],
|
"issuedVouchers": [],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
Create Single Issued Voucher:
|
Create Single Issued Voucher:
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"purchasedProducts":[
|
"purchasedProducts":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"productId": 11,
|
"productId": 11,
|
||||||
"createdOn": "2024-10-04T12:34:56.000",
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
@ -1303,13 +1310,14 @@ paths:
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
Create Multiple Issued Vouchers:
|
Create Multiple Issued Vouchers:
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"purchasedProducts":[
|
"purchasedProducts":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"productId": 11,
|
"productId": 11,
|
||||||
"createdOn": "2024-10-04T12:34:56.000",
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
@ -1435,8 +1443,8 @@ paths:
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
responses:
|
responses:
|
||||||
"202":
|
"202":
|
||||||
@ -1513,33 +1521,34 @@ paths:
|
|||||||
description: List of issued vouchers to set status to revoked
|
description: List of issued vouchers to set status to revoked
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
"voucherStatusInstances":[
|
"voucherStatusInstances":
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"issuedVoucherId": "8a63552f-faf5-43f3-b22d-bebc976a8a5e",
|
"issuedVoucherId": "8a63552f-faf5-43f3-b22d-bebc976a8a5e",
|
||||||
"voucherStatusId": 4,
|
"voucherStatusId": 4,
|
||||||
"createdOn": "2024-10-04T12:34:56.000"
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"issuedVoucherId": "a9ff40ec-2940-413a-9957-dfd471c4caf3",
|
"issuedVoucherId": "a9ff40ec-2940-413a-9957-dfd471c4caf3",
|
||||||
"voucherStatusId": 4,
|
"voucherStatusId": 4,
|
||||||
"createdOn": "2024-10-04T12:34:56.000"
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"issuedVoucherId": "9e7363e6-beaa-4c38-9ed6-c8afed459bd5",
|
"issuedVoucherId": "9e7363e6-beaa-4c38-9ed6-c8afed459bd5",
|
||||||
"voucherStatusId": 4,
|
"voucherStatusId": 4,
|
||||||
"createdOn": "2024-10-04T12:34:56.000"
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"issuedVoucherId": "9d7332d6-1949-4c20-aa99-d87096b035fa",
|
"issuedVoucherId": "9d7332d6-1949-4c20-aa99-d87096b035fa",
|
||||||
"voucherStatusId": 4,
|
"voucherStatusId": 4,
|
||||||
"createdOn": "2024-10-04T12:34:56.000"
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"issuedVoucherId": "43ca757b-8370-4cb0-92b9-717948383d5e",
|
"issuedVoucherId": "43ca757b-8370-4cb0-92b9-717948383d5e",
|
||||||
"voucherStatusId": 4,
|
"voucherStatusId": 4,
|
||||||
"createdOn": "2024-10-04T12:34:56.000"
|
"createdOn": "2024-10-04T12:34:56.000",
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
responses:
|
responses:
|
||||||
"202":
|
"202":
|
||||||
|
|||||||
477
src/openapi/tapconnect/tapconnect.yaml
Normal file
477
src/openapi/tapconnect/tapconnect.yaml
Normal file
@ -0,0 +1,477 @@
|
|||||||
|
openapi: 3.0.1
|
||||||
|
info:
|
||||||
|
title: TapConnect
|
||||||
|
description: >-
|
||||||
|
Welcome to the TapConnect Issuing API documentation. These pages describe the endpoints available within TapConnect. Please note that for historical reasons, Date/times are always in the "Europe/Amsterdam" timezone. The endpoints in this document are grouped as follows:
|
||||||
|
|
||||||
|
- **Export endpoints**: Export related endpoints return information about events related to tickets that have been issued. This can be used for Business Intelligence purposes or for financial record keeping.
|
||||||
|
- **Product endpoints**: Product related endpoints return information about products that are available to you as a sales partner and the details of each of these products.
|
||||||
|
- **Ticket endpoints**: Ticket related endpoints allow you to manage tickets throughout their lifecycle. This includes ticket creation, retrieving ticket information, or retrieving the barcode for a ticket.
|
||||||
|
- **Journey endpoints**: Used to calculate the price of a journey and to issue a ticket for that journey using the external fare calculation engine.
|
||||||
|
|
||||||
|
For more information on TapConnect please visit [https://tapconnect.io](https://tapconnect.io) or [https://documentation.tapconnect.io](https://documentation.tapconnect.io).
|
||||||
|
version: '1.0'
|
||||||
|
servers:
|
||||||
|
- url: https://services.acc.api.htm.nl/tapconnect/1.0
|
||||||
|
tags:
|
||||||
|
- name: Export
|
||||||
|
description: >-
|
||||||
|
Export data that can be used to generate reports about issued tickets
|
||||||
|
and related information
|
||||||
|
paths:
|
||||||
|
/v5/ticket-events-export:
|
||||||
|
get:
|
||||||
|
summary: Elastic Search ticket events export
|
||||||
|
description: "Exports ticket events data from Elastic Search.\n\nBoth parameters\
|
||||||
|
\ are a string, and they have to represent a date. Consider the list of valid\
|
||||||
|
\ formats below:\n1. 2021 - searches for all events in a year\n2. 2021-02\
|
||||||
|
\ - searches for all events in a month\n3. 2021-02-02 - searches for all events\
|
||||||
|
\ in a day\n4. 2021-02-02T12 - searches for all events in a specific hour\n\
|
||||||
|
5. 2021-02-02T12:00 - searches for all events in a specific minute\n6. 2021-02-02T12:00:00\
|
||||||
|
\ - searches for all events in a specific second\n\nIf an error occur, the\
|
||||||
|
\ last element returned will be a message with \"An error occurred on Elasticsearch\"\
|
||||||
|
\ and it \nmeans that not all the results are returned.\n_Keep in mind that\
|
||||||
|
\ the above timestamps would also be accepted as Zulu: 2021-02-02T11:00:00Z\
|
||||||
|
\ (winter time)_\n"
|
||||||
|
parameters:
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: start
|
||||||
|
required: true
|
||||||
|
description: The date to be considered as the interval starting date
|
||||||
|
schema:
|
||||||
|
example: 2021-02-01T00:00:00
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- explode: true
|
||||||
|
in: query
|
||||||
|
name: end
|
||||||
|
required: true
|
||||||
|
description: The date to be considered as the interval ending date
|
||||||
|
schema:
|
||||||
|
example: 2021-02-02T00:00:00
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/v5_ticket_events_export_response'
|
||||||
|
description: Returns a JSON chunked array of ticket events exported from elastic search.
|
||||||
|
"400":
|
||||||
|
description: |
|
||||||
|
The request could not be validated. The request body or parameters contain incomplete or incorrect parameters. The body of the response will contain information about the problem.
|
||||||
|
"401":
|
||||||
|
description: |
|
||||||
|
Unauthorized call, you are not authorized to call this endpoint with the api key provided in the Authorization header. Please verify that your api key is correct and/or if you are authorized to call this endpoint.
|
||||||
|
"403":
|
||||||
|
description: |
|
||||||
|
Unauthorized call, you are not authorized to call this endpoint with the api key provided in the Authorization header. Please verify that your api key is correct and/or if you are authorized to call this endpoint.
|
||||||
|
"404":
|
||||||
|
description: |
|
||||||
|
The requested URL does not exist, or the requested object was not found.
|
||||||
|
"406":
|
||||||
|
description: |
|
||||||
|
The request was not accepted by the server. The body of the response will contain information about the problem.
|
||||||
|
tags:
|
||||||
|
- Export
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
v5_ticket_events_export_response:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
anyOf:
|
||||||
|
- $ref: '#/components/schemas/ActivateTicketEvent'
|
||||||
|
- $ref: '#/components/schemas/CreateBarcodeEvent'
|
||||||
|
- $ref: '#/components/schemas/CreateTicketEvent'
|
||||||
|
- $ref: '#/components/schemas/TapEvent'
|
||||||
|
- $ref: '#/components/schemas/InspectTicketEvent'
|
||||||
|
- $ref: '#/components/schemas/NotifyEvent'
|
||||||
|
ActivateTicketEvent:
|
||||||
|
properties:
|
||||||
|
eventId:
|
||||||
|
example: 1
|
||||||
|
type: number
|
||||||
|
eventType:
|
||||||
|
example: ACTIVATE_TICKET
|
||||||
|
type: string
|
||||||
|
occurredAt:
|
||||||
|
example: 2021-06-07T08:42:00.791992000Z
|
||||||
|
type: string
|
||||||
|
receivedAt:
|
||||||
|
example: 2021-06-07T08:42:00.791992000Z
|
||||||
|
type: string
|
||||||
|
timeToDie:
|
||||||
|
example: 2445836980
|
||||||
|
type: number
|
||||||
|
operators:
|
||||||
|
items:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
createdBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
definedBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
ticketId:
|
||||||
|
example: hkbu3415fbidswd803nfdg7
|
||||||
|
type: string
|
||||||
|
validityStart:
|
||||||
|
example: 2021-06-06T22:00:00.000000000Z
|
||||||
|
type: string
|
||||||
|
validityEnd:
|
||||||
|
example: 2021-06-07T23:40:00.000000000Z
|
||||||
|
type: string
|
||||||
|
validityType:
|
||||||
|
example: FIXED
|
||||||
|
type: string
|
||||||
|
CreateBarcodeEvent:
|
||||||
|
properties:
|
||||||
|
eventId:
|
||||||
|
example: 2
|
||||||
|
type: number
|
||||||
|
eventType:
|
||||||
|
example: CREATE_BARCODE
|
||||||
|
type: string
|
||||||
|
occurredAt:
|
||||||
|
example: 2021-06-07T08:42:01.629279000Z
|
||||||
|
type: string
|
||||||
|
receivedAt:
|
||||||
|
example: 2021-06-07T08:42:01.629279000Z
|
||||||
|
type: string
|
||||||
|
timeToDie:
|
||||||
|
example: 2445836980
|
||||||
|
type: number
|
||||||
|
operators:
|
||||||
|
items:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
createdBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
definedBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
ticketId:
|
||||||
|
example: 2huCpR99LHjGfiq8ZJoF
|
||||||
|
type: string
|
||||||
|
barcodeSignatureKeyId:
|
||||||
|
example: TCT07
|
||||||
|
type: string
|
||||||
|
barcodeValidityStart:
|
||||||
|
example: 2021-06-06T22:00:00.000000000Z
|
||||||
|
type: string
|
||||||
|
barcodeValidityEnd:
|
||||||
|
example: 2021-06-07T23:40:00.000000000Z
|
||||||
|
type: string
|
||||||
|
CreateTicketEvent:
|
||||||
|
properties:
|
||||||
|
eventId:
|
||||||
|
example: 0
|
||||||
|
type: number
|
||||||
|
eventType:
|
||||||
|
example: CREATE_TICKET
|
||||||
|
type: string
|
||||||
|
occurredAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
receivedAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
reportedAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
timeToDie:
|
||||||
|
example: 2445836980
|
||||||
|
type: number
|
||||||
|
operators:
|
||||||
|
items:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
createdBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
definedBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
ticketId:
|
||||||
|
example: 344BEuHcFkEChOPm06sY
|
||||||
|
type: string
|
||||||
|
serviceId:
|
||||||
|
example: HTM-0987-7477-0993
|
||||||
|
type: string
|
||||||
|
productName:
|
||||||
|
example: HTM Kinder Dagkaart
|
||||||
|
type: string
|
||||||
|
productCode:
|
||||||
|
example: "303"
|
||||||
|
type: string
|
||||||
|
productValidityPeriodUnit:
|
||||||
|
example: "DAYS"
|
||||||
|
type: string
|
||||||
|
productValidityPeriod:
|
||||||
|
example: 1
|
||||||
|
type: number
|
||||||
|
lifespanStart:
|
||||||
|
example: 2021-06-07
|
||||||
|
type: string
|
||||||
|
lifespanEnd:
|
||||||
|
example: 2021-06-08
|
||||||
|
type: string
|
||||||
|
language:
|
||||||
|
example: NL
|
||||||
|
type: string
|
||||||
|
salesChannelId:
|
||||||
|
example: "9999"
|
||||||
|
type: string
|
||||||
|
salesChannelName:
|
||||||
|
example: HTM App
|
||||||
|
type: string
|
||||||
|
startStation:
|
||||||
|
example: Haarlem
|
||||||
|
type: string
|
||||||
|
endStation:
|
||||||
|
example: Leiden Centraal
|
||||||
|
type: string
|
||||||
|
barcodeType:
|
||||||
|
example: UIC
|
||||||
|
type: string
|
||||||
|
validityType:
|
||||||
|
example: FIXED
|
||||||
|
type: string
|
||||||
|
refundable:
|
||||||
|
example: true
|
||||||
|
type: boolean
|
||||||
|
priceInCents:
|
||||||
|
example: 150,
|
||||||
|
type: number
|
||||||
|
numberOfAdults:
|
||||||
|
example: 1
|
||||||
|
type: number
|
||||||
|
numberOfChildren:
|
||||||
|
example: 0
|
||||||
|
type: number
|
||||||
|
roundToBusinessDay:
|
||||||
|
example: true
|
||||||
|
type: boolean
|
||||||
|
modalities:
|
||||||
|
example: ["BUS", "TRAM"]
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
example: BUS
|
||||||
|
type: string
|
||||||
|
TapEvent:
|
||||||
|
properties:
|
||||||
|
eventId:
|
||||||
|
example: 5
|
||||||
|
type: number
|
||||||
|
eventType:
|
||||||
|
example: TAP
|
||||||
|
type: string
|
||||||
|
occurredAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
receivedAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
timeToDie:
|
||||||
|
example: 2445836980
|
||||||
|
type: number
|
||||||
|
validationAction:
|
||||||
|
example: CHECK_OUT
|
||||||
|
type: string
|
||||||
|
validationResult:
|
||||||
|
example: Approved
|
||||||
|
type: string
|
||||||
|
tapId:
|
||||||
|
example: a9aea0ae-52de-42cd-a2f1-93b80d9af389
|
||||||
|
type: string
|
||||||
|
operators:
|
||||||
|
items:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
createdBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
definedBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
ticketId:
|
||||||
|
example: hkbu3415fbidswd803nfdg7
|
||||||
|
type: string
|
||||||
|
modality:
|
||||||
|
example: BUS
|
||||||
|
type: string
|
||||||
|
line:
|
||||||
|
example: "25"
|
||||||
|
type: string
|
||||||
|
trip:
|
||||||
|
example: "240"
|
||||||
|
type: string
|
||||||
|
vehicle:
|
||||||
|
example: "1512"
|
||||||
|
type: string
|
||||||
|
deviceId:
|
||||||
|
example: "13513A"
|
||||||
|
type: string
|
||||||
|
deviceType:
|
||||||
|
example: VBS
|
||||||
|
type: string
|
||||||
|
lastStopId:
|
||||||
|
example: "3409"
|
||||||
|
type: string
|
||||||
|
lastStopName:
|
||||||
|
example: Gramsbergenlaan
|
||||||
|
type: string
|
||||||
|
nextStopId:
|
||||||
|
example: "3409"
|
||||||
|
type: string
|
||||||
|
nextStopName:
|
||||||
|
example: Gramsbergenlaan
|
||||||
|
type: string
|
||||||
|
location:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
lat:
|
||||||
|
example: 52.00089453333333
|
||||||
|
type: number
|
||||||
|
lon:
|
||||||
|
example: 4.004570666666667
|
||||||
|
type: number
|
||||||
|
InspectTicketEvent:
|
||||||
|
properties:
|
||||||
|
eventId:
|
||||||
|
example: 3
|
||||||
|
type: number
|
||||||
|
eventType:
|
||||||
|
example: INSPECT_TICKET
|
||||||
|
type: string
|
||||||
|
occurredAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
receivedAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
timeToDie:
|
||||||
|
example: 2445836980
|
||||||
|
type: number
|
||||||
|
operators:
|
||||||
|
items:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
createdBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
definedBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
ticketId:
|
||||||
|
example: uv1hzvrRd7Xd1Fs9vTxi
|
||||||
|
type: string
|
||||||
|
modality:
|
||||||
|
example: BUS
|
||||||
|
type: string
|
||||||
|
deviceId:
|
||||||
|
example: 6959bd00eaec8e68
|
||||||
|
type: string
|
||||||
|
deviceType:
|
||||||
|
example: IBS
|
||||||
|
type: string
|
||||||
|
validationResult:
|
||||||
|
example: Approved
|
||||||
|
type: string
|
||||||
|
NotifyEvent:
|
||||||
|
properties:
|
||||||
|
eventId:
|
||||||
|
example: 1185
|
||||||
|
type: number
|
||||||
|
eventType:
|
||||||
|
example: NOTIFY
|
||||||
|
type: string
|
||||||
|
occurredAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
receivedAt:
|
||||||
|
example: 2021-06-07T08:42:00.790992000Z
|
||||||
|
type: string
|
||||||
|
timeToDie:
|
||||||
|
example: 2445836980
|
||||||
|
type: number
|
||||||
|
tapId:
|
||||||
|
example: a9aea0ae-52de-42cd-a2f1-93b80d9af389
|
||||||
|
type: string
|
||||||
|
sequence:
|
||||||
|
example: 2
|
||||||
|
type: number
|
||||||
|
tapResponseTimeMillis:
|
||||||
|
example: 402
|
||||||
|
type: number
|
||||||
|
validationAction:
|
||||||
|
example: CHECK_OUT
|
||||||
|
type: string
|
||||||
|
validationMethod:
|
||||||
|
example: ONLINE
|
||||||
|
type: string
|
||||||
|
validationResult:
|
||||||
|
example: Approved
|
||||||
|
type: string
|
||||||
|
operators:
|
||||||
|
items:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
createdBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
definedBy:
|
||||||
|
example: HTM
|
||||||
|
type: string
|
||||||
|
modality:
|
||||||
|
example: TRAM
|
||||||
|
type: string
|
||||||
|
line:
|
||||||
|
example: "3"
|
||||||
|
type: string
|
||||||
|
trip:
|
||||||
|
example: "692"
|
||||||
|
type: string
|
||||||
|
vehicle:
|
||||||
|
example: "4058"
|
||||||
|
type: string
|
||||||
|
deviceId:
|
||||||
|
example: "13A886"
|
||||||
|
type: string
|
||||||
|
deviceType:
|
||||||
|
example: VBS
|
||||||
|
type: string
|
||||||
|
lastStopId:
|
||||||
|
example: "2005"
|
||||||
|
type: string
|
||||||
|
lastStopName:
|
||||||
|
example: Fahrenheitstraat
|
||||||
|
type: string
|
||||||
|
nextStopId:
|
||||||
|
example: "2011"
|
||||||
|
type: string
|
||||||
|
nextStopName:
|
||||||
|
example: Valkenbosplein
|
||||||
|
type: string
|
||||||
|
ticketId:
|
||||||
|
example: hkbu3415fbidswd803nfdg7
|
||||||
|
type: string
|
||||||
|
location:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
lat:
|
||||||
|
example: 52.001300283333336
|
||||||
|
type: number
|
||||||
|
lon:
|
||||||
|
example: 4.004586633333333
|
||||||
|
type: number
|
||||||
Loading…
Reference in New Issue
Block a user