1870 lines
63 KiB
YAML
1870 lines
63 KiB
YAML
openapi: 3.0.1
|
|
info:
|
|
title: ABT Customer Self Service APIs
|
|
version: '1.0'
|
|
servers:
|
|
- url: https://services.acc.api.htm.nl/abt/abtcustomers/1.0
|
|
security:
|
|
- default: []
|
|
paths:
|
|
/customers/tokens/{ovpayTokenId}/trips:
|
|
get:
|
|
tags:
|
|
- Trips
|
|
summary: Get trips for a token in profile
|
|
description: >-
|
|
Get the most recent trips for a given token ID, as long as this token is
|
|
bound to the profile (as derived from sub in given JWT)
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: ovpayTokenId
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: integer
|
|
- name: xpto
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
example: false
|
|
description: >-
|
|
Determines whether also trips from other PTOs will be returned.
|
|
- name: dateTimeFrom
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: dateTimeUntil
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: organisationId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: transportType
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: lineId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: paymentMethod
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: productTemplateId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: category
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: tripStatus
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: tripId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: showSuperseedingTrips
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: organisationName
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: integer
|
|
- name: offset
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ok
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/getTokenTrips'
|
|
examples:
|
|
emptyResponse:
|
|
summary: No trips found for a token
|
|
value: []
|
|
multipleTripsResponse:
|
|
summary: Multiple trips found for a token
|
|
value:
|
|
- tripId: 66538
|
|
tripVersion: 2
|
|
transportType: RAIL
|
|
lineId: "10"
|
|
tripStatus: COMPLETE
|
|
fare: 2470
|
|
currency: EUR
|
|
lastUpdatedTripDateTime: 2021-06-01T06:22:00Z
|
|
checkinTransactionTimestamp: 2021-06-01T06:00:00Z
|
|
checkoutTransactionTimestamp: 2021-06-01T06:22:00Z
|
|
checkinLocation:
|
|
stopId: 621
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Utrecht Centraal
|
|
- key: en-US
|
|
value: Utrecht Centraal
|
|
stopDesc: Station Utrecht Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation:
|
|
stopId: 253
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Goes
|
|
- key: en-US
|
|
value: Goes
|
|
stopDesc: Station Goes
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
loyaltyOrDiscount: false
|
|
_links:
|
|
tripDetails:
|
|
href: https://services.acc.api.htm.nl/abt/abtcustomers/1.0/customers/trips/66538?ovPayTokenId=42
|
|
method: GET
|
|
templated: false
|
|
- tripId: 66539
|
|
tripVersion: 1
|
|
transportType: BUS
|
|
lineId: "20"
|
|
tripStatus: MISSING_CKO
|
|
fare: 1230
|
|
currency: EUR
|
|
lastUpdatedTripDateTime: 2021-06-01T07:00:00Z
|
|
checkinTransactionTimestamp: 2021-06-01T06:30:00Z
|
|
checkoutTransactionTimestamp: null
|
|
checkinLocation:
|
|
stopId: 622
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Amsterdam Centraal
|
|
- key: en-US
|
|
value: Amsterdam Centraal
|
|
stopDesc: Station Amsterdam Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation: null
|
|
loyaltyOrDiscount: true
|
|
_links:
|
|
tripDetails:
|
|
href: https://services.acc.api.htm.nl/abt/abtcustomers/1.0/customers/trips/66539?ovPayTokenId=42
|
|
method: GET
|
|
templated: false
|
|
getStopsForCorrection:
|
|
href: https://services.acc.api.htm.nl/abt/abtcustomers/1.0/customers/trips/stops?xbot=36637b86-7a31-4b77-99dd-2d39b9c1a9b6&tripId=66539
|
|
method: GET
|
|
templated: false
|
|
'400':
|
|
description: '400'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/400Response'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/401Response'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/403Response'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/404Response'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/500Response'
|
|
security:
|
|
- default: []
|
|
x-auth-type: Application & Application User
|
|
x-throttling-tier: Unlimited
|
|
/customers/tokens/trips:
|
|
get:
|
|
tags:
|
|
- Trips
|
|
summary: Get trips for an anonymous token
|
|
description: >-
|
|
Get the most recent trips for a given token type and value (i.e. SRID and amount or OVpasnumber).
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: tokenType
|
|
in: query
|
|
required: true
|
|
description: >-
|
|
A tokenType IS AN enumerated identifier THAT describes the type of
|
|
Token that will be used as an input for the translation.
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- srfid
|
|
- passnumber
|
|
- name: tokenValue
|
|
in: query
|
|
required: true
|
|
description: >-
|
|
A tokenValue IS A string THAT defines the value of the specified
|
|
tokenType.
|
|
examples:
|
|
srfid:
|
|
value: P485Q6M797J9LW
|
|
summary: srfid
|
|
passnumber:
|
|
value: 424HJGF
|
|
summary: passNumber
|
|
schema:
|
|
type: string
|
|
- name: validatorType
|
|
in: query
|
|
required: true
|
|
description: >-
|
|
A validatorType IS A string THAT defines the type of the attribute
|
|
that is needed to verify the authenticity of the request.
|
|
|
|
|
|
Options:
|
|
|
|
- **verificationCode**: A validator containing, 4 characters long,
|
|
which can be found on a CLT-card
|
|
|
|
- **amount**: Amount on the bank statement (in cents)
|
|
example: verificationcode
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- verificationcode
|
|
- amount
|
|
- name: validatorInput
|
|
in: query
|
|
required: true
|
|
description: >-
|
|
A validatorInput IS A string THAT defines the value of the specified
|
|
validatorType.
|
|
examples:
|
|
verificationcode:
|
|
value: 6RS9
|
|
summary: verificationcode
|
|
amount:
|
|
value: '1021'
|
|
summary: amount
|
|
schema:
|
|
type: string
|
|
- name: xpto
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
example: false
|
|
description: >-
|
|
Determines whether also trips from other PTOs will be returned.
|
|
- name: dateTimeFrom
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: dateTimeUntil
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: organisationId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: transportType
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: lineId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: paymentMethod
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: productTemplateId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: category
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: tripStatus
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: tripId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: showSuperseedingTrips
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: organisationName
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: integer
|
|
- name: offset
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: ok
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/getTokenTrips'
|
|
examples:
|
|
emptyResponse:
|
|
summary: No trips found for a token
|
|
value: []
|
|
multipleTripsResponse:
|
|
summary: Multiple trips found for a token
|
|
value:
|
|
- tripId: 66538
|
|
tripVersion: 2
|
|
transportType: RAIL
|
|
lineId: "10"
|
|
tripStatus: COMPLETE
|
|
fare: 2470
|
|
currency: EUR
|
|
lastUpdatedTripDateTime: 2021-06-01T06:22:00Z
|
|
checkinTransactionTimestamp: 2021-06-01T06:00:00Z
|
|
checkoutTransactionTimestamp: 2021-06-01T06:22:00Z
|
|
checkinLocation:
|
|
stopId: 621
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Utrecht Centraal
|
|
- key: en-US
|
|
value: Utrecht Centraal
|
|
stopDesc: Station Utrecht Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation:
|
|
stopId: 253
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Goes
|
|
- key: en-US
|
|
value: Goes
|
|
stopDesc: Station Goes
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
loyaltyOrDiscount: false
|
|
_links:
|
|
tripDetails:
|
|
href: https://services.acc.api.htm.nl/abt/abtcustomers/1.0/customers/trips/66538?xbot=36637b86-7a31-4b77-99dd-2d39b9c1a9b6
|
|
method: GET
|
|
templated: false
|
|
- tripId: 66539
|
|
tripVersion: 1
|
|
transportType: BUS
|
|
lineId: "20"
|
|
tripStatus: MISSING_CKO
|
|
fare: 1230
|
|
currency: EUR
|
|
lastUpdatedTripDateTime: 2021-06-01T07:00:00Z
|
|
checkinTransactionTimestamp: 2021-06-01T06:30:00Z
|
|
checkoutTransactionTimestamp: null
|
|
checkinLocation:
|
|
stopId: 622
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Amsterdam Centraal
|
|
- key: en-US
|
|
value: Amsterdam Centraal
|
|
stopDesc: Station Amsterdam Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation: null
|
|
loyaltyOrDiscount: true
|
|
_links:
|
|
tripDetails:
|
|
href: https://services.acc.api.htm.nl/abt/abtcustomers/1.0/customers/trips/66539?xbot=36637b86-7a31-4b77-99dd-2d39b9c1a9b6
|
|
method: GET
|
|
templated: false
|
|
getStopsForCorrection:
|
|
href: https://services.acc.api.htm.nl/abt/abtcustomers/1.0/customers/trips/stops?xbot=36637b86-7a31-4b77-99dd-2d39b9c1a9b6&tripId=66539
|
|
method: GET
|
|
templated: false
|
|
'400':
|
|
description: '400'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/400Response'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/401Response'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/403Response'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/404Response'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/500Response'
|
|
security:
|
|
- default: []
|
|
x-auth-type: Application & Application User
|
|
x-throttling-tier: Unlimited
|
|
/customers/trips/{tripId}:
|
|
get:
|
|
tags:
|
|
- Trips
|
|
summary: Get trips details for a trip and token
|
|
description: >-
|
|
Get the trip details for a given trip and token ID (for tokens that are bound to a customer account),
|
|
or xbot (for anonymous tokens), as long as the trip belongs to the token.
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: tripId
|
|
in: path
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: integer
|
|
- name: ovPayTokenId
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: integer
|
|
- name: xbot
|
|
in: query
|
|
required: false
|
|
style: form
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: ok
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/getTrips'
|
|
examples:
|
|
completedTripDetails:
|
|
summary: Example of a completed trip
|
|
value:
|
|
tripId: 66538
|
|
tripVersion: 2
|
|
tripStatus: COMPLETE
|
|
tripFareNature: FIXED
|
|
paymentMethodId: dba0b896-118d-4e9e-abf5-af264ced34c4
|
|
paymentMethodMode: BAL
|
|
paymentMethodName: BAL
|
|
paymentProviderName: Account Balance
|
|
paymentProviderBusinessEntityId: "4"
|
|
paymentProviderCommercialName: VAD Flex
|
|
paymentProviderCommercialUrl: https://www.vad.nl/mijnvad
|
|
organisationIcon: /icons/organisations/4.svg
|
|
organisationId: "4"
|
|
organisationName: NS
|
|
supersededByTripIds:
|
|
- 66539
|
|
- 66540
|
|
supersedesTripIds: []
|
|
tripStartTxnId: 1125977
|
|
tripEndTxnId: 1125978
|
|
numberOfSyntheticLegs: 3
|
|
numberofSyntheticTrips: 2
|
|
products:
|
|
- productTemplateId: "N/A"
|
|
purchaseDateTime: 2021-06-02T08:38:32Z
|
|
appliedValue: 2470
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: SALES
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
fareAggregationCycle: 2
|
|
- xpit: 72c11b8d-5a96-4cc2-9fc8-258a25b57f69
|
|
productTemplateId: "1:2001"
|
|
productCommercialName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Pay As You Go Program (NL)
|
|
- key: en-US
|
|
value: Pay As You Go Program
|
|
validFrom: 2021-06-02T08:38:32Z
|
|
validUntil: 2099-12-31T23:59:59Z
|
|
weight: 2470
|
|
appliedMetric: FARE
|
|
appliedValue: 2470
|
|
xprofit: 0eb178f7-c548-417e-a44f-7248a582ac9d
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: INTERNAL
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
checkinTransactionTimestamp: 2021-06-01T06:00:00Z
|
|
checkoutTransactionTimestamp: 2021-06-01T06:22:00Z
|
|
checkinTransactionReference: 001e8481;1151;gemaltoPure
|
|
checkoutTransactionReference: 001e8481;1152;gemaltoPure
|
|
checkinLocation:
|
|
stopId: 621
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Utrecht Centraal
|
|
- key: en-US
|
|
value: Utrecht Centraal
|
|
stopDesc: Station Utrecht Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation:
|
|
stopId: 253
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Goes
|
|
- key: en-US
|
|
value: Goes
|
|
stopDesc: Station Goes
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
xbot: 36637b86-7a31-4b77-99dd-2d39b9c1a9b6
|
|
tokenType: GemaltoPure
|
|
transportType: RAIL
|
|
lineId: "10"
|
|
networkId: "1"
|
|
networkName: HRN
|
|
vehicleId: 123
|
|
currency: EUR
|
|
transportIcon: /icons/transportTypes/rail.svg
|
|
legs:
|
|
- legId: 83387
|
|
checkinTransactionTimestamp: 2021-06-01T06:00:00Z
|
|
checkoutTransactionTimestamp: 2021-06-01T06:22:00Z
|
|
checkinLocation:
|
|
stopId: 621
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Utrecht Centraal
|
|
- key: en-US
|
|
value: Utrecht Centraal
|
|
stopDesc: Station Utrecht Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation:
|
|
stopId: 253
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Goes
|
|
- key: en-US
|
|
value: Goes
|
|
stopDesc: Station Goes
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
baseRate: 2470
|
|
lineId: "10"
|
|
networkId: "1"
|
|
networkName: HRN
|
|
fare: 2470
|
|
fareState: CALCULATED
|
|
currency: EUR
|
|
products:
|
|
- productTemplateId: "N/A"
|
|
purchaseDateTime: 2021-06-02T08:38:32Z
|
|
appliedValue: 2470
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: SALES
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
- xpit: 72c11b8d-5a96-4cc2-9fc8-258a25b57f69
|
|
productTemplateId: "1:2001"
|
|
productCommercialName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Pay As You Go Program (NL)
|
|
- key: en-US
|
|
value: Pay As You Go Program
|
|
validFrom: 2021-06-02T08:38:32Z
|
|
validUntil: 2099-12-31T23:59:59Z
|
|
weight: 2470
|
|
appliedMetric: FARE
|
|
appliedValue: 2470
|
|
xprofit: 0eb178f7-c548-417e-a44f-7248a582ac9d
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: INTERNAL
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
appliedTimePeriods: []
|
|
tariffJourneyStart: true
|
|
tariffDistance: 9
|
|
aggrGeoIntervalDistance: 9
|
|
topoDistance: 0
|
|
concessionId: "1"
|
|
tripLegIdx: 0
|
|
appliedZones:
|
|
- zoneId: "73"
|
|
zoneName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Enschede-Glanerburg
|
|
- key: en-US
|
|
value: Enschede-Glanerburg
|
|
lastUpdatedTripDateTime: 2021-06-01T06:22:00Z
|
|
fare: 2470
|
|
loyaltyOrDiscount: false
|
|
supportCode: wYyM3nDb2Uy5ge
|
|
checkinTransactionId: 001e8481-1151-gemaltoPure-1622527200000
|
|
checkoutTransactionId: 001e8481-1152-gemaltoPure-1622528520000
|
|
tariffVersionId: NS:5
|
|
correlationId: c3ae1ba3-780a-4416-8a38-3fd03a9005b7
|
|
createdAt: 2021-06-02T15:03:46.813Z
|
|
_links: null
|
|
missingCkoTripDetails:
|
|
summary: Example of a trip with missing check-out
|
|
value:
|
|
tripId: 66538
|
|
tripVersion: 2
|
|
tripStatus: MISSING_CKO
|
|
tripFareNature: FIXED
|
|
paymentMethodId: dba0b896-118d-4e9e-abf5-af264ced34c4
|
|
paymentMethodMode: BAL
|
|
paymentMethodName: BAL
|
|
paymentProviderName: Account Balance
|
|
paymentProviderBusinessEntityId: "4"
|
|
paymentProviderCommercialName: VAD Flex
|
|
paymentProviderCommercialUrl: https://www.vad.nl/mijnvad
|
|
organisationIcon: /icons/organisations/4.svg
|
|
organisationId: "4"
|
|
organisationName: NS
|
|
supersededByTripIds:
|
|
- 66539
|
|
- 66540
|
|
supersedesTripIds: []
|
|
tripStartTxnId: 1125977
|
|
tripEndTxnId: 1125978
|
|
numberOfSyntheticLegs: 3
|
|
numberofSyntheticTrips: 2
|
|
products:
|
|
- productTemplateId: "N/A"
|
|
purchaseDateTime: 2021-06-02T08:38:32Z
|
|
appliedValue: 2470
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: SALES
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
fareAggregationCycle: 2
|
|
- xpit: 72c11b8d-5a96-4cc2-9fc8-258a25b57f69
|
|
productTemplateId: "1:2001"
|
|
productCommercialName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Pay As You Go Program (NL)
|
|
- key: en-US
|
|
value: Pay As You Go Program
|
|
validFrom: 2021-06-02T08:38:32Z
|
|
validUntil: 2099-12-31T23:59:59Z
|
|
weight: 2470
|
|
appliedMetric: FARE
|
|
appliedValue: 2470
|
|
xprofit: 0eb178f7-c548-417e-a44f-7248a582ac9d
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: INTERNAL
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
checkinTransactionTimestamp: 2021-06-01T06:00:00Z
|
|
checkoutTransactionTimestamp: 2021-06-01T06:22:00Z
|
|
checkinTransactionReference: 001e8481;1151;gemaltoPure
|
|
checkoutTransactionReference: 001e8481;1152;gemaltoPure
|
|
checkinLocation:
|
|
stopId: 621
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Utrecht Centraal
|
|
- key: en-US
|
|
value: Utrecht Centraal
|
|
stopDesc: Station Utrecht Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation:
|
|
stopId: 253
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Goes
|
|
- key: en-US
|
|
value: Goes
|
|
stopDesc: Station Goes
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
xbot: 36637b86-7a31-4b77-99dd-2d39b9c1a9b6
|
|
tokenType: GemaltoPure
|
|
transportType: RAIL
|
|
lineId: "10"
|
|
networkId: "1"
|
|
networkName: HRN
|
|
vehicleId: 123
|
|
currency: EUR
|
|
transportIcon: /icons/transportTypes/rail.svg
|
|
legs:
|
|
- legId: 83387
|
|
checkinTransactionTimestamp: 2021-06-01T06:00:00Z
|
|
checkoutTransactionTimestamp: null
|
|
checkinLocation:
|
|
stopId: 621
|
|
stopName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Utrecht Centraal
|
|
- key: en-US
|
|
value: Utrecht Centraal
|
|
stopDesc: Station Utrecht Centraal
|
|
stopUrl: /icons/stops/stop.svg
|
|
locationType: 0
|
|
checkoutLocation: null
|
|
baseRate: 400
|
|
lineId: "10"
|
|
networkId: "1"
|
|
networkName: HRN
|
|
fare: 400
|
|
fareState: CALCULATED
|
|
currency: EUR
|
|
products:
|
|
- productTemplateId: "N/A"
|
|
purchaseDateTime: 2021-06-02T08:38:32Z
|
|
appliedValue: 400
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: SALES
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
- xpit: 72c11b8d-5a96-4cc2-9fc8-258a25b57f69
|
|
productTemplateId: "1:2001"
|
|
productCommercialName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Pay As You Go Program (NL)
|
|
- key: en-US
|
|
value: Pay As You Go Program
|
|
validFrom: 2021-06-02T08:38:32Z
|
|
validUntil: 2099-12-31T23:59:59Z
|
|
weight: 400
|
|
appliedMetric: FARE
|
|
appliedValue: 400
|
|
xprofit: 0eb178f7-c548-417e-a44f-7248a582ac9d
|
|
xspit: 39b9183d-767d-4364-9d1b-575613c12a96
|
|
category: INTERNAL
|
|
typesOfFareProduct:
|
|
- privateCode: payg
|
|
appliedTimePeriods: []
|
|
tariffJourneyStart: true
|
|
tariffDistance: 9
|
|
aggrGeoIntervalDistance: 9
|
|
topoDistance: 0
|
|
concessionId: "1"
|
|
tripLegIdx: 0
|
|
appliedZones:
|
|
- zoneId: "73"
|
|
zoneName:
|
|
items:
|
|
- key: nl-NL
|
|
value: Enschede-Glanerburg
|
|
- key: en-US
|
|
value: Enschede-Glanerburg
|
|
lastUpdatedTripDateTime: 2021-06-01T06:22:00Z
|
|
fare: 2470
|
|
loyaltyOrDiscount: false
|
|
supportCode: wYyM3nDb2Uy5ge
|
|
checkinTransactionId: 001e8481-1151-gemaltoPure-1622527200000
|
|
checkoutTransactionId: null
|
|
tariffVersionId: NS:5
|
|
correlationId: c3ae1ba3-780a-4416-8a38-3fd03a9005b7
|
|
createdAt: 2021-06-02T15:03:46.813Z
|
|
_links:
|
|
getStopsForCorrection:
|
|
href: https://services.acc.api.htm.nl/abt/abtcustomers/1.0/customers/trips/stops?xbot=36637b86-7a31-4b77-99dd-2d39b9c1a9b6&tripId=66538
|
|
method: GET
|
|
templated: false
|
|
'400':
|
|
description: '400'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/400Response'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/401Response'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/403Response'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/404Response'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/500Response'
|
|
security:
|
|
- default: []
|
|
- default: []
|
|
x-auth-type: Application & Application User
|
|
x-throttling-tier: Unlimited
|
|
/customers/trips/stops:
|
|
get:
|
|
tags:
|
|
- Trips
|
|
summary: 9776 - Get Possible Stops With Details
|
|
operationId: API-9776v3_getPossibleStopsWithDetails
|
|
description: Get Possible Stops With Details
|
|
security:
|
|
- default: []
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
- name: xbot
|
|
description: >-
|
|
A xBOT IS AN unique identifier THAT is an external representation of
|
|
a backoffice Token for a particular Business Entity
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: tripId
|
|
in: query
|
|
description: A tripId IS AN identifier THAT distinguishes a Trip from all other Trips
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: transactionId
|
|
in: query
|
|
description: >-
|
|
A transactionId IS A unique identifier THAT is generated by the GBO
|
|
and assigned to every Transaction that is received
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Success with results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MissingCkiCkoRequest'
|
|
examples:
|
|
possibleStopsResponse:
|
|
summary: Possible stops for a trip with missing check-out
|
|
value:
|
|
xbot: 36637b86-7a31-4b77-99dd-2d39b9c1a9b6
|
|
counterpartTransactionId: 003D08FF-75032799-emv-1773668001000
|
|
counterpartEntryExitType: ENTRY
|
|
counterpartTimeStamp: 2026-03-16T14:33:21+01:00
|
|
counterpartStop:
|
|
alternativeTexts:
|
|
- text:
|
|
lang: nl-NL
|
|
textIdType: publicName
|
|
text: Delftsewallen
|
|
- text:
|
|
lang: en-US
|
|
textIdType: publicName
|
|
text: Delftsewallen
|
|
name: Stop point8124
|
|
description: Stop point8124
|
|
stopId: '8124'
|
|
transportModes: []
|
|
deviceId: '3999999'
|
|
deviceClassId: '0'
|
|
scheduledStopPoints:
|
|
- alternativeTexts:
|
|
- text:
|
|
lang: nl-NL
|
|
textIdType: publicName
|
|
text: Centrum-West
|
|
- text:
|
|
lang: en-US
|
|
textIdType: publicName
|
|
text: Centrum-West
|
|
name: Stop point8127
|
|
description: Stop point8127
|
|
stopId: '8127'
|
|
transportModes: []
|
|
- alternativeTexts:
|
|
- text:
|
|
lang: nl-NL
|
|
textIdType: publicName
|
|
text: Halte Onbekend
|
|
- text:
|
|
lang: en-US
|
|
textIdType: publicName
|
|
text: Halte Onbekend
|
|
name: Stop point65533
|
|
description: Stop point65533
|
|
stopId: '65533'
|
|
transportModes: []
|
|
- alternativeTexts:
|
|
- text:
|
|
lang: nl-NL
|
|
textIdType: publicName
|
|
text: Dorp
|
|
- text:
|
|
lang: en-US
|
|
textIdType: publicName
|
|
text: Dorp
|
|
name: Stop point8126
|
|
description: Stop point8126
|
|
stopId: '8126'
|
|
transportModes: []
|
|
'400':
|
|
description: '400'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/400Response'
|
|
'401':
|
|
description: '401'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/401Response'
|
|
'403':
|
|
description: '403'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/403Response'
|
|
'404':
|
|
description: '404'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/404Response'
|
|
'500':
|
|
description: '500'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/500Response'
|
|
/customers/trips/missing-taps:
|
|
post:
|
|
tags:
|
|
- Trips
|
|
summary: 8255 - Manual Check-in or Check-out
|
|
description: >-
|
|
Creates manual Check-in or Check-out for transactions that are missing
|
|
their pair. Check-in or Check-out directions are defined using
|
|
**entryExitType** parameter in body respectivelly
|
|
operationId: API-8255v3_manualCheckInOrCheckOut
|
|
parameters:
|
|
- name: X-HTM-JWT-AUTH-HEADER
|
|
in: header
|
|
required: true
|
|
style: simple
|
|
explode: false
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ManualTap'
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Operation successful
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericOkResponse'
|
|
example:
|
|
referenceId: BSS-1627294719604
|
|
numberOfRemainingAttempts: 0
|
|
timeOfNextAllowedAttempt: '2022-03-19T17:07:31Z'
|
|
'400':
|
|
description: |-
|
|
Bad request
|
|
List of possible error codes:
|
|
|
|
* 402 - Unable to store message
|
|
* 403 - Unable to send message to NotificationProcessor
|
|
* 404 - Unable to parse message
|
|
* 405 - Unable to validate message
|
|
* 406 - Missing mandatory headers
|
|
* 407 - Counter Transaction not found
|
|
* 408 - Manual taps limit exceeded
|
|
* 409 - Unable to send message to Orchestrator
|
|
* 410 - Unable to construct message
|
|
* 411 - Unable to get data
|
|
* 412 - Unable to get bin
|
|
* 422 - Duplicate manual tap
|
|
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/400Response'
|
|
example:
|
|
errorMessage:
|
|
message: >-
|
|
Maximum limit 5 of manual taps reached for beId = 7 and role
|
|
= PTO within a period of 2592000 seconds for this token
|
|
referenceId: BSS-1627294719604
|
|
businessExceptions:
|
|
- code: '408'
|
|
message: Manual taps limit exceeded
|
|
- code: BSS-timeOfNextAllowedAttempt
|
|
message: '2022-03-19T17:07:31Z'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/500Response'
|
|
example:
|
|
errorMessage:
|
|
message: The server responded with http status code 500
|
|
referenceId: BSS-1627294719604
|
|
businessExceptions:
|
|
- code: '5026'
|
|
message: Unable to send request to Orchestrator
|
|
'503':
|
|
description: Service Unavailable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/503Response'
|
|
example:
|
|
errorMessage:
|
|
message: The server responded with http status code 503
|
|
referenceId: BSS-1627294719604
|
|
businessExceptions:
|
|
- code: '5026'
|
|
message: Unable to send request to Orchestrator
|
|
x-codegen-request-body-name: ManualTap
|
|
security:
|
|
- default: []
|
|
components:
|
|
securitySchemes:
|
|
default:
|
|
type: oauth2
|
|
flows:
|
|
implicit:
|
|
authorizationUrl: https://services.acc.api.htm.nl/authorize
|
|
scopes: {}
|
|
schemas:
|
|
getTokenTrips:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
tripId:
|
|
type: number
|
|
tripVersion:
|
|
type: number
|
|
transportType:
|
|
type: string
|
|
lineId:
|
|
type: string
|
|
tripStatus:
|
|
type: string
|
|
fare:
|
|
type: number
|
|
currency:
|
|
type: string
|
|
lastUpdatedTripDateTime:
|
|
type: string
|
|
checkinTransactionTimestamp:
|
|
type: string
|
|
checkoutTransactionTimestamp:
|
|
type: string
|
|
checkinLocation:
|
|
type: object
|
|
properties:
|
|
stopId:
|
|
type: number
|
|
stopName:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
stopDesc:
|
|
type: string
|
|
stopUrl:
|
|
type: string
|
|
locationType:
|
|
type: number
|
|
checkoutLocation:
|
|
type: object
|
|
properties:
|
|
stopId:
|
|
type: number
|
|
stopName:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
stopDesc:
|
|
type: string
|
|
stopUrl:
|
|
type: string
|
|
locationType:
|
|
type: number
|
|
loyaltyOrDiscount:
|
|
type: boolean
|
|
_links:
|
|
type: object
|
|
properties:
|
|
tripDetails:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
method:
|
|
type: string
|
|
templated:
|
|
type: boolean
|
|
getStopsForCorrection:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
method:
|
|
type: string
|
|
templated:
|
|
type: boolean
|
|
getTrips:
|
|
type: object
|
|
properties:
|
|
tripId:
|
|
type: number
|
|
tripVersion:
|
|
type: number
|
|
tripStatus:
|
|
type: string
|
|
organisationIcon:
|
|
type: string
|
|
organisationId:
|
|
type: string
|
|
organisationName:
|
|
type: string
|
|
supersededByTripIds:
|
|
type: array
|
|
items:
|
|
type: number
|
|
supersedesTripIds:
|
|
type: array
|
|
items:
|
|
type: object
|
|
tripStartTxnId:
|
|
type: number
|
|
tripEndTxnId:
|
|
type: number
|
|
numberOfSyntheticLegs:
|
|
type: number
|
|
numberofSyntheticTrips:
|
|
type: number
|
|
products:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
productTemplateId:
|
|
type: string
|
|
purchaseDateTime:
|
|
type: string
|
|
appliedValue:
|
|
type: number
|
|
xspit:
|
|
type: string
|
|
category:
|
|
type: string
|
|
typesOfFareProduct:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
privateCode:
|
|
type: string
|
|
checkinTransactionTimestamp:
|
|
type: string
|
|
checkoutTransactionTimestamp:
|
|
type: string
|
|
checkinTransactionReference:
|
|
type: string
|
|
checkoutTransactionReference:
|
|
type: string
|
|
checkinLocation:
|
|
type: object
|
|
properties:
|
|
stopId:
|
|
type: number
|
|
stopName:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
stopDesc:
|
|
type: string
|
|
stopUrl:
|
|
type: string
|
|
locationType:
|
|
type: number
|
|
checkoutLocation:
|
|
type: object
|
|
properties:
|
|
stopId:
|
|
type: number
|
|
stopName:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
stopDesc:
|
|
type: string
|
|
stopUrl:
|
|
type: string
|
|
locationType:
|
|
type: number
|
|
xbot:
|
|
type: string
|
|
tokenType:
|
|
type: string
|
|
transportType:
|
|
type: string
|
|
lineId:
|
|
type: string
|
|
networkId:
|
|
type: string
|
|
networkName:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
transportIcon:
|
|
type: string
|
|
legs:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
legId:
|
|
type: number
|
|
checkinTransactionTimestamp:
|
|
type: string
|
|
checkoutTransactionTimestamp:
|
|
type: string
|
|
checkinLocation:
|
|
type: object
|
|
properties:
|
|
stopId:
|
|
type: number
|
|
stopName:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
stopDesc:
|
|
type: string
|
|
stopUrl:
|
|
type: string
|
|
locationType:
|
|
type: number
|
|
checkoutLocation:
|
|
type: object
|
|
properties:
|
|
stopId:
|
|
type: number
|
|
stopName:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
stopDesc:
|
|
type: string
|
|
stopUrl:
|
|
type: string
|
|
locationType:
|
|
type: number
|
|
baseRate:
|
|
type: number
|
|
lineId:
|
|
type: string
|
|
networkId:
|
|
type: string
|
|
networkName:
|
|
type: string
|
|
fare:
|
|
type: number
|
|
fareState:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
products:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
productTemplateId:
|
|
type: string
|
|
purchaseDateTime:
|
|
type: string
|
|
appliedValue:
|
|
type: number
|
|
xspit:
|
|
type: string
|
|
category:
|
|
type: string
|
|
typesOfFareProduct:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
privateCode:
|
|
type: string
|
|
appliedTimePeriods:
|
|
type: array
|
|
items:
|
|
type: object
|
|
tariffJourneyStart:
|
|
type: boolean
|
|
tariffDistance:
|
|
type: number
|
|
aggrGeoIntervalDistance:
|
|
type: number
|
|
topoDistance:
|
|
type: number
|
|
concessionId:
|
|
type: string
|
|
tripLegIdx:
|
|
type: number
|
|
appliedZones:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
zoneId:
|
|
type: string
|
|
zoneName:
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
lastUpdatedTripDateTime:
|
|
type: string
|
|
fare:
|
|
type: number
|
|
loyaltyOrDiscount:
|
|
type: boolean
|
|
supportCode:
|
|
type: string
|
|
checkinTransactionId:
|
|
type: string
|
|
checkoutTransactionId:
|
|
type: string
|
|
tariffVersionId:
|
|
type: string
|
|
correlationId:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
_links:
|
|
type: object
|
|
properties:
|
|
getStopsForCorrection:
|
|
type: object
|
|
properties:
|
|
href:
|
|
type: string
|
|
method:
|
|
type: string
|
|
templated:
|
|
type: boolean
|
|
MissingCkiCkoRequest:
|
|
type: object
|
|
properties:
|
|
xbot:
|
|
type: string
|
|
description: >-
|
|
A xBOT IS AN unique identifier THAT is an external representation of
|
|
a backoffice Token for a particular Business Entity
|
|
counterpartTransactionId:
|
|
type: string
|
|
description: >-
|
|
A counterpartTransactionId IS A unique identifier THAT assigned to
|
|
every Transaction that is received
|
|
counterpartEntryExitType:
|
|
type: string
|
|
description: >-
|
|
AN counterpartEntryExitType IS AN direction indicator THAT describes
|
|
a possible direction indicated by the callee that created the
|
|
Transaction
|
|
counterpartTimeStamp:
|
|
type: string
|
|
description: >-
|
|
A counterpartTimeStamp IS A date, time and time zone indication THAT
|
|
describes when the Transaction was created either by a Device or
|
|
callee
|
|
counterpartStop:
|
|
$ref: '#/components/schemas/ScheduledStopPointData'
|
|
deviceId:
|
|
type: string
|
|
description: >-
|
|
A deviceId IS AN unique identifier THAT distinguishes a Device from
|
|
all other Devices
|
|
deviceClassId:
|
|
type: string
|
|
description: >-
|
|
A deviceClassId IS AN enumerated identifier THAT describes the type
|
|
of Device responsible for creating the Transaction
|
|
scheduledStopPoints:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ScheduledStopPointData'
|
|
ScheduledStopPointData:
|
|
type: object
|
|
properties:
|
|
alternativeTexts:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/AlternativeText'
|
|
name:
|
|
type: string
|
|
description: >-
|
|
A name IS A string THAT is used to described name of the
|
|
TariffLocation name
|
|
shortName:
|
|
type: string
|
|
description: >-
|
|
A shortName IS AN abbreviation THAT contains a shortened version of
|
|
the TariffLocation name
|
|
description:
|
|
type: string
|
|
description: >-
|
|
A description IS A string THAT is used as an additional label of the
|
|
TariffLocation as defined in the Tariff Fragment
|
|
location:
|
|
$ref: '#/components/schemas/Location'
|
|
stopId:
|
|
type: string
|
|
description: >-
|
|
A stopId IS A unique identifier THAT distinguishes a Tariff Location
|
|
from all other Tariff Locations
|
|
transportModes:
|
|
type: array
|
|
description: >-
|
|
A transportMode IS AN identifier THAT describes the mode of
|
|
transport
|
|
items:
|
|
type: string
|
|
AlternativeText:
|
|
type: object
|
|
description: >-
|
|
AN AlternativeText IS AN object THAT contains values to enable one or
|
|
more language translations
|
|
properties:
|
|
text:
|
|
type: object
|
|
description: >-
|
|
A text is AN wrapper THAT is used as an abstraction layer to contain
|
|
the properties of AlternativeText
|
|
properties:
|
|
lang:
|
|
type: string
|
|
description: >-
|
|
A lang IS AN enumerated identifier THAT describes the language
|
|
of the text within the AlternativeText object
|
|
example: en-US
|
|
textIdType:
|
|
type: string
|
|
description: A textIdType IS AN name THAT is used to categorize types of text
|
|
example: publicName
|
|
text:
|
|
type: string
|
|
description: >-
|
|
A text IS A name THAT has been translated to a particular
|
|
language
|
|
example: Default Travel Entitlement
|
|
Location:
|
|
type: object
|
|
properties:
|
|
longitude:
|
|
type: number
|
|
description: >-
|
|
A longitude IS A number THAT represents the geographic coordinate
|
|
that specifies the east-west position of a point on the surface of
|
|
the Earth
|
|
latitude:
|
|
type: number
|
|
description: >-
|
|
A latitude IS A number THAT represents the geographic coordinate
|
|
that specifies the north-south position of a point on the surface of
|
|
the Earth
|
|
altitude:
|
|
type: number
|
|
description: >-
|
|
AN altitude IS A number THAT represents the height of an object or
|
|
point in relation to sea level or ground level
|
|
ManualTap:
|
|
required:
|
|
- xbot
|
|
- counterpartTransactionId
|
|
- deviceClassId
|
|
- deviceId
|
|
- stopId
|
|
type: object
|
|
properties:
|
|
counterpartTransactionId:
|
|
type: string
|
|
description: Id of the transaction that is missing its pair
|
|
example: 001e8481-1151-gemaltoPure-1622527200000
|
|
xbot:
|
|
type: string
|
|
description: Token identification code (external backoffice token)
|
|
example: 36637b86-7a31-4b77-99dd-2d39b9c1a9b6
|
|
stopId:
|
|
type: string
|
|
description: Id of the location of the tap
|
|
example: 42
|
|
deviceId:
|
|
type: string
|
|
description: Id of the device
|
|
example: 3212967
|
|
deviceClassId:
|
|
type: string
|
|
description: Class Id of the device
|
|
example: 9
|
|
transactionTimestamp:
|
|
type: string
|
|
description: Timestamp of the transaction
|
|
format: date-time
|
|
example: 2019-11-25T17:39:45.000Z
|
|
entryExitType:
|
|
type: string
|
|
description: 'Direction of the tap: in or out'
|
|
example: EXIT
|
|
enum:
|
|
- UNKNOWN
|
|
- ENTRY
|
|
- EXIT
|
|
description: JSON schema for ManualTap message
|
|
GenericOkResponse:
|
|
required:
|
|
- referenceId
|
|
description: Ok response object
|
|
type: object
|
|
properties:
|
|
referenceId:
|
|
type: string
|
|
description: Reference identification code
|
|
numberOfRemainingAttempts:
|
|
type: integer
|
|
description: Number of remaining attempts
|
|
timeOfNextAllowedAttempt:
|
|
type: string
|
|
format: date-time
|
|
description: Time when next attempt is allowed
|
|
400Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '400'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Bad Request
|
|
description:
|
|
type: string
|
|
example: >-
|
|
'Bad Request: Input parameters missing! Please fill in at least 1
|
|
valid input parameter.
|
|
401Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '900901'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Invalid Credentials
|
|
description:
|
|
type: string
|
|
example: >-
|
|
Invalid Credentials. Make sure you have provided the correct
|
|
security credentials.
|
|
403Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '900901'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Retailer not authorized
|
|
description:
|
|
type: string
|
|
example: >-
|
|
The retailer is not allowed to access resource for requested
|
|
touchpoint.
|
|
404Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '404'
|
|
type:
|
|
type: string
|
|
example: Status report
|
|
message:
|
|
type: string
|
|
example: Not Found
|
|
description:
|
|
type: string
|
|
example: The requested resource is not available.
|
|
500Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '500'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Internal Server Error
|
|
description:
|
|
type: string
|
|
503Response:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: '503'
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
example: Service Unavailable
|
|
description:
|
|
type: string |