OVPAY-2032 - Added profile instances to the get token call. #23

Merged
MirjamHTM merged 4 commits from feature/OVPAY-2032 into develop 2025-08-25 13:33:56 +00:00

View File

@ -310,6 +310,7 @@ paths:
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -390,7 +391,8 @@ paths:
"name": null, "name": null,
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -506,6 +508,13 @@ paths:
"lastChangeDate": "2024-08-24T14:15:22Z", "lastChangeDate": "2024-08-24T14:15:22Z",
}, },
}, },
"gboAgeProfile":
MirjamHTM marked this conversation as resolved Outdated

Willen we hier de hele array teruggeven, of alleen de nu actieve (of lege array als er geen enkel actief profiel is)? Anders moet touchpoint die deductie helemaal gaan doen, terwijl SE die ook al heeft gedaan. Kun je net zo goed alleen die teruggeven.

Of nog mooier: geef direct de gboAgeProfile terug zoals we hem in HTM kernregistratie hebben staan (zie mn andere comment)

Willen we hier de hele array teruggeven, of alleen de nu actieve (of lege array als er geen enkel actief profiel is)? Anders moet touchpoint die deductie helemaal gaan doen, terwijl SE die ook al heeft gedaan. Kun je net zo goed alleen die teruggeven. Of nog mooier: geef direct de gboAgeProfile terug zoals we hem in HTM kernregistratie hebben staan (zie mn andere comment)

Goed punt scheelt touchpoint natuurlijk heel veel werk. Kun jij deze voor mij speccen?

Goed punt scheelt touchpoint natuurlijk heel veel werk. Kun jij deze voor mij speccen?

Heb overal profileInstances in de token Details vervangen door gboAgeProfile object, deze is null als het object niet bestaat, en anders gevuld met het geldige profiel op het token. Gelijk met de specs op de validatie van het gboAgeProfile

Heb overal profileInstances in de token Details vervangen door gboAgeProfile object, deze is null als het object niet bestaat, en anders gevuld met het geldige profiel op het token. Gelijk met de specs op de validatie van het gboAgeProfile
{
"gboAgeProfileId": 1,
"name": "Kind (4 t/m 11 jaar)",
MirjamHTM marked this conversation as resolved Outdated

De profileType zal in de praktijk altijd in de range 1-5 liggen en overeen komen met onze gboAgeProfile tabel in ABTProductReference

De profileType zal in de praktijk altijd in de range 1-5 liggen en overeen komen met onze gboAgeProfile tabel in ABTProductReference
"ageFromInclusive": 4,
"ageToInclusive": 11
},
"_links": "_links":
{ {
"self": "self":
@ -596,6 +605,13 @@ paths:
}, },
"photo": null, "photo": null,
}, },
"gboAgeProfile":
{
"gboAgeProfileId": 1,
"name": "Kind (4 t/m 11 jaar)",
"ageFromInclusive": 4,
"ageToInclusive": 11
},
"_links": "_links":
{ {
"self": "self":
@ -704,6 +720,13 @@ paths:
"lastChangeDate": "2024-08-24T14:15:22Z", "lastChangeDate": "2024-08-24T14:15:22Z",
}, },
}, },
"gboAgeProfile":
{
"gboAgeProfileId": 1,
"name": "Kind (4 t/m 11 jaar)",
"ageFromInclusive": 4,
"ageToInclusive": 11
},
"_links": "_links":
{ {
"self": "self":
@ -753,8 +776,8 @@ paths:
}, },
}, },
} }
? Token list with every status for tokenTypeId = 2, role = KlantenService Token list with every status for tokenTypeId = 2, role = KlantenService:
: summary: Token list with every status for tokenTypeId = 2, role = KlantenService summary: Token list with every status for tokenTypeId = 2, role = KlantenService
description: Token list with every status for tokenTypeId = 2, role = KlantenService description: Token list with every status for tokenTypeId = 2, role = KlantenService
value: value:
{ {
@ -799,6 +822,7 @@ paths:
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null,
}, },
{ {
"customerProfileId": 18, "customerProfileId": 18,
@ -819,6 +843,7 @@ paths:
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null
}, },
{ {
"customerProfileId": 132, "customerProfileId": 132,
@ -839,6 +864,7 @@ paths:
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null
}, },
{ {
"customerProfileId": 166, "customerProfileId": 166,
@ -862,6 +888,7 @@ paths:
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null
}, },
{ {
"customerProfileId": 166, "customerProfileId": 166,
@ -882,6 +909,7 @@ paths:
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null
}, },
{ {
"customerProfileId": 1, "customerProfileId": 1,
@ -902,6 +930,7 @@ paths:
"birthdate": null, "birthdate": null,
"photo": null, "photo": null,
}, },
"gboAgeProfile": null
}, },
], ],
_links: _links:
@ -1001,6 +1030,7 @@ paths:
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1078,6 +1108,7 @@ paths:
}, },
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1228,6 +1259,7 @@ paths:
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1297,6 +1329,7 @@ paths:
}, },
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1366,6 +1399,7 @@ paths:
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1552,6 +1586,7 @@ paths:
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1614,6 +1649,7 @@ paths:
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1775,6 +1811,7 @@ paths:
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1844,6 +1881,7 @@ paths:
}, },
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -1913,6 +1951,7 @@ paths:
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null,
"_links": "_links":
{ {
"self": "self":
@ -2130,11 +2169,13 @@ paths:
"tokenStatus": "tokenStatus":
{ "tokenStatusId": 2, "name": "Active" }, { "tokenStatusId": 2, "name": "Active" },
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null
}, },
"newOvPayToken": "newOvPayToken":
{ {
@ -2145,11 +2186,13 @@ paths:
"alias": null, "alias": null,
"tokenStatus": null, "tokenStatus": null,
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null
}, },
"isTransferable": true, "isTransferable": true,
"transferableObjects": "transferableObjects":
@ -2162,6 +2205,7 @@ paths:
"ePurse": true, "ePurse": true,
"personalAccountData": "personalAccountData":
{ "name": true, "birthdate": true, "photo": true }, { "name": true, "birthdate": true, "photo": true },
"gboAgeProfile": true
}, },
"_links": "_links":
{ {
@ -2185,26 +2229,60 @@ paths:
"tokenStatus": "tokenStatus":
{ "tokenStatusId": 2, "name": "Active" }, { "tokenStatusId": 2, "name": "Active" },
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [
{
"productId": 1,
"name": "HTM 90% Korting EMV",
"status": "Active",
"isRenewable": true,
"productCategory": {
"productCategoryId": 1,
MirjamHTM marked this conversation as resolved
Review

Waarom is dit product niet transferable? Omdat het in het verleden als einddatum is? Dan moet de status ook ff niet op "Active" staan (SE kijkt naar einddatum product en als die in verleden ligt dan geeft ie "Ended" terug)

Waarom is dit product niet transferable? Omdat het in het verleden als einddatum is? Dan moet de status ook ff niet op "Active" staan (SE kijkt naar einddatum product en als die in verleden ligt dan geeft ie "Ended" terug)
Review

Dit heb ik uit een andere swagger getrokken en is geen representatief voorbeeld. Als je het aan kunt passen naar iets wat wel klopt graag.

Dit heb ik uit een andere swagger getrokken en is geen representatief voorbeeld. Als je het aan kunt passen naar iets wat wel klopt graag.
Review

Heb product naam verandert naar korting voor EMV en het nieuwe token van type 2 ( OV pas gemaakt) dan is het product niet overzetbaar :)

Heb product naam verandert naar korting voor EMV en het nieuwe token van type 2 ( OV pas gemaakt) dan is het product niet overzetbaar :)
"name": "Kortingsabonnement"
},
"fromInclusive": "2025-11-25T13:25:00+01:00",
"untilInclusive": "2025-12-25T03:59:59+01:00",
"orderId": "501B17EF-36C4-4039-B92C-6517969B464E",
"orderLineId": "38B17EF-36C4-4039-B92C-4817969B464E",
"contractId": "56B17EF-C436-9043-B76C-481797WEB464F",
"_links": {
"self": {
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/tokens/1/productinstances/1",
"method": "GET"
},
"get_order": {
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/orders/501B17EF-36C4-4039-B92C-6517969B464E",
"method": "GET"
},
"get_contract": {
"href": "https://api.integratielaag.nl/abt/touchpoint/1.0/customers/contracts/56B17EF-C436-9043-B76C-481797WEB464F",
"method": "GET"
}
}
}
],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null
}, },
"newOvPayToken": "newOvPayToken":
{ {
"customerProfileId": null, "customerProfileId": null,
"ovPayTokenId": null, "ovPayTokenId": null,
"xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811",
"tokenType": { "tokenTypeId": 1, "name": "EMV" }, "tokenType": { "tokenTypeId": 2, "name": "OV-pas physical" },
"alias": null, "alias": null,
"tokenStatus": null, "tokenStatus": null,
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null
}, },
"isTransferable": false, "isTransferable": false,
"transferableObjects": "transferableObjects":
@ -2217,6 +2295,7 @@ paths:
"ePurse": true, "ePurse": true,
"personalAccountData": "personalAccountData":
{ "name": true, "birthdate": true, "photo": true }, { "name": true, "birthdate": true, "photo": true },
"gboAgeProfile": true,
}, },
"_links": {}, "_links": {},
} }
@ -2234,11 +2313,13 @@ paths:
"tokenStatus": "tokenStatus":
{ "tokenStatusId": 2, "name": "Active" }, { "tokenStatusId": 2, "name": "Active" },
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null
}, },
"newOvPayToken": "newOvPayToken":
{ {
@ -2249,11 +2330,13 @@ paths:
"alias": null, "alias": null,
"tokenStatus": null, "tokenStatus": null,
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null
}, },
"isTransferable": false, "isTransferable": false,
"transferableObjects": "transferableObjects":
@ -2266,6 +2349,7 @@ paths:
"ePurse": true, "ePurse": true,
"personalAccountData": "personalAccountData":
{ "name": true, "birthdate": true, "photo": true }, { "name": true, "birthdate": true, "photo": true },
"gboAgeProfile": true,
}, },
"_links": {}, "_links": {},
} }
@ -2282,6 +2366,7 @@ paths:
"tokenStatus": "tokenStatus":
{ "tokenStatusId": 2, "name": "Active" }, { "tokenStatusId": 2, "name": "Active" },
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": 2, "replacedByTokenId": 2,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
@ -2318,6 +2403,13 @@ paths:
"lastChangeDate": "2024-08-24T14:15:22Z", "lastChangeDate": "2024-08-24T14:15:22Z",
}, },
}, },
"gboAgeProfile":
{
"gboAgeProfileId": 1,
"name": "Kind (4 t/m 11 jaar)",
"ageFromInclusive": 4,
"ageToInclusive": 11
}
}, },
"newOvPayToken": "newOvPayToken":
{ {
@ -2328,11 +2420,13 @@ paths:
"alias": null, "alias": null,
"tokenStatus": null, "tokenStatus": null,
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
"personalAccountData": "personalAccountData":
{ "name": null, "birthdate": null, "photo": null }, { "name": null, "birthdate": null, "photo": null },
"gboAgeProfile": null
}, },
"isTransferable": false, "isTransferable": false,
"transferableObjects": "transferableObjects":
@ -2349,6 +2443,7 @@ paths:
"birthdate": false, "birthdate": false,
"photo": false, "photo": false,
}, },
"gboAgeProfile": true,
}, },
"_links": {}, "_links": {},
} }
@ -2365,6 +2460,7 @@ paths:
"tokenStatus": "tokenStatus":
{ "tokenStatusId": 2, "name": "Active" }, { "tokenStatusId": 2, "name": "Active" },
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": 2, "replacedByTokenId": 2,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
@ -2383,6 +2479,13 @@ paths:
}, },
"photo": null, "photo": null,
}, },
"gboAgeProfile":
{
"gboAgeProfileId": 1,
"name": "Kind (4 t/m 11 jaar)",
"ageFromInclusive": 4,
"ageToInclusive": 11
}
}, },
"newOvPayToken": "newOvPayToken":
{ {
@ -2393,6 +2496,7 @@ paths:
"alias": null, "alias": null,
"tokenStatus": null, "tokenStatus": null,
"expirationDate": "2028-02-01", "expirationDate": "2028-02-01",
"productInstances": [],
"replacedByTokenId": null, "replacedByTokenId": null,
"autoReloadRegistration": null, "autoReloadRegistration": null,
"ePurse": null, "ePurse": null,
@ -2411,6 +2515,13 @@ paths:
}, },
"photo": null, "photo": null,
}, },
"gboAgeProfile":
{
"gboAgeProfileId": 4,
"name": "Kind (19 t/m 65 jaar)",
"ageFromInclusive": 19,
"ageToInclusive": 65
}
}, },
"isTransferable": false, "isTransferable": false,
"transferableObjects": "transferableObjects":
@ -2423,6 +2534,7 @@ paths:
"ePurse": false, "ePurse": false,
"personalAccountData": "personalAccountData":
{ "name": true, "birthdate": false, "photo": true }, { "name": true, "birthdate": false, "photo": true },
"gboAgeProfile": false,
}, },
"_links": {}, "_links": {},
} }
@ -2582,8 +2694,8 @@ paths:
"alias": "My new token", "alias": "My new token",
}, },
} }
? Transfer from a token with PAD to a new token without existing PAD Transfer from a token with PAD to a new token without existing PAD:
: summary: Transfer from a token with PAD to a new token without existing PAD summary: Transfer from a token with PAD to a new token without existing PAD
description: | description: |
Transfer of a token with PAD to a new token by xTAT without existing PAD. Note how this request is Transfer of a token with PAD to a new token by xTAT without existing PAD. Note how this request is
different, since it has an e-mail address on which the new PAD should be created. This request may different, since it has an e-mail address on which the new PAD should be created. This request may
@ -2767,6 +2879,13 @@ paths:
"lastChangeDate": "2024-08-24T14:15:22Z", "lastChangeDate": "2024-08-24T14:15:22Z",
}, },
}, },
"gboAgeProfile":
{
"gboAgeProfileId": 1,
"name": "Kind (4 t/m 11 jaar)",
"ageFromInclusive": 4,
"ageToInclusive": 11
},
"_links": "_links":
{ {
"self": "self":