477 lines
14 KiB
YAML
477 lines
14 KiB
YAML
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 |