Compare commits
42 Commits
feature/OV
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | ||
| d9157d04ef | |||
| f57f17e645 | |||
| 3ae52206fc | |||
| a52dfcab93 | |||
| 80b0de274e | |||
| 38cfec81c8 | |||
|
|
3ffc525d48 | ||
|
|
105a18c0ac | ||
| 7732ae13a6 | |||
| 4084a574c9 | |||
| 3ebdf0090f | |||
| b898288632 | |||
| dce4d5ea17 | |||
| e4b3ab4ccf | |||
| 01aa8a9f1a | |||
| bb917c3635 |
@ -28,10 +28,33 @@ public final class Helpers {
|
||||
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 {
|
||||
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 {
|
||||
SSLContext sc = SSLContext.getInstance("SSL");
|
||||
sc.init(null, DummyX509TrustManager.getDummyArray(), new java.security.SecureRandom());
|
||||
@ -48,7 +71,7 @@ public final class Helpers {
|
||||
|
||||
try(InputStream is = http.getInputStream()) {
|
||||
String response = new String(is.readAllBytes(), StandardCharsets.UTF_8);
|
||||
LOGGER.info("GBO API 8851 alert details response for xBOT " + xBot + ": \n" + new JSONObject(response).toString(2));
|
||||
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);
|
||||
|
||||
// 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 {
|
||||
ConnectionFactory factory = new ConnectionFactory();
|
||||
factory.setVirtualHost("/");
|
||||
factory.setAutomaticRecoveryEnabled(true);
|
||||
factory.setPort(443);
|
||||
factory.setHost("not.sbx.idbt.translink.nl");
|
||||
factory.setUsername("BEID_3_ALERTS_nZs3");
|
||||
factory.setPassword("VyubhPnczKgTB2zJ");
|
||||
factory.setUsername(USER_NAME);
|
||||
factory.setPassword(PASSWORD);
|
||||
factory.useSslProtocol("TLSv1.2");
|
||||
factory.setExceptionHandler(new ForgivingExceptionHandler());
|
||||
Map<String, Object> configs = factory.getClientProperties();
|
||||
@ -33,7 +47,7 @@ public class RabbitConnector {
|
||||
Channel channel = connection.createChannel();
|
||||
DeliverCallback deliverCallback = initDeliverCallback(channel);
|
||||
|
||||
AMQP.Queue.DeclareOk queue = channel.queueDeclarePassive("BEID_3.ALERTS");
|
||||
AMQP.Queue.DeclareOk queue = channel.queueDeclarePassive(QUEUE_NAME);
|
||||
LOGGER.info(
|
||||
"Declared queue: " + queue.getQueue() + ", consumer count: " + queue.getConsumerCount() + ", message count: " +
|
||||
queue.getMessageCount());
|
||||
@ -52,17 +66,39 @@ public class RabbitConnector {
|
||||
channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
|
||||
LOGGER.info("Successfully acknowledged message with delivery tag: " + delivery.getEnvelope().getDeliveryTag());
|
||||
|
||||
LOGGER.info("Getting alert details via GBO API 8851...");
|
||||
try {
|
||||
String alertId = Helpers.getAlertId(message);
|
||||
String xBot = Helpers.getXbot(message);
|
||||
String gboBearerToken = Helpers.getGboBearerToken();
|
||||
|
||||
Helpers.getAlertDetails(alertId, xBot, gboBearerToken);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
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 {
|
||||
String alertId = Helpers.getAlertId(message);
|
||||
String xBot = Helpers.getXbot(message);
|
||||
String gboBearerToken = Helpers.getGboBearerToken();
|
||||
|
||||
LOGGER.info("Getting alert details for xBOT {} and alertId {} via GBO API 8851...", xBot, alertId);
|
||||
Helpers.getAlertDetails(alertId, xBot, gboBearerToken);
|
||||
|
||||
} catch (Exception 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:
|
||||
$ref: "#/components/schemas/unavailable"
|
||||
examples:
|
||||
List all contract payments for a single debtor:
|
||||
summary: List all contract payments for a single debtor
|
||||
description: List all contract payments for single debtor with debtor number 'D123456'.
|
||||
Empty list:
|
||||
summary: Empty list
|
||||
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:
|
||||
{
|
||||
"contractPayments":
|
||||
@ -607,8 +611,133 @@ paths:
|
||||
{
|
||||
"paymentId": "151845776",
|
||||
"totalAmount": "26.62",
|
||||
"paymentMethod": "Twikey",
|
||||
"paymentMethod": "Automatische incasso",
|
||||
"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":
|
||||
{
|
||||
"invoiceId": "147722263",
|
||||
@ -626,22 +755,67 @@ paths:
|
||||
},
|
||||
},
|
||||
{
|
||||
"paymentId": "151845851",
|
||||
"totalAmount": "45.21",
|
||||
"paymentMethod": "Twikey",
|
||||
"paymentId": "151845776",
|
||||
"totalAmount": "-26.62",
|
||||
"paymentMethod": "Stornering",
|
||||
"paymentDate": "2024-09-12",
|
||||
"iban": "NL25INGB******1337",
|
||||
"invoice":
|
||||
{
|
||||
"invoiceId": "147722266",
|
||||
"invoiceNumber": "F2024-0002",
|
||||
"invoiceId": "147722263",
|
||||
"invoiceNumber": "F2024-0001",
|
||||
"description": "HTM Maandkorting 20%",
|
||||
"publicLink": "https://factuurinzien.nl/d/ddb245d6df67999eca48c4a71b5661b93038e20a/i/dp5h1i5cuu94nopiolkdst3u17vkmzo",
|
||||
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a",
|
||||
},
|
||||
"_links":
|
||||
{
|
||||
"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",
|
||||
},
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -264,7 +264,8 @@ paths:
|
||||
- name: emailAddress
|
||||
in: query
|
||||
schema:
|
||||
type: integer
|
||||
type: string
|
||||
format: email
|
||||
example: john.doe@mymailprovider.com
|
||||
required: false
|
||||
description: The emailadress of the customer in the case of anonymous opt-ins
|
||||
@ -409,47 +410,25 @@ paths:
|
||||
schema:
|
||||
$ref: "#/components/schemas/unavailable"
|
||||
examples:
|
||||
Create notificationSubscription anonymous active:
|
||||
Create notificationSubscription anonymous:
|
||||
value:
|
||||
{
|
||||
"emailAddress": "anonymous@mymailprovider.com",
|
||||
"notificationCategoryId": 1,
|
||||
"isActive": True,
|
||||
}
|
||||
Create notificationSubscription anonymous inactive:
|
||||
value:
|
||||
{
|
||||
"emailAddress": "anonymous@mymailprovider.com",
|
||||
"notificationCategoryId": 1,
|
||||
"isActive": False,
|
||||
"notificationCategoryId": 1
|
||||
}
|
||||
Create notificationSubscription account active:
|
||||
value: { "notificationCategoryId": 2, "isActive": True }
|
||||
Create notificationSubscription account inactive:
|
||||
value: { "notificationCategoryId": 2, "isActive": False }
|
||||
value: { "notificationCategoryId": 2 }
|
||||
responses:
|
||||
"201":
|
||||
description: Created
|
||||
content:
|
||||
application/json:
|
||||
examples:
|
||||
Create notificationSubscription anonymous active:
|
||||
summary: Return the created notification for an anonymous user active
|
||||
Create notificationSubscription anonymous:
|
||||
summary: Return the created notification for an anonymous user inactive by default.
|
||||
value:
|
||||
{
|
||||
"notificationSubscriptionId": "e112f26e-37fa-4bde-8def-9977cd1d50ae",
|
||||
"notificationCategory":
|
||||
{
|
||||
"notificationCategoryId": 2,
|
||||
"name": "Nieuwsbrief aanmelding",
|
||||
},
|
||||
"isActive": True,
|
||||
}
|
||||
Create notificationSubscription anonymous inactive:
|
||||
summary: Return the created notification for an anonymous user inactive
|
||||
value:
|
||||
{
|
||||
"notificationSubscriptionId": "d51081fd-c48d-4111-8de4-ac5db7d47ecb",
|
||||
"notificationCategory":
|
||||
{
|
||||
"notificationCategoryId": 2,
|
||||
@ -466,15 +445,6 @@ paths:
|
||||
{ "notificationCategoryId": 2, "name": "Nieuwsbrief aanmelding" },
|
||||
"isActive": True,
|
||||
}
|
||||
Create notificationSubscription account inactive:
|
||||
summary: Return the created notification for an anonymous user inactive
|
||||
value:
|
||||
{
|
||||
"notificationSubscriptionId": "0dfc0ac9-c221-4493-8828-9dfa79ad9061",
|
||||
"notificationCategory":
|
||||
{ "notificationCategoryId": 2, "name": "Nieuwsbrief aanmelding" },
|
||||
"isActive": False,
|
||||
}
|
||||
"405":
|
||||
description: Method not allowed, ook als een notificatie aangemaakt wordt voor een account maar op een anonieme manier benadert wordt.
|
||||
content:
|
||||
@ -499,9 +469,9 @@ paths:
|
||||
patch:
|
||||
tags:
|
||||
- Notification subscriptions
|
||||
summary: Update a notificationSubscription for a customer (account or private).
|
||||
summary: Update a notificationSubscription for a customer.
|
||||
description: |
|
||||
Update a notificationSubscription for a customer (account or private).
|
||||
Update a notificationSubscription for a customer.
|
||||
parameters:
|
||||
- name: X-HTM-JWT-AUTH-HEADER
|
||||
in: header
|
||||
@ -532,14 +502,6 @@ paths:
|
||||
example: e112f26e-37fa-4bde-8def-9977cd1d50ae
|
||||
required: true
|
||||
description: The id of the notificationSubscription you want to update
|
||||
- name: emailAddress
|
||||
in: query
|
||||
schema:
|
||||
type: string
|
||||
format: email
|
||||
example: john.doe@mymailprovider.com
|
||||
required: false
|
||||
description: The emailadress of the customer in the case of anonymous opt-ins
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
@ -580,6 +542,26 @@ paths:
|
||||
},
|
||||
"isActive": True,
|
||||
}
|
||||
"405":
|
||||
description: Method not allowed,wanneer het account emailadres niet geverifieerd is.
|
||||
content:
|
||||
application/json:
|
||||
example:
|
||||
{
|
||||
"type": "https://api.integratielaag.nl/abt/touchpoint/2.0/notifications",
|
||||
"title": "Methode niet toegestaan",
|
||||
"detail": "",
|
||||
"instance": "555d00b5-bc3f-4591-949b-479e76d49ea7",
|
||||
"errors":
|
||||
[
|
||||
{
|
||||
"code": "405",
|
||||
"detail": null,
|
||||
"path": null,
|
||||
"parameter": null,
|
||||
},
|
||||
],
|
||||
}
|
||||
components:
|
||||
schemas:
|
||||
unavailable:
|
||||
|
||||
@ -31,6 +31,12 @@ paths:
|
||||
schema:
|
||||
type: integer
|
||||
description: Filter by customer profile ID
|
||||
- name: ovPayTokenId
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
type: integer
|
||||
description: Filter by OV Pay token ID
|
||||
- name: isCurrentlyActive
|
||||
in: query
|
||||
required: false
|
||||
@ -44,6 +50,13 @@ paths:
|
||||
type: integer
|
||||
default: 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:
|
||||
"200":
|
||||
description: A list of notification subscriptions
|
||||
@ -53,17 +66,21 @@ paths:
|
||||
$ref: "#/components/schemas/GetNotificationSubscriptionsResponse"
|
||||
examples:
|
||||
emptyNotificationSubscriptionResponse:
|
||||
summary: No notification subscriptions found
|
||||
value:
|
||||
notificationSubscriptions: []
|
||||
href: null
|
||||
fullNotificationSubscriptionResponse:
|
||||
notificationSubscriptionResponse?expand=none:
|
||||
summary: Return notification subscriptions without nested attributes (expand=none)
|
||||
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"
|
||||
@ -77,7 +94,9 @@ paths:
|
||||
notificationCategory:
|
||||
notificationCategoryId: 2
|
||||
name: Nieuwsbrief aanmelding
|
||||
groupName: Marketing
|
||||
customerProfileId: 1338
|
||||
ovPayTokenId: null
|
||||
subscriptionActivities:
|
||||
- subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4
|
||||
user: "1001338"
|
||||
@ -88,6 +107,113 @@ paths:
|
||||
timestamp: "2025-10-02T14:00:00Z"
|
||||
isActive: true
|
||||
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":
|
||||
description: Bad request
|
||||
content:
|
||||
@ -175,18 +301,71 @@ paths:
|
||||
type: object
|
||||
$ref: "#/components/schemas/500Response"
|
||||
/notificationsubscriptions/{notificationSubscriptionId}:
|
||||
parameters:
|
||||
- name: notificationSubscriptionId
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: uuid
|
||||
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
|
||||
parameters:
|
||||
- name: notificationSubscriptionId
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: uuid
|
||||
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
|
||||
responses:
|
||||
"204":
|
||||
description: No content
|
||||
@ -282,12 +461,196 @@ paths:
|
||||
schema:
|
||||
type: object
|
||||
$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:
|
||||
get:
|
||||
tags:
|
||||
- Notification Categories
|
||||
summary: Get all notification categories.
|
||||
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
|
||||
in: query
|
||||
schema:
|
||||
@ -309,35 +672,48 @@ paths:
|
||||
notificationCategories:
|
||||
- notificationCategoryId: 1
|
||||
name: Mijn Reizen
|
||||
groupName: Mijn Passen
|
||||
- notificationCategoryId: 2
|
||||
name: Nieuwsbrief aanmelding
|
||||
groupName: Marketing
|
||||
- notificationCategoryId: 3
|
||||
name: Mijn Passen
|
||||
name: Serviceberichten
|
||||
groupName: Mijn Passen
|
||||
getNotifactionCategories?expand=eventType:
|
||||
summary: Return all the notification categories with nested event types (expand=eventType)
|
||||
value:
|
||||
notificationCategories:
|
||||
- notificationCategoryId: 1
|
||||
name: Mijn Reizen
|
||||
groupName: Mijn Passen
|
||||
eventTypes:
|
||||
- eventTypeId: 2
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, TRAVEL_SCHEME
|
||||
subName: CI
|
||||
prettyName: Check In
|
||||
name: TRIPS
|
||||
subName: CKI
|
||||
prettyName: Normal Check-in
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab
|
||||
name: GBO_TRIPS
|
||||
externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210
|
||||
- eventTypeId: 3
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, PAD
|
||||
subName: null
|
||||
prettyName: Profielgegevens op de pas
|
||||
name: PAD
|
||||
subName: AMEND
|
||||
prettyName: PAD Wijzigen/Aanvullen
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||
name: GBO_PAD
|
||||
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||
- notificationCategoryId: 2
|
||||
name: Nieuwsbrief aanmelding
|
||||
groupName: Marketing
|
||||
eventTypes:
|
||||
- eventTypeId: 1
|
||||
eventOrigin:
|
||||
@ -347,76 +723,108 @@ paths:
|
||||
subName: null
|
||||
prettyName: HTM nieuwsbrief
|
||||
optinRequired: false
|
||||
originSubscription: null
|
||||
- notificationCategoryId: 3
|
||||
name: Mijn Passen
|
||||
name: Serviceberichten
|
||||
groupName: Mijn Passen
|
||||
eventTypes:
|
||||
- eventTypeId: 4
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, CARD
|
||||
subName: null
|
||||
prettyName: Mijn passen
|
||||
name: PRODUCT
|
||||
subName: ACTIVATE
|
||||
prettyName: Product Geactiveerd
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de
|
||||
name: GBO_PRODUCT
|
||||
externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef
|
||||
- eventTypeId: 5
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, PAD
|
||||
subName: null
|
||||
prettyName: Profielgegevens op de pas
|
||||
name: PAD
|
||||
subName: MARK
|
||||
prettyName: PAD Markering
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||
name: GBO_PAD
|
||||
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||
getNotifactionCategories?expand=eventTypeChannel:
|
||||
summary: Return all the notification categories with all nested attributes (expand=eventTypeChannel)
|
||||
value:
|
||||
notificationCategories:
|
||||
- notificationCategoryId: 1
|
||||
name: Mijn Reizen
|
||||
groupName: Mijn Passen
|
||||
eventTypes:
|
||||
- eventTypeId: 2
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, TRAVEL_SCHEME
|
||||
subName: CI
|
||||
prettyName: Check In
|
||||
name: TRIPS
|
||||
subName: CKI
|
||||
prettyName: Normal Check-in
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: a1b2c3d4-e5f6-4789-abcd-1234567890ab
|
||||
name: GBO_TRIPS
|
||||
externalSubscriptionId: fedcba98-7654-3210-fedc-ba9876543210
|
||||
eventTypeChannels:
|
||||
- eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
|
||||
channel:
|
||||
channelId: 1
|
||||
name: push
|
||||
resourceName:
|
||||
resourceNameId: 8
|
||||
name: devices
|
||||
isDefault: true
|
||||
isMandatory: false
|
||||
- eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
|
||||
channel:
|
||||
channelId: 2
|
||||
name: email
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
isDefault: false
|
||||
isMandatory: false
|
||||
- eventTypeId: 3
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, PAD
|
||||
subName: null
|
||||
prettyName: Profielgegevens op de pas
|
||||
name: PAD
|
||||
subName: AMEND
|
||||
prettyName: PAD Wijzigen/Aanvullen
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||
name: GBO_PAD
|
||||
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||
eventTypeChannels:
|
||||
- eventTypeChannelId: 8e7df8f1-7e50-482f-8301-d399e75fd432
|
||||
channel:
|
||||
channelId: 1
|
||||
name: push
|
||||
resourceName:
|
||||
resourceNameId: 8
|
||||
name: devices
|
||||
isDefault: true
|
||||
isMandatory: false
|
||||
- eventTypeChannelId: 72960a92-1855-469f-9cfd-5d72f57106f2
|
||||
channel:
|
||||
channelId: 2
|
||||
name: email
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
isDefault: false
|
||||
isMandatory: false
|
||||
- notificationCategoryId: 2
|
||||
name: Nieuwsbrief aanmelding
|
||||
groupName: Marketing
|
||||
eventTypes:
|
||||
- eventTypeId: 1
|
||||
eventOrigin:
|
||||
@ -426,56 +834,81 @@ paths:
|
||||
subName: null
|
||||
prettyName: HTM nieuwsbrief
|
||||
optinRequired: false
|
||||
originSubscription: null
|
||||
eventTypeChannels:
|
||||
- eventTypeChannelId: 447a1116-6cd7-4645-8c3d-43237b6186cd
|
||||
channel:
|
||||
channelId: 2
|
||||
name: email
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
isDefault: true
|
||||
isMandatory: false
|
||||
- notificationCategoryId: 3
|
||||
name: Mijn Passen
|
||||
name: Serviceberichten
|
||||
groupName: Mijn Passen
|
||||
eventTypes:
|
||||
- eventTypeId: 4
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, CARD
|
||||
subName: null
|
||||
prettyName: Mijn passen
|
||||
name: PRODUCT
|
||||
subName: ACTIVATE
|
||||
prettyName: Product Geactiveerd
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: f1a2b3c4-d5e6-4789-abcd-3456789012de
|
||||
name: GBO_PRODUCT
|
||||
externalSubscriptionId: 12345678-90ab-cdef-1234-567890abcdef
|
||||
eventTypeChannels:
|
||||
- eventTypeChannelId: be07c7bb-714b-4637-acf5-a67025ad8e60
|
||||
channel:
|
||||
channelId: 1
|
||||
name: push
|
||||
resourceName:
|
||||
resourceNameId: 8
|
||||
name: devices
|
||||
isDefault: true
|
||||
isMandatory: false
|
||||
- eventTypeChannelId: 0c797b5a-ed34-494b-8c64-0a832830d392
|
||||
channel:
|
||||
channelId: 2
|
||||
name: email
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
isDefault: false
|
||||
isMandatory: false
|
||||
- eventTypeId: 5
|
||||
eventOrigin:
|
||||
eventOriginId: 1
|
||||
name: GBO
|
||||
name: ALERTS, PAD
|
||||
subName: null
|
||||
prettyName: Profielgegevens op de pas
|
||||
name: PAD
|
||||
subName: MARK
|
||||
prettyName: PAD Markering
|
||||
optinRequired: false
|
||||
originSubscription:
|
||||
originSubscriptionId: b2c3d4e5-f678-49ab-bcde-2345678901bc
|
||||
name: GBO_PAD
|
||||
externalSubscriptionId: edcba987-6543-210f-edcb-a9876543210f
|
||||
eventTypeChannels:
|
||||
- eventTypeChannelId: b910368f-c045-4e8e-b01d-bcbc78708bac
|
||||
channel:
|
||||
channelId: 1
|
||||
name: push
|
||||
resourceName:
|
||||
resourceNameId: 8
|
||||
name: devices
|
||||
isDefault: true
|
||||
isMandatory: false
|
||||
- eventTypeChannelId: 93e773da-ba3b-48da-9a0e-ee478eaa752f
|
||||
channel:
|
||||
channelId: 2
|
||||
name: email
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
isDefault: false
|
||||
isMandatory: false
|
||||
"400":
|
||||
@ -596,12 +1029,24 @@ paths:
|
||||
channels:
|
||||
- channelId: 1
|
||||
name: push
|
||||
resourceName:
|
||||
resourceNameId: 8
|
||||
name: devices
|
||||
- channelId: 2
|
||||
name: email
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
- channelId: 3
|
||||
name: sms
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
- channelId: 4
|
||||
name: mail
|
||||
resourceName:
|
||||
resourceNameId: 4
|
||||
name: customers
|
||||
"400":
|
||||
description: Bad request
|
||||
content:
|
||||
@ -750,6 +1195,7 @@ paths:
|
||||
notificationCategory:
|
||||
notificationCategoryId: 1
|
||||
name: Mijn Reizen
|
||||
groupName: Mijn Passen
|
||||
- eventType:
|
||||
eventTypeId: 16
|
||||
eventOrigin:
|
||||
@ -762,6 +1208,7 @@ paths:
|
||||
notificationCategory:
|
||||
notificationCategoryId: 1
|
||||
name: Mijn Reizen
|
||||
groupName: Mijn Passen
|
||||
"400":
|
||||
description: Bad request
|
||||
content:
|
||||
@ -827,6 +1274,9 @@ paths:
|
||||
channel:
|
||||
channelId: 1
|
||||
name: push
|
||||
resourceName:
|
||||
resourceNameId: 8
|
||||
name: devices
|
||||
isDefault: true
|
||||
isMandatory: false
|
||||
- eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5
|
||||
@ -842,6 +1292,9 @@ paths:
|
||||
channel:
|
||||
channelId: 1
|
||||
name: push
|
||||
resourceName:
|
||||
resourceNameId: 8
|
||||
name: devices
|
||||
isDefault: true
|
||||
isMandatory: false
|
||||
"400":
|
||||
@ -962,6 +1415,24 @@ components:
|
||||
type: string
|
||||
format: uuid
|
||||
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:
|
||||
type: object
|
||||
properties:
|
||||
@ -986,6 +1457,40 @@ components:
|
||||
type: string
|
||||
format: uuid
|
||||
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:
|
||||
type: object
|
||||
properties:
|
||||
@ -1076,6 +1581,24 @@ components:
|
||||
optInRequired:
|
||||
type: boolean
|
||||
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:
|
||||
type: array
|
||||
items:
|
||||
@ -1107,9 +1630,22 @@ components:
|
||||
name:
|
||||
type: string
|
||||
example: push
|
||||
resourceName:
|
||||
type: object
|
||||
properties:
|
||||
resourceNameId:
|
||||
type: integer
|
||||
example: 8
|
||||
name:
|
||||
type: string
|
||||
example: devices
|
||||
required:
|
||||
- resourceNameId
|
||||
- name
|
||||
required:
|
||||
- channelId
|
||||
- name
|
||||
- resourceName
|
||||
NotificationCategory:
|
||||
type: object
|
||||
properties:
|
||||
@ -1119,6 +1655,9 @@ components:
|
||||
name:
|
||||
type: string
|
||||
example: Mijn Reizen
|
||||
groupName:
|
||||
type: string
|
||||
example: Mijn Passen
|
||||
eventTypes:
|
||||
type: array
|
||||
items:
|
||||
|
||||
@ -2999,8 +2999,12 @@ paths:
|
||||
transactionItems:
|
||||
- transactionItemId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7
|
||||
status: returned to src
|
||||
aggregationReference: null
|
||||
accountingSystemReference: null
|
||||
- transactionItemId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3
|
||||
status: returned to src
|
||||
aggregationReference: null
|
||||
accountingSystemReference: null
|
||||
List of transactions items to return:
|
||||
summary: List of transaction items to return to transaction database
|
||||
description: List of transaction items to return to transaction database in bulk.
|
||||
@ -3008,8 +3012,12 @@ paths:
|
||||
transactionItems:
|
||||
- transactionItemId: eacb9bdc-c6b5-4277-942b-cebb102944f5
|
||||
status: returned to trx-db
|
||||
aggregationReference: null
|
||||
accountingSystemReference: null
|
||||
- transactionItemId: 2f361bfb-9df0-4e0f-af7c-7b9be3e7bc61
|
||||
status: returned to trx-db
|
||||
aggregationReference: null
|
||||
accountingSystemReference: null
|
||||
responses:
|
||||
"202":
|
||||
description: Accepted
|
||||
@ -3061,10 +3069,32 @@ paths:
|
||||
Body of a batch of transaction items that was successfully patched.
|
||||
A number of transaction items were patched.
|
||||
value:
|
||||
startTime: 2025-02-14T05:32:47.067Z
|
||||
status: Finished
|
||||
clientTrackingId: 08584620957189579629541919368CU00
|
||||
summary:
|
||||
created: 0
|
||||
updated: 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:
|
||||
- default: []
|
||||
x-auth-type: Application & Application User
|
||||
@ -3089,8 +3119,10 @@ paths:
|
||||
processingFailures:
|
||||
- processingFailureId: d8ee7035-fa3d-400e-9ad5-4fe8c4c73eb7
|
||||
resolved: true
|
||||
change: Configuratie aangepast voor artikelnummer 1337.
|
||||
- processingFailureId: 88910e83-4b1e-4fde-ab13-bd8bb60cbcd3
|
||||
resolved: true
|
||||
change: Configuratie aangepast voor artikelnummer 1337.
|
||||
responses:
|
||||
"202":
|
||||
description: Accepted
|
||||
@ -3142,10 +3174,32 @@ paths:
|
||||
Body of a batch of processing failures that was successfully patched.
|
||||
A number of processing failures were patched.
|
||||
value:
|
||||
startTime: 2025-02-14T05:32:47.067Z
|
||||
status: Finished
|
||||
clientTrackingId: 08584620957189579629541919368CU00
|
||||
summary:
|
||||
created: 0
|
||||
updated: 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:
|
||||
- default: []
|
||||
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.
|
||||
servers:
|
||||
- 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:
|
||||
/orders:
|
||||
get:
|
||||
@ -50,6 +56,14 @@ paths:
|
||||
example: 1
|
||||
required: false
|
||||
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
|
||||
name: languageId
|
||||
schema:
|
||||
@ -98,6 +112,14 @@ paths:
|
||||
explode: false
|
||||
required: false
|
||||
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:
|
||||
"200":
|
||||
description: OK
|
||||
@ -119,6 +141,7 @@ paths:
|
||||
"touchPointId": 1,
|
||||
"name": "Perplex"
|
||||
},
|
||||
"deviceId": "42e77532-d831-41da-b07a-7edb9bb7f004",
|
||||
"language":
|
||||
{
|
||||
"languageId": 1,
|
||||
@ -148,6 +171,30 @@ paths:
|
||||
"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":
|
||||
[
|
||||
{
|
||||
@ -327,19 +374,22 @@ paths:
|
||||
"customerProfileId": 1337,
|
||||
"totalAmount": 121,
|
||||
"touchPointId": 1,
|
||||
"deviceId": "b8ca9fdf-0bb9-4e49-b48d-41e395563377",
|
||||
"languageId": 1,
|
||||
"createdOn": "2024-03-22T09:00:00",
|
||||
"order_OrderStatus":
|
||||
[
|
||||
{
|
||||
"orderStatusId": 4,
|
||||
"createdOn": "2024-03-22T09:00:00",
|
||||
"description": "Order succesvol betaald",
|
||||
},
|
||||
{
|
||||
"orderStatusId": 3,
|
||||
"orderStatusId": 1,
|
||||
"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":
|
||||
@ -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:
|
||||
"201":
|
||||
@ -487,6 +486,7 @@ paths:
|
||||
"touchPointId": 1,
|
||||
"name": "Perplex"
|
||||
},
|
||||
"deviceId": null,
|
||||
"language":
|
||||
{
|
||||
"languageId": 1,
|
||||
@ -512,6 +512,7 @@ paths:
|
||||
"description": "Betaling in behandeling",
|
||||
},
|
||||
],
|
||||
"orderVouchers": null,
|
||||
"orderLines":
|
||||
[
|
||||
{
|
||||
@ -658,6 +659,7 @@ paths:
|
||||
example:
|
||||
{
|
||||
"customerProfileId": 1337,
|
||||
"deviceId": "fe68e624-b75f-48ca-a179-d5f86a8ab7d5",
|
||||
"totalAmount": 121,
|
||||
"languageId": 1,
|
||||
"lastUpdatedOn": "2024-03-22T09:00:00",
|
||||
@ -678,6 +680,7 @@ paths:
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
|
||||
/orders/{orderId}/statuses:
|
||||
parameters:
|
||||
- in: path
|
||||
@ -715,6 +718,143 @@ paths:
|
||||
{
|
||||
"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:
|
||||
parameters:
|
||||
- in: path
|
||||
@ -1844,6 +1984,7 @@ paths:
|
||||
"touchPointId": 1,
|
||||
"name": "Perplex"
|
||||
},
|
||||
"deviceId": null,
|
||||
"isRefund": false,
|
||||
"htmPaymentReference": "HTM-1234",
|
||||
"pspPaymentReference": "Buckaroo-1234",
|
||||
|
||||
@ -243,143 +243,6 @@ paths:
|
||||
],
|
||||
"href": null,
|
||||
}
|
||||
post:
|
||||
tags:
|
||||
- Purchased Product
|
||||
summary: Create a new purchased product.
|
||||
description: Create a new purchased product.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/unavailable"
|
||||
examples:
|
||||
Create Purchased GBO Product:
|
||||
value:
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts":
|
||||
[
|
||||
{
|
||||
"salesTimestamp": "2024-10-04T12:34:56.000",
|
||||
"refundTimestamp": "2024-10-04T12:34:56.000",
|
||||
"fromInclusive": "2024-10-04T12:34:56.000",
|
||||
"untilInclusive": "2024-10-04T12:34:56.000",
|
||||
"packageTemplateId": "30003",
|
||||
"xBot": "f15efe6f-7353-4968-b134-60ba6fc2da8b",
|
||||
"xTat": "42efebf7-132e-4ee0-9cbb-4037a9a54ad8",
|
||||
"xSpit": "d67b2f72-918a-4e6c-957d-a39ed9c9e16b",
|
||||
"customerTokenId": "b6492322-c458-4857-9ac3-a109c1887b9f",
|
||||
"ovPayTokenId": 13,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"createdBy": "someuser",
|
||||
"lastUpdatedBy": null,
|
||||
},
|
||||
],
|
||||
"purchasedTapconnectTickets": [],
|
||||
"issuedVouchers": [],
|
||||
}
|
||||
Create Purchased TapConnet Ticket:
|
||||
value:
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts": [],
|
||||
"purchasedTapconnectTickets":
|
||||
[
|
||||
{
|
||||
"issuedAt": "2024-10-04T12:34:56.000",
|
||||
"activatedAt": "2024-10-04T12:34:56.000",
|
||||
"cancelledAt": null,
|
||||
"ticketReference": "KJj43nejhbTxhr897287",
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"createdBy": "user",
|
||||
"lastUpdatedBy": "user",
|
||||
},
|
||||
],
|
||||
"issuedVouchers": [],
|
||||
}
|
||||
Create Issued Voucher:
|
||||
value:
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts": [],
|
||||
"purchasedTapconnectTickets": [],
|
||||
"issuedVouchers":
|
||||
[
|
||||
{
|
||||
"voucherCode": "VOUCHER123",
|
||||
"voucherStatusInstances":
|
||||
[
|
||||
{
|
||||
"voucherStatusId": 1,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
],
|
||||
"voucherClaims":
|
||||
[
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 8,
|
||||
"value": "1999-12-31",
|
||||
},
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 4,
|
||||
"value": "vlad.harkonnen@househarkonnen.net",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
responses:
|
||||
"201":
|
||||
description: Created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/unavailable"
|
||||
example:
|
||||
{ "purchasedProductId": "a9b3dea5-fb8a-4b1e-9fe6-90cad31c0cfd" }
|
||||
/purchasedproducts/{purchasedProductId}:
|
||||
parameters:
|
||||
- in: path
|
||||
@ -1146,6 +1009,8 @@ paths:
|
||||
"value": "vlad.harkonnen@househarkonnen.net",
|
||||
},
|
||||
],
|
||||
"fromInclusive": "2024-10-04T12:34:56.000",
|
||||
"untilInclusive": "2025-10-04T12:34:56.000",
|
||||
}
|
||||
responses:
|
||||
"201":
|
||||
@ -1241,6 +1106,8 @@ paths:
|
||||
"value": "vlad.harkonnen@househarkonnen.net",
|
||||
},
|
||||
],
|
||||
"fromInclusive": "2024-10-04T12:34:56.000",
|
||||
"untilInclusive": "2025-10-04T12:34:56.000",
|
||||
},
|
||||
],
|
||||
}
|
||||
@ -1302,6 +1169,444 @@ paths:
|
||||
{ "voucherStatusId": 5, "name": "Expired" },
|
||||
],
|
||||
}
|
||||
/purchasedproducts/bulk:
|
||||
post:
|
||||
tags:
|
||||
- Bulk processing
|
||||
summary: Create one or more purchased product(s) in bulk.
|
||||
description: Create a new purchased product.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/unavailable"
|
||||
examples:
|
||||
Create Single Purchased GBO Product:
|
||||
value:
|
||||
{
|
||||
"purchasedProducts":
|
||||
[
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts":
|
||||
[
|
||||
{
|
||||
"salesTimestamp": "2024-10-04T12:34:56.000",
|
||||
"refundTimestamp": "2024-10-04T12:34:56.000",
|
||||
"fromInclusive": "2024-10-04T12:34:56.000",
|
||||
"untilInclusive": "2024-10-04T12:34:56.000",
|
||||
"packageTemplateId": "30003",
|
||||
"xBot": "f15efe6f-7353-4968-b134-60ba6fc2da8b",
|
||||
"xTat": "42efebf7-132e-4ee0-9cbb-4037a9a54ad8",
|
||||
"xSpit": "d67b2f72-918a-4e6c-957d-a39ed9c9e16b",
|
||||
"customerTokenId": "b6492322-c458-4857-9ac3-a109c1887b9f",
|
||||
"ovPayTokenId": 13,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"createdBy": "someuser",
|
||||
"lastUpdatedBy": null,
|
||||
},
|
||||
],
|
||||
"purchasedTapconnectTickets": [],
|
||||
"issuedVouchers": [],
|
||||
},
|
||||
],
|
||||
}
|
||||
Create Single Purchased TapConnet Ticket:
|
||||
value:
|
||||
{
|
||||
"purchasedProducts":
|
||||
[
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts": [],
|
||||
"purchasedTapconnectTickets":
|
||||
[
|
||||
{
|
||||
"issuedAt": "2024-10-04T12:34:56.000",
|
||||
"activatedAt": "2024-10-04T12:34:56.000",
|
||||
"cancelledAt": null,
|
||||
"ticketReference": "KJj43nejhbTxhr897287",
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"createdBy": "user",
|
||||
"lastUpdatedBy": "user",
|
||||
},
|
||||
],
|
||||
"issuedVouchers": [],
|
||||
},
|
||||
],
|
||||
}
|
||||
Create Single Issued Voucher:
|
||||
value:
|
||||
{
|
||||
"purchasedProducts":
|
||||
[
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts": [],
|
||||
"purchasedTapconnectTickets": [],
|
||||
"issuedVouchers":
|
||||
[
|
||||
{
|
||||
"voucherCode": "VOUCHER123",
|
||||
"voucherStatusInstances":
|
||||
[
|
||||
{
|
||||
"voucherStatusId": 1,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
],
|
||||
"voucherClaims":
|
||||
[
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 8,
|
||||
"value": "1999-12-31",
|
||||
},
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 4,
|
||||
"value": "vlad.harkonnen@househarkonnen.net",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
Create Multiple Issued Vouchers:
|
||||
value:
|
||||
{
|
||||
"purchasedProducts":
|
||||
[
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts": [],
|
||||
"purchasedTapconnectTickets": [],
|
||||
"issuedVouchers":
|
||||
[
|
||||
{
|
||||
"voucherCode": "VOUCHER123",
|
||||
"voucherStatusInstances":
|
||||
[
|
||||
{
|
||||
"voucherStatusId": 1,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
],
|
||||
"voucherClaims":
|
||||
[
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 8,
|
||||
"value": "1999-12-31",
|
||||
},
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 4,
|
||||
"value": "vlad.harkonnen@househarkonnen.net",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "7ce32f9b-52f0-4e80-a527-0c6184b57f52",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "02047745-f03e-4c00-8e1b-8dc5c86a786e",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts": [],
|
||||
"purchasedTapconnectTickets": [],
|
||||
"issuedVouchers":
|
||||
[
|
||||
{
|
||||
"voucherCode": "VOUCHER123",
|
||||
"voucherStatusInstances":
|
||||
[
|
||||
{
|
||||
"voucherStatusId": 1,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
],
|
||||
"voucherClaims":
|
||||
[
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 8,
|
||||
"value": "1940-01-18",
|
||||
},
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 4,
|
||||
"value": "valdemar.hoskanner@househarkonnen.net",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"productId": 11,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
"lastUpdatedOn": "2024-10-04T12:34:56.000",
|
||||
"purchasedProductResources":
|
||||
[
|
||||
{
|
||||
"resourceNameId": 1,
|
||||
"resourceIdentifier": "7c71ec8a-3326-451f-9464-3e36d10260e3",
|
||||
},
|
||||
{
|
||||
"resourceNameId": 2,
|
||||
"resourceIdentifier": "73c7a805-2edf-4616-a04c-267e88e0931c",
|
||||
},
|
||||
],
|
||||
"purchasedGboProducts": [],
|
||||
"purchasedTapconnectTickets": [],
|
||||
"issuedVouchers":
|
||||
[
|
||||
{
|
||||
"voucherCode": "VOUCHER123",
|
||||
"voucherStatusInstances":
|
||||
[
|
||||
{
|
||||
"voucherStatusId": 1,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
],
|
||||
"voucherClaims":
|
||||
[
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 8,
|
||||
"value": "2016-06-08",
|
||||
},
|
||||
{
|
||||
"mandatoryCustomerDataItemId": 4,
|
||||
"value": "alia.artreides@housearteides.net",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
responses:
|
||||
"202":
|
||||
description: Accepted
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/BulkResponseBody"
|
||||
examples:
|
||||
Array of purchased products accepted:
|
||||
summary: Array of purchased products accepted
|
||||
description: |
|
||||
The array of purchased products was accepted successfully.
|
||||
The purchased products will be processed asynchronously.
|
||||
In the response body the consumer will find information on how to retrieve the processing status.
|
||||
value:
|
||||
startTime: 2025-02-14T05:32:47.0672237Z
|
||||
status: Running
|
||||
clientTrackingId: 08584620957189579629541919368CU00
|
||||
callbackurl: https://api.integratielaag.nl/purchasedproducts/responsestatus/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c
|
||||
retryAfter: 10
|
||||
summary: null
|
||||
/purchasedproducts/bulk/{clientTrackingId}:
|
||||
get:
|
||||
tags:
|
||||
- Bulk processing
|
||||
summary: Get the status of the purchased products bulk post.
|
||||
description: Get the status of the asynchronous purchased products bulk post.
|
||||
parameters:
|
||||
- in: path
|
||||
name: clientTrackingId
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
description: The clientTrackingId of the purchased products bulk post.
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/BulkResponseBody"
|
||||
examples:
|
||||
Batch successfully processed:
|
||||
summary: Batch successfully processed
|
||||
description: |
|
||||
Body of a batch of purchased products that was successfully created.
|
||||
A number of purchased products were created.
|
||||
value:
|
||||
startTime: "2025-02-14T05:32:47.067Z"
|
||||
status: "Finished"
|
||||
clientTrackingId: "08584620957189579629541919368CU00"
|
||||
callbackurl: https://api.integratielaag.nl/purchasedproducts/bulk/responsestatus/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c
|
||||
retryAfter: 0
|
||||
summary:
|
||||
created: 13
|
||||
updated: 0
|
||||
total: 13
|
||||
/voucherstatusinstances/bulk:
|
||||
post:
|
||||
summary: Post voucher status instances in bulk.
|
||||
description: Post voucher status instances in bulk.
|
||||
tags:
|
||||
- Bulk processing
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/unavailable"
|
||||
examples:
|
||||
List of issued vouchers to set status to revoked:
|
||||
summary: List of issued vouchers to set status to revoked
|
||||
description: List of issued vouchers to set status to revoked
|
||||
value:
|
||||
{
|
||||
"voucherStatusInstances":
|
||||
[
|
||||
{
|
||||
"issuedVoucherId": "8a63552f-faf5-43f3-b22d-bebc976a8a5e",
|
||||
"voucherStatusId": 4,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
{
|
||||
"issuedVoucherId": "a9ff40ec-2940-413a-9957-dfd471c4caf3",
|
||||
"voucherStatusId": 4,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
{
|
||||
"issuedVoucherId": "9e7363e6-beaa-4c38-9ed6-c8afed459bd5",
|
||||
"voucherStatusId": 4,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
{
|
||||
"issuedVoucherId": "9d7332d6-1949-4c20-aa99-d87096b035fa",
|
||||
"voucherStatusId": 4,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
{
|
||||
"issuedVoucherId": "43ca757b-8370-4cb0-92b9-717948383d5e",
|
||||
"voucherStatusId": 4,
|
||||
"createdOn": "2024-10-04T12:34:56.000",
|
||||
},
|
||||
],
|
||||
}
|
||||
responses:
|
||||
"202":
|
||||
description: Accepted
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/BulkResponseBody"
|
||||
examples:
|
||||
Array of issued vouchers accepted:
|
||||
summary: Array of issued vouchers status instances accepted
|
||||
description: |
|
||||
The array of issued vouchers status instances was accepted successfully.
|
||||
The issued vouchers status instances will be processed asynchronously.
|
||||
In the response body the consumer will find information on how to retrieve the processing status.
|
||||
value:
|
||||
startTime: 2025-02-14T05:32:47.0672237Z
|
||||
status: Running
|
||||
clientTrackingId: 08584620957189579629541919368CU00
|
||||
callbackurl: https://api.integratielaag.nl/voucherstatusinstances/bulk/responsestatus/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c
|
||||
retryAfter: 10
|
||||
summary: null
|
||||
/voucherstatusinstances/bulk/responsestatus/{clientTrackingId}:
|
||||
get:
|
||||
tags:
|
||||
- Bulk processing
|
||||
summary: Get the status of the voucher status instances bulk post.
|
||||
description: Get the status of the asynchronous voucher status instances bulk post.
|
||||
parameters:
|
||||
- in: path
|
||||
name: clientTrackingId
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
description: The clientTrackingId of the voucher status instances bulk post.
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/BulkResponseBody"
|
||||
examples:
|
||||
Batch successfully processed:
|
||||
summary: Batch successfully processed
|
||||
description: |
|
||||
Body of a batch of voucher status instances that was successfully created.
|
||||
A number of voucher status instances were created.
|
||||
value:
|
||||
startTime: "2025-02-14T05:32:47.067Z"
|
||||
status: "Finished"
|
||||
clientTrackingId: "08584620957189579629541919368CU00"
|
||||
callbackurl: https://api.integratielaag.nl/voucherstatusinstances/bulk/responsestatus/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c
|
||||
retryAfter: 0
|
||||
summary:
|
||||
created: 5
|
||||
updated: 0
|
||||
total: 5
|
||||
components:
|
||||
securitySchemes:
|
||||
bearerToken:
|
||||
@ -1311,6 +1616,56 @@ components:
|
||||
schemas:
|
||||
unavailable:
|
||||
type: object
|
||||
BulkResponseBody:
|
||||
type: object
|
||||
properties:
|
||||
startTime:
|
||||
type: string
|
||||
format: date-time
|
||||
example: 2025-02-14T05:32:47.0672237Z
|
||||
status:
|
||||
type: string
|
||||
example: Running
|
||||
clientTrackingId:
|
||||
type: string
|
||||
example: 08584620957189579629541919368CU00
|
||||
callbackurl:
|
||||
type: string
|
||||
format: uri
|
||||
example: https://services.api.htm.nl/purchasedproducts/responsestatus/runtime/webhooks/workflow/scaleUnits/prod-00/workflows/6fd466916c
|
||||
retryAfter:
|
||||
type: integer
|
||||
example: 10
|
||||
summary:
|
||||
$ref: "#/components/schemas/summaryBody"
|
||||
required:
|
||||
- startTime
|
||||
- status
|
||||
- clientTrackingId
|
||||
- callbackurl
|
||||
- retryAfter
|
||||
- summary
|
||||
summaryBody:
|
||||
type: object
|
||||
properties:
|
||||
summary:
|
||||
type: object
|
||||
properties:
|
||||
created:
|
||||
type: integer
|
||||
example: 15
|
||||
updated:
|
||||
type: integer
|
||||
example: 2
|
||||
total:
|
||||
type: integer
|
||||
example: 17
|
||||
required:
|
||||
- created
|
||||
- total
|
||||
- updated
|
||||
required:
|
||||
- summary
|
||||
rfc9457:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
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