diff --git a/src/openapi/customers/SE-customers.yaml b/src/openapi/customers/SE-customers.yaml index c982add..a2e5334 100644 --- a/src/openapi/customers/SE-customers.yaml +++ b/src/openapi/customers/SE-customers.yaml @@ -492,8 +492,9 @@ paths: "customerProfileId": 1, "ovPayTokenId": 1, "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", + "ovpasNumber": "", + "alias": "Mijn EMV pas", "tokenType": { "tokenTypeId": 1, "name": "EMV" }, - "alias": "MyToken", "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, "expirationDate": "2028-02-01", @@ -568,7 +569,8 @@ paths: "ovPayTokenId": 1, "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34567", "alias": "MyToken", "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, @@ -650,7 +652,8 @@ paths: "ovPayTokenId": 1, "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34567", "alias": "MyToken", "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, @@ -772,7 +775,8 @@ paths: "ovPayTokenId": 1, "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34567", "alias": "MyToken", "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, @@ -869,7 +873,8 @@ paths: "ovPayTokenId": 1, "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34567", "alias": "MyToken", "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, @@ -984,7 +989,8 @@ paths: "ovPayTokenId": 1, "xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34567", "alias": "MyToken", "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, @@ -1004,7 +1010,8 @@ paths: "ovPayTokenId": 6, "xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV54567", "alias": "MyToken", "tokenStatus": { "tokenStatusId": 3, "name": "Replaced (*)" }, @@ -1025,7 +1032,8 @@ paths: "ovPayTokenId": 13, "xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34547", "alias": "MyToken", "tokenStatus": { "tokenStatusId": 4, "name": "On stock" }, @@ -1046,7 +1054,8 @@ paths: "ovPayTokenId": 21, "xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34831", "alias": "Mijn OV Pas", "tokenStatus": { "tokenStatusId": 5, "name": "Suspended" }, @@ -1067,7 +1076,8 @@ paths: "ovPayTokenId": 28, "xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV34984", "alias": "Mijn OV Pas", "tokenStatus": { @@ -1091,7 +1101,8 @@ paths: "ovPayTokenId": 115, "xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV54368", "alias": "My retired token", "tokenStatus": { "tokenStatusId": 1, "name": "Retired" }, @@ -1112,7 +1123,8 @@ paths: "ovPayTokenId": 118, "xTat": "e7fa3392-646b-40e2-95a6-c417dc0b0969", "tokenType": - { "tokenTypeId": 2, "name": "OV-pas physical" }, + { "tokenTypeId": 2, "name": "OV-pas physical" }, + "ovpasNumber": "OV98263", "alias": "My found token", "tokenStatus": { "tokenStatusId": 7, "name": "Renewed Active" }, @@ -1216,7 +1228,7 @@ paths: "xTat": "32089cc8-d187-47ff-a3a9-5c2558def811", "tokenType": { "tokenTypeId": 1, "name": "EMV" }, "lastDigits": null, - "ovPasNumber": null, + "ovpasNumber": null, "alias": "Mijn token", "tokenStatus": { "tokenStatusId": 2, "name": "Active" }, diff --git a/src/openapi/tapconnect/tapconnect.yaml b/src/openapi/tapconnect/tapconnect.yaml new file mode 100644 index 0000000..9c58115 --- /dev/null +++ b/src/openapi/tapconnect/tapconnect.yaml @@ -0,0 +1,477 @@ +openapi: 3.0.1 +info: + title: TapConnect + description: >- + Welcome to the TapConnect Issuing API documentation. These pages describe the endpoints available within TapConnect. Please note that for historical reasons, Date/times are always in the "Europe/Amsterdam" timezone. The endpoints in this document are grouped as follows: + + - **Export endpoints**: Export related endpoints return information about events related to tickets that have been issued. This can be used for Business Intelligence purposes or for financial record keeping. + - **Product endpoints**: Product related endpoints return information about products that are available to you as a sales partner and the details of each of these products. + - **Ticket endpoints**: Ticket related endpoints allow you to manage tickets throughout their lifecycle. This includes ticket creation, retrieving ticket information, or retrieving the barcode for a ticket. + - **Journey endpoints**: Used to calculate the price of a journey and to issue a ticket for that journey using the external fare calculation engine. + + For more information on TapConnect please visit [https://tapconnect.io](https://tapconnect.io) or [https://documentation.tapconnect.io](https://documentation.tapconnect.io). + version: '1.0' +servers: + - url: https://services.acc.api.htm.nl/tapconnect/1.0 +tags: + - name: Export + description: >- + Export data that can be used to generate reports about issued tickets + and related information +paths: + /v5/ticket-events-export: + get: + summary: Elastic Search ticket events export + description: "Exports ticket events data from Elastic Search.\n\nBoth parameters\ + \ are a string, and they have to represent a date. Consider the list of valid\ + \ formats below:\n1. 2021 - searches for all events in a year\n2. 2021-02\ + \ - searches for all events in a month\n3. 2021-02-02 - searches for all events\ + \ in a day\n4. 2021-02-02T12 - searches for all events in a specific hour\n\ + 5. 2021-02-02T12:00 - searches for all events in a specific minute\n6. 2021-02-02T12:00:00\ + \ - searches for all events in a specific second\n\nIf an error occur, the\ + \ last element returned will be a message with \"An error occurred on Elasticsearch\"\ + \ and it \nmeans that not all the results are returned.\n_Keep in mind that\ + \ the above timestamps would also be accepted as Zulu: 2021-02-02T11:00:00Z\ + \ (winter time)_\n" + parameters: + - explode: true + in: query + name: start + required: true + description: The date to be considered as the interval starting date + schema: + example: 2021-02-01T00:00:00 + type: string + style: form + - explode: true + in: query + name: end + required: true + description: The date to be considered as the interval ending date + schema: + example: 2021-02-02T00:00:00 + type: string + style: form + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v5_ticket_events_export_response' + description: Returns a JSON chunked array of ticket events exported from elastic search. + "400": + description: | + The request could not be validated. The request body or parameters contain incomplete or incorrect parameters. The body of the response will contain information about the problem. + "401": + description: | + Unauthorized call, you are not authorized to call this endpoint with the api key provided in the Authorization header. Please verify that your api key is correct and/or if you are authorized to call this endpoint. + "403": + description: | + Unauthorized call, you are not authorized to call this endpoint with the api key provided in the Authorization header. Please verify that your api key is correct and/or if you are authorized to call this endpoint. + "404": + description: | + The requested URL does not exist, or the requested object was not found. + "406": + description: | + The request was not accepted by the server. The body of the response will contain information about the problem. + tags: + - Export +components: + schemas: + v5_ticket_events_export_response: + type: array + items: + anyOf: + - $ref: '#/components/schemas/ActivateTicketEvent' + - $ref: '#/components/schemas/CreateBarcodeEvent' + - $ref: '#/components/schemas/CreateTicketEvent' + - $ref: '#/components/schemas/TapEvent' + - $ref: '#/components/schemas/InspectTicketEvent' + - $ref: '#/components/schemas/NotifyEvent' + ActivateTicketEvent: + properties: + eventId: + example: 1 + type: number + eventType: + example: ACTIVATE_TICKET + type: string + occurredAt: + example: 2021-06-07T08:42:00.791992000Z + type: string + receivedAt: + example: 2021-06-07T08:42:00.791992000Z + type: string + timeToDie: + example: 2445836980 + type: number + operators: + items: + example: HTM + type: string + type: array + createdBy: + example: HTM + type: string + definedBy: + example: HTM + type: string + ticketId: + example: hkbu3415fbidswd803nfdg7 + type: string + validityStart: + example: 2021-06-06T22:00:00.000000000Z + type: string + validityEnd: + example: 2021-06-07T23:40:00.000000000Z + type: string + validityType: + example: FIXED + type: string + CreateBarcodeEvent: + properties: + eventId: + example: 2 + type: number + eventType: + example: CREATE_BARCODE + type: string + occurredAt: + example: 2021-06-07T08:42:01.629279000Z + type: string + receivedAt: + example: 2021-06-07T08:42:01.629279000Z + type: string + timeToDie: + example: 2445836980 + type: number + operators: + items: + example: HTM + type: string + type: array + createdBy: + example: HTM + type: string + definedBy: + example: HTM + type: string + ticketId: + example: 2huCpR99LHjGfiq8ZJoF + type: string + barcodeSignatureKeyId: + example: TCT07 + type: string + barcodeValidityStart: + example: 2021-06-06T22:00:00.000000000Z + type: string + barcodeValidityEnd: + example: 2021-06-07T23:40:00.000000000Z + type: string + CreateTicketEvent: + properties: + eventId: + example: 0 + type: number + eventType: + example: CREATE_TICKET + type: string + occurredAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + receivedAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + reportedAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + timeToDie: + example: 2445836980 + type: number + operators: + items: + example: HTM + type: string + type: array + createdBy: + example: HTM + type: string + definedBy: + example: HTM + type: string + ticketId: + example: 344BEuHcFkEChOPm06sY + type: string + serviceId: + example: HTM-0987-7477-0993 + type: string + productName: + example: HTM Kinder Dagkaart + type: string + productCode: + example: "303" + type: string + productValidityPeriodUnit: + example: "DAYS" + type: string + productValidityPeriod: + example: 1 + type: number + lifespanStart: + example: 2021-06-07 + type: string + lifespanEnd: + example: 2021-06-08 + type: string + language: + example: NL + type: string + salesChannelId: + example: "9999" + type: string + salesChannelName: + example: HTM App + type: string + startStation: + example: Haarlem + type: string + endStation: + example: Leiden Centraal + type: string + barcodeType: + example: UIC + type: string + validityType: + example: FIXED + type: string + refundable: + example: true + type: boolean + priceInCents: + example: 150, + type: number + numberOfAdults: + example: 1 + type: number + numberOfChildren: + example: 0 + type: number + roundToBusinessDay: + example: true + type: boolean + modalities: + example: ["BUS", "TRAM"] + type: array + items: + example: BUS + type: string + TapEvent: + properties: + eventId: + example: 5 + type: number + eventType: + example: TAP + type: string + occurredAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + receivedAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + timeToDie: + example: 2445836980 + type: number + validationAction: + example: CHECK_OUT + type: string + validationResult: + example: Approved + type: string + tapId: + example: a9aea0ae-52de-42cd-a2f1-93b80d9af389 + type: string + operators: + items: + example: HTM + type: string + type: array + createdBy: + example: HTM + type: string + definedBy: + example: HTM + type: string + ticketId: + example: hkbu3415fbidswd803nfdg7 + type: string + modality: + example: BUS + type: string + line: + example: "25" + type: string + trip: + example: "240" + type: string + vehicle: + example: "1512" + type: string + deviceId: + example: "13513A" + type: string + deviceType: + example: VBS + type: string + lastStopId: + example: "3409" + type: string + lastStopName: + example: Gramsbergenlaan + type: string + nextStopId: + example: "3409" + type: string + nextStopName: + example: Gramsbergenlaan + type: string + location: + type: object + properties: + lat: + example: 52.00089453333333 + type: number + lon: + example: 4.004570666666667 + type: number + InspectTicketEvent: + properties: + eventId: + example: 3 + type: number + eventType: + example: INSPECT_TICKET + type: string + occurredAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + receivedAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + timeToDie: + example: 2445836980 + type: number + operators: + items: + example: HTM + type: string + type: array + createdBy: + example: HTM + type: string + definedBy: + example: HTM + type: string + ticketId: + example: uv1hzvrRd7Xd1Fs9vTxi + type: string + modality: + example: BUS + type: string + deviceId: + example: 6959bd00eaec8e68 + type: string + deviceType: + example: IBS + type: string + validationResult: + example: Approved + type: string + NotifyEvent: + properties: + eventId: + example: 1185 + type: number + eventType: + example: NOTIFY + type: string + occurredAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + receivedAt: + example: 2021-06-07T08:42:00.790992000Z + type: string + timeToDie: + example: 2445836980 + type: number + tapId: + example: a9aea0ae-52de-42cd-a2f1-93b80d9af389 + type: string + sequence: + example: 2 + type: number + tapResponseTimeMillis: + example: 402 + type: number + validationAction: + example: CHECK_OUT + type: string + validationMethod: + example: ONLINE + type: string + validationResult: + example: Approved + type: string + operators: + items: + example: HTM + type: string + type: array + createdBy: + example: HTM + type: string + definedBy: + example: HTM + type: string + modality: + example: TRAM + type: string + line: + example: "3" + type: string + trip: + example: "692" + type: string + vehicle: + example: "4058" + type: string + deviceId: + example: "13A886" + type: string + deviceType: + example: VBS + type: string + lastStopId: + example: "2005" + type: string + lastStopName: + example: Fahrenheitstraat + type: string + nextStopId: + example: "2011" + type: string + nextStopName: + example: Valkenbosplein + type: string + ticketId: + example: hkbu3415fbidswd803nfdg7 + type: string + location: + type: object + properties: + lat: + example: 52.001300283333336 + type: number + lon: + example: 4.004586633333333 + type: number \ No newline at end of file