Compare commits

..

No commits in common. "develop" and "features/Edit-TP-notification" have entirely different histories.

9 changed files with 852 additions and 2290 deletions

View File

@ -28,33 +28,10 @@ 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());
@ -71,7 +48,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 + " and alertId " + alertId + ": \n" + new JSONObject(response).toString(2)); LOGGER.info("GBO API 8851 alert details response for xBOT " + xBot + ": \n" + new JSONObject(response).toString(2));
} }
} }

View File

@ -16,28 +16,14 @@ 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(USER_NAME); factory.setUsername("BEID_3_ALERTS_nZs3");
factory.setPassword(PASSWORD); factory.setPassword("VyubhPnczKgTB2zJ");
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();
@ -47,7 +33,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(QUEUE_NAME); AMQP.Queue.DeclareOk queue = channel.queueDeclarePassive("BEID_3.ALERTS");
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());
@ -66,39 +52,17 @@ 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());
if (QUEUE_NAME.equals("BEID_3.TRIPS")) { LOGGER.info("Getting alert details via GBO API 8851...");
getTripDetails(message); try {
} else if (QUEUE_NAME.equals("BEID_3.ALERTS")) { String alertId = Helpers.getAlertId(message);
getAlertDetails(message); String xBot = Helpers.getXbot(message);
String gboBearerToken = Helpers.getGboBearerToken();
Helpers.getAlertDetails(alertId, xBot, gboBearerToken);
} catch (Exception e) {
throw new RuntimeException(e);
} }
}; };
} }
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);
}
}
} }

View File

@ -597,13 +597,9 @@ paths:
schema: schema:
$ref: "#/components/schemas/unavailable" $ref: "#/components/schemas/unavailable"
examples: examples:
Empty list: List all contract payments for a single debtor:
summary: Empty list summary: List all contract payments for a single debtor
description: List all contract payments for a debtor with no payments. description: List all contract payments for single debtor with debtor number 'D123456'.
value: { "contractPayments": [] }
Successful direct debit:
summary: Successful direct debit
description: One payment for a debtor with a successful direct debit.
value: value:
{ {
"contractPayments": "contractPayments":
@ -611,9 +607,8 @@ paths:
{ {
"paymentId": "151845776", "paymentId": "151845776",
"totalAmount": "26.62", "totalAmount": "26.62",
"paymentMethod": "Automatische incasso", "paymentMethod": "Twikey",
"paymentDate": "2024-09-12", "paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice": "invoice":
{ {
"invoiceId": "147722263", "invoiceId": "147722263",
@ -630,192 +625,23 @@ paths:
}, },
}, },
}, },
],
}
Direct debit reversal:
summary: Direct debit reversal
description: One payment for a debtor with a reversed direct debit.
value:
{
"contractPayments":
[
{ {
"paymentId": "151845776", "paymentId": "151845851",
"totalAmount": "-26.62", "totalAmount": "45.21",
"paymentMethod": "Stornering", "paymentMethod": "Twikey",
"paymentDate": "2024-09-12", "paymentDate": "2024-09-12",
"iban": "NL25INGB******1337",
"invoice": "invoice":
{ {
"invoiceId": "147722263", "invoiceId": "147722266",
"invoiceNumber": "F2024-0001", "invoiceNumber": "F2024-0002",
"description": "HTM Maandkorting 20%", "description": "HTM Maandkorting 20%",
"publicLink": "https://factuurinzien.nl/d/b0aac3f42f325f5dd6abc172f723caab5956524d/i/ddb245d6df67999eca48c4a71b5661b93038e20a", "publicLink": "https://factuurinzien.nl/d/ddb245d6df67999eca48c4a71b5661b93038e20a/i/dp5h1i5cuu94nopiolkdst3u17vkmzo",
}, },
"_links": "_links":
{ {
"get_contractdetails": "get_contractdetails":
{ {
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/5ca46c1a-cb9d-4c2d-960e-4471e8e28b6a", "href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/7b2f8c1a-3d9d-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",
"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": "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",
},
},
},
{
"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",
}, },
}, },

File diff suppressed because it is too large Load Diff

View File

@ -31,12 +31,6 @@ 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
@ -50,13 +44,6 @@ 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
@ -66,21 +53,17 @@ 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
notificationSubscriptionResponse?expand=none: fullNotificationSubscriptionResponse:
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"
@ -94,9 +77,7 @@ 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"
@ -107,113 +88,6 @@ 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:
@ -301,71 +175,18 @@ paths:
type: object type: object
$ref: "#/components/schemas/500Response" $ref: "#/components/schemas/500Response"
/notificationsubscriptions/{notificationSubscriptionId}: /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: delete:
summary: Delete a notification subscription by ID summary: Delete a notification subscription by ID
tags: tags:
- Notification Subscriptions - Notification Subscriptions
parameters:
- name: notificationSubscriptionId
in: path
required: true
schema:
type: string
format: uuid
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
responses: responses:
"204": "204":
description: No content description: No content
@ -461,196 +282,12 @@ 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:
@ -666,58 +303,41 @@ 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: Serviceberichten name: Mijn Passen
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: TRIPS name: ALERTS, TRAVEL_SCHEME
subName: CKI subName: CI
prettyName: Normal Check-in prettyName: 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: PAD name: ALERTS, PAD
subName: AMEND subName: null
prettyName: PAD Wijzigen/Aanvullen prettyName: Profielgegevens op de pas
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:
@ -727,108 +347,76 @@ paths:
subName: null subName: null
prettyName: HTM nieuwsbrief prettyName: HTM nieuwsbrief
optinRequired: false optinRequired: false
originSubscription: null
- notificationCategoryId: 3 - notificationCategoryId: 3
name: Serviceberichten name: Mijn Passen
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 4 - eventTypeId: 4
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: PRODUCT name: ALERTS, CARD
subName: ACTIVATE subName: null
prettyName: Product Geactiveerd prettyName: Mijn passen
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: PAD name: ALERTS, PAD
subName: MARK subName: null
prettyName: PAD Markering prettyName: Profielgegevens op de pas
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: TRIPS name: ALERTS, TRAVEL_SCHEME
subName: CKI subName: CI
prettyName: Normal Check-in prettyName: 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: PAD name: ALERTS, PAD
subName: AMEND subName: null
prettyName: PAD Wijzigen/Aanvullen prettyName: Profielgegevens op de pas
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:
@ -838,81 +426,56 @@ 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: Serviceberichten name: Mijn Passen
groupName: Mijn Passen
eventTypes: eventTypes:
- eventTypeId: 4 - eventTypeId: 4
eventOrigin: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
name: PRODUCT name: ALERTS, CARD
subName: ACTIVATE subName: null
prettyName: Product Geactiveerd prettyName: Mijn passen
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: PAD name: ALERTS, PAD
subName: MARK subName: null
prettyName: PAD Markering prettyName: Profielgegevens op de pas
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":
@ -1033,24 +596,12 @@ 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:
@ -1199,7 +750,6 @@ paths:
notificationCategory: notificationCategory:
notificationCategoryId: 1 notificationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
groupName: Mijn Passen
- eventType: - eventType:
eventTypeId: 16 eventTypeId: 16
eventOrigin: eventOrigin:
@ -1212,7 +762,6 @@ 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:
@ -1278,9 +827,6 @@ 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
@ -1296,9 +842,6 @@ 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":
@ -1419,24 +962,6 @@ 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:
@ -1461,40 +986,6 @@ 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:
@ -1585,24 +1076,6 @@ 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:
@ -1634,22 +1107,9 @@ 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:
@ -1659,9 +1119,6 @@ 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:

View File

@ -2999,12 +2999,8 @@ 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.
@ -3012,12 +3008,8 @@ 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
@ -3069,32 +3061,10 @@ 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
@ -3119,10 +3089,8 @@ 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
@ -3174,32 +3142,10 @@ 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

View File

@ -5,12 +5,6 @@ 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:
@ -56,14 +50,6 @@ 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:
@ -112,14 +98,6 @@ 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
@ -141,7 +119,6 @@ paths:
"touchPointId": 1, "touchPointId": 1,
"name": "Perplex" "name": "Perplex"
}, },
"deviceId": "42e77532-d831-41da-b07a-7edb9bb7f004",
"language": "language":
{ {
"languageId": 1, "languageId": 1,
@ -171,30 +148,6 @@ 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":
[ [
{ {
@ -374,22 +327,19 @@ 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": 1, "orderStatusId": 4,
"createdOn": "2024-03-22T08:55:00", "createdOn": "2024-03-22T09:00:00",
"description": "Concept order", "description": "Order succesvol betaald",
}, },
],
"orderVouchers":
[
{ {
"issuedVoucherId": "e81b2197-a6c2-45b6-9560-8ce8442e8604", "orderStatusId": 3,
"orderLineId": "97824d2e-5189-456d-b6da-4cca511a7685" "createdOn": "2024-03-22T08:55:00",
"description": "Betaling in behandeling",
}, },
], ],
"orderLines": "orderLines":
@ -440,6 +390,57 @@ 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":
@ -486,7 +487,6 @@ paths:
"touchPointId": 1, "touchPointId": 1,
"name": "Perplex" "name": "Perplex"
}, },
"deviceId": null,
"language": "language":
{ {
"languageId": 1, "languageId": 1,
@ -512,7 +512,6 @@ paths:
"description": "Betaling in behandeling", "description": "Betaling in behandeling",
}, },
], ],
"orderVouchers": null,
"orderLines": "orderLines":
[ [
{ {
@ -659,7 +658,6 @@ 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",
@ -680,7 +678,6 @@ paths:
responses: responses:
"200": "200":
description: OK description: OK
/orders/{orderId}/statuses: /orders/{orderId}/statuses:
parameters: parameters:
- in: path - in: path
@ -718,143 +715,6 @@ 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
@ -1984,7 +1844,6 @@ 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",

View File

@ -1009,8 +1009,6 @@ 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":
@ -1106,8 +1104,6 @@ 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",
}, },
], ],
} }
@ -1185,266 +1181,262 @@ 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", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "purchasedProductResources":
"purchasedProductResources": [
[ {
{ "resourceNameId": 1,
"resourceNameId": 1, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", },
}, {
{ "resourceNameId": 2,
"resourceNameId": 2, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", },
}, ],
], "purchasedGboProducts":
"purchasedGboProducts": [
[ {
{ "salesTimestamp": "2024-10-04T12:34:56.000",
"salesTimestamp": "2024-10-04T12:34:56.000", "refundTimestamp": "2024-10-04T12:34:56.000",
"refundTimestamp": "2024-10-04T12:34:56.000", "fromInclusive": "2024-10-04T12:34:56.000",
"fromInclusive": "2024-10-04T12:34:56.000", "untilInclusive": "2024-10-04T12:34:56.000",
"untilInclusive": "2024-10-04T12:34:56.000", "packageTemplateId": "30003",
"packageTemplateId": "30003", "xBot": "f15efe6f-7353-4968-b134-60ba6fc2da8b",
"xBot": "f15efe6f-7353-4968-b134-60ba6fc2da8b", "xTat": "42efebf7-132e-4ee0-9cbb-4037a9a54ad8",
"xTat": "42efebf7-132e-4ee0-9cbb-4037a9a54ad8", "xSpit": "d67b2f72-918a-4e6c-957d-a39ed9c9e16b",
"xSpit": "d67b2f72-918a-4e6c-957d-a39ed9c9e16b", "customerTokenId": "b6492322-c458-4857-9ac3-a109c1887b9f",
"customerTokenId": "b6492322-c458-4857-9ac3-a109c1887b9f", "ovPayTokenId": 13,
"ovPayTokenId": 13, "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdBy": "someuser",
"createdBy": "someuser", "lastUpdatedBy": null,
"lastUpdatedBy": null, },
}, ],
], "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", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "purchasedProductResources":
"purchasedProductResources": [
[ {
{ "resourceNameId": 1,
"resourceNameId": 1, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", },
}, {
{ "resourceNameId": 2,
"resourceNameId": 2, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", },
}, ],
], "purchasedGboProducts": [],
"purchasedGboProducts": [], "purchasedTapconnectTickets":
"purchasedTapconnectTickets": [
[ {
{ "issuedAt": "2024-10-04T12:34:56.000",
"issuedAt": "2024-10-04T12:34:56.000", "activatedAt": "2024-10-04T12:34:56.000",
"activatedAt": "2024-10-04T12:34:56.000", "cancelledAt": null,
"cancelledAt": null, "ticketReference": "KJj43nejhbTxhr897287",
"ticketReference": "KJj43nejhbTxhr897287", "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "createdBy": "user",
"createdBy": "user", "lastUpdatedBy": "user",
"lastUpdatedBy": "user", },
}, ],
], "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", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "purchasedProductResources":
"purchasedProductResources": [
[ {
{ "resourceNameId": 1,
"resourceNameId": 1, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", },
}, {
{ "resourceNameId": 2,
"resourceNameId": 2, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", },
}, ],
], "purchasedGboProducts": [],
"purchasedGboProducts": [], "purchasedTapconnectTickets": [],
"purchasedTapconnectTickets": [], "issuedVouchers":
"issuedVouchers": [
[ {
{ "voucherCode": "VOUCHER123",
"voucherCode": "VOUCHER123", "voucherStatusInstances":
"voucherStatusInstances": [
[ {
{ "voucherStatusId": 1,
"voucherStatusId": 1, "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", },
}, ],
], "voucherClaims":
"voucherClaims": [
[ {
{ "mandatoryCustomerDataItemId": 8,
"mandatoryCustomerDataItemId": 8, "value": "1999-12-31",
"value": "1999-12-31", },
}, {
{ "mandatoryCustomerDataItemId": 4,
"mandatoryCustomerDataItemId": 4, "value": "vlad.harkonnen@househarkonnen.net",
"value": "vlad.harkonnen@househarkonnen.net", },
}, ],
], },
}, ],
], }
}, ]
],
} }
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", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "purchasedProductResources":
"purchasedProductResources": [
[ {
{ "resourceNameId": 1,
"resourceNameId": 1, "resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7",
"resourceIdentifier": "408eefa9-b393-4bb3-8439-b2e51833abc7", },
}, {
{ "resourceNameId": 2,
"resourceNameId": 2, "resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e",
"resourceIdentifier": "f809a6e1-1c8d-4f8e-8a6e-0d0b1e1e1e1e", },
}, ],
], "purchasedGboProducts": [],
"purchasedGboProducts": [], "purchasedTapconnectTickets": [],
"purchasedTapconnectTickets": [], "issuedVouchers":
"issuedVouchers": [
[ {
{ "voucherCode": "VOUCHER123",
"voucherCode": "VOUCHER123", "voucherStatusInstances":
"voucherStatusInstances": [
[ {
{ "voucherStatusId": 1,
"voucherStatusId": 1, "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", },
}, ],
], "voucherClaims":
"voucherClaims": [
[ {
{ "mandatoryCustomerDataItemId": 8,
"mandatoryCustomerDataItemId": 8, "value": "1999-12-31",
"value": "1999-12-31", },
}, {
{ "mandatoryCustomerDataItemId": 4,
"mandatoryCustomerDataItemId": 4, "value": "vlad.harkonnen@househarkonnen.net",
"value": "vlad.harkonnen@househarkonnen.net", },
}, ],
], },
}, ],
], },
}, {
{ "productId": 11,
"productId": 11, "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "purchasedProductResources":
"purchasedProductResources": [
[ {
{ "resourceNameId": 1,
"resourceNameId": 1, "resourceIdentifier": "7ce32f9b-52f0-4e80-a527-0c6184b57f52",
"resourceIdentifier": "7ce32f9b-52f0-4e80-a527-0c6184b57f52", },
}, {
{ "resourceNameId": 2,
"resourceNameId": 2, "resourceIdentifier": "02047745-f03e-4c00-8e1b-8dc5c86a786e",
"resourceIdentifier": "02047745-f03e-4c00-8e1b-8dc5c86a786e", },
}, ],
], "purchasedGboProducts": [],
"purchasedGboProducts": [], "purchasedTapconnectTickets": [],
"purchasedTapconnectTickets": [], "issuedVouchers":
"issuedVouchers": [
[ {
{ "voucherCode": "VOUCHER123",
"voucherCode": "VOUCHER123", "voucherStatusInstances":
"voucherStatusInstances": [
[ {
{ "voucherStatusId": 1,
"voucherStatusId": 1, "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", },
}, ],
], "voucherClaims":
"voucherClaims": [
[ {
{ "mandatoryCustomerDataItemId": 8,
"mandatoryCustomerDataItemId": 8, "value": "1940-01-18",
"value": "1940-01-18", },
}, {
{ "mandatoryCustomerDataItemId": 4,
"mandatoryCustomerDataItemId": 4, "value": "valdemar.hoskanner@househarkonnen.net",
"value": "valdemar.hoskanner@househarkonnen.net", },
}, ],
], },
}, ],
], },
}, {
{ "productId": 11,
"productId": 11, "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", "lastUpdatedOn": "2024-10-04T12:34:56.000",
"lastUpdatedOn": "2024-10-04T12:34:56.000", "purchasedProductResources":
"purchasedProductResources": [
[ {
{ "resourceNameId": 1,
"resourceNameId": 1, "resourceIdentifier": "7c71ec8a-3326-451f-9464-3e36d10260e3",
"resourceIdentifier": "7c71ec8a-3326-451f-9464-3e36d10260e3", },
}, {
{ "resourceNameId": 2,
"resourceNameId": 2, "resourceIdentifier": "73c7a805-2edf-4616-a04c-267e88e0931c",
"resourceIdentifier": "73c7a805-2edf-4616-a04c-267e88e0931c", },
}, ],
], "purchasedGboProducts": [],
"purchasedGboProducts": [], "purchasedTapconnectTickets": [],
"purchasedTapconnectTickets": [], "issuedVouchers":
"issuedVouchers": [
[ {
{ "voucherCode": "VOUCHER123",
"voucherCode": "VOUCHER123", "voucherStatusInstances":
"voucherStatusInstances": [
[ {
{ "voucherStatusId": 1,
"voucherStatusId": 1, "createdOn": "2024-10-04T12:34:56.000",
"createdOn": "2024-10-04T12:34:56.000", },
}, ],
], "voucherClaims":
"voucherClaims": [
[ {
{ "mandatoryCustomerDataItemId": 8,
"mandatoryCustomerDataItemId": 8, "value": "2016-06-08",
"value": "2016-06-08", },
}, {
{ "mandatoryCustomerDataItemId": 4,
"mandatoryCustomerDataItemId": 4, "value": "alia.artreides@housearteides.net",
"value": "alia.artreides@housearteides.net", },
}, ],
], },
}, ],
], }
}, ]
],
} }
responses: responses:
"202": "202":
@ -1520,36 +1512,35 @@ paths:
summary: 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 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":
description: Accepted description: Accepted

View File

@ -1,477 +0,0 @@
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