Rail, it's in our DNA
WebTis API
Documentation
Introduction
The Assertis WebTIS (AWT) API is a RESTful JSON API that enables customers to plan rail journeys and buy rail tickets for travel on the British rail network.
Using the API, customers can plan a journey from any National Rail station to any other. The API also enables customers to buy any ticket - Advance, Off-Peak, Anytime as well as group tickets, carnets, packages and season tickets - to and from any station up to three months before travel. Travelcards, zonal tickets, other TfL and metro products and Plusbus are also supported, as are all railcard discounts, reservations and child fares. Fares and journey planning can be delivered separately, as well as together.
The API supports basket functionality and secure payment with Visa, MasterCard, Amex and other payment cards, PayPal and payment on account. Customers can have their tickets printed and posted; collect them from stations; or print them at home / send them to their phone for some routes.
The API also offers order management, comprehensive rail reference data and refunds through the customer administration service.
All the data that the API uses is from rail-industry approved sources, updated daily in the case of fares and train schedules, and fully in line with industry best practice. The API is accredited by the Rail Delivery Group (RDG), which represents all of the Train Operating Companies (TOCs) and Network Rail (the infrastructure provider) in Britain.
Getting started
Your account manager will provide you with a URL for your dedicated test environment. The test environment will be a fully functional system integrated with test versions of all rail systems except LENNON.
Test card numbers will be provided that can be used to complete purchases. After a successful payment fulfilment will be completed.
Support queries and service issues can be sent via your account manager or to techsupport@assertis.co.uk.
If you wish to perform load testing please provide 24 hours notice.
Protocols
The API itself is a collection of microservices grouped together under a single domain using HAProxy. It is built using REST principles which ensures predictable URLs that makes writing applications easy. This API follows HTTP rules, enabling a wide range of HTTP clients can be used to interact with the API.
Every resource is exposed as a URL. The URL of each resource can be obtained by accessing the API Root Endpoint.
All requests and responses are in JSON. The structure of each request and response is outlined with examples and a JSON-Schema. In general the responses are similar to the standard JSON API design but links are condensed.
For example:
GET /customer/1
Would return:
{
"status": "success",
"data": {
"title": "Mr",
"firstNames": "John",
"surname": "Smith",
"email": "john.smith@example.org",
"emailMarketing": false,
"smsMarketing": false,
"telephoneNumber": "+447754000000",
"created": "2015-05-06T09:54:06Z",
"login": "2015-05-06T09:54:06Z",
"updated": "2015-05-06T09:54:06Z",
"firstPurchase": "2015-05-06T09:54:06Z",
"addresses": [
"/address/2"
]
},
"links": {
"/address/2": {
"title": "Mr",
"firstNames": "John",
"surname": "Smith",
"address1": "123 Test Street",
"address2": "Another Street",
"address3": null,
"town": "Town",
"county": null,
"country": "United Kingdom",
"postCode": "TE57 1NG",
"telephoneNumber": "+447754000000"
}
}
}
Any properties that contain a link to another entity (in this case /address/2) are automatically populated in the links section of the response.
Callbacks
There are additional call backs from the AWT that are not documented here as they usually contain a bespoke payload.
The available callbacks are:
- Order sold
- Order fulfilled
- Ticket refunded
Security
The API is only available via HTTPS. Certificates are signed by Let's Encrypt.
Some parts of the API may be publically available and may be used by end clients (SPA applications / Mobile devices), other parts are restricted by IP. In addition to this some resources are restricted by access token.
Where an access token is required it must be provided by HTTP header. For example
X-Auth-Token: "a1b2c3d4e5f6g7h8i9j0"
Reference data
Reference data is provided inline in the API responses as part of the links section. If there is a need to cache it on the client it can be cached for 24 hours.
Reference data is updated nightly between 03:00am and 04:00am.
Expiry headers
You should pay attention to Expires headers returned when order is created or modified. Various rules are in place to ensure basket validity conforms to industry standards.
Auth
Auth Service API
Auth service generates tokens to be used in authorization / authentication in other services.
POST /auth
Request schema (show)
{
"description": "Auth service token generation request",
"type": "object",
"additionalProperties": false,
"required": [
"vendor",
"text",
"signature"
],
"properties": {
"vendor": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Vendor name that exchanged with us its public key; letters, digits, _ and - only"
},
"text": {
"type": "string",
"description": "Text to be verified against signature"
},
"signature": {
"type": "string",
"description": "Base64 of signature to verify"
},
"userId": {
"type": "string",
"description": "Optional user id that match some of our customers e.g. /users/{id}"
},
"username": {
"type": "string",
"description": "Optional username"
},
"password": {
"type": "string",
"description": "Optional password"
},
"twoFactorCode": {
"type": "string",
"description": "Optional 2factor code"
},
"expiry": {
"type": "number",
"description": "Optional expiry time in hours"
}
}
}
Request example (show)
{
"vendor": "vendor",
"text": "1561b543-ec80-461b-b55b-43b9ff2a03a8",
"signature": "rLMwGb6mEAEBimzg0+f7Mi//s6ypkLvAhJ2C99u6OS0+iQ6t==",
"userId": "/users/14"
}
200 application/json
Response schema (show)
{
"description": "Auth Serivce token response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"properties": {
"token": {
"type": "string"
}
},
"required": [
"token"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"token": "eyJhbGciOiJIUzI1NiI.eyJzZXNzaW9uSWQiOiIiwidGVuYW5.niCtFnxnL-Z5jUYafohiN7SSO2coL"
}
}
400 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"vendor": "must not be empty"
}
}
401 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"message": "Error occured during signature validation. Check your vendor and tenent header"
}
}
403 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"message": "Passed vendor / user / token does not match with the token"
}
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
POST /pre-auth
Request schema (show)
{
"description": "Auth service pre-token action request",
"type": "object",
"additionalProperties": false,
"required": [
"vendor",
"text",
"signature"
],
"properties": {
"vendor": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Vendor name that exchanged with us its public key; letters, digits, _ and - only"
},
"text": {
"type": "string",
"description": "Text to be verified against signature"
},
"signature": {
"type": "string",
"description": "Base64 of signature to verify"
},
"otpNonce": {
"type": "string",
"description": "Used for resending OTP. Value should be: OTP Nonce returned by service which requested the otp (one that emitted OTPRequested event)"
}
}
}
Request example (show)
{
"vendor": "vendor",
"text": "1561b543-ec80-461b-b55b-43b9ff2a03a8",
"signature": "rLMwGb6mEAEBimzg0+f7Mi//s6ypkLvAhJ2C99u6OS0+iQ6t==",
"otpNonce": "1561b543-ec80-461b-b55b-43b9ff2a03a8"
}
200 application/json
Response schema (show)
{
"description": "Auth Serivce pre-token response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"description": "Response data",
"type": "object"
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"message": "OTP has been re-sent",
"validUntil": "2023-01-01T00:00:00.000Z"
}
}
400 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"vendor": "must not be empty"
}
}
401 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"message": "Error occured during signature validation. Check your vendor and tenent header"
}
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Reference Data
Introduction
Welcome to the Reference Data API Documentation. The API allows you to fetch information about entities common for all parts of TIS. This service agreggate data supplied by external providers.
GET /railcard
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"code": {
"$oneOf": [
{
"type": "string",
"pattern": "^[A-Z0-9]{3}$"
},
{
"type": "string",
"pattern": "^$"
}
]
},
"description": {
"type": "string"
},
"name": {
"type": "object",
"properties": {
"display": {
"type": "string"
},
"print": {
"type": "string"
}
}
},
"status": {
"type": "object",
"properties": {
"adult": {
"type": [
"string",
"null"
]
},
"child": {
"type": [
"string",
"null"
]
}
}
},
"minPassengers": {
"type": "integer"
},
"maxPassengers": {
"type": "integer"
},
"minHolders": {
"type": "integer"
},
"maxHolders": {
"type": "integer"
},
"minAdults": {
"type": "integer"
},
"maxAdults": {
"type": "integer"
},
"minChildren": {
"type": "integer"
},
"maxChildren": {
"type": "integer"
},
"minAccAdults": {
"type": "integer"
},
"maxAccAdults": {
"type": "integer"
},
"quoteDate": {
"type": "string"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"lastValidDate": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"description",
"name",
"minPassengers",
"maxPassengers",
"minHolders",
"maxHolders",
"minAdults",
"maxAdults",
"minChildren",
"maxChildren",
"minAccAdults",
"maxAccAdults",
"quoteDate",
"startDate",
"endDate",
"lastValidDate"
]
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": [
{
"code": "",
"description": "PUBLIC",
"name": {
"display": "PUBLIC",
"print": "PUBLIC"
},
"status": {
"adult": "000",
"child": "001"
},
"minPassengers": 0,
"maxPassengers": 8,
"minHolders": 0,
"maxHolders": 8,
"minAdults": 0,
"maxAdults": 8,
"minChildren": 0,
"maxChildren": 8,
"minAccAdults": 0,
"maxAccAdults": 8,
"quoteDate": "2020-12-01",
"startDate": "2020-12-01",
"endDate": "2020-12-01",
"lastValidDate": null
},
{
"code": "AT1",
"description": "1YR DISABLED PERSONS",
"name": {
"display": "1YR DISABLED PERSONS.",
"print": "1YR DISABLED PERSONS."
},
"status": {
"adult": "003",
"child": null
},
"minPassengers": 1,
"maxPassengers": 2,
"minHolders": 1,
"maxHolders": 2,
"minAdults": 1,
"maxAdults": 2,
"minChildren": 0,
"maxChildren": 8,
"minAccAdults": 0,
"maxAccAdults": 0,
"quoteDate": "2020-12-01",
"startDate": "2020-12-01",
"endDate": "2020-12-01",
"lastValidDate": "2020-12-04"
}
]
}
URI parameters
string id (required)
Pattern: ^[A-Z0-9]{3}$
GET /railcard/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"properties": {
"code": {
"$oneOf": [
{
"type": "string",
"pattern": "^[A-Z0-9]{3}$"
},
{
"type": "string",
"pattern": "^$"
}
]
},
"description": {
"type": "string"
},
"name": {
"type": "object",
"properties": {
"display": {
"type": "string"
},
"print": {
"type": "string"
}
}
},
"status": {
"type": "object",
"properties": {
"adult": {
"type": [
"string",
"null"
]
},
"child": {
"type": [
"string",
"null"
]
}
}
},
"minPassengers": {
"type": "integer"
},
"maxPassengers": {
"type": "integer"
},
"minHolders": {
"type": "integer"
},
"maxHolders": {
"type": "integer"
},
"minAdults": {
"type": "integer"
},
"maxAdults": {
"type": "integer"
},
"minChildren": {
"type": "integer"
},
"maxChildren": {
"type": "integer"
},
"minAccAdults": {
"type": "integer"
},
"maxAccAdults": {
"type": "integer"
},
"quoteDate": {
"type": "string"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"lastValidDate": {
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"description",
"name",
"minPassengers",
"maxPassengers",
"minHolders",
"maxHolders",
"minAdults",
"maxAdults",
"minChildren",
"maxChildren",
"minAccAdults",
"maxAccAdults",
"quoteDate",
"startDate",
"endDate",
"lastValidDate"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"code": "AT1",
"description": "1YR DISABLED PERSONS",
"name": {
"display": "1YR DISABLED PERSONS.",
"print": "1YR DISABLED PERSONS."
},
"status": {
"adult": "003",
"child": null
},
"minPassengers": 1,
"maxPassengers": 2,
"minHolders": 1,
"maxHolders": 2,
"minAdults": 1,
"maxAdults": 2,
"minChildren": 0,
"maxChildren": 8,
"minAccAdults": 0,
"maxAccAdults": 0,
"quoteDate": "2020-12-01",
"startDate": "2020-12-01",
"endDate": "2020-12-01",
"lastValidDate": "2020-12-04"
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Railcard ABC was not found"
}
URI parameters
string id (required)
Pattern: ^[0-9]{5}$
GET /route/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"required": [
"name",
"code",
"included",
"excluded",
"lul"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"aaaDescription": {
"type": [
"string",
"null"
]
},
"print": {
"type": "string"
},
"display": {
"type": "string"
}
},
"required": [
"description",
"print",
"display"
]
},
"code": {
"type": "string",
"pattern": "^\\d{5}$"
},
"included": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}$"
}
},
"excluded": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}$"
}
},
"lul": {
"type": "string"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"code": "00000",
"name": {
"description": "ANY PERMITTED",
"aaaDescription": null,
"print": "Valid via any permitted route",
"display": "Travel is allowed via any permitted route."
},
"included": [],
"excluded": [
"/station/0362"
],
"lul": "NNNNNN-000000000000-_"
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Route 12345 was not found"
}
URI parameters
string code (required)
Pattern: ^[\d\w]{3}$
GET /rover-type/{code}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"required": [
"code",
"names"
],
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"pattern": "^[\\d\\w]{3}$"
},
"names": {
"type": "object",
"required": [
"description",
"display"
],
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"display": {
"type": "string"
}
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"code": "14R",
"names": {
"description": "ALL LINE ROVER 14DAY",
"display": "All Line Rover 14 Days"
}
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Rover XXX was not found"
}
GET /station
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "object",
"additionalProperties": false,
"properties": {
"station": {
"type": "string"
},
"location": {
"type": "string"
},
"display": {
"type": "string"
},
"print": {
"type": "string"
}
},
"required": [
"station",
"location",
"display",
"print"
]
},
"code": {
"type": "object",
"additionalProperties": false,
"properties": {
"nlc": {
"oneOf": [
{
"type": "string",
"pattern": "^[0-9A-Z]{4}$",
"example": "5595"
},
{
"type": "null"
}
]
},
"uic": {
"type": [
"string",
"null"
]
},
"crs": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"example": "CLJ"
},
"tiploc": {
"oneOf": [
{
"type": "string",
"pattern": "^[0-9A-Z]+$",
"example": "CLPHMJW"
},
{
"type": "null"
}
]
},
"tiploc_alternatives": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9A-Z]+$",
"example": "CLPHMJW"
}
},
"atco": {
"type": [
"string",
"null"
]
}
},
"required": [
"nlc",
"uic",
"crs",
"tiploc",
"atco"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"facilities": {
"type": "array",
"items": {
"type": "string"
}
},
"groups": {
"oneOf": [
{
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}/groups$"
},
{
"type": "array"
}
]
},
"members": {
"oneOf": [
{
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}$"
},
{
"type": "array"
}
]
},
"londonTerminals": {
"oneOf": [
{
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}/london-terminals$"
},
{
"type": "array"
}
]
},
"isGoldCardLocation": {
"type": "boolean"
},
"lul": {
"type": "string"
},
"zoneNo": {
"type": [
"string",
"null"
]
},
"zoneInd": {
"type": [
"string",
"null"
]
},
"locIdTypes": {
"type": "array",
"items": {
"type": "string"
}
},
"fareGroup": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"code",
"latitude",
"longitude",
"facilities",
"groups",
"members",
"londonTerminals",
"isGoldCardLocation",
"lul",
"locIdTypes",
"fareGroup"
]
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": [
{
"name": {
"station": "LONDON EUSTON",
"location": "LONDON EUSTON",
"display": "London Euston",
"print": "London Euston"
},
"code": {
"nlc": "1444",
"uic": "7014440",
"crs": "EUS",
"tiploc": "EUSTON",
"tiploc_alternatives": [
"EUSTON"
],
"atco": "9100EUSTON"
},
"latitude": 51.528136,
"longitude": -0.133924,
"facilities": [
"TVM"
],
"groups": "/station/1444/groups",
"members": [],
"londonTerminals": "/station/1444/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-169000000000-_-0N006009S0",
"zoneNo": "0027",
"zoneInd": "1 ",
"locIdTypes": [],
"fareGroup": "1072"
},
{
"name": {
"station": "BESCOT STADIUM",
"location": "BESCOT STADIUM",
"display": "Bescot Stadium",
"print": "Bescot Stadium"
},
"code": {
"nlc": "1003",
"uic": "7010030",
"crs": "BSC",
"tiploc": "BSCTSTA",
"tiploc_alternatives": [
"BSCTSTA"
],
"atco": "9100BSCTSTA"
},
"latitude": 52.563093,
"longitude": -1.991105,
"facilities": [
"BO",
"TVM"
],
"groups": "/station/1003/groups",
"members": [
"/station/0011",
"/station/0012"
],
"londonTerminals": "/station/1003/london-terminals",
"isGoldCardLocation": true,
"lul": "NNNNNN-000000000000-_-0N009003S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"O"
],
"fareGroup": "1003"
}
]
}
URI parameters
string id (required)
NLC or CRS
Pattern: ^[0-9A-Z]{3,4}$
GET /station/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "object",
"additionalProperties": false,
"properties": {
"station": {
"type": "string"
},
"location": {
"type": "string"
},
"display": {
"type": "string"
},
"print": {
"type": "string"
}
},
"required": [
"station",
"location",
"display",
"print"
]
},
"code": {
"type": "object",
"additionalProperties": false,
"properties": {
"nlc": {
"oneOf": [
{
"type": "string",
"pattern": "^[0-9A-Z]{4}$",
"example": "5595"
},
{
"type": "null"
}
]
},
"uic": {
"type": [
"string",
"null"
]
},
"crs": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"example": "CLJ"
},
"tiploc": {
"oneOf": [
{
"type": "string",
"pattern": "^[0-9A-Z]+$",
"example": "CLPHMJW"
},
{
"type": "null"
}
]
},
"tiploc_alternatives": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9A-Z]+$",
"example": "CLPHMJW"
}
},
"atco": {
"type": [
"string",
"null"
]
}
},
"required": [
"nlc",
"uic",
"crs",
"tiploc",
"atco"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"facilities": {
"type": "array",
"items": {
"type": "string"
}
},
"groups": {
"oneOf": [
{
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}/groups$"
},
{
"type": "array"
}
]
},
"members": {
"oneOf": [
{
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}$"
},
{
"type": "array"
}
]
},
"londonTerminals": {
"oneOf": [
{
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}/london-terminals$"
},
{
"type": "array"
}
]
},
"isGoldCardLocation": {
"type": "boolean"
},
"lul": {
"type": "string"
},
"zoneNo": {
"type": [
"string",
"null"
]
},
"zoneInd": {
"type": [
"string",
"null"
]
},
"locIdTypes": {
"type": "array",
"items": {
"type": "string"
}
},
"fareGroup": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"code",
"latitude",
"longitude",
"facilities",
"groups",
"members",
"londonTerminals",
"isGoldCardLocation",
"lul",
"locIdTypes",
"fareGroup"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"name": {
"station": "LONDON EUSTON",
"location": "LONDON EUSTON",
"display": "London Euston",
"print": "London Euston"
},
"code": {
"nlc": "1444",
"uic": "7014440",
"crs": "EUS",
"tiploc": "EUSTON",
"tiploc_alternatives": [
"EUSTON"
],
"atco": "9100EUSTON"
},
"latitude": 51.528136,
"longitude": -0.133924,
"facilities": [
"TVM"
],
"groups": "/station/1444/groups",
"members": [
"/station/0011",
"/station/0012"
],
"londonTerminals": "/station/1444/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-169000000000-_-0N006009S0",
"zoneNo": "0027",
"zoneInd": "1 ",
"locIdTypes": [
"S",
"N"
],
"fareGroup": "1072"
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Station 1234 was not found"
}
URI parameters
string id (required)
NLC or CRS
Pattern: ^[0-9A-Z]{3,4}$
GET /station/{id}/london-terminals
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"londonTerminals": {
"type": [
"array",
"object"
]
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"londonTerminals": {
"00000": [
"/station/1444",
"/station/1475",
"/station/3087"
],
"00042": [
"/station/1444"
],
"00081": [
"/station/1444"
],
"00305": [
"/station/1475",
"/station/3087"
]
}
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Station 1234 was not found"
}
URI parameters
string id (required)
NLC or CRS or UIC
Pattern: ^[0-9A-Z]{3,7}$
GET /station/{id}/fulfilment-locations
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "array"
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": [
"633597013A05A4",
"633597600905A4",
"633597012205A4"
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Station 1234 was not found"
}
URI parameters
string id (required)
NLC or CRS
Pattern: ^[0-9A-Z]{3,4}$
GET /station/{id}/groups
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"groups": {
"type": [
"array"
]
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"groups": [
"/station/0032",
"/station/0033",
"/station/0034",
"/station/0035",
"/station/0051",
"/station/0060",
"/station/0064",
"/station/0065",
"/station/0785",
"/station/0786",
"/station/0790",
"/station/0791",
"/station/0792",
"/station/1072",
"/station/H107",
"/station/K269"
]
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Station 1234 was not found"
}
URI parameters
string id (required)
NLC or CRS
Pattern: ^[0-9A-Z]{3,4}$
string secondId (required)
NLC or CRS
Pattern: ^[0-9A-Z]{3,4}$
string route (required)
Pattern: ^[0-9]{5}$
GET /station/{id}/permitted-stations/{secondId}/{route}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"members": {
"type": [
"array"
]
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"members": [
"/station/0032",
"/station/0033",
"/station/0034"
]
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Station 1234 was not found"
}
URI parameters
string id (required)
Pattern: ^[0-9A-Z]{3}$
GET /supplement-type/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"required": [
"code",
"type",
"capriCode",
"description",
"shortDescription",
"price",
"minGroup",
"maxGroup",
"class",
"isSeparateTicket",
"sundryCode",
"packageDirections"
],
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"pattern": "^[A-Z0-9]{3}$"
},
"type": [],
"capriCode": {
"type": [
"string",
"null"
]
},
"description": {
"type": "string"
},
"shortDescription": {
"type": "string"
},
"price": {
"type": "integer"
},
"minGroup": {
"type": "integer"
},
"maxGroup": {
"type": "integer"
},
"class": {
"type": [
"integer",
"null"
]
},
"isSeparateTicket": {
"type": "boolean"
},
"sundryCode": {
"type": [
"integer",
"null"
]
},
"packageDirections": {
"type": [
"object",
"array"
]
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"code": "BIK",
"type": "EXA",
"capriCode": "ZAX",
"description": "BICYCLE RESERVATION",
"shortDescription": "CYCLE RES",
"price": 500,
"minGroup": 1,
"maxGroup": 1,
"class": 1,
"isSeparateTicket": true,
"sundryCode": 96094,
"packageDirections": {
"1SA": "E",
"1SB": "O"
}
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string code (required)
Pattern: ^[A-Z0-9]{3}$
GET /ticket-type/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"properties": {
"name": {
"type": "object",
"properties": {
"display": {
"type": "string"
},
"print": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"ccstFormat": {
"type": "string"
},
"code": {
"type": "string",
"pattern": "^[A-Z0-9]{3}$"
},
"isReturn": {
"type": "boolean"
},
"isSeason": {
"type": "boolean"
},
"isAdvance": {
"type": "boolean"
},
"isPackage": {
"type": "boolean"
},
"isCarnet": {
"type": "boolean"
},
"isFirstClass": {
"type": "boolean"
},
"reservationType": {
"type": "string",
"enum": [
"N",
"B",
"O",
"R",
"E"
],
"description": "N = 'no' ; O = 'reservation required on outward journey' ; R = 'reservation required on inward journey ; B = 'reservation required on both outward and return journey' ; E = 'reservation required either outward or return journey'"
},
"validity": {
"type": "string",
"pattern": "^/validity\\-type/[0-9A-Z]{2}$"
},
"minPassengers": {
"type": "integer"
},
"maxPassengers": {
"type": "integer"
},
"minAdults": {
"type": "integer"
},
"maxAdults": {
"type": "integer"
},
"minChildren": {
"type": "integer"
},
"maxChildren": {
"type": "integer"
},
"utsCode": {
"type": "integer"
},
"timeRestriction": {
"type": "integer",
"minimum": 0,
"maximum": 3
},
"capriCode": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"canBeRetailed": {
"type": "boolean"
},
"ticketCategory": {
"type": [
"string",
"null"
]
},
"reservationSupplement": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"code",
"utsCode",
"timeRestriction",
"capriCode",
"canBeRetailed",
"ticketCategory"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"name": {
"display": "Standard Open Single",
"print": "standard open single",
"description": "ANYTIME S"
},
"ccstFormat": "X01",
"code": "SOS",
"isReturn": false,
"isSeason": true,
"isAdvance": false,
"isPackage": true,
"isCarnet": false,
"isFirstClass": false,
"reservationType": "B",
"validity": "/validity-type/AA",
"minPassengers": 1,
"maxPassengers": 1,
"minAdults": 1,
"maxAdults": 1,
"minChildren": 0,
"maxChildren": 0,
"utsCode": 99,
"timeRestriction": 0,
"capriCode": "UAB",
"canBeRetailed": true,
"ticketCategory": "advance",
"reservationSupplement": "CAX"
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Ticket ABC was not found"
}
URI parameters
string id (required)
Pattern: ^[A-Z0-9]{2}$
GET /validity-type/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"additionalProperties": false,
"required": [
"code",
"outward",
"return",
"returnMustBeAfter"
],
"properties": {
"code": {
"type": "string",
"pattern": "^[A-Z0-9]{2}$"
},
"outward": {
"type": "object",
"additionalProperties": false,
"required": [
"days",
"months",
"break",
"description"
],
"properties": {
"days": {
"type": "integer"
},
"months": {
"type": "integer"
},
"break": {
"type": "boolean"
},
"description": {
"type": "string"
}
}
},
"return": {
"type": "object",
"additionalProperties": false,
"required": [
"days",
"months",
"break",
"description"
],
"properties": {
"days": {
"type": "integer"
},
"months": {
"type": "integer"
},
"break": {
"type": "boolean"
},
"description": {
"type": "string"
}
}
},
"returnMustBeAfter": {
"type": "object",
"additionalProperties": false,
"required": [
"days",
"months",
"dayOfWeek"
],
"properties": {
"days": {
"type": "integer"
},
"months": {
"type": "integer"
},
"dayOfWeek": {
"type": [
"string",
"null"
]
}
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"code": "3E",
"outward": {
"days": 5,
"months": 0,
"break": true,
"description": "FIVE DAYS"
},
"return": {
"days": 0,
"months": 1,
"break": false,
"description": "ONE MONTH"
},
"returnMustBeAfter": {
"days": 1,
"months": 0,
"dayOfWeek": "Tuesday"
}
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Ticket Validity AA was not found"
}
URI parameters
string code (required)
Pattern: ^[A-Z\\*]{2}$
GET /toc/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"required": [
"code",
"name",
"description",
"active"
],
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"pattern": "^[A-Z\\*]{2}$"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"active": {
"type": "boolean"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"code": "AW",
"name": "Transport For Wales Rail",
"description": "Transport for Wales",
"active": true
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Toc AA was not found"
}
Accepts two formats, late/123 and late/123/at/TIPLOC.
GET /darwin-reason/{data}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"text"
],
"properties": {
"type": {
"type": "string",
"enum": [
"cancel",
"late"
]
},
"code": {
"type": "string"
},
"range": {
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"enum": [
"at",
"near"
]
}
]
},
"station": {
"oneOf": [
{
"type": "null"
},
{
"type": "string",
"pattern": "^/station/[0-9A-Z]{4}$"
}
]
},
"text": {
"type": "string"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"type": "late",
"code": "100",
"range": "at",
"station": "/station/3813",
"text": "This train has been delayed by a broken down train"
},
"links": {
"/station/3813": []
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string code (required)
Pattern: ^[0-9A-Za-z]{3}$
GET /restriction/{code}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"required": [
"restrictionHeader",
"restrictionRailcard",
"restrictionTime",
"restrictionTimeDate",
"restrictionTimeToc",
"restrictionTrain",
"restrictionTrainDate",
"restrictionTrainQuota"
],
"additionalProperties": false,
"properties": {
"restrictionHeader": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"description",
"descOut",
"descRtn",
"typeOut",
"typeRtn",
"changeInd"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"description": {
"type": "string"
},
"descOut": {
"type": "string"
},
"descRtn": {
"type": "string"
},
"typeOut": {
"type": "string"
},
"typeRtn": {
"type": "string"
},
"changeInd": {
"type": "string"
}
}
}
]
}
},
"restrictionRailcard": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"railcardCode",
"restrictionSequence",
"ticketCode",
"routeCode",
"locationCrs",
"totalBan",
"startDate",
"endDate"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"railcardCode": {
"type": "string"
},
"restrictionSequence": {
"type": "string"
},
"ticketCode": {
"type": "string"
},
"routeCode": {
"type": "string"
},
"locationCrs": {
"type": "string"
},
"totalBan": {
"type": "integer"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
}
}
}
]
}
},
"restrictionTime": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"sequenceNo",
"outRet",
"timeFrom",
"timeTo",
"arrDepVia",
"location",
"rstrType",
"trainType",
"minFareFlag",
"startDate",
"endDate"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"sequenceNo": {
"type": "string"
},
"outRet": {
"type": "string"
},
"timeFrom": {
"type": "string"
},
"timeTo": {
"type": "string"
},
"arrDepVia": {
"type": "string"
},
"location": {
"type": "string"
},
"rstrType": {
"type": "string"
},
"trainType": {
"type": "string"
},
"minFareFlag": {
"type": "string"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
}
}
}
]
}
},
"restrictionTimeDate": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"sequenceNo",
"outRet",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday",
"startDate",
"endDate"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"sequenceNo": {
"type": "string"
},
"outRet": {
"type": "string"
},
"monday": {
"type": "integer"
},
"tuesday": {
"type": "integer"
},
"wednesday": {
"type": "integer"
},
"thursday": {
"type": "integer"
},
"friday": {
"type": "integer"
},
"saturday": {
"type": "integer"
},
"sunday": {
"type": "integer"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
}
}
}
]
}
},
"restrictionTimeToc": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"sequenceNo",
"outRet",
"tocCode"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"sequenceNo": {
"type": "string"
},
"outRet": {
"type": "string"
},
"tocCode": {
"type": "string"
}
}
}
]
}
},
"restrictionTrain": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"trainNo",
"outRet",
"location",
"quotaInd",
"arrDep",
"sleeperInd",
"startDate",
"endDate"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"trainNo": {
"type": "string"
},
"outRet": {
"type": "string"
},
"location": {
"type": [
"string",
"null"
]
},
"quotaInd": {
"type": "string"
},
"arrDep": {
"type": [
"string",
"null"
]
},
"sleeperInd": {
"type": "string"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
}
}
}
]
}
},
"restrictionTrainDate": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"trainNo",
"outRet",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday",
"startDate",
"endDate"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"trainNo": {
"type": "string"
},
"outRet": {
"type": "string"
},
"monday": {
"type": "integer"
},
"tuesday": {
"type": "integer"
},
"wednesday": {
"type": "integer"
},
"thursday": {
"type": "integer"
},
"friday": {
"type": "integer"
},
"saturday": {
"type": "integer"
},
"sunday": {
"type": "integer"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
}
}
}
]
}
},
"restrictionTrainQuota": {
"type": "array",
"items": {
"allOf": [
{
"required": [
"timeMarker",
"restrictionCode",
"trainNo",
"outRet",
"location",
"quotaInd",
"arrDep",
"sleeperInd",
"startDate",
"endDate"
],
"additionalProperties": false,
"properties": {
"timeMarker": {
"type": "string"
},
"restrictionCode": {
"type": "string"
},
"trainNo": {
"type": "string"
},
"outRet": {
"type": "string"
},
"location": {
"type": "string"
},
"quotaInd": {
"type": "string"
},
"arrDep": {
"type": "string"
},
"sleeperInd": {
"type": [
"string",
"null"
]
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
}
}
}
]
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"restrictionHeader": [
{
"timeMarker": "C",
"restrictionCode": "1D",
"description": "IEC OFF-PEAK",
"descOut": "NOT VALID ARRIVING INTO LONDON BEFORE 1008 M-F",
"descRtn": "NOT VALID FROM LONDON 0645-0759 M-F&1559-1745 M-TH",
"typeOut": "P",
"typeRtn": "N",
"changeInd": "1"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"description": "IEC OFF-PEAK",
"descOut": "NOT VALID ARRIVING INTO LONDON BEFORE 1008 M-F",
"descRtn": "NOT VALID FROM LONDON 0645-0759 M-F&1559-1745 M-TH",
"typeOut": "P",
"typeRtn": "N",
"changeInd": "1"
}
],
"restrictionRailcard": [
{
"timeMarker": "C",
"restrictionCode": "BU",
"railcardCode": "BUD",
"restrictionSequence": "0001",
"ticketCode": "",
"routeCode": "",
"locationCrs": " ",
"totalBan": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "F",
"restrictionCode": "BU",
"railcardCode": "BUD",
"restrictionSequence": "0001",
"ticketCode": "",
"routeCode": "",
"locationCrs": " ",
"totalBan": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
}
],
"restrictionTime": [
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "D",
"location": "",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "D",
"location": "",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0002",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "ZFD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0002",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "ZFD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "O",
"timeFrom": "00:06:39",
"timeTo": "00:10:47",
"arrDepVia": "A",
"location": "MKC",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "ZFD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0004",
"outRet": "O",
"timeFrom": "00:06:44",
"timeTo": "00:10:44",
"arrDepVia": "A",
"location": "WFJ",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0004",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:50",
"arrDepVia": "D",
"location": "MKC",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"timeFrom": "00:07:20",
"timeTo": "00:11:29",
"arrDepVia": "A",
"location": "EUS",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:37",
"arrDepVia": "D",
"location": "WFJ",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0006",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "A",
"location": "BDM",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0006",
"outRet": "R",
"timeFrom": "00:14:39",
"timeTo": "00:18:37",
"arrDepVia": "D",
"location": "WFJ",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0007",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:03",
"arrDepVia": "A",
"location": "LUT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0007",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:25",
"arrDepVia": "D",
"location": "EUS",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0008",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:02",
"arrDepVia": "A",
"location": "STP",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0008",
"outRet": "R",
"timeFrom": "00:15:01",
"timeTo": "00:18:44",
"arrDepVia": "D",
"location": "EUS",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0009",
"outRet": "O",
"timeFrom": "00:01:00",
"timeTo": "00:10:04",
"arrDepVia": "A",
"location": "PAD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0009",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:00",
"arrDepVia": "D",
"location": "BDM",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0010",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:08:56",
"arrDepVia": "D",
"location": "BTH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0010",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:00",
"arrDepVia": "D",
"location": "LUT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0011",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:03",
"arrDepVia": "A",
"location": "LTN",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0011",
"outRet": "R",
"timeFrom": "00:16:30",
"timeTo": "00:18:58",
"arrDepVia": "D",
"location": "LUT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0012",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "BFR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0012",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:46",
"arrDepVia": "D",
"location": "STP",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0013",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "CTK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0013",
"outRet": "R",
"timeFrom": "00:16:35",
"timeTo": "00:18:46",
"arrDepVia": "D",
"location": "STP",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0014",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "LBG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0014",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:56",
"arrDepVia": "D",
"location": "BTH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0015",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "EPH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0015",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:00",
"arrDepVia": "D",
"location": "LTN",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0016",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:02",
"arrDepVia": "A",
"location": "ECR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0016",
"outRet": "R",
"timeFrom": "00:16:30",
"timeTo": "00:18:58",
"arrDepVia": "D",
"location": "LTN",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0017",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:02",
"arrDepVia": "A",
"location": "NWD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0017",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "BFR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "HHY",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "BFR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"timeFrom": "00:04:00",
"timeTo": "00:09:56",
"arrDepVia": "A",
"location": "SVG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "CTK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "FPK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "CTK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "KGX",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "LBG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:09:59",
"arrDepVia": "A",
"location": "LST",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "LBG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0023",
"outRet": "O",
"timeFrom": "00:04:00",
"timeTo": "00:07:20",
"arrDepVia": "D",
"location": "TTF",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0023",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "EPH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0024",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "EPH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0025",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:46",
"arrDepVia": "D",
"location": "ECR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0026",
"outRet": "R",
"timeFrom": "00:16:35",
"timeTo": "00:18:46",
"arrDepVia": "D",
"location": "ECR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0027",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:46",
"arrDepVia": "D",
"location": "NWD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0028",
"outRet": "R",
"timeFrom": "00:16:35",
"timeTo": "00:18:46",
"arrDepVia": "D",
"location": "NWD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0029",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "HHY",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0030",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "HHY",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0031",
"outRet": "R",
"timeFrom": "00:06:25",
"timeTo": "00:08:16",
"arrDepVia": "D",
"location": "HIT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0032",
"outRet": "R",
"timeFrom": "00:15:52",
"timeTo": "00:17:32",
"arrDepVia": "D",
"location": "HIT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"timeFrom": "00:07:15",
"timeTo": "00:08:14",
"arrDepVia": "D",
"location": "SVG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"timeFrom": "00:16:18",
"timeTo": "00:17:57",
"arrDepVia": "D",
"location": "SVG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0035",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "FPK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0036",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "FPK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "KGX",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "KGX",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0039",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "D",
"location": "LST",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0040",
"outRet": "R",
"timeFrom": "00:16:30",
"timeTo": "00:18:58",
"arrDepVia": "D",
"location": "LST",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "D",
"location": "",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "D",
"location": "",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0002",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "ZFD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0002",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "ZFD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "O",
"timeFrom": "00:06:39",
"timeTo": "00:10:47",
"arrDepVia": "A",
"location": "MKC",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "ZFD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0004",
"outRet": "O",
"timeFrom": "00:06:44",
"timeTo": "00:10:44",
"arrDepVia": "A",
"location": "WFJ",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0004",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:50",
"arrDepVia": "D",
"location": "MKC",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"timeFrom": "00:07:20",
"timeTo": "00:11:29",
"arrDepVia": "A",
"location": "EUS",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:37",
"arrDepVia": "D",
"location": "WFJ",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0006",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "A",
"location": "BDM",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0006",
"outRet": "R",
"timeFrom": "00:14:39",
"timeTo": "00:18:37",
"arrDepVia": "D",
"location": "WFJ",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0007",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:03",
"arrDepVia": "A",
"location": "LUT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0007",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:25",
"arrDepVia": "D",
"location": "EUS",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0008",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:02",
"arrDepVia": "A",
"location": "STP",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0008",
"outRet": "R",
"timeFrom": "00:15:01",
"timeTo": "00:18:44",
"arrDepVia": "D",
"location": "EUS",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0009",
"outRet": "O",
"timeFrom": "00:01:00",
"timeTo": "00:10:04",
"arrDepVia": "A",
"location": "PAD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0009",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:00",
"arrDepVia": "D",
"location": "BDM",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0010",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:08:56",
"arrDepVia": "D",
"location": "BTH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0010",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:00",
"arrDepVia": "D",
"location": "LUT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0011",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:03",
"arrDepVia": "A",
"location": "LTN",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0011",
"outRet": "R",
"timeFrom": "00:16:30",
"timeTo": "00:18:58",
"arrDepVia": "D",
"location": "LUT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0012",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "BFR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0012",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:46",
"arrDepVia": "D",
"location": "STP",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0013",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "CTK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0013",
"outRet": "R",
"timeFrom": "00:16:35",
"timeTo": "00:18:46",
"arrDepVia": "D",
"location": "STP",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0014",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "LBG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0014",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:56",
"arrDepVia": "D",
"location": "BTH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0015",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "EPH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0015",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:00",
"arrDepVia": "D",
"location": "LTN",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0016",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:02",
"arrDepVia": "A",
"location": "ECR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0016",
"outRet": "R",
"timeFrom": "00:16:30",
"timeTo": "00:18:58",
"arrDepVia": "D",
"location": "LTN",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0017",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:02",
"arrDepVia": "A",
"location": "NWD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0017",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "BFR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "HHY",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "BFR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"timeFrom": "00:04:00",
"timeTo": "00:09:56",
"arrDepVia": "A",
"location": "SVG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "CTK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "FPK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "CTK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:10:07",
"arrDepVia": "A",
"location": "KGX",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "LBG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "O",
"timeFrom": "00:04:30",
"timeTo": "00:09:59",
"arrDepVia": "A",
"location": "LST",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "LBG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0023",
"outRet": "O",
"timeFrom": "00:04:00",
"timeTo": "00:07:20",
"arrDepVia": "D",
"location": "TTF",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0023",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "EPH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0024",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "EPH",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0025",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:46",
"arrDepVia": "D",
"location": "ECR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0026",
"outRet": "R",
"timeFrom": "00:16:35",
"timeTo": "00:18:46",
"arrDepVia": "D",
"location": "ECR",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0027",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:08:46",
"arrDepVia": "D",
"location": "NWD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0028",
"outRet": "R",
"timeFrom": "00:16:35",
"timeTo": "00:18:46",
"arrDepVia": "D",
"location": "NWD",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0029",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "HHY",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0030",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "HHY",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0031",
"outRet": "R",
"timeFrom": "00:06:25",
"timeTo": "00:08:16",
"arrDepVia": "D",
"location": "HIT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0032",
"outRet": "R",
"timeFrom": "00:15:52",
"timeTo": "00:17:32",
"arrDepVia": "D",
"location": "HIT",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"timeFrom": "00:07:15",
"timeTo": "00:08:14",
"arrDepVia": "D",
"location": "SVG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"timeFrom": "00:16:18",
"timeTo": "00:17:57",
"arrDepVia": "D",
"location": "SVG",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0035",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "FPK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0036",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "FPK",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"timeFrom": "00:06:45",
"timeTo": "00:07:58",
"arrDepVia": "D",
"location": "KGX",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"timeFrom": "00:15:58",
"timeTo": "00:17:45",
"arrDepVia": "D",
"location": "KGX",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0039",
"outRet": "R",
"timeFrom": "00:04:30",
"timeTo": "00:09:29",
"arrDepVia": "D",
"location": "LST",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0040",
"outRet": "R",
"timeFrom": "00:16:30",
"timeTo": "00:18:58",
"arrDepVia": "D",
"location": "LST",
"rstrType": "T",
"trainType": "A",
"minFareFlag": "0",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
}
],
"restrictionTimeDate": [
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0003",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0018",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0020",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0022",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0024",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0024",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0024",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0024",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0024",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0030",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0030",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0030",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0030",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0030",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0036",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0036",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0036",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0036",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0036",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0019",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0021",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0033",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0034",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0037",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0038",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 0,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
}
],
"restrictionTimeToc": [
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "O",
"tocCode": "XC"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "R",
"tocCode": "XC"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "CS"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "LM"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "LO"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "SR"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "VT"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "O",
"tocCode": "XC"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0001",
"outRet": "R",
"tocCode": "XC"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "CS"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "LM"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "LO"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "SR"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"sequenceNo": "0005",
"outRet": "O",
"tocCode": "VT"
}
],
"restrictionTrain": [
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C76152",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C77350",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C77559",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78532",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78534",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78535",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78536",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78538",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78539",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78543",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78544",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78545",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78546",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78548",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78549",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78550",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78552",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "1D",
"trainNo": "C78553",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "C11125",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "C11147",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "C11369",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61049",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61050",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61051",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61054",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61055",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61056",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61062",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61063",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61064",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61067",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61068",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61069",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61072",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61073",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "1D",
"trainNo": "G61074",
"outRet": "O",
"location": null,
"quotaInd": "N",
"arrDep": null,
"sleeperInd": "N",
"startDate": "2019-01-02",
"endDate": "2999-12-31"
}
],
"restrictionTrainDate": [
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "C",
"restrictionCode": "GZ",
"trainNo": "Y81206",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71881",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y71900",
"outRet": "R",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
},
{
"timeMarker": "F",
"restrictionCode": "GZ",
"trainNo": "Y81201",
"outRet": "O",
"monday": 1,
"tuesday": 1,
"wednesday": 1,
"thursday": 1,
"friday": 1,
"saturday": 0,
"sunday": 0,
"startDate": "2019-01-02",
"endDate": "2999-12-31"
}
],
"restrictionTrainQuota": [
{
"timeMarker": "C",
"restrictionCode": "1A",
"trainNo": "L80549",
"outRet": "R",
"location": "BTP",
"quotaInd": "",
"arrDep": "A",
"sleeperInd": null,
"startDate": "2018-09-02",
"endDate": "2019-01-01"
}
]
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Restriction 123 was not found"
}
GET /ticket-categories
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"anytime": {
"type": "array"
},
"off-peak": {
"type": "array"
},
"advance": {
"type": "array"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"anytime": [
"MCA"
],
"off-peak": [
"TKR",
"YFR"
],
"advance": [
"WC1",
"WCC",
"XS8"
]
},
"links": []
}
GET /sleeper-tickets
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"additionalProperties": true
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"1D0": {
"min": 1,
"max": 5
},
"2D0": {
"min": 1,
"max": 1
},
"SSR": {
"min": 2,
"max": 2
}
},
"links": []
}
URI parameters
string originNlc (required)
Pattern: ^[[:alnum:]]{3,4}$
string destinationNlc (required)
Pattern: ^[[:alnum:]]{3,4}$
string routeCode (required)
Pattern: ^\d{5}$
string ticketCode (required)
Pattern: ^[A-Z0-9]{3}$
string date (required)
Pattern: ^\d{4}-\d{2}-\d{2}$
GET /product-type/search/{originNlc}/{destinationNlc}/{routeCode}/{ticketCode}/{date}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"iin": {
"type": "string"
},
"oid": {
"type": "string"
},
"typ": {
"type": "integer"
},
"ptyp": {
"type": "integer"
}
},
"required": [
"id",
"iin",
"oid",
"typ",
"ptyp"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"id": "05EO",
"iin": "633597",
"oid": "0246",
"typ": 23,
"ptyp": 1
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Did not find any products with given criteria"
}
GET /reservation-supplement-finder
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"data"
]
}
]
}
]
}
Response example (show)
{
"status": "success",
"data": "/supplement-type/CAX",
"links": {
"/supplement-type/CAX": {
"code": "CAX",
"type": "SLE",
"capriCode": "ZMW",
"description": "CLSC RESERVATION",
"shortDescription": "CLSC RESVTN ",
"price": 0,
"minGroup": 2,
"maxGroup": 6,
"class": 2,
"isSeparateTicket": true,
"sundryCode": null,
"packageDirections": []
}
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array",
"string"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Resolved URIs from 'data' section ",
"type": [
"array",
"object"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Journey Planning
This API has its own page: Journey Planning.
This API is documented at https://docs.assertis.co.uk/journey-planning.html.
Journey Planning Reference Data
This API has its own page: Journey Planning Reference Data.
This API is documented at https://docs.assertis.co.uk/journey-planning-reference-data.html.
Orders
Orders in the AWT are a heavily nested data structure with many sub-elements. Until an order has sufficient payment records it is considered an incomplete basket with an expiry date set by the server. When enough payment records have been added to cover the cost of the items the order sold callback will be triggered and the order will be sent for fulfilment. At present only one fulfilment method is allowed per order.
The items in an order can either be a trip or a sundry. A trip is analogous to a basket item whereas a sundry is an additional item, such as a delivery fee or card fee.
POST /order
Create an order. This endpoint will return an API token that will be needed for future modification of the order. It can create also change of journey order.
Request schema (show)
{
"type": "object",
"properties": {
"items": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"outward": {
"description": "for outward fare option",
"type": "object",
"required": [
"journey",
"reservationPreferences"
],
"additionalProperties": false,
"properties": {
"journey": {
"type": "string",
"pattern": "^/odyssey/journey/.+$"
},
"reservationRequested": {
"type": "boolean"
},
"reservationPreferences": {
"type": "array",
"items": {
"enum": [
"AISL",
"WIND",
"AIRL",
"TABL",
"FACE",
"BACK",
"QUIE"
]
}
}
}
},
"inward": {
"description": "for inward (in case of 2 singles or return ticket) ticket",
"type": "object",
"required": [
"journey",
"reservationPreferences"
],
"additionalProperties": false,
"properties": {
"journey": {
"type": "string",
"pattern": "^/odyssey/journey/.+$"
},
"reservationRequested": {
"type": "boolean"
},
"reservationPreferences": {
"type": "array",
"items": {
"enum": [
"AISL",
"WIND",
"AIRL",
"TABL",
"FACE",
"BACK",
"QUIE"
]
}
}
}
},
"fares": {
"type": "object",
"properties": {
"outwardSingle": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"inwardSingle": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"return": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"carnet": {
"fareOption": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"validFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"travelcard": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
}
},
"additionalProperties": false
},
"addons": {
"type": "object",
"properties": {
"outward": {
"origin": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
}
},
"inward": {
"origin": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
}
}
}
}
},
"additionalProperties": false
}
},
{
"type": "object",
"properties": {
"outward": {
"description": "for outward fare option",
"type": "object",
"required": [
"journey",
"reservationPreferences"
],
"additionalProperties": false,
"properties": {
"journey": {
"type": "string",
"pattern": "^/odyssey/journey/.+$"
},
"reservationRequested": {
"type": "boolean"
},
"reservationPreferences": {
"type": "array",
"items": {
"enum": [
"AISL",
"WIND",
"AIRL",
"TABL",
"FACE",
"BACK",
"QUIE"
]
}
}
}
},
"inward": {
"description": "for inward (in case of 2 singles or return ticket) ticket",
"type": "object",
"required": [
"journey",
"reservationPreferences"
],
"additionalProperties": false,
"properties": {
"journey": {
"type": "string",
"pattern": "^/odyssey/journey/.+$"
},
"reservationRequested": {
"type": "boolean"
},
"reservationPreferences": {
"type": "array",
"items": {
"enum": [
"AISL",
"WIND",
"AIRL",
"TABL",
"FACE",
"BACK",
"QUIE"
]
}
}
}
},
"fares": {
"type": "object",
"properties": {
"outwardSingle": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"inwardSingle": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"return": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"carnet": {
"fareOption": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
},
"validFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"travelcard": {
"type": "string",
"pattern": "^/odyssey/fare-option/.+$"
}
},
"additionalProperties": false
},
"addons": {
"type": "object",
"properties": {
"outward": {
"origin": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
}
},
"inward": {
"origin": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/odyssey/fare-option/addon/.+$"
}
}
}
}
}
},
"additionalProperties": false
}
]
},
"referrer": {
"type": "string"
},
"campaign": {
"type": "string"
},
"links": {
"type": [
"array",
"object"
]
},
"originalTickets": {
"type": "string"
}
},
"required": [
"items"
],
"additionalProperties": false
}
Request example (show)
{
"items": {
"fares": {
"outwardSingle": "/odyssey/fare-option/161:/fare/8649-1444-00345-2S8-000-1-U6--161-1-0--2-0"
},
"outward": {
"reservationPreferences": [],
"journey": "/odyssey/journey/161:161:INV_EUS_C83856"
}
}
}
201 application/json
Response headers
string Location (required)
Response schema (show)
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"$schema": "http://json-schema.org/schema",
"allOf": [
{
"$ref": "../Shared/ResponseWithData.jschema"
},
{
"properties": {
"data": {
"properties": {
"uri": {
"$ref": "../Shared/Types.jschema#/definitions/PassengerAssistURI"
}
},
"required": [
"uri"
],
"additionalProperties": false
}
}
}
]
}
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
424 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /order/{id}
Return an order and the products and payments inside the order.
Parameters
string include
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"tenant": {
"type": "string",
"pattern": "^[a-z]+$"
},
"state": {
"description": "Order state",
"type": "string",
"enum": [
"Held",
"Sold",
"Fulfilled",
"Cancelled",
"Non Issued"
]
},
"owner": {
"type": [
"string",
"null"
]
},
"retailer": {
"type": "string",
"pattern": "^[0-9]{4}$"
},
"purchased": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"created": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"updated": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"channel": {
"type": "string"
},
"referrer": {
"type": [
"string",
"null"
]
},
"campaign": {
"type": [
"string",
"null"
]
},
"originalOrder": {
"type": [
"string",
"null"
]
},
"travelReason": {
"type": [
"string",
"null"
]
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"pattern": "^/trip/[0-9]+$"
},
{
"type": "string",
"pattern": "^/sundry/[0-9]+$"
}
]
}
},
"payments": {
"description": "URLs for direct payment entities",
"type": "array",
"items": {
"type": "string",
"pattern": "^/(st-card|warrant|card)-payment|paypal|account-warrant/[0-9]+$"
}
},
"orderPayments": {
"description": "URLs for internal OrderService payment entities",
"type": "array",
"items": {
"type": "string",
"pattern": "^/(st-card|warrant|card)-payment|paypal|account-warrant/[0-9]+$"
}
},
"customer": {
"type": "string",
"pattern": "^/customer/[0-9]+$"
},
"delivery": {
"type": [
"object",
"null"
],
"properties": {
"type": {
"type": "string",
"pattern": "^/delivery/.+$"
},
"sundry": {
"oneOf": [
{
"type": "string",
"pattern": "^/sundry/[0-9]+$"
},
{
"type": "null"
}
]
},
"fulfilmentMethod": {
"type": "number"
},
"collectionReference": {
"oneOf": [
{
"type": "string",
"pattern": "^[0-9A-Z]{8}$"
},
{
"type": "null"
}
]
},
"smartcardUri": {
"oneOf": [
{
"type": "string",
"pattern": "^/(smartcards|external-smartcards|temporary-smartcards)/[A-Z0-9]+$"
},
{
"type": "null"
}
]
},
"address": {
"oneOf": [
{
"type": "string",
"pattern": "^/address/[0-9]+$"
},
{
"type": "null"
}
]
},
"tracking": {
"description": "Royal Mail tracking for a tracked CCST postal delivery (RMR1S, RMS05, RMS25); null otherwise",
"oneOf": [
{
"type": "object",
"properties": {
"number": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"deliveryMethodCode": {
"type": "string",
"enum": [
"RMR1S",
"RMS05",
"RMS25"
]
}
},
"required": [
"number",
"url",
"deliveryMethodCode"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
}
},
"fulfilment": {
"type": "string",
"pattern": "^/order/[0-9]+/fulfilment$"
},
"totalPrice": {
"description": "An amount of GBP pence",
"type": "integer"
},
"totalLeftToPay": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"changeoverExtraPence": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"priceIncrease": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"priceCoveredByOriginalTickets": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"priceOfOriginalTickets": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"cojEvents": {
"type": "array",
"items": {
"type": "string"
},
"description": "An amount of GBP pence"
},
"hash": {
"type": "string"
}
},
"required": [
"tenant",
"retailer",
"purchased"
],
"additionalProperties": false
},
"links": {
"type": [
"object",
"array"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"tenant": "company",
"state": "Fulfilled",
"owner": "/user/123",
"retailer": "1234",
"purchased": "2023-10-30T07:43:38+00:00",
"created": "2023-10-30T07:43:30+00:00",
"updated": "2023-10-30T07:43:38+00:00",
"channel": "WEB",
"referrer": "",
"campaign": "",
"travelReason": null,
"originalOrder": null,
"fulfilment": "/order/12/fulfilment",
"items": [
"/trip/123",
"/trip/124",
"/sundry/123",
"/sundry/124"
],
"payments": [
"/st-card-payment/123",
"/warrant/123456"
],
"orderPayments": [
"/card-payment/234",
"/warrant-payment/456"
],
"hash": "0046511fa7c78f066a01250e5c44794fc9d6d000",
"totalPrice": 5432,
"totalLeftToPay": 0,
"delivery": {
"type": "/delivery/e-ticket",
"sundry": null,
"fulfilmentMethod": 6,
"collectionReference": null,
"collectionPoint": null,
"smartcardUri": null,
"address": "/address/12345",
"tracking": null
}
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
PUT /order/{id}
Reclaim order as logged in user.
Headers
string X-Token-Data (required)
Request schema (show)
{
"type": "any"
}
200 application/json
Response schema (show)
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"$schema": "http://json-schema.org/schema",
"allOf": [
{
"$ref": "../Shared/ResponseWithData.jschema"
},
{
"properties": {
"data": {
"properties": {
"uri": {
"$ref": "../Shared/Types.jschema#/definitions/PassengerAssistURI"
}
},
"required": [
"uri"
],
"additionalProperties": false
}
}
}
]
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
DELETE /order/{id}
Deletes an order and all its trips. Uses distributed locking to prevent concurrent deletes.
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
202 application/json
Response headers
string Location (required)
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
},
{
"required": [
"invalidFields"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
GET /order/{id}/state
Return the state of the order.
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"state": {
"description": "Order state",
"type": "string",
"enum": [
"Held",
"Sold",
"Fulfilled",
"Cancelled",
"Non Issued"
]
}
},
"required": [
"state"
],
"additionalProperties": false
},
"links": {
"type": [
"object",
"array"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"state": "Fulfilled"
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
POST /order/{id}/confirmation
Re-send order confirmation email
Headers
string X-Token-Data (required)
Request schema (show)
{
"type": "array",
"additionalProperties": false
}
200 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
POST /order/{id}/travel-reason
Add travel reason to existing order
Request schema (show)
{
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "A travel reason of the customer. Can be any string"
}
},
"required": [
"reason"
],
"additionalProperties": false
}
Request example (show)
{
"reason": "Ditching"
}
200 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
POST /order/{id}/cost-centres
Add cost centres to existing not yet sold order
Request schema (show)
{
"type": "object",
"properties": {
"costCentres": {
"type": "string"
}
},
"required": [
"costCentres"
],
"additionalProperties": false
}
Request example (show)
{
"costCentres": "Cost centre 1, Cost centre 2"
}
200 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
GET /order/{id}/payments
Returns payment URIs for the order and any associated CoJ original orders, keyed by order ID.
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"type": "object",
"description": "Map of order ID to array of payment URIs. Includes the requested order and any CoJ original orders.",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"description": "URI of a payment record (e.g. /card-payment/1)"
}
}
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": {
"123": [
"/card-payment/1",
"/warrant-payment/2"
]
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
DELETE /order/{id}/trip/{tripId}
Delete trip from existing order. Cancel all trip reservations. If order was already paid for or delivery type was set, trip won't be removed.
200 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
POST /order/{id}/reservation
Reserve seats on a Held order, per trip and direction (MF-2050). For each trip and direction every reservable leg without a seat is reserved, for every passenger. The direction's existing reservation-service booking gains the seats (add-legs); a direction without one gets a new booking. Best effort per item: results[].status is reserved, nothingtoreserve or failed (with a machine-readable reason: tripnotfound, multiplebookings, bookingexpired, noavailability, legacydataunsupported, unsupportedjourney, seatsnotsaved, rarserror, reservationbusy). Nothing is rolled back. Seat supplements raise the order total. reservation_busy: another add was still running on the same booking after a few retries; retry the call shortly.
Request schema (show)
{
"type": "object",
"required": [
"trips"
],
"properties": {
"trips": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"tripId",
"directions"
],
"properties": {
"tripId": {
"type": "integer"
},
"directions": {
"type": "array",
"minItems": 1,
"items": {
"enum": [
"outward",
"inward"
]
}
},
"reservationPreferences": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
Request example (show)
{
"trips": [
{
"tripId": 456,
"directions": [
"outward",
"inward"
],
"reservationPreferences": [
"WIND"
]
},
{
"tripId": 789,
"directions": [
"outward"
]
}
]
}
200 application/json
Response schema (show)
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "success",
"data": {
"results": [
{
"tripId": 456,
"direction": "outward",
"status": "reserved"
},
{
"tripId": 456,
"direction": "inward",
"status": "nothing_to_reserve"
},
{
"tripId": 789,
"direction": "outward",
"status": "failed",
"reason": "no_availability",
"message": "No seats are available on this train."
}
],
"order": {
"totalPrice": 4550,
"totalLeftToPay": 4550,
"expiresAt": "2026-10-09T12:42:00Z"
}
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
409 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
422 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
URI parameters
string customerId (required)
Pattern: ^\d+$
GET /order-by-customer/{customerId}
Return the list of orders by customer id
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"perPage": {
"type": "integer"
},
"lastPage": {
"type": "integer"
}
}
},
"data": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/order/[0-9]+$"
}
}
}
},
"links": {
"type": [
"object",
"array"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"meta": {
"page": 1,
"perPage": 10,
"lastPage": 10
},
"data": [
"/order/0001018025",
"/order/0001018024"
]
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Returns the count of fulfilled unassigned orders matching the authenticated customer's delivery email.
GET /order-number
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Count of fulfilled unassigned orders matching the customer's delivery email"
}
},
"required": [
"number"
],
"additionalProperties": false
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": {
"number": 3
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Checks whether the authenticated token is authorized to read the specified order.
URI parameters
string id (required)
Pattern: ^\d+$
GET /order-authorized/{id}
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Empty array on success"
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": []
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Returns an order looked up by one of its ticket IDs.
URI parameters
string id (required)
Pattern: ^\d+$
GET /order-by-ticket-id/{id}
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"tenant": {
"type": "string",
"pattern": "^[a-z]+$"
},
"state": {
"description": "Order state",
"type": "string",
"enum": [
"Held",
"Sold",
"Fulfilled",
"Cancelled",
"Non Issued"
]
},
"owner": {
"type": [
"string",
"null"
]
},
"retailer": {
"type": "string",
"pattern": "^[0-9]{4}$"
},
"purchased": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"created": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"updated": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"channel": {
"type": "string"
},
"referrer": {
"type": [
"string",
"null"
]
},
"campaign": {
"type": [
"string",
"null"
]
},
"originalOrder": {
"type": [
"string",
"null"
]
},
"travelReason": {
"type": [
"string",
"null"
]
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"pattern": "^/trip/[0-9]+$"
},
{
"type": "string",
"pattern": "^/sundry/[0-9]+$"
}
]
}
},
"payments": {
"description": "URLs for direct payment entities",
"type": "array",
"items": {
"type": "string",
"pattern": "^/(st-card|warrant|card)-payment|paypal|account-warrant/[0-9]+$"
}
},
"orderPayments": {
"description": "URLs for internal OrderService payment entities",
"type": "array",
"items": {
"type": "string",
"pattern": "^/(st-card|warrant|card)-payment|paypal|account-warrant/[0-9]+$"
}
},
"customer": {
"type": "string",
"pattern": "^/customer/[0-9]+$"
},
"delivery": {
"type": [
"object",
"null"
],
"properties": {
"type": {
"type": "string",
"pattern": "^/delivery/.+$"
},
"sundry": {
"oneOf": [
{
"type": "string",
"pattern": "^/sundry/[0-9]+$"
},
{
"type": "null"
}
]
},
"fulfilmentMethod": {
"type": "number"
},
"collectionReference": {
"oneOf": [
{
"type": "string",
"pattern": "^[0-9A-Z]{8}$"
},
{
"type": "null"
}
]
},
"smartcardUri": {
"oneOf": [
{
"type": "string",
"pattern": "^/(smartcards|external-smartcards|temporary-smartcards)/[A-Z0-9]+$"
},
{
"type": "null"
}
]
},
"address": {
"oneOf": [
{
"type": "string",
"pattern": "^/address/[0-9]+$"
},
{
"type": "null"
}
]
},
"tracking": {
"description": "Royal Mail tracking for a tracked CCST postal delivery (RMR1S, RMS05, RMS25); null otherwise",
"oneOf": [
{
"type": "object",
"properties": {
"number": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"deliveryMethodCode": {
"type": "string",
"enum": [
"RMR1S",
"RMS05",
"RMS25"
]
}
},
"required": [
"number",
"url",
"deliveryMethodCode"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
}
},
"fulfilment": {
"type": "string",
"pattern": "^/order/[0-9]+/fulfilment$"
},
"totalPrice": {
"description": "An amount of GBP pence",
"type": "integer"
},
"totalLeftToPay": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"changeoverExtraPence": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"priceIncrease": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"priceCoveredByOriginalTickets": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"priceOfOriginalTickets": {
"oneOf": [
{
"description": "An amount of GBP pence",
"type": "integer"
},
{
"type": "null"
}
]
},
"cojEvents": {
"type": "array",
"items": {
"type": "string"
},
"description": "An amount of GBP pence"
},
"hash": {
"type": "string"
}
},
"required": [
"tenant",
"retailer",
"purchased"
],
"additionalProperties": false
},
"links": {
"type": [
"object",
"array"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"tenant": "company",
"state": "Fulfilled",
"owner": "/user/123",
"retailer": "1234",
"purchased": "2023-10-30T07:43:38+00:00",
"created": "2023-10-30T07:43:30+00:00",
"updated": "2023-10-30T07:43:38+00:00",
"channel": "WEB",
"referrer": "",
"campaign": "",
"travelReason": null,
"originalOrder": null,
"fulfilment": "/order/12/fulfilment",
"items": [
"/trip/123",
"/trip/124",
"/sundry/123",
"/sundry/124"
],
"payments": [
"/st-card-payment/123",
"/warrant/123456"
],
"orderPayments": [
"/card-payment/234",
"/warrant-payment/456"
],
"hash": "0046511fa7c78f066a01250e5c44794fc9d6d000",
"totalPrice": 5432,
"totalLeftToPay": 0,
"delivery": {
"type": "/delivery/e-ticket",
"sundry": null,
"fulfilmentMethod": 6,
"collectionReference": null,
"collectionPoint": null,
"smartcardUri": null,
"address": "/address/12345",
"tracking": null
}
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /trip/{id}
A trip is a equivilent to a single basket item. It may consist of one or two journeys and one to two fare options for those journeys. In addition to the fares for the journeys, fare options for plus bus, season tickets or travelcards may be added.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"properties": {
"outwardJourney": {
"oneOf": [
{
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
{
"type": "null"
}
]
},
"returnJourney": {
"oneOf": [
{
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
{
"type": "null"
}
]
},
"items": {
"type": "object",
"properties": {
"outwardSingle": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
},
"returnSingle": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
},
"return": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
},
"outwardPlusBus": {
"type": "object",
"properties": {
"origin": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
}
},
"additionalProperties": false
},
"returnPlusBus": {
"type": "object",
"properties": {
"origin": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
},
"destination": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
}
},
"additionalProperties": false
},
"travelcardAddon": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
},
"petTickets": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
}
}
},
"additionalProperties": false
}
},
"required": [
"outwardJourney",
"returnJourney",
"items"
],
"additionalProperties": false
},
"links": {
"type": [
"object",
"array"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"outwardJourney": "/journey/123456789123",
"returnJourney": null,
"items": {
"outwardSingle": [
"/ticket/1111",
"/ticket/1112"
],
"returnSingle": [
"/ticket/1211",
"/ticket/1212"
],
"outwardPlusBus": {
"origin": [
"/ticket/1121",
"/ticket/1122"
]
},
"returnPlusBus": {
"destination": [
"/ticket/1221",
"/ticket/1222"
]
}
}
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Trip with id 9223372036854775807 not found."
}
PUT /trip/{id}/seating
Update trip seating
Request schema (show)
{
"type": "object",
"additionalProperties": true
}
Request example (show)
{
"/seat-reservation/1": "K13L",
"/seat-reservation/3": "L13L"
}
200 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
Response example (show)
{
"status": "success",
"data": {
"uri": "/trip/123"
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
POST /trip/{id}/nodes
Add trip nodes
Request schema (show)
{
"type": "object",
"additionalProperties": true
}
Request example (show)
{
"children5To11": 3,
"children12To15": 1
}
200 application/json
Response schema (show)
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
}
Response example (show)
{
"status": "success",
"data": {
"uri": "/trip/123"
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
GET /trip/{id}/pax
Returns the passenger count summary for a trip, including adults, children, pets, bikes, and seat reservation details.
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"type": "object",
"properties": {
"adults": {
"type": "integer",
"description": "Number of adult passengers"
},
"children": {
"type": "integer",
"description": "Number of child passengers"
},
"pets": {
"type": "integer",
"description": "Number of pets"
},
"bikesOnRacks": {
"type": "integer",
"description": "Number of bikes on racks"
},
"bikesInBags": {
"type": "integer",
"description": "Number of bikes in bags"
},
"reservations": {
"type": "object",
"description": "Seat reservation breakdown by category",
"properties": {
"rooms": {
"type": "object",
"description": "Room/sleeper reservations keyed by ticket type and segment",
"additionalProperties": true
},
"bikesOnRacks": {
"type": "object",
"description": "Bike-on-rack reservations keyed by ticket type and segment",
"additionalProperties": true
},
"bikesInBags": {
"type": "object",
"description": "Bike-in-bag reservations keyed by ticket type and segment",
"additionalProperties": true
}
},
"required": [
"rooms",
"bikesOnRacks",
"bikesInBags"
],
"additionalProperties": false
}
},
"required": [
"adults",
"children",
"pets",
"bikesOnRacks",
"bikesInBags",
"reservations"
],
"additionalProperties": false
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": {
"adults": 2,
"children": 1,
"pets": 0,
"bikesOnRacks": 1,
"bikesInBags": 0,
"reservations": {
"rooms": [],
"bikesOnRacks": {
"single": {
"KGX_EDB": {
"A": [
"12",
"13"
]
}
}
},
"bikesInBags": []
}
}
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /ticket/{id}
A ticket is the right to travel for one or more passengers on one or two journeys.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"properties": {
"fare": {
"type": "string",
"pattern": "^/fare/[0-9]+$"
},
"adults": {
"type": "integer"
},
"children": {
"type": "integer"
},
"transactionNumber": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{5}$"
},
{
"type": "null"
}
]
},
"reservation": {
"oneOf": [
{
"type": "string",
"pattern": "^/reservation/[A-Z0-9]+$"
},
{
"type": "null"
}
]
},
"utn": {
"type": [
"string",
"null"
]
},
"outwardPortion": {
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
"returnPortion": {
"oneOf": [
{
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
{
"type": "null"
}
]
},
"outwardFareJourney": {
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
"returnFareJourney": {
"oneOf": [
{
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
{
"type": "null"
}
]
},
"outwardValidity": {
"properties": {
"validFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"validTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
}
},
"returnValidity": {
"properties": {
"validFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"validTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
}
},
"supplements": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/supplement/[0-9]+$"
}
},
"seats": {
"type": "array",
"items": {
"type": "object",
"properties": {
"seat": {
"type": "string",
"pattern": "^/seat-reservation/[0-9]+$"
},
"leg": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
},
"supplement": {
"type": "string",
"pattern": "^/supplement/[0-9]+$"
}
},
"required": [
"seat",
"leg",
"supplement"
]
}
},
"splitInfo": {
"type": "object",
"required": [
"sectionIds",
"outwardOrigin",
"outwardDestination",
"inwardOrigin",
"inwardDestination"
],
"properties": {
"sectionIds": {
"type": "array",
"items": {
"type": "integer"
},
"examples": [
[
1
],
[
1,
3,
4
]
]
},
"outwardOrigin": {
"$oneOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
],
"examples": [
"EUS",
null
]
},
"outwardDestination": {
"$oneOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
],
"examples": [
"EUS",
null
]
},
"inwardOrigin": {
"$oneOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
],
"examples": [
"EUS",
null
]
},
"inwardDestination": {
"$oneOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
],
"examples": [
"EUS",
null
]
}
}
},
"passenger": {
"type": [
"string"
]
},
"originalTicket": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
},
"priceCoveredByOriginalTicket": {
"type": [
"integer",
"null"
]
},
"ticketPrice": {
"type": "integer"
},
"refundId": {
"type": [
"integer",
"null"
]
},
"changeoverOf": {
"oneOf": [
{
"type": "string",
"pattern": "^/ticket/[0-9]+$"
},
{
"type": "null"
}
]
},
"changeoverCreditPence": {
"type": [
"integer",
"null"
]
},
"reissueOf": {
"oneOf": [
{
"type": "string",
"pattern": "^/ticket/[0-9]+$"
},
{
"type": "null"
}
]
},
"reissueKind": {
"enum": [
"DUPLICATE",
"REPLACEMENT",
null
]
},
"supersededBy": {
"oneOf": [
{
"type": "object",
"properties": {
"ticket": {
"type": "string",
"pattern": "^/ticket/[0-9]+$"
},
"order": {
"type": "string"
},
"kind": {
"enum": [
"DUPLICATE",
"REPLACEMENT",
null
]
},
"state": {
"type": [
"string",
"null"
]
}
},
"required": [
"ticket",
"order",
"kind",
"state"
]
},
{
"type": "null"
}
]
},
"frtJobId": {
"type": [
"string",
"null"
]
},
"frtTrackingNumber": {
"type": [
"string",
"null"
]
}
},
"required": [
"fare",
"adults",
"children",
"transactionNumber",
"reservation",
"utn",
"outwardPortion",
"outwardFareJourney",
"outwardValidity",
"returnValidity",
"supplements",
"seats",
"ticketPrice"
],
"additionalProperties": false
},
"links": {
"type": [
"object",
"array"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"fare": "/fare/5",
"adults": 1,
"children": 0,
"transactionNumber": "00123",
"reservation": "/reservation/XXXYYY",
"utn": "AA123456789",
"outwardPortion": "/journey/1",
"returnPortion": null,
"outwardFareJourney": "/journey/1",
"returnFareJourney": null,
"outwardValidity": {
"validFrom": "2017-01-24",
"validUntil": "2018-01-23"
},
"returnValidity": null,
"supplements": [
"/supplement/123456"
],
"seats": [
{
"seat": "/seat-reservation/123",
"origin": "WVH",
"destination": "SGB",
"leg": "/leg/123",
"supplement": "/supplement/123456"
},
{
"seat": "/seat-reservation/124",
"origin": "SGB",
"destination": "CRA",
"leg": "/leg/124",
"supplement": "/supplement/123456"
}
],
"splitInfo": {
"sectionIds": [
1
],
"outwardOrigin": "KID",
"outwardDestination": "CRA",
"inwardOrigin": null,
"inwardDestination": null
},
"passenger": "/passenger/123",
"originalTicket": "/ticket/321998",
"priceCoveredByOriginalTicket": 520,
"ticketPrice": 1299,
"refundId": null
},
"links": {
"/fare/5": [],
"/reservation/XXXYYY": [],
"/supplement/123456": [],
"/ticket/321998": []
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Ticket with id 9223372036854775807 not found."
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /fare/{id}
Abstract information for a ticket. The fare itself contains the origin, destination, route, ticket type and restriction of the fare but is not bound to a particular date range like the ticket. Instead the ticket type has a validity duration.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"ticketType": {
"type": "string",
"pattern": "^/ticket-type/[A-Z0-9]{3}$"
},
"origin": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"destination": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"price": {
"type": "number"
},
"originalPrice": {
"type": [
"number",
"null"
]
},
"railcard": {
"type": [
"string",
"null"
]
},
"restrictionCode": {
"type": "string",
"pattern": "^[A-Z0-9]{2}$"
},
"route": {
"type": "string",
"pattern": "^/route/[0-9]{5}$"
},
"statusCode": {
"type": "string"
},
"fareSetter": {
"type": [
"null",
"string"
]
},
"xLondon": {
"type": "number",
"description": "0 - not cross London; 1 - cross London; 2 - cross London by underground"
},
"isPlusBus": {
"type": "boolean"
},
"discount": {
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"pattern": "^/discount/[0-9]+$"
},
"lennonCode": {
"type": "string"
},
"promoCode": {
"type": "string"
},
"percent": {
"type": "number"
},
"shortDescription": {
"type": [
"string",
"null"
]
}
},
"required": [],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"childStatusDescription": {
"type": [
"string",
"null"
]
},
"adultStatusDescription": {
"type": [
"string",
"null"
]
}
},
"required": [
"ticketType",
"origin",
"destination",
"price",
"railcard",
"restrictionCode",
"route",
"statusCode",
"xLondon",
"isPlusBus",
"discount",
"childStatusDescription",
"adultStatusDescription"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"ticketType": "/ticket-type/VDS",
"origin": "/station/1072",
"destination": "/station/2961",
"price": 2700,
"originalPrice": 5400,
"railcard": "/railcard/2TR",
"restrictionCode": "VR",
"route": "/route/00452",
"statusCode": "052",
"fareSetter": null,
"xLondon": 1,
"isPlusBus": false,
"discount": {
"type": "/discount/123",
"lennonCode": "0301",
"promoCode": "test",
"percent": 50,
"shortDescription": "Some description of the discount made up by a marketing genius"
},
"childStatusDescription": "CHILD",
"adultStatusDescription": null
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "error",
"message": "Fare with id 99999 not found."
}
Returns a fare leg (journey leg used for fare calculation) by ID.
URI parameters
string id (required)
Pattern: ^\d+$
GET /fare-leg/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"type": {
"enum": [
"timetabled",
"fixed"
]
},
"origin": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"destination": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"mode": {
"enum": [
"train",
"bus",
"walk"
]
},
"service": {
"oneOf": [
{
"type": "string",
"pattern": "^/service/[0-9A-Z_]+/\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"operator": {
"oneOf": [
{
"type": "string",
"pattern": "^/toc/[A-Z]{2}$"
},
{
"type": "null"
}
]
},
"scheduledDeparture": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"scheduledArrival": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"boardingTime": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"alightingTime": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"duration": {
"type": "number"
},
"availableFrom": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"availableTo": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"callingPoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"crs": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"arrival": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"departure": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"platform": {
"type": "string",
"description": "The platform number or letter"
},
"pickup": {
"type": "boolean",
"description": "Does the train stop here for passengers to board"
},
"dropoff": {
"type": "boolean",
"description": "Does the train stop here for passengers to alight"
}
},
"required": [
"crs",
"arrival",
"departure",
"platform",
"pickup",
"dropoff"
]
}
}
},
"required": [
"type",
"origin",
"destination",
"operator",
"mode"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"type": "timetabled",
"origin": "/station/1027",
"destination": "/station/5187",
"mode": "train",
"service": "/service/A12345/2015-12-07",
"scheduledDeparture": "2015-12-07T11:59:59+00:00",
"scheduledArrival": "2015-12-07T11:59:59+00:00",
"alightingTime": "2015-12-07T12:03:00+00:00",
"operator": "/toc/AB",
"callingPoints": [
{
"crs": "KID",
"arrival": "2023-11-27T11:54:00+00:00",
"departure": "2023-11-27T11:54:00+00:00",
"platform": "1",
"pickup": true,
"dropoff": false
},
{
"crs": "BKD",
"arrival": "2023-11-27T11:58:00+00:00",
"departure": "2023-11-27T11:58:00+00:00",
"platform": null,
"pickup": true,
"dropoff": true
}
]
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Leg with id 20234234234234324 not found."
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /journey/{id}
A complete passenger journey from an origin to a destination. It will involve journeys on one or more legs.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"legs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
}
},
"fareLegs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
}
},
"distance": {
"type": [
"number",
"null"
]
},
"co2": {
"type": [
"object",
"null"
],
"required": [
"train"
],
"properties": {
"train": {
"type": "number"
}
},
"additionalProperties": true
}
},
"required": [
"legs",
"fareLegs",
"distance",
"co2"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"legs": [
"/leg/123",
"/leg/456"
],
"fareLegs": [
"/fare-leg/214",
"/fare-leg/214"
]
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Journey with id 9223372036854775807 not found."
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /leg/{id}
A particular segment of an overall journey constrained to one service of method of travel. There are two types of legs; timetable legs that have a departure and arrival time and fixed legs that only have a duration (walk, tube, etc). Given a journey from Tunbridge Wells to Diss there may be a timetable leg from Tunbridge Wells to London Bridge (on a Hastings to Charing Cross service), a fixed leg walk to London Liverpool Street and then a final timetable leg from London Liverpool Street to Diss (on the London Liverpool Street to Norwich service).
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"type": {
"enum": [
"timetabled",
"fixed"
]
},
"origin": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"destination": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"mode": {
"enum": [
"train",
"bus",
"walk"
]
},
"service": {
"oneOf": [
{
"type": "string",
"pattern": "^/service/[0-9A-Z_]+/\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"operator": {
"oneOf": [
{
"type": "string",
"pattern": "^/toc/[A-Z]{2}$"
},
{
"type": "null"
}
]
},
"scheduledDeparture": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"scheduledArrival": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"boardingTime": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"alightingTime": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"duration": {
"type": "number"
},
"availableFrom": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"availableTo": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"callingPoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"crs": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"arrival": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"departure": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"platform": {
"type": "string",
"description": "The platform number or letter"
},
"pickup": {
"type": "boolean",
"description": "Does the train stop here for passengers to board"
},
"dropoff": {
"type": "boolean",
"description": "Does the train stop here for passengers to alight"
}
},
"required": [
"crs",
"arrival",
"departure",
"platform",
"pickup",
"dropoff"
]
}
}
},
"required": [
"type",
"origin",
"destination",
"operator",
"mode"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"type": "timetabled",
"origin": "/station/1027",
"destination": "/station/5187",
"mode": "train",
"service": "/service/A12345/2015-12-07",
"scheduledDeparture": "2015-12-07T11:59:59+00:00",
"scheduledArrival": "2015-12-07T11:59:59+00:00",
"alightingTime": "2015-12-07T12:03:00+00:00",
"operator": "/toc/AB",
"callingPoints": [
{
"crs": "KID",
"arrival": "2023-11-27T11:54:00+00:00",
"departure": "2023-11-27T11:54:00+00:00",
"platform": "1",
"pickup": true,
"dropoff": false
},
{
"crs": "BKD",
"arrival": "2023-11-27T11:58:00+00:00",
"departure": "2023-11-27T11:58:00+00:00",
"platform": null,
"pickup": true,
"dropoff": true
}
]
},
"links": []
}
201 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"type": {
"enum": [
"timetabled",
"fixed"
]
},
"origin": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"destination": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"mode": {
"enum": [
"train",
"bus",
"walk"
]
},
"service": {
"oneOf": [
{
"type": "string",
"pattern": "^/service/[0-9A-Z_]+/\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"operator": {
"oneOf": [
{
"type": "string",
"pattern": "^/toc/[A-Z]{2}$"
},
{
"type": "null"
}
]
},
"scheduledDeparture": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"scheduledArrival": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"boardingTime": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"alightingTime": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"duration": {
"type": "number"
},
"availableFrom": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"availableTo": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"callingPoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"crs": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"arrival": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"departure": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"platform": {
"type": "string",
"description": "The platform number or letter"
},
"pickup": {
"type": "boolean",
"description": "Does the train stop here for passengers to board"
},
"dropoff": {
"type": "boolean",
"description": "Does the train stop here for passengers to alight"
}
},
"required": [
"crs",
"arrival",
"departure",
"platform",
"pickup",
"dropoff"
]
}
}
},
"required": [
"type",
"origin",
"destination",
"operator",
"mode"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"type": "fixed",
"origin": "/station/5187",
"destination": "/station/5100",
"mode": "walk",
"operator": "/toc/AB",
"duration": 15,
"availableFrom": "05:30",
"availableTo": "22:45"
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Leg with id 20234234234234324 not found."
}
URI parameters
string tuid (required)
Pattern: ^[0-9A-Z_]+$
string date (required)
Pattern: ^[0-9\-]+$
GET /service/{tuid}/{date}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"properties": {
"type": {
"type": "string",
"pattern": "^fixed|timetable$"
},
"mode": {
"type": "string",
"pattern": "^train$"
},
"retailServiceId": {
"type": "string",
"pattern": "^[0-9A-Z]+$"
},
"trainUid": {
"type": "string",
"pattern": "^[0-9A-Z_]+$"
},
"iptisTripIdentifier": {
"type": "string"
},
"facilities": {
"type": "object",
"properties": {
"firstClass": {
"type": "boolean"
},
"firstClassMeal": {
"type": "boolean"
},
"firstClassRestaurant": {
"type": "boolean"
},
"hotFood": {
"type": "boolean"
},
"buffet": {
"type": "boolean"
},
"restaurant": {
"type": "boolean"
},
"trolley": {
"type": "boolean"
},
"wheelchair": {
"type": "boolean"
}
},
"additionalProperties": true
},
"isTemporaryTrain": {
"type": "boolean"
},
"isCountedPlace": {
"type": "boolean"
},
"callingPoints": {
"type": "string",
"pattern": "^/service/[0-9A-Z_]+/\\d{4}-\\d{2}-\\d{2}/calling-points$"
},
"transferAdvice": {
"type": "array",
"items": {
"type": "string"
}
},
"reservable": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"type",
"mode",
"retailServiceId",
"trainUid",
"callingPoints"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"type": "fixed",
"mode": "train",
"retailServiceId": "AB12345",
"trainUid": "A1234",
"callingPoints": "/service/A12345/2017-02-09/calling-points",
"reservable": [
"Recommended"
]
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string tuid (required)
Pattern: ^[0-9A-Z_]+$
string date (required)
Pattern: ^[0-9\-]+$
GET /service/{tuid}/{date}/calling-points
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"location": {
"type": "object",
"properties": {
"crs": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"nlc": {
"type": "string",
"pattern": "^[0-9]{4}$"
}
}
},
"order": {
"type": "integer"
},
"arriveTime": {
"type": [
"string",
"null"
]
},
"departTime": {
"type": [
"string",
"null"
]
},
"platform": {
"type": "string"
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": [
{
"location": {
"crs": "EDB",
"nlc": "9328"
},
"order": 1,
"arriveTime": "6:40",
"departTime": "4:40",
"platform": "11"
},
{
"location": {
"crs": "INK",
"nlc": "9136"
},
"order": 2,
"arriveTime": "4:58",
"departTime": "3:58",
"platform": "2"
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /passenger/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"title": {
"type": [
"string",
"null"
]
},
"initials": {
"type": [
"string",
"null"
]
},
"surname": {
"type": [
"string",
"null"
]
},
"photocardNumber": {
"type": [
"string",
"null"
]
},
"isChild": {
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"title",
"initials",
"surname",
"photocardNumber",
"isChild"
]
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"title": "Mr",
"initials": "F",
"surname": "Bar",
"photocardNumber": "12345678",
"isChild": false
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Passenger with id 20234234234234324 not found."
}
URI parameters
string id (required)
Pattern: ^.+$
GET /reservation/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"created": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"seats": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/seat-reservation/[0-9]+$"
}
}
},
"required": [
"created",
"seats"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"created": "2015-03-31T13:50:58+01:00",
"seats": [
"/seat-reservation/1234",
"/seat-reservation/4567"
]
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /seat-reservation/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"coach": {
"type": "string",
"pattern": "^[A-Z]$"
},
"seat": {
"type": "string",
"pattern": "^[0-9]{1,3}[A-Z]$"
},
"leg": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
},
"fareLeg": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
},
"supplement": {
"type": "string",
"pattern": "^/supplement/[0-9]+$"
},
"reservation": {
"type": "string",
"pattern": "^/reservation/[A-Z0-9]+$"
},
"display": {
"type": "object",
"properties": {
"coach": {
"type": "string",
"pattern": "^[A-Z]$"
},
"seat": {
"type": "string",
"pattern": "^[0-9]{1,3}[A-Z]$"
}
}
}
},
"required": [
"coach",
"seat",
"leg",
"fareLeg",
"supplement",
"reservation",
"display"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"coach": "A",
"seat": "12F",
"display": {
"coach": "A",
"seat": "12"
},
"leg": "/leg/123",
"fareLeg": "/leg/123",
"supplement": "/supplement/123456",
"reservation": "/reservation/ZY1233DB"
},
"links": []
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Passenger with id 20234234234234324 not found."
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /supplement/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"type": {
"type": "string",
"pattern": "^/supplement-type/[A-Z0-9]+$"
},
"transactionNumber": {
"type": [
"string",
"null"
]
},
"price": {
"type": "number"
},
"hasReservation": {
"type": "boolean"
},
"isBerth": {
"type": "boolean"
},
"isMandatory": {
"type": "boolean"
}
},
"required": [
"id",
"type",
"transactionNumber",
"price",
"hasReservation",
"isBerth",
"isMandatory"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"id": 1,
"type": "/supplement-type/XFS",
"transactionNumber": null,
"price": 0,
"hasReservation": true,
"isBerth": false,
"isMandatory": false
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Supplement with id 1123213213 not found."
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /sundry/{id}
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"properties": {
"type": {
"type": "string",
"pattern": "^/sundry-type/[0-9]{5}$"
},
"price": {
"type": "integer"
},
"refundId": {
"type": [
"integer",
"null"
]
}
},
"required": [
"type",
"price",
"refundId"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"type": "/sundry-type/09015",
"price": 100,
"refundId": null
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Sundry with id 1123213213 not found."
}
Returns a user by ID.
URI parameters
string id (required)
Pattern: ^\d+$
GET /user/{id}
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "User ID"
},
"group": {
"type": "string",
"description": "User group"
},
"description": {
"type": "string",
"description": "Human-readable description of the user"
},
"business": {
"description": "Business ID, or null if not associated with a business",
"oneOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"in_credits": {
"type": "boolean",
"description": "Whether the user is in credits mode"
},
"shoutbox": {
"description": "Shoutbox content, or null",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"icon": {
"type": "string",
"description": "User icon identifier"
}
},
"required": [
"id",
"group",
"description",
"in_credits",
"icon"
],
"additionalProperties": false
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": {
"id": "42",
"group": "customer",
"description": "Jane Smith",
"business": null,
"in_credits": false,
"shoutbox": null,
"icon": "user"
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
GET /search-coj
Search for change of journey for original tickets. Query parameters require only originalTickets, but it can be extended with any odyssey query parameter to change date & time of travel, adults, children and railcards. It returns augmented odyssey response. It additionally has "priceCoveredByOriginalTickets" property on fareOption, "priceCoveredByOriginalFare" property on fare, "originalTicket" on fareOption's fare and "sameAsOriginalJourney" on journey.
200 application/json
Response schema (show)
{
"type": "object",
"additionalProperties": false,
"required": [
"pagination",
"response"
],
"properties": {
"pagination": {
"type": "object",
"additionalProperties": false,
"properties": {
"outward": {
"$ref": "./PaginationResult.jschema"
},
"inward": {
"$ref": "./PaginationResult.jschema"
}
}
},
"response": {
"type": "object",
"additionalProperties": false,
"required": [
"outward",
"inward",
"fares",
"availability"
],
"properties": {
"outward": {
"type": "array",
"items": {
"$ref": "Types.jschema#/journeyUri"
}
},
"inward": {
"type": "array",
"items": {
"$ref": "Types.jschema#/journeyUri"
}
},
"fares": {
"type": "object",
"description": "array associate journeys with fares."
},
"addons": {
"type": "object",
"required": [
"outward"
],
"properties": {
"outward": {
"type": "object"
},
"inward": {
"type": "object"
}
}
},
"availability": {
"type": "object",
"description": "availabilities associated with journeys and ticket types"
}
}
},
"messages": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"tag",
"level",
"title"
],
"properties": {
"tag": {
"type": "string"
},
"level": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"additionalProperties": false,
"properties": {
"outward": {
"$ref": "./PaginationResult.jschema"
},
"inward": {
"$ref": "./PaginationResult.jschema"
}
}
},
"links": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^/odyssey/fare/.+$": {
"$ref": "Fare.jschema"
},
"^/odyssey/fare-option/.+$": {
"$ref": "FareOption.jschema"
},
"^/odyssey/journey/.+$": {
"$ref": "Journey.jschema"
},
"^/odyssey/leg/.+$": {
"$ref": "Leg.jschema"
}
}
}
}
}
Response example (show)
{
"response": {
"outward": [
"/odyssey/journey/270:270:MCV_HBD_G37312",
"/odyssey/journey/270:270:MCV_HBD_G30188",
"/odyssey/journey/270:270:MCV_HBD_G30155",
"/odyssey/journey/270:270:MCV_HBD_G37319",
"/odyssey/journey/270:270:MCV_HBD_G31967"
],
"inward": [],
"fares": {
"/odyssey/journey/270:270:MCV_HBD_G37312": {
"outward": [
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG0-000-1-NT---268-1-0--370-1-0"
],
"inward": [],
"return": []
},
"/odyssey/journey/270:270:MCV_HBD_G30188": {
"outward": [
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG3-000-1-NT---268-1-0--440-1-0"
],
"inward": [],
"return": []
},
"/odyssey/journey/270:270:MCV_HBD_G30155": {
"outward": [
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG6-000-1-NT---268-1-0--520-1-0"
],
"inward": [],
"return": []
},
"/odyssey/journey/270:270:MCV_HBD_G37319": {
"outward": [
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG6-000-1-NT---268-1-0--520-1-0"
],
"inward": [],
"return": []
},
"/odyssey/journey/270:270:MCV_HBD_G31967": {
"outward": [
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG0-000-1-NT---268-1-0--370-1-0"
],
"inward": [],
"return": []
}
},
"addons": {
"outward": {
"origin": [],
"destination": []
}
},
"availability": {
"/odyssey/journey/270:270:MCV_HBD_G37312": {
"/ticket-type/DG0": {
"/route/00429": 8
}
},
"/odyssey/journey/270:270:MCV_HBD_G30188": {
"/ticket-type/DG3": {
"/route/00429": 8
}
},
"/odyssey/journey/270:270:MCV_HBD_G30155": {
"/ticket-type/DG6": {
"/route/00429": 8
}
},
"/odyssey/journey/270:270:MCV_HBD_G37319": {
"/ticket-type/DG6": {
"/route/00429": 8
}
},
"/odyssey/journey/270:270:MCV_HBD_G31967": {
"/ticket-type/DG0": {
"/route/00429": 8
}
}
}
},
"pagination": {
"outward": {
"current": "origin=2970&destination=8524&outwardDate=2024-09-26&outwardDepartAt=13%3A33&adults=1&children=0&limit=5&returns=false&ticketCategory=advance&originalTickets=140099",
"earlier": "origin=2970&destination=8524&outwardDate=2024-09-26&outwardDepartBy=13%3A36&adults=1&children=0&limit=5&returns=false&ticketCategory=advance&originalTickets=140099",
"later": "origin=2970&destination=8524&outwardDate=2024-09-26&outwardDepartAt=14%3A54&adults=1&children=0&limit=5&returns=false&ticketCategory=advance&originalTickets=140099"
}
},
"links": {
"/odyssey/fare/2970-8524-00429-DG0-000-1-NT---268-1-0--370": {
"origin": "/station/2970",
"destination": "/station/8524",
"route": "/route/00429",
"price": 370,
"originalPrice": 370,
"ticketType": "/ticket-type/DG0",
"restrictionCode": "NT",
"fareSetter": "NTH",
"railcard": null,
"statusCode": "000",
"xLondon": 0,
"permittedDestinationStations": "/station/8524/permitted-stations/2970/00429",
"permittedOriginStations": "/station/2970/permitted-stations/8524/00429",
"discount": null,
"groups": [
"2970-8524-00429-DG0"
],
"priceCoveredByOriginalTickets": 370
},
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG0-000-1-NT---268-1-0--370-1-0": {
"totalPrice": 370,
"labels": [
"advance"
],
"hasETicket": "/has-e-ticket/2970-8524-2970-8524-00429-DG0",
"supplements": [],
"fares": [
{
"adults": 1,
"children": 0,
"fare": "/odyssey/fare/2970-8524-00429-DG0-000-1-NT---268-1-0--370",
"originalTicket": "/ticket/140099"
}
],
"validUntil": "2024-09-27T23:59:59",
"priceCoveredByOriginalTickets": 370
},
"/odyssey/fare/2970-8524-00429-DG3-000-1-NT---268-1-0--440": {
"origin": "/station/2970",
"destination": "/station/8524",
"route": "/route/00429",
"price": 440,
"originalPrice": 440,
"ticketType": "/ticket-type/DG3",
"restrictionCode": "NT",
"fareSetter": "NTH",
"railcard": null,
"statusCode": "000",
"xLondon": 0,
"permittedDestinationStations": "/station/8524/permitted-stations/2970/00429",
"permittedOriginStations": "/station/2970/permitted-stations/8524/00429",
"discount": null,
"groups": [
"2970-8524-00429-DG3"
],
"priceCoveredByOriginalTickets": 440
},
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG3-000-1-NT---268-1-0--440-1-0": {
"totalPrice": 440,
"labels": [
"advance"
],
"hasETicket": "/has-e-ticket/2970-8524-2970-8524-00429-DG3",
"supplements": [],
"fares": [
{
"adults": 1,
"children": 0,
"fare": "/odyssey/fare/2970-8524-00429-DG3-000-1-NT---268-1-0--440",
"originalTicket": "/ticket/140099"
}
],
"validUntil": "2024-09-27T23:59:59",
"priceCoveredByOriginalTickets": 440
},
"/odyssey/fare/2970-8524-00429-DG6-000-1-NT---268-1-0--520": {
"origin": "/station/2970",
"destination": "/station/8524",
"route": "/route/00429",
"price": 520,
"originalPrice": 520,
"ticketType": "/ticket-type/DG6",
"restrictionCode": "NT",
"fareSetter": "NTH",
"railcard": null,
"statusCode": "000",
"xLondon": 0,
"permittedDestinationStations": "/station/8524/permitted-stations/2970/00429",
"permittedOriginStations": "/station/2970/permitted-stations/8524/00429",
"discount": null,
"groups": [
"2970-8524-00429-DG6"
],
"priceCoveredByOriginalTickets": 520
},
"/odyssey/fare-option/270:/fare/2970-8524-00429-DG6-000-1-NT---268-1-0--520-1-0": {
"totalPrice": 520,
"labels": [
"advance"
],
"hasETicket": "/has-e-ticket/2970-8524-2970-8524-00429-DG6",
"supplements": [],
"fares": [
{
"adults": 1,
"children": 0,
"fare": "/odyssey/fare/2970-8524-00429-DG6-000-1-NT---268-1-0--520",
"originalTicket": "/ticket/140099"
}
],
"validUntil": "2024-09-27T23:59:59",
"priceCoveredByOriginalTickets": 520
},
"/odyssey/leg/270:MCV_HBD_G37312": {
"type": "timetabled",
"source": "dtd",
"origin": "/station/MCV",
"destination": "/station/HBD",
"mode": "train",
"operator": "/toc/NT",
"service": {
"trainUid": "G37312",
"retailServiceId": "NT414700",
"reservationFlag": "S",
"reservable": [
"Possible"
],
"origin": "/station/WGW",
"destination": "/station/LDS",
"date": "2024-09-26",
"scheduledDeparture": "2024-09-26T12:49:00"
},
"departure": "2024-09-26T13:36:00",
"arrival": "2024-09-26T14:15:00",
"scheduledDeparture": "2024-09-26T13:36:00",
"scheduledArrival": "2024-09-26T14:15:00",
"disruptions": "/disruption/2024-09-26T13:36:00/NT_MCV_HBD_G37312",
"callingPoints": [
{
"station": "/station/MCV",
"departure": "2024-09-26T13:36:00",
"arrival": "2024-09-26T13:33:00",
"scheduledDeparture": "2024-09-26T13:36:00",
"scheduledArrival": "2024-09-26T13:33:00",
"cancelled": false,
"delayed": false,
"platform": "6",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/RCD",
"departure": "2024-09-26T13:51:00",
"arrival": "2024-09-26T13:51:00",
"scheduledDeparture": "2024-09-26T13:51:00",
"scheduledArrival": "2024-09-26T13:51:00",
"cancelled": false,
"delayed": false,
"platform": "1",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/SMB",
"departure": "2024-09-26T13:55:00",
"arrival": "2024-09-26T13:55:00",
"scheduledDeparture": "2024-09-26T13:55:00",
"scheduledArrival": "2024-09-26T13:55:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/LTL",
"departure": "2024-09-26T13:59:00",
"arrival": "2024-09-26T13:58:00",
"scheduledDeparture": "2024-09-26T13:59:00",
"scheduledArrival": "2024-09-26T13:58:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/WDN",
"departure": "2024-09-26T14:05:00",
"arrival": "2024-09-26T14:05:00",
"scheduledDeparture": "2024-09-26T14:05:00",
"scheduledArrival": "2024-09-26T14:05:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/TOD",
"departure": "2024-09-26T14:08:00",
"arrival": "2024-09-26T14:08:00",
"scheduledDeparture": "2024-09-26T14:08:00",
"scheduledArrival": "2024-09-26T14:08:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/HBD",
"departure": "2024-09-26T14:15:00",
"arrival": "2024-09-26T14:15:00",
"scheduledDeparture": "2024-09-26T14:15:00",
"scheduledArrival": "2024-09-26T14:15:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
}
],
"isDelayed": false
},
"/odyssey/journey/270:270:MCV_HBD_G37312": {
"id": "/odyssey/journey/270:270:MCV_HBD_G37312",
"origin": "/station/MCV",
"destination": "/station/HBD",
"departure": "2024-09-26T13:36:00",
"arrival": "2024-09-26T14:15:00",
"scheduledDeparture": "2024-09-26T13:36:00",
"scheduledArrival": "2024-09-26T14:15:00",
"legs": [
"/odyssey/leg/270:MCV_HBD_G37312"
],
"disruptions": "/disruption/2024-09-26T13:36:00/NT_MCV_HBD_G37312",
"isReservationCompulsory": false,
"isReservationPossible": true,
"isOvertaken": false,
"overtakingJourneysCount": 0,
"status": "ready",
"boardingTime": null,
"alightingTime": null,
"distance": 23,
"sameAsOriginalJourney": false
},
"/odyssey/leg/270:MCV_HBD_G30188": {
"type": "timetabled",
"source": "dtd",
"origin": "/station/MCV",
"destination": "/station/HBD",
"mode": "train",
"operator": "/toc/NT",
"service": {
"trainUid": "G30188",
"retailServiceId": "NT414900",
"reservationFlag": "S",
"reservable": [
"Possible"
],
"origin": "/station/MCV",
"destination": "/station/LDS",
"date": "2024-09-26",
"scheduledDeparture": "2024-09-26T13:57:00"
},
"departure": "2024-09-26T13:57:00",
"arrival": "2024-09-26T14:25:00",
"scheduledDeparture": "2024-09-26T13:57:00",
"scheduledArrival": "2024-09-26T14:25:00",
"disruptions": "/disruption/2024-09-26T13:57:00/NT_MCV_HBD_G30188",
"callingPoints": [
{
"station": "/station/MCV",
"departure": "2024-09-26T13:57:00",
"arrival": "2024-09-26T13:57:00",
"scheduledDeparture": "2024-09-26T13:57:00",
"scheduledArrival": "2024-09-26T13:57:00",
"cancelled": false,
"delayed": false,
"platform": "1",
"pickup": true,
"dropoff": false,
"activities": [
"PickUpOnly"
]
},
{
"station": "/station/RCD",
"departure": "2024-09-26T14:10:00",
"arrival": "2024-09-26T14:09:00",
"scheduledDeparture": "2024-09-26T14:10:00",
"scheduledArrival": "2024-09-26T14:09:00",
"cancelled": false,
"delayed": false,
"platform": "1",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/TOD",
"departure": "2024-09-26T14:19:00",
"arrival": "2024-09-26T14:19:00",
"scheduledDeparture": "2024-09-26T14:19:00",
"scheduledArrival": "2024-09-26T14:19:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/HBD",
"departure": "2024-09-26T14:26:00",
"arrival": "2024-09-26T14:25:00",
"scheduledDeparture": "2024-09-26T14:26:00",
"scheduledArrival": "2024-09-26T14:25:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
}
],
"isDelayed": false
},
"/odyssey/journey/270:270:MCV_HBD_G30188": {
"id": "/odyssey/journey/270:270:MCV_HBD_G30188",
"origin": "/station/MCV",
"destination": "/station/HBD",
"departure": "2024-09-26T13:57:00",
"arrival": "2024-09-26T14:25:00",
"scheduledDeparture": "2024-09-26T13:57:00",
"scheduledArrival": "2024-09-26T14:25:00",
"legs": [
"/odyssey/leg/270:MCV_HBD_G30188"
],
"disruptions": "/disruption/2024-09-26T13:57:00/NT_MCV_HBD_G30188",
"isReservationCompulsory": false,
"isReservationPossible": true,
"isOvertaken": false,
"overtakingJourneysCount": 0,
"status": "ready",
"boardingTime": null,
"alightingTime": null,
"distance": 23,
"sameAsOriginalJourney": false
},
"/odyssey/leg/270:MCV_HBD_G30155": {
"type": "timetabled",
"source": "dtd",
"origin": "/station/MCV",
"destination": "/station/HBD",
"mode": "train",
"operator": "/toc/NT",
"service": {
"trainUid": "G30155",
"retailServiceId": "NT415100",
"reservationFlag": "S",
"reservable": [
"Possible"
],
"origin": "/station/CTR",
"destination": "/station/LDS",
"date": "2024-09-26",
"scheduledDeparture": "2024-09-26T13:28:00"
},
"departure": "2024-09-26T14:21:00",
"arrival": "2024-09-26T14:49:00",
"scheduledDeparture": "2024-09-26T14:21:00",
"scheduledArrival": "2024-09-26T14:49:00",
"disruptions": "/disruption/2024-09-26T14:21:00/NT_MCV_HBD_G30155",
"callingPoints": [
{
"station": "/station/MCV",
"departure": "2024-09-26T14:21:00",
"arrival": "2024-09-26T14:18:00",
"scheduledDeparture": "2024-09-26T14:21:00",
"scheduledArrival": "2024-09-26T14:18:00",
"cancelled": false,
"delayed": false,
"platform": "4",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/RCD",
"departure": "2024-09-26T14:34:00",
"arrival": "2024-09-26T14:33:00",
"scheduledDeparture": "2024-09-26T14:34:00",
"scheduledArrival": "2024-09-26T14:33:00",
"cancelled": false,
"delayed": false,
"platform": "1",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/TOD",
"departure": "2024-09-26T14:43:00",
"arrival": "2024-09-26T14:43:00",
"scheduledDeparture": "2024-09-26T14:43:00",
"scheduledArrival": "2024-09-26T14:43:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/HBD",
"departure": "2024-09-26T14:50:00",
"arrival": "2024-09-26T14:49:00",
"scheduledDeparture": "2024-09-26T14:50:00",
"scheduledArrival": "2024-09-26T14:49:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
}
],
"isDelayed": false
},
"/odyssey/journey/270:270:MCV_HBD_G30155": {
"id": "/odyssey/journey/270:270:MCV_HBD_G30155",
"origin": "/station/MCV",
"destination": "/station/HBD",
"departure": "2024-09-26T14:21:00",
"arrival": "2024-09-26T14:49:00",
"scheduledDeparture": "2024-09-26T14:21:00",
"scheduledArrival": "2024-09-26T14:49:00",
"legs": [
"/odyssey/leg/270:MCV_HBD_G30155"
],
"disruptions": "/disruption/2024-09-26T14:21:00/NT_MCV_HBD_G30155",
"isReservationCompulsory": false,
"isReservationPossible": true,
"isOvertaken": false,
"overtakingJourneysCount": 0,
"status": "ready",
"boardingTime": null,
"alightingTime": null,
"distance": 23,
"sameAsOriginalJourney": false
},
"/odyssey/leg/270:MCV_HBD_G37319": {
"type": "timetabled",
"source": "dtd",
"origin": "/station/MCV",
"destination": "/station/HBD",
"mode": "train",
"operator": "/toc/NT",
"service": {
"trainUid": "G37319",
"retailServiceId": "NT415300",
"reservationFlag": "S",
"reservable": [
"Possible"
],
"origin": "/station/WGW",
"destination": "/station/LDS",
"date": "2024-09-26",
"scheduledDeparture": "2024-09-26T13:49:00"
},
"departure": "2024-09-26T14:36:00",
"arrival": "2024-09-26T15:15:00",
"scheduledDeparture": "2024-09-26T14:36:00",
"scheduledArrival": "2024-09-26T15:15:00",
"disruptions": "/disruption/2024-09-26T14:36:00/NT_MCV_HBD_G37319",
"callingPoints": [
{
"station": "/station/MCV",
"departure": "2024-09-26T14:36:00",
"arrival": "2024-09-26T14:33:00",
"scheduledDeparture": "2024-09-26T14:36:00",
"scheduledArrival": "2024-09-26T14:33:00",
"cancelled": false,
"delayed": false,
"platform": "6",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/RCD",
"departure": "2024-09-26T14:51:00",
"arrival": "2024-09-26T14:50:00",
"scheduledDeparture": "2024-09-26T14:51:00",
"scheduledArrival": "2024-09-26T14:50:00",
"cancelled": false,
"delayed": false,
"platform": "1",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/SMB",
"departure": "2024-09-26T14:55:00",
"arrival": "2024-09-26T14:55:00",
"scheduledDeparture": "2024-09-26T14:55:00",
"scheduledArrival": "2024-09-26T14:55:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/LTL",
"departure": "2024-09-26T14:59:00",
"arrival": "2024-09-26T14:58:00",
"scheduledDeparture": "2024-09-26T14:59:00",
"scheduledArrival": "2024-09-26T14:58:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/WDN",
"departure": "2024-09-26T15:05:00",
"arrival": "2024-09-26T15:05:00",
"scheduledDeparture": "2024-09-26T15:05:00",
"scheduledArrival": "2024-09-26T15:05:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/TOD",
"departure": "2024-09-26T15:08:00",
"arrival": "2024-09-26T15:08:00",
"scheduledDeparture": "2024-09-26T15:08:00",
"scheduledArrival": "2024-09-26T15:08:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/HBD",
"departure": "2024-09-26T15:15:00",
"arrival": "2024-09-26T15:15:00",
"scheduledDeparture": "2024-09-26T15:15:00",
"scheduledArrival": "2024-09-26T15:15:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
}
],
"isDelayed": false
},
"/odyssey/journey/270:270:MCV_HBD_G37319": {
"id": "/odyssey/journey/270:270:MCV_HBD_G37319",
"origin": "/station/MCV",
"destination": "/station/HBD",
"departure": "2024-09-26T14:36:00",
"arrival": "2024-09-26T15:15:00",
"scheduledDeparture": "2024-09-26T14:36:00",
"scheduledArrival": "2024-09-26T15:15:00",
"legs": [
"/odyssey/leg/270:MCV_HBD_G37319"
],
"disruptions": "/disruption/2024-09-26T14:36:00/NT_MCV_HBD_G37319",
"isReservationCompulsory": false,
"isReservationPossible": true,
"isOvertaken": false,
"overtakingJourneysCount": 0,
"status": "ready",
"boardingTime": null,
"alightingTime": null,
"distance": 23,
"sameAsOriginalJourney": true
},
"/odyssey/leg/270:MCV_HBD_G31967": {
"type": "timetabled",
"source": "dtd",
"origin": "/station/MCV",
"destination": "/station/HBD",
"mode": "train",
"operator": "/toc/NT",
"service": {
"trainUid": "G31967",
"retailServiceId": "NT415500",
"reservationFlag": "S",
"reservable": [
"Possible"
],
"origin": "/station/MCV",
"destination": "/station/LDS",
"date": "2024-09-26",
"scheduledDeparture": "2024-09-26T14:54:00"
},
"departure": "2024-09-26T14:54:00",
"arrival": "2024-09-26T15:25:00",
"scheduledDeparture": "2024-09-26T14:54:00",
"scheduledArrival": "2024-09-26T15:25:00",
"disruptions": "/disruption/2024-09-26T14:54:00/NT_MCV_HBD_G31967",
"callingPoints": [
{
"station": "/station/MCV",
"departure": "2024-09-26T14:54:00",
"arrival": "2024-09-26T14:54:00",
"scheduledDeparture": "2024-09-26T14:54:00",
"scheduledArrival": "2024-09-26T14:54:00",
"cancelled": false,
"delayed": false,
"platform": "1",
"pickup": true,
"dropoff": false,
"activities": [
"PickUpOnly"
]
},
{
"station": "/station/RCD",
"departure": "2024-09-26T15:09:00",
"arrival": "2024-09-26T15:06:00",
"scheduledDeparture": "2024-09-26T15:09:00",
"scheduledArrival": "2024-09-26T15:06:00",
"cancelled": false,
"delayed": false,
"platform": "1",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/TOD",
"departure": "2024-09-26T15:19:00",
"arrival": "2024-09-26T15:18:00",
"scheduledDeparture": "2024-09-26T15:19:00",
"scheduledArrival": "2024-09-26T15:18:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
},
{
"station": "/station/HBD",
"departure": "2024-09-26T15:26:00",
"arrival": "2024-09-26T15:25:00",
"scheduledDeparture": "2024-09-26T15:26:00",
"scheduledArrival": "2024-09-26T15:25:00",
"cancelled": false,
"delayed": false,
"platform": "2",
"pickup": true,
"dropoff": true,
"activities": [
"Normal"
]
}
],
"isDelayed": false
},
"/odyssey/journey/270:270:MCV_HBD_G31967": {
"id": "/odyssey/journey/270:270:MCV_HBD_G31967",
"origin": "/station/MCV",
"destination": "/station/HBD",
"departure": "2024-09-26T14:54:00",
"arrival": "2024-09-26T15:25:00",
"scheduledDeparture": "2024-09-26T14:54:00",
"scheduledArrival": "2024-09-26T15:25:00",
"legs": [
"/odyssey/leg/270:MCV_HBD_G31967"
],
"disruptions": "/disruption/2024-09-26T14:54:00/NT_MCV_HBD_G31967",
"isReservationCompulsory": false,
"isReservationPossible": true,
"isOvertaken": false,
"overtakingJourneysCount": 0,
"status": "ready",
"boardingTime": null,
"alightingTime": null,
"distance": 23,
"sameAsOriginalJourney": false
},
"/station/CTR": {
"name": {
"station": "CHESTER",
"location": "CHESTER",
"display": "Chester",
"print": "Chester"
},
"code": {
"nlc": "2412",
"uic": "7024120",
"crs": "CTR",
"tiploc": "CHST",
"atco": "9100CHST"
},
"latitude": 53.196695,
"longitude": -2.879594,
"facilities": [
"BO",
"TVM",
"G",
"L",
"LI",
"LI",
"LI"
],
"groups": "/station/2412/groups",
"members": [],
"londonTerminals": "/station/2412/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "2412"
},
"/station/TOD": {
"name": {
"station": "TODMORDEN",
"location": "TODMORDEN",
"display": "Todmorden",
"print": "Todmorden"
},
"code": {
"nlc": "2677",
"uic": "7026770",
"crs": "TOD",
"tiploc": "TODMRDN",
"atco": "9100TODMRDN"
},
"latitude": 53.713818,
"longitude": -2.099659,
"facilities": [
"TVM",
"V",
"L",
"LI",
"LI",
"LI",
"LI"
],
"groups": [],
"members": [],
"londonTerminals": "/station/2677/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "2677"
},
"/station/WDN": {
"name": {
"station": "WALSDEN",
"location": "WALSDEN",
"display": "Walsden",
"print": "Walsden"
},
"code": {
"nlc": "2665",
"uic": "7026650",
"crs": "WDN",
"tiploc": "WDEN",
"atco": "9100WDEN"
},
"latitude": 53.69626,
"longitude": -2.104464,
"facilities": [
"TVM",
"L",
"LI",
"LI",
"LI"
],
"groups": [],
"members": [],
"londonTerminals": "/station/2665/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009000S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "2665"
},
"/station/LTL": {
"name": {
"station": "LITTLEBOROUGH",
"location": "LITTLEBOROUGH",
"display": "Littleborough",
"print": "Littleborough"
},
"code": {
"nlc": "2661",
"uic": "7026610",
"crs": "LTL",
"tiploc": "LITLBRO",
"atco": "9100LITLBRO"
},
"latitude": 53.642995,
"longitude": -2.094651,
"facilities": [
"TVM",
"V",
"L",
"LI",
"LI",
"LI",
"LI"
],
"groups": [],
"members": [],
"londonTerminals": "/station/2661/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "2661"
},
"/station/SMB": {
"name": {
"station": "SMITHY BRIDGE",
"location": "SMITHY BRIDGE",
"display": "Smithy Bridge",
"print": "Smithy Bridge"
},
"code": {
"nlc": "2660",
"uic": "7026600",
"crs": "SMB",
"tiploc": "SMBG",
"atco": "9100SMBG"
},
"latitude": 53.633254,
"longitude": -2.113502,
"facilities": [
"TVM",
"L",
"LI",
"LI",
"LI"
],
"groups": [],
"members": [],
"londonTerminals": "/station/2660/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "2660"
},
"/station/RCD": {
"name": {
"station": "ROCHDALE",
"location": "ROCHDALE",
"display": "Rochdale",
"print": "Rochdale"
},
"code": {
"nlc": "2924",
"uic": "7029240",
"crs": "RCD",
"tiploc": "RCHDALE",
"atco": "9100RCHDALE"
},
"latitude": 53.610307,
"longitude": -2.153524,
"facilities": [
"TVM",
"G",
"L",
"LI",
"LI",
"LI",
"LI"
],
"groups": "/station/2924/groups",
"members": [],
"londonTerminals": "/station/2924/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "2924"
},
"/station/LDS": {
"name": {
"station": "LEEDS",
"location": "LEEDS",
"display": "Leeds",
"print": "Leeds"
},
"code": {
"nlc": "8487",
"uic": "7084870",
"crs": "LDS",
"tiploc": "LEEDS",
"atco": "9100LEEDS"
},
"latitude": 53.795627,
"longitude": -1.548026,
"facilities": [
"BO",
"TVM",
"G",
"L",
"LI",
"LI",
"LI",
"LI"
],
"groups": "/station/8487/groups",
"members": [],
"londonTerminals": "/station/8487/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-085000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "8487"
},
"/station/WGW": {
"name": {
"station": "WIGAN WALLGATE",
"location": "WIGAN WALLGATE",
"display": "Wigan Wallgate",
"print": "Wigan Wallgate"
},
"code": {
"nlc": "2406",
"uic": "7024060",
"crs": "WGW",
"tiploc": "WIGANWL",
"atco": "9100WIGANWL"
},
"latitude": 53.544821,
"longitude": -2.633185,
"facilities": [
"TVM",
"G",
"L",
"LI",
"LI",
"LI",
"LI"
],
"groups": "/station/2406/groups",
"members": [],
"londonTerminals": "/station/2406/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "0446"
},
"/toc/NT": {
"code": "NT",
"name": "NORTHERN",
"description": "NORTHERN"
},
"/station/HBD": {
"name": {
"station": "HEBDEN BRIDGE",
"location": "HEBDEN BRIDGE",
"display": "Hebden Bridge",
"print": "Hebden Bridge"
},
"code": {
"nlc": "8524",
"uic": "7085240",
"crs": "HBD",
"tiploc": "HBDNBDG",
"atco": "9100HBDNBDG"
},
"latitude": 53.737587,
"longitude": -2.009059,
"facilities": [
"TVM",
"L",
"LI",
"LI",
"LI",
"LI"
],
"groups": [],
"members": [],
"londonTerminals": "/station/8524/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "8524"
},
"/station/MCV": {
"name": {
"station": "MANCHESTER VICTORIA",
"location": "MANCHESTER VIC",
"display": "Manchester Victoria",
"print": "Manchester Victoria"
},
"code": {
"nlc": "2970",
"uic": "7029700",
"crs": "MCV",
"tiploc": "MNCRVIC",
"atco": "9100MNCRVIC"
},
"latitude": 53.487468,
"longitude": -2.242599,
"facilities": [
"BO",
"TVM",
"G",
"L",
"LI",
"LI",
"LI",
"LI",
"LI"
],
"groups": "/station/2970/groups",
"members": [],
"londonTerminals": "/station/2970/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009003S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "0438"
},
"/ticket-type/DG6": {
"name": {
"display": "Advance Single",
"print": "Advance Single",
"description": "ADVANCE"
},
"ccstFormat": "X10",
"code": "DG6",
"validity": "/validity-type/64",
"isReturn": false,
"isSeason": false,
"isAdvance": true,
"isPackage": false,
"isCarnet": false,
"isFirstClass": false,
"reservationType": "B",
"maxPassengers": 1,
"minPassengers": 1,
"minAdults": 0,
"maxAdults": 1,
"minChildren": 0,
"maxChildren": 1,
"utsCode": 0,
"timeRestriction": 0,
"capriCode": "SDI",
"canBeRetailed": true,
"ticketCategory": "advance",
"reservationSupplement": null
},
"/ticket-type/DG3": {
"name": {
"display": "Advance Single",
"print": "Advance Single",
"description": "ADVANCE"
},
"ccstFormat": "X10",
"code": "DG3",
"validity": "/validity-type/64",
"isReturn": false,
"isSeason": false,
"isAdvance": true,
"isPackage": false,
"isCarnet": false,
"isFirstClass": false,
"reservationType": "B",
"maxPassengers": 1,
"minPassengers": 1,
"minAdults": 0,
"maxAdults": 1,
"minChildren": 0,
"maxChildren": 1,
"utsCode": 0,
"timeRestriction": 0,
"capriCode": "SDC",
"canBeRetailed": true,
"ticketCategory": "advance",
"reservationSupplement": null
},
"/ticket-type/DG0": {
"name": {
"display": "Advance Single",
"print": "Advance Single",
"description": "ADVANCE"
},
"ccstFormat": "X10",
"code": "DG0",
"validity": "/validity-type/64",
"isReturn": false,
"isSeason": false,
"isAdvance": true,
"isPackage": false,
"isCarnet": false,
"isFirstClass": false,
"reservationType": "B",
"maxPassengers": 1,
"minPassengers": 1,
"minAdults": 0,
"maxAdults": 1,
"minChildren": 0,
"maxChildren": 1,
"utsCode": 0,
"timeRestriction": 0,
"capriCode": "SDM",
"canBeRetailed": true,
"ticketCategory": "advance",
"reservationSupplement": null
},
"/route/00429": {
"code": "00429",
"name": {
"description": "AP NORTHERN ONLY",
"aaaDescription": null,
"print": "Valid on specified Northern Trains only",
"display": "Only valid on booked Northern services."
},
"included": [],
"excluded": [],
"lul": "NNNNNN-000000000000-_"
},
"/station/8524": {
"name": {
"station": "HEBDEN BRIDGE",
"location": "HEBDEN BRIDGE",
"display": "Hebden Bridge",
"print": "Hebden Bridge"
},
"code": {
"nlc": "8524",
"uic": "7085240",
"crs": "HBD",
"tiploc": "HBDNBDG",
"atco": "9100HBDNBDG"
},
"latitude": 53.737587,
"longitude": -2.009059,
"facilities": [
"TVM",
"L",
"LI",
"LI",
"LI",
"LI"
],
"groups": [],
"members": [],
"londonTerminals": "/station/8524/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009006S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "8524"
},
"/station/2970": {
"name": {
"station": "MANCHESTER VICTORIA",
"location": "MANCHESTER VIC",
"display": "Manchester Victoria",
"print": "Manchester Victoria"
},
"code": {
"nlc": "2970",
"uic": "7029700",
"crs": "MCV",
"tiploc": "MNCRVIC",
"atco": "9100MNCRVIC"
},
"latitude": 53.487468,
"longitude": -2.242599,
"facilities": [
"TVM",
"G",
"BO",
"L",
"LI",
"LI",
"LI",
"LI",
"LI"
],
"groups": "/station/2970/groups",
"members": [],
"londonTerminals": "/station/2970/london-terminals",
"isGoldCardLocation": false,
"lul": "NNNNNN-000000000000-_-0N009003S0",
"zoneNo": null,
"zoneInd": null,
"locIdTypes": [
"S"
],
"fareGroup": "0438"
},
"/validity-type/64": {
"code": "64",
"outward": {
"days": 1,
"months": 0,
"break": false,
"description": "BOOKDTRAINONLY"
},
"return": {
"days": 0,
"months": 0,
"break": false,
"description": "INVALID"
},
"returnMustBeAfter": {
"days": 0,
"months": 0,
"dayOfWeek": null
}
},
"/disruption/2024-09-26T14:36:00/NT_MCV_HBD_G37319": [],
"/disruption/2024-09-26T14:54:00/NT_MCV_HBD_G31967": [],
"/disruption/2024-09-26T13:57:00/NT_MCV_HBD_G30188": [],
"/disruption/2024-09-26T14:21:00/NT_MCV_HBD_G30155": [],
"/disruption/2024-09-26T13:36:00/NT_MCV_HBD_G37312": [],
"/ticket/140099": {
"fare": "/fare/130612",
"adults": 1,
"children": 0,
"transactionNumber": "92083",
"state": "Fulfilled",
"reservation": "/reservation/YR782647",
"utn": "R2FQ5R5WRFE",
"outwardValidity": {
"validFrom": "2024-09-26",
"validUntil": "2024-09-26"
},
"returnValidity": null,
"outwardPortion": "/journey/150743",
"returnPortion": null,
"supplements": [],
"seats": [
{
"seat": "/seat-reservation/94581",
"leg": "/leg/14235",
"supplement": "/supplement/113664"
}
],
"passenger": "/passenger/101137",
"originalTicket": null,
"priceCoveredByOriginalTicket": null
},
"/fare/130612": {
"ticketType": "/ticket-type/DG6",
"origin": "/station/2970",
"destination": "/station/8524",
"price": 520,
"originalPrice": 520,
"railcard": null,
"restrictionCode": "NT",
"route": "/route/00429",
"statusCode": "000",
"fareSetter": "NTH",
"xLondon": 0,
"isPlusBus": false,
"discount": null,
"childStatusDescription": null,
"adultStatusDescription": null,
"labels": [
"advance"
],
"assistedCode": null
},
"/reservation/YR782647": {
"created": "2024-09-24T12:32:35+01:00",
"seats": [
"/seat-reservation/94581"
]
},
"/seat-reservation/94581": {
"id": "94581",
"coach": "*",
"seat": "***",
"leg": "/leg/14235",
"supplement": "/supplement/113664",
"reservation": "/reservation/YR782647"
},
"/leg/14235": {
"type": "timetabled",
"origin": "/station/2970",
"destination": "/station/8524",
"service": "/service/G37319/2024-09-26",
"operator": "/toc/NT",
"mode": "train",
"scheduledDeparture": "2024-09-26T14:36:00+01:00",
"scheduledArrival": "2024-09-26T15:15:00+01:00",
"boardingTime": null,
"alightingTime": null,
"callingPoints": [
{
"crs": "MCV",
"arrival": "2024-09-26T14:33:00+01:00",
"departure": "2024-09-26T14:36:00+01:00",
"platform": "6",
"pickup": true,
"dropoff": true
},
{
"crs": "RCD",
"arrival": "2024-09-26T14:50:00+01:00",
"departure": "2024-09-26T14:51:00+01:00",
"platform": "1",
"pickup": true,
"dropoff": true
},
{
"crs": "SMB",
"arrival": "2024-09-26T14:55:00+01:00",
"departure": "2024-09-26T14:55:00+01:00",
"platform": "2",
"pickup": true,
"dropoff": true
},
{
"crs": "LTL",
"arrival": "2024-09-26T14:58:00+01:00",
"departure": "2024-09-26T14:59:00+01:00",
"platform": "2",
"pickup": true,
"dropoff": true
},
{
"crs": "WDN",
"arrival": "2024-09-26T15:05:00+01:00",
"departure": "2024-09-26T15:05:00+01:00",
"platform": "2",
"pickup": true,
"dropoff": true
},
{
"crs": "TOD",
"arrival": "2024-09-26T15:08:00+01:00",
"departure": "2024-09-26T15:08:00+01:00",
"platform": "2",
"pickup": true,
"dropoff": true
},
{
"crs": "HBD",
"arrival": "2024-09-26T15:15:00+01:00",
"departure": "2024-09-26T15:15:00+01:00",
"platform": "2",
"pickup": true,
"dropoff": true
}
]
},
"/service/G37319/2024-09-26": {
"type": "fixed",
"mode": "train",
"retailServiceId": "NT415300",
"trainUid": "G37319",
"callingPoints": "/service/G37319/2024-09-26/calling-points",
"reservable": [
"Possible from any station"
]
},
"/service/G37319/2024-09-26/calling-points": [],
"/supplement/113664": {
"type": "/supplement-type/XFS",
"transactionNumber": "92084",
"price": 0,
"isBerth": false
},
"/journey/150743": {
"distance": 23,
"co2": null,
"boardingTime": null,
"alightingTime": null,
"legs": [
"/leg/14235"
]
},
"/passenger/101137": {
"title": "Mr",
"initials": "Mateusz",
"surname": "Angulski",
"photocardNumber": null
},
"/supplement-type/XFS": {
"code": "XFS",
"type": "SEA",
"capriCode": "ZYM",
"description": "SEAT",
"shortDescription": "SEAT ",
"price": 0,
"minGroup": 1,
"maxGroup": 4,
"class": 2,
"isSeparateTicket": true,
"sundryCode": null,
"packageDirections": []
}
},
"messages": []
}
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
GET /coj-params
Params for change of journey generated based on original tickets
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"fareOrigin": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"fareDestination": {
"type": "string",
"pattern": "^/station/[A-Z0-9]+$"
},
"adults": {
"type": "number"
},
"children": {
"type": "number"
},
"pets": {
"type": "number"
},
"bikes": {
"type": "number"
},
"maxPassengers": {
"type": "number"
},
"railcards": {
"type": "array",
"items": {
"type": "string",
"pattern": "^/railcard/[A-Z0-9]{3}$"
}
},
"railcard": {
"type": [
"string",
"null"
]
},
"splits": {
"type": "boolean"
},
"singles": {
"type": "boolean"
},
"returns": {
"type": "boolean"
},
"roomSupplements": {
"type": "boolean"
},
"promoCodes": {
"type": "boolean"
},
"originalOutwardDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"originalOutwardDepartTime": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
}
},
"required": [
"fareOrigin",
"fareDestination",
"adults",
"children",
"pets",
"bikes",
"maxPassengers",
"railcards",
"splits",
"singles",
"returns",
"roomSupplements",
"promoCodes",
"originalOutwardDate",
"originalOutwardDepartTime"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"fareOrigin": "/station/1444",
"fareDestination": "/station/9328",
"adults": 1,
"children": 0,
"pets": 0,
"bikes": 1,
"maxPassengers": 2,
"railcards": [],
"splits": false,
"singles": true,
"returns": false,
"roomSupplements": false,
"promoCodes": true,
"originalOutwardDate": "2025-12-12",
"originalOutwardDepartTime": "23:45"
},
"links": []
}
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
POST /one-time-order-access
Request one time order access
Request schema (show)
{
"type": "object",
"properties": {
"orderId": {
"type": "number"
},
"surname": {
"type": "string"
},
"vendor": {
"type": "string"
}
},
"required": [
"orderId",
"surname",
"vendor"
],
"additionalProperties": false
}
Request example (show)
{
"orderId": 1234,
"surname": "Doe",
"vendor": "assertis"
}
200 application/json
Response schema (show)
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "success",
"data": {
"orderId": 667574,
"otpNonce": "jfa21kls-uiFA-SUOI-234",
"validUntil": "2025-08-28T00:32:00Z"
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
401 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
GET /passenger-assist
Check whether an email exists in passenger assist external system
Parameters
array emails
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"type": "object",
"properties": {
"data": {
"patternProperties": {
"^[A-Za-z0-9\\._%\\+-]+@[A-Za-z0-9\\.-]+\\.[A-Za-z]{2,6}$": {
"type": "object",
"properties": {
"status": {
"enum": [
"success",
"fail"
]
},
"data": {
"type": "boolean"
}
},
"required": [
"status",
"data"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"a@example.com": {
"status": "success",
"data": true
},
"b@example.com": {
"status": "success",
"data": false
}
},
"links": []
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
401 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
POST /passenger-assist
Create a passenger assist.
Request schema (show)
{
"type": "object",
"properties": {
"legs": {
"legs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
},
"seat": {
"oneOf": [
{
"type": "string",
"pattern": "^/seat-reservation/[0-9]+$"
},
{
"type": "null"
}
]
},
"journeyAssistances": {
"type": "array",
"items": {
"type": "string"
}
},
"otherAssistanceDetails": {
"type": "string"
},
"luggages": {
"type": "array",
"items": {
"enum": [
"SMALL",
"MEDIUM",
"LARGE"
]
}
}
},
"required": [
"uri",
"journeyAssistances",
"luggages"
],
"additionalProperties": false
}
}
},
"email": {
"type": "string"
}
},
"required": [
"email",
"legs"
],
"additionalProperties": false
}
Request example (show)
{
"email": "user@example.com",
"legs": [
{
"uri": "/leg/11042",
"seat": "/seat-reservation/120206",
"journeyAssistances": [
"use_of_ramp"
],
"otherAssistanceDetails": "i need a",
"luggages": [
"SMALL"
]
}
]
}
201 application/json
Response headers
string Location (required)
Response schema (show)
{
"status": "success",
"data": {
"uri": "/passenger-assist/123"
}
}
Response example (show)
{
"status": "success",
"data": {
"uri": "/passenger-assist/123"
}
}
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
424 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /passenger-assist/{id}
Return an passenger assist booking
Parameters
string include
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"type": "object",
"properties": {
"data": {
"properties": {
"id": {
"type": "number"
},
"bookingRef": {
"type": [
"string",
"null"
]
},
"passenger": {
"type": "object",
"properties": {
"email": {
"type": "string"
}
},
"required": [
"email"
],
"additionalProperties": false
},
"firstOperator": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": [
"name",
"phone"
],
"additionalProperties": false
},
"journey": {
"type": "object",
"properties": {
"outward": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
"legs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
},
"seat": {
"oneOf": [
{
"type": "string",
"pattern": "^/seat-reservation/[0-9]+$"
},
{
"type": "null"
}
]
},
"journeyAssistances": {
"type": "array",
"items": {
"type": "string"
}
},
"otherAssistanceDetails": {
"type": "string"
},
"luggages": {
"type": "array",
"items": {
"enum": [
"SMALL",
"MEDIUM",
"LARGE"
]
}
}
},
"required": [
"uri",
"journeyAssistances",
"otherAssistanceDetails",
"luggages"
]
}
}
},
"required": [
"uri",
"legs"
],
"additionalProperties": false
},
"inward": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^/journey/[0-9]+$"
},
"legs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
},
"journeyAssistances": {
"type": "array",
"items": {
"type": "string"
}
},
"otherAssistanceDetails": {
"type": "string"
},
"luggages": {
"type": "array",
"items": {
"enum": [
"SMALL",
"MEDIUM",
"LARGE"
]
}
}
},
"required": [
"uri",
"journeyAssistances",
"otherAssistanceDetails",
"luggages"
]
}
}
},
"required": [
"uri",
"legs"
],
"additionalProperties": false
}
},
"required": [
"outward"
],
"additionalProperties": false
},
"metadata": {
"type": "object",
"properties": {
"state": {
"enum": [
"requested",
"booking",
"cancelling",
"failed-booking",
"failed-cancelling",
"booked",
"cancelled"
]
},
"requestedAt": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
"bookedAt": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"cancelledAt": {
"oneOf": [
{
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
},
{
"type": "null"
}
]
},
"stateChanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"changed",
"booking",
"cancelling",
"failed-booking",
"failed-cancelling"
]
},
"at": {
"oneOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+\\d{2}\\d{2}$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
},
{
"type": "string",
"pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$"
}
]
}
},
"required": [
"type",
"at"
]
}
}
},
"required": [
"state",
"requestedAt",
"stateChanges"
],
"additionalProperties": false
}
},
"required": [
"id",
"passenger",
"journey",
"metadata"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"id": 8,
"bookingRef": "PA1234567",
"passenger": {
"email": "user@example.com"
},
"firstOperator": {
"name": "First Operator",
"email": "help@first_op.com",
"phone": "0208 123 4567"
},
"journey": {
"outward": {
"uri": "/journey/164087",
"legs": [
{
"uri": "/leg/11042",
"seat": "/seat-reservation/120206",
"journeyAssistances": [
"use_of_ramp"
],
"otherAssistanceDetails": "",
"luggages": [
"SMALL"
]
}
]
}
},
"metadata": {
"state": "cancelled",
"requestedAt": "2025-12-12T11:21:30.087Z",
"bookedAt": "2025-12-12T11:22:07.000Z",
"cancelledAt": "2025-12-12T11:33:08.000Z",
"stateChanges": [
{
"type": "changed",
"at": "2025-12-12T11:21:30.087Z"
},
{
"type": "changed",
"at": "2025-12-12T11:22:01.077Z"
},
{
"type": "booking",
"at": "2025-12-12T11:22:02.000Z"
},
{
"type": "failed-booking",
"at": "2025-12-12T11:22:03.000Z",
"error": "GBR_EXCEPTION_3000"
},
{
"type": "booking",
"at": "2025-12-12T11:22:05.000Z"
},
{
"type": "cancelling",
"at": "2025-12-12T11:33:02.000Z"
},
{
"type": "failed-cancelling",
"at": "2025-12-12T11:33:03.000Z",
"error": "GBR_PA_6302"
},
{
"type": "cancelling",
"at": "2025-12-12T11:33:05.000Z"
}
]
}
},
"links": []
}
401 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
PUT /passenger-assist/{id}
Update an existing passenger assist booking.
Headers
string X-Token-Data (required)
Request schema (show)
{
"type": "object",
"properties": {
"legs": {
"legs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^/leg/[0-9]+$"
},
"seat": {
"oneOf": [
{
"type": "string",
"pattern": "^/seat-reservation/[0-9]+$"
},
{
"type": "null"
}
]
},
"journeyAssistances": {
"type": "array",
"items": {
"type": "string"
}
},
"otherAssistanceDetails": {
"type": "string"
},
"luggages": {
"type": "array",
"items": {
"enum": [
"SMALL",
"MEDIUM",
"LARGE"
]
}
}
},
"required": [
"uri",
"journeyAssistances",
"luggages"
],
"additionalProperties": false
}
}
},
"email": {
"type": "string"
}
},
"required": [
"email",
"legs"
],
"additionalProperties": false
}
Request example (show)
{
"email": "user@example.com",
"legs": [
{
"uri": "/leg/11042",
"seat": "/seat-reservation/120206",
"journeyAssistances": [
"use_of_ramp"
],
"otherAssistanceDetails": "i need a",
"luggages": [
"SMALL"
]
}
]
}
200 application/json
Response schema (show)
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
DELETE /passenger-assist/{id}
Cancel a passenger assist booking.
Headers
string X-Token-Data (required)
422 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Returns a paginated list of the authenticated customer's journeys whose validity ends today or earlier (fulfilled orders only).
GET /journeys-valid-until-today
Parameters
integer limit
Number of items per page (1–20, default 5)
integer page
Page number (default 1)
string include
Comma-separated list of related resources to embed
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"description": "Current page number"
},
"perPage": {
"type": "integer",
"description": "Items per page"
},
"lastPage": {
"type": "integer",
"description": "Last available page number"
}
},
"required": [
"page",
"perPage",
"lastPage"
],
"additionalProperties": false
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"journey": {
"type": "string",
"description": "URI of the journey"
},
"tickets": {
"type": "array",
"items": {
"type": "string"
},
"description": "URIs of associated tickets"
},
"order": {
"type": "string",
"description": "URI of the order"
},
"refund": {
"type": "string",
"description": "URI of the refund resource for the order"
}
},
"required": [
"journey",
"tickets",
"order",
"refund"
],
"additionalProperties": false
}
}
},
"required": [
"meta",
"data"
],
"additionalProperties": false
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": {
"meta": {
"page": 1,
"perPage": 5,
"lastPage": 3
},
"data": [
{
"journey": "/journey/101",
"tickets": [
"/ticket/201",
"/ticket/202"
],
"order": "/order/301",
"refund": "/refund/order/301"
}
]
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Returns a paginated list of the authenticated customer's journeys that are valid from today onwards (fulfilled orders only).
GET /journeys-valid-from-today
Parameters
integer limit
Number of items per page (1–20, default 5)
integer page
Page number (default 1)
string include
Comma-separated list of related resources to embed
Headers
string X-Token-Data (required)
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"description": "Current page number"
},
"perPage": {
"type": "integer",
"description": "Items per page"
},
"lastPage": {
"type": "integer",
"description": "Last available page number"
}
},
"required": [
"page",
"perPage",
"lastPage"
],
"additionalProperties": false
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"journey": {
"type": "string",
"description": "URI of the journey"
},
"tickets": {
"type": "array",
"items": {
"type": "string"
},
"description": "URIs of associated tickets"
},
"order": {
"type": "string",
"description": "URI of the order"
},
"refund": {
"type": "string",
"description": "URI of the refund resource for the order"
}
},
"required": [
"journey",
"tickets",
"order",
"refund"
],
"additionalProperties": false
}
}
},
"required": [
"meta",
"data"
],
"additionalProperties": false
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": {
"meta": {
"page": 1,
"perPage": 5,
"lastPage": 2
},
"data": [
{
"journey": "/journey/102",
"tickets": [
"/ticket/203"
],
"order": "/order/302",
"refund": "/refund/order/302"
}
]
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Returns HEX Premier+ product codes mapped to passenger age groups.
GET /hex/premier-products
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"type": "object",
"description": "Map of age group label to HEX Premier+ product code",
"additionalProperties": {
"type": "string",
"description": "HEX Premier+ product code for the age group"
}
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
},
"required": [
"status"
],
"additionalProperties": false
}
Response example (show)
{
"status": "success",
"data": {
"0-2": "HEXINF",
"3-11": "HEXCHD",
"12-15": "HEXJNR",
"16+": "HEXADU"
}
}
S-Ticket authentication endpoints.
URI parameters
string sTicketCustomerId (required)
Pattern: ^\d+$
GET /s-ticket/customers/{sTicketCustomerId}
Authenticates an S-Ticket customer and returns their basic profile. Requires matching X-Access-Token and tenant headers.
Headers
string X-Token-Data (required)
string X-Access-Token (required)
string X-Tenant (required)
200 application/json
Response schema (show)
{
"type": "object",
"properties": {
"result": {
"type": "object",
"properties": {
"firstNames": {
"type": "string",
"description": "Customer first names"
},
"surname": {
"type": "string",
"description": "Customer surname"
},
"email": {
"type": "string",
"description": "Customer email address"
},
"title": {
"type": "string",
"description": "Customer title"
}
},
"required": [
"firstNames",
"surname",
"email",
"title"
],
"additionalProperties": false
}
},
"required": [
"result"
],
"additionalProperties": false
}
Response example (show)
{
"result": {
"firstNames": "John",
"surname": "Doe",
"email": "noreply@assertis.co.uk",
"title": "Mx"
}
}
401 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
403 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"message"
]
}
]
}
Delivery
Introduction
Welcome to the Delivery API Documentation. The Delivery API allows you to read delivery mothods available in TIS. It also allow you to check which delivery methods are available for particular order.
URI parameters
string id (required)
Pattern: ^[a-z0-9\-]+$
GET /delivery/{id}
Read particular delivery method details
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"uri": {
"type": "string"
},
"displayOrder": {
"type": "number"
},
"name": {
"type": "string"
},
"time": {
"type": "string"
},
"requirements": {
"type": "string"
},
"fulfilmentType": {
"type": "number"
},
"price": {
"type": "number"
},
"isForCarnet": {
"type": "boolean"
},
"isForSeason": {
"type": "boolean"
},
"isForSeasonAnnual": {
"type": "boolean"
},
"isForSingle": {
"type": "boolean"
},
"minSecondsBefore": {
"type": [
"number",
"null"
]
},
"minWorkingDaysBefore": {
"type": [
"number",
"null"
]
},
"minValue": {
"type": [
"number",
"null"
]
},
"maxValue": {
"type": [
"number",
"null"
]
},
"active": {
"type": "boolean"
},
"maxTickets": {
"type": [
"number",
"null"
]
}
},
"required": [
"uri",
"displayOrder",
"name",
"time",
"requirements",
"fulfilmentType",
"price",
"isForCarnet",
"isForSeason",
"isForSeasonAnnual",
"isForSingle",
"minSecondsBefore",
"minWorkingDaysBefore",
"maxValue"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"id": "first-class-post",
"uri": "/delivery-method/first-class-post",
"displayOrder": 2,
"name": "First class post",
"time": "(allow up to five working days)",
"requirements": "Postal address",
"fulfilmentType": 9,
"price": 150,
"isForCarnet": false,
"isForSeason": false,
"isForSeasonAnnual": false,
"isForSingle": true,
"minSecondsBefore": null,
"minWorkingDaysBefore": 5,
"minValue": null,
"maxValue": 25000,
"active": true
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"status",
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Delivery method with id abc does not exist.",
"code": "ERR-NOT-FOUND"
}
URI parameters
string id (required)
Pattern: ^[a-z0-9\-]+$
GET /delivery-method/{id}
Read particular delivery method details
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"uri": {
"type": "string"
},
"displayOrder": {
"type": "number"
},
"name": {
"type": "string"
},
"time": {
"type": "string"
},
"requirements": {
"type": "string"
},
"fulfilmentType": {
"type": "number"
},
"price": {
"type": "number"
},
"isForCarnet": {
"type": "boolean"
},
"isForSeason": {
"type": "boolean"
},
"isForSeasonAnnual": {
"type": "boolean"
},
"isForSingle": {
"type": "boolean"
},
"minSecondsBefore": {
"type": [
"number",
"null"
]
},
"minWorkingDaysBefore": {
"type": [
"number",
"null"
]
},
"minValue": {
"type": [
"number",
"null"
]
},
"maxValue": {
"type": [
"number",
"null"
]
},
"active": {
"type": "boolean"
},
"maxTickets": {
"type": [
"number",
"null"
]
}
},
"required": [
"uri",
"displayOrder",
"name",
"time",
"requirements",
"fulfilmentType",
"price",
"isForCarnet",
"isForSeason",
"isForSeasonAnnual",
"isForSingle",
"minSecondsBefore",
"minWorkingDaysBefore",
"maxValue"
],
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"id": "first-class-post",
"uri": "/delivery-method/first-class-post",
"displayOrder": 2,
"name": "First class post",
"time": "(allow up to five working days)",
"requirements": "Postal address",
"fulfilmentType": 9,
"price": 150,
"isForCarnet": false,
"isForSeason": false,
"isForSeasonAnnual": false,
"isForSingle": true,
"minSecondsBefore": null,
"minWorkingDaysBefore": 5,
"minValue": null,
"maxValue": 25000,
"active": true
}
}
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"status",
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Delivery method with id abc does not exist.",
"code": "ERR-NOT-FOUND"
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /delivery/order/{id}
Read all delivery methods available for particular order
Parameters
string format
Possible values are legacy and links. Currently defaults to legacy.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": [
"/delivery-method/first-class-post"
],
"links": {
"/delivery-method/first-class-post": {
"id": "first-class-post",
"uri": "/delivery-method/first-class-post",
"displayOrder": 2,
"name": "First class post",
"time": "(allow up to five working days)",
"requirements": "Postal address",
"fulfilmentType": 9,
"price": 150,
"isForCarnet": false,
"isForSeason": false,
"isForSeasonAnnual": false,
"isForSingle": true,
"minSecondsBefore": null,
"minWorkingDaysBefore": 5,
"minValue": null,
"maxValue": 25000
}
}
}
204 text/html
Response headers
string X-Message
Explanation of lack of delivery methods for order
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"status",
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Order with id 1234 was not found",
"code": "ERR-NOT-FOUND"
}
URI parameters
string fareOrigin (required)
Fare origin station NLC code
Pattern: ^.+$
string fareDestination (required)
Fare destination station NLC code
Pattern: ^.+$
string journeyOrigin (required)
Journey origin station NLC code
Pattern: ^.+$
string journeyDestination (required)
Journey destination station NLC code
Pattern: ^.+$
string travelDate (required)
Pattern: ^\d{4}\-\d{2}\-\d{2}$
Example: 1618358400
string routeCode (required)
Pattern: ^\d{5}$
Example: 00345
string ticketCodes (required)
A list of ticket codes separated by commas
Example: ABC,DEF,GHI
GET /delivery/params/{fareOrigin}/{fareDestination}/{journeyOrigin}/{journeyDestination}/{travelDate}/{routeCode}/{ticketCodes}
Read all delivery methods available for provided parameters
Parameters
string format
Possible values are legacy and links. Currently defaults to legacy.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": [
"/delivery-method/first-class-post"
],
"links": {
"/delivery-method/first-class-post": {
"id": "first-class-post",
"uri": "/delivery-method/first-class-post",
"displayOrder": 2,
"name": "First class post",
"time": "(allow up to five working days)",
"requirements": "Postal address",
"fulfilmentType": 9,
"price": 150,
"isForCarnet": false,
"isForSeason": false,
"isForSeasonAnnual": false,
"isForSingle": true,
"minSecondsBefore": null,
"minWorkingDaysBefore": 5,
"minValue": null,
"maxValue": 25000
}
}
}
204 text/html
Response headers
string X-Message
Explanation of lack of delivery methods for provided parameters
404 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"status",
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Order with id 1234 was not found",
"code": "ERR-NOT-FOUND"
}
URI parameters
string inputs (required)
Items to be checked as comma-separated fareOrigin-fareDestination-journeyOrigin-journeyDestination-routeCode-ticketCode.
Each item can end with -price-annual-count: the price of one ticket in pence, 1 for an
annual season ticket, otherwise 0, and the number of these tickets (1-999). Then the answer
applies the same checks as /delivery/order/{id}, over the whole request: season, annual and
carnet filters, minimum and maximum value, maximum ticket count and logged-in user. Send
the departure date and time as date. When every ticket is a season ticket, send its validity
start date instead: the delivery date is the end of that day, as on the order path. Send all
items in one form: a mix is refused with 400. Items without the suffix keep the old checks.
An item that does not have 6 or 9 parts, such as the empty item after a trailing comma, is
refused with 400.
Pattern: ^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{5}-[A-Za-z0-9]{3}(-[0-9]{1,9}-[01]-[1-9][0-9]{0,2})?(,[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{5}-[A-Za-z0-9]{3}(-[0-9]{1,9}-[01]-[1-9][0-9]{0,2})?)*$
Example: 8487-8263-8487-8263-00000-SDS,8487-8263-8487-8263-00000-1AF
GET /delivery/params/{inputs}
Read the delivery methods every input can use. meta says which licensee the answer is for and,
per input, whether RCS lets that licensee type retail the ticket on that channel.
Parameters
string format
Possible values are bool, list and legacy. Defaults to bool.
string date
Travel date the delivery lead times are checked against. Defaults to today. A value that is not a date is a 400.
Example: 2026-10-08
string licenseeType
RCS licensee type id to answer for: one of the licenseeTypes listed by /delivery/rcs/reference. Defaults to the tenant's configured type.
Pattern: ^[0-9]{1,4}$
Example: 2
string licensee
RCS licensee format (the TOC business code) to answer for: one of the licensees listed by
/delivery/rcs/reference, or exactly * for no specific licensee. Defaults to the tenant's
configured licensee.
Pattern: ^[A-Za-z0-9*]{1,20}$
Example: HO
string channel
RCS channel id to answer for: one of the channels listed by /delivery/rcs/reference. Defaults to the tenant's configured channel.
Pattern: ^[0-9]{1,4}$
Example: 6
Headers
string X-Token-Data
The session token as JSON. Only used with extended items: methods that require a logged-in
user are offered only when it has a userId. A missing or invalid token counts as anonymous.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"required": [
"meta"
],
"properties": {
"data": {
"description": "bool: delivery method id => true (an empty array when there is none). list: delivery method URIs. legacy: delivery methods.",
"type": [
"object",
"array"
]
},
"meta": {
"description": "The licensee an answer was computed for and the RCS channel verdict of each input",
"type": "object",
"required": [
"licensee",
"inputs"
],
"properties": {
"licensee": {
"type": "object",
"required": [
"licenseeType",
"licensee",
"channel"
],
"properties": {
"licenseeType": {
"type": "integer"
},
"licensee": {
"description": "null when no specific licensee applies",
"type": [
"string",
"null"
]
},
"channel": {
"type": "integer"
}
},
"additionalProperties": false
},
"inputs": {
"description": "One entry per input, in request order",
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"ticketCode",
"allowedOnChannel"
],
"properties": {
"input": {
"type": "string"
},
"ticketCode": {
"type": "string"
},
"allowedOnChannel": {
"description": "Whether RCS lets this licensee type retail the ticket on this channel. False when RCS has no record of the ticket code.",
"type": "boolean"
}
},
"additionalProperties": false
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"e-ticket": true,
"tod": true
},
"links": [],
"debug": [
"[post] No fulfilment method flow"
],
"meta": {
"licensee": {
"licenseeType": 1,
"licensee": "HO",
"channel": 6
},
"inputs": [
{
"input": "8487-8263-8487-8263-00000-SDS",
"ticketCode": "SDS",
"allowedOnChannel": true
}
]
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"status",
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Input validation failed",
"code": "ERR-VALIDATION",
"data": {
"channel": "Must be a numeric id of up to 4 digits",
"licensee": "Not one of the values listed by /delivery/rcs/reference"
},
"links": []
}
URI parameters
string inputs (required)
Items to be checked as comma-separated fareOrigin-fareDestination-journeyOrigin-journeyDestination-routeCode-ticketCode.
Each item can end with -price-annual-count: the price of one ticket in pence, 1 for an
annual season ticket, otherwise 0, and the number of these tickets (1-999). Then the answer
applies the same checks as /delivery/order/{id}, over the whole request: season, annual and
carnet filters, minimum and maximum value, maximum ticket count and logged-in user. Send
the departure date and time as date. When every ticket is a season ticket, send its validity
start date instead: the delivery date is the end of that day, as on the order path. Send all
items in one form: a mix is refused with 400. Items without the suffix keep the old checks.
An item that does not have 6 or 9 parts, such as the empty item after a trailing comma, is
refused with 400.
Pattern: ^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{5}-[A-Za-z0-9]{3}(-[0-9]{1,9}-[01]-[1-9][0-9]{0,2})?(,[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{5}-[A-Za-z0-9]{3}(-[0-9]{1,9}-[01]-[1-9][0-9]{0,2})?)*$
Example: 8487-8263-8487-8263-00000-SDS,8487-8263-8487-8263-00000-1AF
GET /delivery/all-by-params/{inputs}
Every configured delivery method in display order, available or not, for the same inputs and
parameters as /delivery/params/{inputs}, for example for Odyssey's allFares mode. Every check
of every method is run for every input, so reasons lists the code of every reason why a method
is not available: being inactive or having no RCS fulfilment method is one reason among the
others. A ticket code RCS does not know refuses every method instead of failing. debug says
the same reasons to people, with their values (e.g. the minimum price). meta is the same as on
/delivery/params/{inputs}. This is slower than /delivery/params/{inputs}.
| Code | The method is refused because |
|------|-------------------------------|
| inactive | it is not active in the tenant's config |
| no-fulfilment-method | RCS has no fulfilment method of its type for the ticket and flow |
| not-enough-working-days | there are too few working days before the departure (post) |
| departure-too-soon | the departure is too soon |
| not-for-season | it is not for season tickets |
| not-for-annual | it is not for annual season tickets |
| not-for-single | it is not for single tickets |
| reservation-required | its fulfilment needs a reservation, and a ticket has none |
| below-min-value | the total price is not above its minimum |
| above-max-value | the total price is above its maximum |
| too-many-tickets | there are more tickets than its maximum |
| not-for-london-zone | e-ticket, for a fare to or from a London zone |
| not-for-plusbus | e-ticket, for a PlusBus ticket |
| login-required | it needs a logged-in user, and the token has none |
| e-ticket-disabled-for-ticket-type | e-ticket, which the tenant disables for a ticket type |
| not-allowed-on-channel | RCS does not let the licensee sell a ticket on the channel (every method) |
| unknown-ticket-type | Ride does not know a ticket code (every method) |
| unknown-rcs-ticket | RCS does not know a ticket code for today (every method) |
| not-available | none of the above, which should not happen |
Parameters
string date
Travel date the delivery lead times are checked against. Defaults to today. A value that is not a date is a 400.
Example: 2026-10-08
string licenseeType
RCS licensee type id to answer for: one of the licenseeTypes listed by /delivery/rcs/reference. Defaults to the tenant's configured type.
Pattern: ^[0-9]{1,4}$
Example: 2
string licensee
RCS licensee format (the TOC business code) to answer for: one of the licensees listed by
/delivery/rcs/reference, or exactly * for no specific licensee. Defaults to the tenant's
configured licensee.
Pattern: ^[A-Za-z0-9*]{1,20}$
Example: HO
string channel
RCS channel id to answer for: one of the channels listed by /delivery/rcs/reference. Defaults to the tenant's configured channel.
Pattern: ^[0-9]{1,4}$
Example: 6
Headers
string X-Token-Data
The session token as JSON. Only used with extended items: methods that require a logged-in
user are offered only when it has a userId. A missing or invalid token counts as anonymous.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"required": [
"meta"
],
"properties": {
"data": {
"description": "Every delivery method id, in display order.",
"type": "object",
"additionalProperties": {
"type": "object",
"required": [
"active",
"available",
"reasons"
],
"properties": {
"active": {
"type": "boolean",
"description": "Whether the method is active in the tenant config."
},
"available": {
"type": "boolean",
"description": "Whether the method is available for every input: true when reasons is empty."
},
"reasons": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z]+(-[a-z]+)*$"
},
"description": "The code of every reason why the method is not available (see the endpoint's description)."
}
}
}
},
"meta": {
"description": "The licensee an answer was computed for and the RCS channel verdict of each input",
"type": "object",
"required": [
"licensee",
"inputs"
],
"properties": {
"licensee": {
"type": "object",
"required": [
"licenseeType",
"licensee",
"channel"
],
"properties": {
"licenseeType": {
"type": "integer"
},
"licensee": {
"description": "null when no specific licensee applies",
"type": [
"string",
"null"
]
},
"channel": {
"type": "integer"
}
},
"additionalProperties": false
},
"inputs": {
"description": "One entry per input, in request order",
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"ticketCode",
"allowedOnChannel"
],
"properties": {
"input": {
"type": "string"
},
"ticketCode": {
"type": "string"
},
"allowedOnChannel": {
"description": "Whether RCS lets this licensee type retail the ticket on this channel. False when RCS has no record of the ticket code.",
"type": "boolean"
}
},
"additionalProperties": false
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"tod": {
"active": true,
"available": true,
"reasons": []
},
"first-class-post": {
"active": true,
"available": false,
"reasons": [
"not-enough-working-days"
]
},
"e-ticket": {
"active": true,
"available": true,
"reasons": []
},
"new-smartcard": {
"active": false,
"available": false,
"reasons": [
"inactive",
"no-fulfilment-method"
]
}
},
"links": [],
"debug": [
"[first-class-post] Not enough working days for delivery",
"[new-smartcard] Inactive",
"[new-smartcard] No fulfilment method flow"
],
"meta": {
"licensee": {
"licenseeType": 1,
"licensee": "HO",
"channel": 6
},
"inputs": [
{
"input": "8487-8263-8487-8263-00000-SDS-4550-0-1",
"ticketCode": "SDS",
"allowedOnChannel": true
}
]
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"status",
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Input validation failed",
"code": "ERR-VALIDATION",
"data": {
"channel": "Must be a numeric id of up to 4 digits",
"licensee": "Not one of the values listed by /delivery/rcs/reference"
},
"links": []
}
Selector values for the licenseeType, licensee and channel parameters, from the RCS tables.
GET /delivery/rcs/reference
200 application/json
Response schema (show)
{
"definitions": {
"describedIds": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"description"
],
"properties": {
"id": {
"type": "integer"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"required": [
"licenseeTypes",
"channels",
"licensees",
"defaults"
],
"properties": {
"licenseeTypes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"description"
],
"properties": {
"id": {
"type": "integer"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}
},
"channels": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"description"
],
"properties": {
"id": {
"type": "integer"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}
},
"licensees": {
"description": "Distinct licensee formats (TOC business codes) present in the RCS ticket tables",
"type": "array",
"items": {
"type": "string"
}
},
"defaults": {
"description": "The tenant's configured licensee, i.e. what the parameters default to",
"type": "object",
"required": [
"licenseeType",
"licensee",
"channel"
],
"properties": {
"licenseeType": {
"type": "integer"
},
"licensee": {
"type": [
"string",
"null"
]
},
"channel": {
"type": "integer"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"licenseeTypes": [
{
"id": 1,
"description": "TOC"
},
{
"id": 2,
"description": "Third Party"
}
],
"channels": [
{
"id": 4,
"description": "TVM"
},
{
"id": 6,
"description": "Web"
}
],
"licensees": [
"EB",
"HO"
],
"defaults": {
"licenseeType": 2,
"licensee": null,
"channel": 6
}
}
}
URI parameters
string fareOrigin (required)
Fare origin station NLC code
Pattern: ^.+$
string fareDestination (required)
Fare destination station NLC code
Pattern: ^.+$
string journeyOrigin (required)
Journey origin station NLC code
Pattern: ^.+$
string journeyDestination (required)
Journey destination station NLC code
Pattern: ^.+$
string routeCode (required)
Pattern: ^\d{5}$
Example: 00345
string ticketCode (required)
A list of ticket codes separated by commas
Example: SOS,SSS
GET /has-e-ticket/{fareOrigin}/{fareDestination}/{journeyOrigin}/{journeyDestination}/{routeCode}/{ticketCodes}
Check whether a specific ticket set can be an e-ticket
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"e-ticket": {
"type": "boolean"
}
},
"required": [
"e-ticket"
],
"additionalProperties": false
},
"meta": {
"description": "The licensee an answer was computed for and the RCS channel verdict of each input",
"type": "object",
"required": [
"licensee",
"inputs"
],
"properties": {
"licensee": {
"type": "object",
"required": [
"licenseeType",
"licensee",
"channel"
],
"properties": {
"licenseeType": {
"type": "integer"
},
"licensee": {
"description": "null when no specific licensee applies",
"type": [
"string",
"null"
]
},
"channel": {
"type": "integer"
}
},
"additionalProperties": false
},
"inputs": {
"description": "One entry per input, in request order",
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"ticketCode",
"allowedOnChannel"
],
"properties": {
"input": {
"type": "string"
},
"ticketCode": {
"type": "string"
},
"allowedOnChannel": {
"description": "Whether RCS lets this licensee type retail the ticket on this channel. False when RCS has no record of the ticket code.",
"type": "boolean"
}
},
"additionalProperties": false
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"e-ticket": true
}
}
URI parameters
string fareOrigin (required)
Fare origin station NLC code
Pattern: ^.+$
string fareDestination (required)
Fare destination station NLC code
Pattern: ^.+$
string journeyOrigin (required)
Journey origin station NLC code
Pattern: ^.+$
string journeyDestination (required)
Journey destination station NLC code
Pattern: ^.+$
string ticketAndRouteCodes (required)
Comma-separated list of ticketCode:routeCode pairs (e.g. SOS:00345,SSS:00345)
Pattern: ^[A-Z0-9]+:[0-9]{5}(,[A-Z0-9]+:[0-9]{5})*$
Example: SOS:00345,SSS:00346
GET /has-e-ticket/{fareOrigin}/{fareDestination}/{journeyOrigin}/{journeyDestination}/{ticketAndRouteCodes}
Check whether a specific ticket set can be an e-ticket (one route code per ticket)
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"e-ticket": {
"type": "boolean"
}
},
"required": [
"e-ticket"
],
"additionalProperties": false
},
"meta": {
"description": "The licensee an answer was computed for and the RCS channel verdict of each input",
"type": "object",
"required": [
"licensee",
"inputs"
],
"properties": {
"licensee": {
"type": "object",
"required": [
"licenseeType",
"licensee",
"channel"
],
"properties": {
"licenseeType": {
"type": "integer"
},
"licensee": {
"description": "null when no specific licensee applies",
"type": [
"string",
"null"
]
},
"channel": {
"type": "integer"
}
},
"additionalProperties": false
},
"inputs": {
"description": "One entry per input, in request order",
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"ticketCode",
"allowedOnChannel"
],
"properties": {
"input": {
"type": "string"
},
"ticketCode": {
"type": "string"
},
"allowedOnChannel": {
"description": "Whether RCS lets this licensee type retail the ticket on this channel. False when RCS has no record of the ticket code.",
"type": "boolean"
}
},
"additionalProperties": false
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"e-ticket": true
}
}
URI parameters
string items (required)
Items to be checked as comma-separated fareOrigin-fareDestination-journeyOrigin-journeyDestination-routeCode-ticketCode.
Each item can end with -price-annual-count: the price of one ticket in pence, 1 for an
annual season ticket, otherwise 0, and the number of these tickets (1-999). Then the answer
applies the same checks as /delivery/order/{id}, over the whole request: season, annual and
carnet filters, minimum and maximum value, maximum ticket count and logged-in user. Send
the departure date and time as date. When every ticket is a season ticket, send its validity
start date instead: the delivery date is the end of that day, as on the order path. Send all
items in one form: a mix is refused with 400. Items without the suffix keep the old checks.
An item that does not have 6 or 9 parts, such as the empty item after a trailing comma, is
refused with 400.
Pattern: ^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{5}-[A-Za-z0-9]{3}(-[0-9]{1,9}-[01]-[1-9][0-9]{0,2})?(,[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{5}-[A-Za-z0-9]{3}(-[0-9]{1,9}-[01]-[1-9][0-9]{0,2})?)*$
Example: 1234-5678-9012-3456-78901-ABC,1234-5678-9012-3456-78901-DEF
GET /has-e-ticket/{items}
Check whether a specific ticket set can be an e-ticket: whether /delivery/params/{inputs} would
offer e-ticket for the same inputs and date. When any of the licensee parameters is
sent, the response also carries meta (the licensee answered for and the RCS channel verdict
of each input); without them it is unchanged.
Parameters
string date
Travel date the delivery lead times are checked against. Defaults to today. A value that is not a date is a 400.
Example: 2026-10-08
string licenseeType
RCS licensee type id to answer for: one of the licenseeTypes listed by /delivery/rcs/reference. Defaults to the tenant's configured type.
Pattern: ^[0-9]{1,4}$
Example: 2
string licensee
RCS licensee format (the TOC business code) to answer for: one of the licensees listed by
/delivery/rcs/reference, or exactly * for no specific licensee. Defaults to the tenant's
configured licensee.
Pattern: ^[A-Za-z0-9*]{1,20}$
Example: HO
string channel
RCS channel id to answer for: one of the channels listed by /delivery/rcs/reference. Defaults to the tenant's configured channel.
Pattern: ^[0-9]{1,4}$
Example: 6
Headers
string X-Token-Data
The session token as JSON. Only used with extended items: methods that require a logged-in
user are offered only when it has a userId. A missing or invalid token counts as anonymous.
200 application/json
Response schema (show)
{
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"properties": {
"e-ticket": {
"type": "boolean"
}
},
"required": [
"e-ticket"
],
"additionalProperties": false
},
"meta": {
"description": "The licensee an answer was computed for and the RCS channel verdict of each input",
"type": "object",
"required": [
"licensee",
"inputs"
],
"properties": {
"licensee": {
"type": "object",
"required": [
"licenseeType",
"licensee",
"channel"
],
"properties": {
"licenseeType": {
"type": "integer"
},
"licensee": {
"description": "null when no specific licensee applies",
"type": [
"string",
"null"
]
},
"channel": {
"type": "integer"
}
},
"additionalProperties": false
},
"inputs": {
"description": "One entry per input, in request order",
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"ticketCode",
"allowedOnChannel"
],
"properties": {
"input": {
"type": "string"
},
"ticketCode": {
"type": "string"
},
"allowedOnChannel": {
"description": "Whether RCS lets this licensee type retail the ticket on this channel. False when RCS has no record of the ticket code.",
"type": "boolean"
}
},
"additionalProperties": false
}
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"e-ticket": true
}
}
400 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
}
}
},
{
"required": [
"status",
"message"
]
}
]
}
Response example (show)
{
"status": "fail",
"message": "Input validation failed",
"code": "ERR-VALIDATION",
"data": {
"channel": "Must be a numeric id of up to 4 digits",
"licensee": "Not one of the values listed by /delivery/rcs/reference"
},
"links": []
}
Card Payments
Secure Trading API
The card payments API processes card payments with 3d secure and fraud checks.
POST /st-card-payment
Request schema (show)
{
"description": "Card payment request",
"type": "object",
"additionalProperties": false,
"required": [
"order",
"amount",
"callback"
],
"properties": {
"order": {
"type": [
"string"
],
"pattern": "/order/[0-9]+"
},
"amount": {
"type": "integer",
"description": "Amount pence in GBP"
},
"callback": {
"type": "string",
"description": "Callback url required for 3d secure payments"
},
"cardToken": {
"type": "string"
},
"expiryMonth": {
"type": "integer"
},
"expiryYear": {
"type": "integer"
},
"billingAddress": {
"description": "Card payment billing address schema",
"type": "object",
"additionalProperties": false,
"required": [
"title",
"firstNames",
"surname",
"address1",
"town",
"country"
],
"properties": {
"title": {
"description": "e.g. Mr, Miss, Dr",
"type": "string",
"maxLength": 25
},
"firstNames": {
"type": "string",
"maxLength": 254
},
"surname": {
"type": "string",
"maxLength": 127
},
"address1": {
"type": "string",
"maxLength": 25
},
"address2": {
"type": "string",
"maxLength": 127
},
"address3": {
"type": "string",
"maxLength": 127
},
"town": {
"type": "string",
"maxLength": 127
},
"county": {
"description": "For US addresses, the state would be entered in this field",
"type": "string",
"maxLength": 127
},
"postCode": {
"description": "If the country provided is not United States, Great Britain or Canada, or if no country is provided, the postcode field is not validated",
"type": "string",
"maxLength": 25
},
"country": {
"description": "This will need to be in ISO2A format. https://www.securetrading.com/docs/document/toolbox/country-codes/",
"type": "string",
"pattern": "^[A-Z]{2}$",
"maxLength": 2
},
"telephoneNumber": {
"type": "string",
"pattern": "^[0-9\\-\\+\\(\\)\\s]{0,20}$",
"maxLength": 20
},
"email": {
"type": "string",
"pattern": "^.*$",
"maxLength": 255
},
"marketingSignup": {
"type": "boolean"
}
}
},
"storedCard": {
"type": [
"string"
],
"pattern": "/st-card/[0-9]+"
},
"currency": {
"type": "string",
"default": "GBP",
"description": "One of currency codes from https://docs.trustpayments.com/document/toolbox/currency-codes/ that is available on the secure trading account",
"pattern": "^[A-Z]{3}$"
},
"localAmount": {
"type": "integer",
"description": "Amount pence in selected currency"
}
}
}
Request example (show)
{
"order": "/order/1",
"amount": 1000,
"expiryMonth": 10,
"expiryYear": 2029,
"cardToken": "abcd1234",
"billingAddress": {
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"town": "Test Town",
"county": "Norfolk",
"country": "GB",
"postCode": "TE57 1NG",
"telephoneNumber": "+79 123-123-123"
},
"callback": "http://www.example.org"
}
Request example (show)
{
"order": "/order/1",
"storedCard": "/st-card/1",
"currency": "GBP",
"localAmount": 0,
"cvv": 123,
"amount": 615
}
200 application/json
Response schema (show)
{
"description": "Secure Trading Card Payment response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"required": [
"links"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"payment"
],
"properties": {
"payment": {
"type": [
"string"
],
"pattern": "/st-card-payment/[0-9]+"
},
"threeDSecure": {
"type": "object",
"description": "Information required for preforming three d secure process",
"properties": {
"acsUrl": {
"type": "string",
"description": "Bank website that need to be used to start three d secure process"
},
"MD": {
"type": "string",
"description": "The unique 3-D Secure reference for this transaction"
},
"PaReq": {
"type": "string",
"description": "The unique identifier for the transaction"
},
"TermUrl": {
"type": "string",
"description": "Address where bank will redirect in the end of process"
}
},
"required": [
"acsUrl",
"MD",
"PaReq",
"TermUrl"
]
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"payment": "/st-card-payment/1",
"threeDSecure": {
"acsUrl": "https://webapp.securetrading.net/acs/visa.cgi",
"MD": "UEZOVVBqeE5SRDQ4VFVSSVBtWjJWMWR4SzBKeWQySmxLMnQ1TUhSRlVrSkNja0U5UFR3dlRVUklQanhoWTNOVmNtdythSFIwY0hNNkx5OTNaV0poY0hBdWMyVmpkWEpsZEhKaFpHbHVaeTV1WlhRdllXTnpMM1pwYzJFdVkyZHBQQzloWTNOVmNtdytQSEJoYmt4bGJtZDBhRDR4Tmp3dmNHRnVUR1Z1WjNSb1BqeHRaWE56WVdkbFNXUStVRUZTWlhFdE1UVXdORFV5TmpRM05UWXdOeTB4T0RjM05UTTJOamt6UEM5dFpYTnpZV2RsU1dRK1BDOU5SRDQ4TDFOVVBnPT06bWRlU29aUlIrYytQTGt3OU5OdHZyUzRNeFpJa2hNT0k4bzY0WjdlZjZmNTNzPQ==",
"PaReq": "eJxVUttuAiEQ/RXj+8plb2pGElub1KQ1atf0mcBEN9mLAhr9+8KqVeeFOTNwOHMAip1BnP2gOhoU8I3Wyi32Sj3pL6drPEQspUnKsyRPM5pHbJjnaZxlo7gvoNsg4ITGlm0j2IAOOJA79FxG7WTjBEh1eJsvBONxkmZAbhBqNPOZoK8B5FqGRtYoptaicaXtfTkNpCuBao+NMxcx5J7rDuBoKrFzbj8mxHbDRM5IXTbbyDOcSoWDqlWyItZFShod7eWlxsYRTkmsLZBwHshD8/IYMuvvO5dayM15U9AVX3CdylhdiqIq1h96t/ptJ0DCDtDSoeCU5XREkx7jY8rGLAXS1UHWQWiwwM9/zWEfrpg+NZ4L4Gcw2Kj7nHcEeN63jVcuvNf/OWi0yuu/LQ/x75/BfuW8owl7jfAQXSNQlt7DmLIrZwBAwlFye2Ny+xg+e/kwf2fkumw=",
"TermUrl": "http://secure-trading-service.local/st-card-payment/1/3ds"
}
},
"links": {
"/st-card-payment/1": {
"amount": 1000,
"currency": "GBP",
"status": "Pending",
"billingAddress": {
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"town": "Test Town",
"county": "Norfolk",
"country": "GB",
"postCode": "TE57 1NG",
"telephoneNumber": "+79 123-123-123"
},
"underReview": false,
"fraudChecked": true,
"3dSecureEnabled": true,
"pan": "411111######1111",
"cardType": "VISA",
"expiryDate": "122017",
"created": "2017-06-25T14:00:00+00:00",
"updated": "2017-06-25T14:05:00+00:00"
}
}
}
400 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"validation": {
"amount": "must be greater than 0, but is equal to \"-1\""
}
}
}
404 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"message": "Stored card not found"
}
}
422 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"code": "10000",
"message": "The payment was declined by the bank"
}
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
GET /st-card-payment/{id}
200 application/json
Response schema (show)
{
"description": "Secure Trading Card Payment object",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"amount",
"currency",
"localAmount",
"status",
"underReview",
"fraudChecked",
"3dSecureEnabled",
"pan",
"cardType",
"expiryDate",
"lastReference",
"authReference",
"created",
"updated"
],
"properties": {
"amount": {
"type": "integer",
"description": "Amount pence in GBP"
},
"currency": {
"type": "string",
"description": "One of currency codes from https://www.securetrading.com/docs/document/toolbox/currency-codes/ that is available on the secure trading account"
},
"localAmount": {
"type": [
"integer",
"null"
],
"description": "Amount pence in selected currency"
},
"status": {
"description": "Current status of the payment transaction.",
"type": "string",
"enum": [
"Pending",
"Declined",
"Authorised"
]
},
"billingAddress": {
"description": "Card payment billing address schema",
"type": "object",
"additionalProperties": false,
"required": [
"title",
"firstNames",
"surname",
"address1",
"town",
"country"
],
"properties": {
"title": {
"description": "e.g. Mr, Miss, Dr",
"type": "string",
"maxLength": 25
},
"firstNames": {
"type": "string",
"maxLength": 254
},
"surname": {
"type": "string",
"maxLength": 127
},
"address1": {
"type": "string",
"maxLength": 25
},
"address2": {
"type": "string",
"maxLength": 127
},
"address3": {
"type": "string",
"maxLength": 127
},
"town": {
"type": "string",
"maxLength": 127
},
"county": {
"description": "For US addresses, the state would be entered in this field",
"type": "string",
"maxLength": 127
},
"postCode": {
"description": "If the country provided is not United States, Great Britain or Canada, or if no country is provided, the postcode field is not validated",
"type": "string",
"maxLength": 25
},
"country": {
"description": "This will need to be in ISO2A format. https://www.securetrading.com/docs/document/toolbox/country-codes/",
"type": "string",
"pattern": "^[A-Z]{2}$",
"maxLength": 2
},
"telephoneNumber": {
"type": "string",
"pattern": "^[0-9\\-\\+\\(\\)\\s]{0,20}$",
"maxLength": 20
},
"email": {
"type": "string",
"pattern": "^.*$",
"maxLength": 255
},
"marketingSignup": {
"type": "boolean"
}
}
},
"underReview": {
"type": "boolean"
},
"fraudChecked": {
"type": "boolean"
},
"3dSecureEnabled": {
"type": "boolean"
},
"pan": {
"description": "Masked card number, e.g. 411111######1111",
"type": [
"string",
"null"
],
"pattern": "^[0-9]{6,6}#{6,6}[0-9]{4,4}$"
},
"cardType": {
"type": [
"string",
"null"
]
},
"expiryDate": {
"type": "string"
},
"authReference": {
"type": [
"string",
"null"
],
"description": "Reference to auth operation on payment in SecureTrading"
},
"lastReference": {
"type": [
"string",
"null"
],
"description": "Reference to last operation on payment in SecureTrading"
},
"created": {
"type": "string"
},
"updated": {
"type": [
"string",
"null"
]
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"amount": 1000,
"currency": "GBP",
"status": "Pending",
"billingAddress": {
"title": "Mr",
"firstNames": "Mat Pat",
"surname": "Tad",
"address1": "Address Line 1",
"town": "Berat",
"postCode": "123-45-GET",
"country": "UG"
},
"underReview": false,
"fraudChecked": true,
"3dSecureEnabled": true,
"pan": "411111######1111",
"cardType": "VISA",
"expiryDate": "122017",
"lastReference": null,
"authReference": "123-abcd4e",
"created": "2017-06-25T14:00:00+00:00",
"updated": "2017-06-25T14:05:00+00:00"
}
}
404 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
PUT /st-card-payment/{id}
Request schema (show)
{
"description": "Card payment fraud challanged update request",
"type": "object",
"additionalProperties": false,
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"description": "One of payment statuses: Declined or Authorised"
}
}
}
Request example (show)
{
"status": "Authorised"
}
200 application/json
Response schema (show)
{
"description": "Secure Trading Card Payment response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"required": [
"links"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"payment"
],
"properties": {
"payment": {
"type": [
"string"
],
"pattern": "/st-card-payment/[0-9]+"
},
"threeDSecure": {
"type": "object",
"description": "Information required for preforming three d secure process",
"properties": {
"acsUrl": {
"type": "string",
"description": "Bank website that need to be used to start three d secure process"
},
"MD": {
"type": "string",
"description": "The unique 3-D Secure reference for this transaction"
},
"PaReq": {
"type": "string",
"description": "The unique identifier for the transaction"
},
"TermUrl": {
"type": "string",
"description": "Address where bank will redirect in the end of process"
}
},
"required": [
"acsUrl",
"MD",
"PaReq",
"TermUrl"
]
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"payment": "/st-card-payment/1",
"threeDSecure": {
"acsUrl": "https://webapp.securetrading.net/acs/visa.cgi",
"MD": "UEZOVVBqeE5SRDQ4VFVSSVBtWjJWMWR4SzBKeWQySmxLMnQ1TUhSRlVrSkNja0U5UFR3dlRVUklQanhoWTNOVmNtdythSFIwY0hNNkx5OTNaV0poY0hBdWMyVmpkWEpsZEhKaFpHbHVaeTV1WlhRdllXTnpMM1pwYzJFdVkyZHBQQzloWTNOVmNtdytQSEJoYmt4bGJtZDBhRDR4Tmp3dmNHRnVUR1Z1WjNSb1BqeHRaWE56WVdkbFNXUStVRUZTWlhFdE1UVXdORFV5TmpRM05UWXdOeTB4T0RjM05UTTJOamt6UEM5dFpYTnpZV2RsU1dRK1BDOU5SRDQ4TDFOVVBnPT06bWRlU29aUlIrYytQTGt3OU5OdHZyUzRNeFpJa2hNT0k4bzY0WjdlZjZmNTNzPQ==",
"PaReq": "eJxVUttuAiEQ/RXj+8plb2pGElub1KQ1atf0mcBEN9mLAhr9+8KqVeeFOTNwOHMAip1BnP2gOhoU8I3Wyi32Sj3pL6drPEQspUnKsyRPM5pHbJjnaZxlo7gvoNsg4ITGlm0j2IAOOJA79FxG7WTjBEh1eJsvBONxkmZAbhBqNPOZoK8B5FqGRtYoptaicaXtfTkNpCuBao+NMxcx5J7rDuBoKrFzbj8mxHbDRM5IXTbbyDOcSoWDqlWyItZFShod7eWlxsYRTkmsLZBwHshD8/IYMuvvO5dayM15U9AVX3CdylhdiqIq1h96t/ptJ0DCDtDSoeCU5XREkx7jY8rGLAXS1UHWQWiwwM9/zWEfrpg+NZ4L4Gcw2Kj7nHcEeN63jVcuvNf/OWi0yuu/LQ/x75/BfuW8owl7jfAQXSNQlt7DmLIrZwBAwlFye2Ny+xg+e/kwf2fkumw=",
"TermUrl": "http://secure-trading-service.local/st-card-payment/1/3ds"
}
},
"links": {
"/st-card-payment/1": {
"amount": 1000,
"currency": "GBP",
"status": "Pending",
"billingAddress": {
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"town": "Test Town",
"county": "Norfolk",
"country": "GB",
"postCode": "TE57 1NG",
"telephoneNumber": "+79 123-123-123"
},
"underReview": false,
"fraudChecked": true,
"3dSecureEnabled": true,
"pan": "411111######1111",
"cardType": "VISA",
"expiryDate": "122017",
"created": "2017-06-25T14:00:00+00:00",
"updated": "2017-06-25T14:05:00+00:00"
}
}
}
400 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"validation": {
"amount": "must be greater than 0, but is equal to \"-1\""
}
}
}
404 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"message": "Stored card not found"
}
}
422 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"message": "Payment is not under review"
}
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Pattern: ^\d+$
POST /st-card-payment/{id}/3ds
POST /st-card
Request schema (show)
{
"description": "Card store request",
"type": "object",
"additionalProperties": false,
"required": [
"cardToken",
"expiryMonth",
"expiryYear",
"billingAddress"
],
"properties": {
"cardToken": {
"type": "string"
},
"billingAddress": {
"description": "Card payment billing address schema",
"type": "object",
"additionalProperties": false,
"required": [
"title",
"firstNames",
"surname",
"address1",
"town",
"country"
],
"properties": {
"title": {
"description": "e.g. Mr, Miss, Dr",
"type": "string",
"maxLength": 25
},
"firstNames": {
"type": "string",
"maxLength": 254
},
"surname": {
"type": "string",
"maxLength": 127
},
"address1": {
"type": "string",
"maxLength": 25
},
"address2": {
"type": "string",
"maxLength": 127
},
"address3": {
"type": "string",
"maxLength": 127
},
"town": {
"type": "string",
"maxLength": 127
},
"county": {
"description": "For US addresses, the state would be entered in this field",
"type": "string",
"maxLength": 127
},
"postCode": {
"description": "If the country provided is not United States, Great Britain or Canada, or if no country is provided, the postcode field is not validated",
"type": "string",
"maxLength": 25
},
"country": {
"description": "This will need to be in ISO2A format. https://www.securetrading.com/docs/document/toolbox/country-codes/",
"type": "string",
"pattern": "^[A-Z]{2}$",
"maxLength": 2
},
"telephoneNumber": {
"type": "string",
"pattern": "^[0-9\\-\\+\\(\\)\\s]{0,20}$",
"maxLength": 20
},
"email": {
"type": "string",
"pattern": "^.*$",
"maxLength": 255
},
"marketingSignup": {
"type": "boolean"
}
}
}
}
}
Request example (show)
{
"cardToken": "abcd1234",
"expiryMonth": 10,
"expiryYear": 2029,
"billingAddress": {
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"town": "Test Town",
"county": "Norfolk",
"country": "GB",
"postCode": "TE57 1NG",
"telephoneNumber": "+79 123-123-123"
}
}
200 application/json
Response example (show)
{
"status": "success",
"data": {
"id": 6,
"userId": "***",
"expiryMonth": 10,
"expiryYear": 2029,
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"address3": null,
"town": "Test Town",
"county": "Norfolk",
"postCode": "TE57 1NG",
"country": "GB",
"telephoneNumber": "+79 123-123-123",
"transactionReference": "6-52-1785244"
}
}
400 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"validation": {
"cardToken": "Token is missing"
}
}
}
422 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "fail",
"data": {
"message": "Error message"
}
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
GET /st-card
200 application/json
Response schema (show)
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data",
"links"
]
}
]
}
Response example (show)
{
"status": "success",
"data": [
"/st-card/1"
],
"links": {
"/st-card/1": {
"storedCard": {
"id": 5,
"userId": "***",
"expiryMonth": 10,
"expiryYear": 2029,
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"address3": null,
"town": "Test Town",
"county": "Norfolk",
"postCode": "TE57 1NG",
"country": "GB",
"telephoneNumber": "+79 123-123-123",
"transactionReference": "7-52-1284041"
},
"maskedPan": "411111######0021",
"addedAt": "2018-01-31 08:04:25"
}
}
}
GET /st-card/{id}
200 application/json
Response example (show)
{
"status": "success",
"data": {
"storedCard": {
"id": 5,
"userId": "***",
"expiryMonth": 10,
"expiryYear": 2029,
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"address3": null,
"town": "Test Town",
"county": "Norfolk",
"postCode": "TE57 1NG",
"country": "GB",
"telephoneNumber": "+79 123-123-123",
"transactionReference": "7-52-1284041"
},
"maskedPan": "411111######0021",
"addedAt": "2018-01-31 08:04:25"
}
}
422 application/json
Response example (show)
{
"status": "success",
"data": {
"message": "User {{userId}} is not authorized to read this card data"
}
}
DELETE /st-card/{id}
200 application/json
Response example (show)
{
"status": "success",
"data": []
}
422 application/json
Response example (show)
{
"status": "fail",
"data": {
"message": "Error message"
}
}
POST /st-card/:id/user
Request schema (show)
{
"additionalProperties": false,
"description": "Store card user schema",
"properties": {
"userId": {
"required": true,
"type": "number"
}
},
"required": [
"userId"
],
"type": "object"
}
Request example (show)
{
"userId": "/user/1"
}
200 application/json
Response example (show)
{
"status": "success",
"data": {
"cardId": 1,
"usersList": [
"/user/2",
"/user/1",
"/user/3",
"/tbo-user/6",
"/tbo-user/8",
"/tbo-user/10",
"/tbo-user/11",
"/tbo-user/13",
"/tbo-user/15",
"/tbo-user/1"
]
}
}
422 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "success",
"data": {
"message": "Example message"
}
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
DELETE /st-card/:id/user
Request schema (show)
{
"additionalProperties": false,
"description": "Store card user schema",
"properties": {
"userId": {
"required": true,
"type": "number"
}
},
"required": [
"userId"
],
"type": "object"
}
Request example (show)
{
"userId": "/user/1"
}
200 application/json
Response example (show)
{
"status": "success",
"data": {
"cardId": 1,
"usersList": [
"/user/2",
"/user/1",
"/user/3",
"/tbo-user/6",
"/tbo-user/8",
"/tbo-user/10",
"/tbo-user/11",
"/tbo-user/13",
"/tbo-user/15",
"/tbo-user/1"
]
}
}
422 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
Response example (show)
{
"status": "success",
"data": {
"message": "Example message"
}
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
GET /st-card/:id/users
200 application/json
Response example (show)
{
"status": "success",
"data": {
"cardId": 1,
"usersList": [
"/user/2",
"/user/1",
"/user/3",
"/tbo-user/6",
"/tbo-user/8",
"/tbo-user/10",
"/tbo-user/11",
"/tbo-user/13",
"/tbo-user/15",
"/tbo-user/1"
]
}
}
POST /st-alipay-payment/
Request schema (show)
{
"description": "AliPay payment request",
"type": "object",
"additionalProperties": false,
"required": [
"order",
"amount",
"returnUrl",
"mode"
],
"properties": {
"order": {
"type": [
"string"
],
"pattern": "/order/[0-9]+"
},
"amount": {
"type": "integer",
"description": "Amount pence in GBP"
},
"returnUrl": {
"type": "string",
"description": "Callback url required for 3d secure payments"
},
"billingAddress": {
"description": "Card payment billing address schema",
"type": "object",
"additionalProperties": false,
"required": [
"title",
"firstNames",
"surname",
"address1",
"town",
"country"
],
"properties": {
"title": {
"description": "e.g. Mr, Miss, Dr",
"type": "string",
"maxLength": 25
},
"firstNames": {
"type": "string",
"maxLength": 254
},
"surname": {
"type": "string",
"maxLength": 127
},
"address1": {
"type": "string",
"maxLength": 25
},
"address2": {
"type": "string",
"maxLength": 127
},
"address3": {
"type": "string",
"maxLength": 127
},
"town": {
"type": "string",
"maxLength": 127
},
"county": {
"description": "For US addresses, the state would be entered in this field",
"type": "string",
"maxLength": 127
},
"postCode": {
"description": "If the country provided is not United States, Great Britain or Canada, or if no country is provided, the postcode field is not validated",
"type": "string",
"maxLength": 25
},
"country": {
"description": "This will need to be in ISO2A format. https://www.securetrading.com/docs/document/toolbox/country-codes/",
"type": "string",
"pattern": "^[A-Z]{2}$",
"maxLength": 2
},
"telephoneNumber": {
"type": "string",
"pattern": "^[0-9\\-\\+\\(\\)\\s]{0,20}$",
"maxLength": 20
},
"email": {
"type": "string",
"pattern": "^.*$",
"maxLength": 255
},
"marketingSignup": {
"type": "boolean"
}
}
},
"currency": {
"type": "string",
"default": "GBP",
"description": "One of currency codes from https://docs.trustpayments.com/document/toolbox/currency-codes/ that is available on the secure trading account",
"pattern": "^[A-Z]{3}$"
},
"localAmount": {
"type": "integer",
"description": "Amount pence in selected currency"
},
"mode": {
"enum": [
"desktop",
"mobile",
"sdk"
],
"description": "Whether to use the AliPay desktop, mobile or SDK-based interface"
}
}
}
Request example (show)
{
"order": "/order/1",
"amount": 1000,
"billingAddress": {
"title": "Mr",
"firstNames": "Test Ing",
"surname": "Person",
"address1": "123 Test Street",
"address2": "Another Street",
"town": "Test Town",
"county": "Norfolk",
"country": "GB",
"postCode": "TE57 1NG",
"telephoneNumber": "+79 123-123-123"
},
"returnUrl": "http://www.example.org",
"mode": "mobile"
}
200 application/json
Response schema (show)
{
"description": "Secure Trading AliPay Payment response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"required": [
"links"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"payment",
"redirectUrl"
],
"properties": {
"payment": {
"type": [
"string"
],
"pattern": "/st-card-payment/[0-9]+"
},
"redirectUrl": {
"description": "A regular full URL",
"type": "string"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"payment": "/st-card-payment/1",
"redirectUrl": "http://www.example.com/alipay-url"
},
"links": {
"/st-card-payment/1": {
"amount": 1000,
"currency": "GBP",
"status": "Pending",
"underReview": false,
"fraudChecked": true,
"3dSecureEnabled": true,
"pan": null,
"cardType": null,
"expiryDate": null,
"created": "2017-06-25T14:00:00+00:00",
"updated": "2017-06-25T14:05:00+00:00"
}
}
}
POST /st-alipay-payment/verify
Request schema (show)
{
"description": "AliPay auth request",
"type": "object",
"additionalProperties": false,
"required": [
"authReference",
"verifyString"
],
"properties": {
"authReference": {
"type": "string",
"description": "Payment reference number"
},
"verifyString": {
"type": "string",
"description": "Verify string received from AliPay"
}
}
}
Request example (show)
{
"authReference": "59-85-350",
"verifyString": "1234567890"
}
200 application/json
Response schema (show)
{
"description": "AliPay auth response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
]
}
Response example (show)
{
"status": "success"
}
Apple Pay payment endpoints.
POST /st-apple-pay
Create an Apple Pay payment (native iOS app flow).
Requires query parameter orderreference with the order URI.
For the website flow, set websiteFlow=true as a query param and include callbackUrl.
Parameters
string orderreference (required)
Order URI (e.g. /order/123)
boolean websiteFlow
Set to true for the website (st.js) flow
Request schema (show)
{
"description": "Apple Pay payment request body (native iOS app flow)",
"type": "object",
"additionalProperties": false,
"required": [
"walletsource",
"currencyiso3a",
"mainamount",
"wallettoken"
],
"properties": {
"walletsource": {
"type": "string",
"description": "Wallet source identifier, always APPLEPAY"
},
"currencyiso3a": {
"type": "string",
"description": "ISO 4217 currency code"
},
"mainamount": {
"type": "string",
"description": "Payment amount as a decimal string (e.g. \"10.00\")"
},
"wallettoken": {
"type": "object",
"description": "Encrypted Apple Pay payment token",
"additionalProperties": false,
"required": [
"data",
"signature",
"header",
"version"
],
"properties": {
"data": {
"type": "string",
"description": "Encrypted payment data (base64)"
},
"signature": {
"type": "string",
"description": "Detached PKCS#7 signature (base64)"
},
"header": {
"type": "object",
"additionalProperties": false,
"required": [
"publicKeyHash",
"ephemeralPublicKey",
"transactionId"
],
"properties": {
"publicKeyHash": {
"type": "string"
},
"ephemeralPublicKey": {
"type": "string"
},
"transactionId": {
"type": "string"
}
}
},
"version": {
"type": "string",
"description": "Token format version (e.g. EC_v1)"
}
}
},
"paymentData": {
"type": "object",
"additionalProperties": false,
"properties": {
"displayName": {
"type": "string"
},
"network": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"versioninfo": {
"type": "string"
}
}
}
Request example (show)
{
"walletsource": "APPLEPAY",
"currencyiso3a": "GBP",
"mainamount": "10.00",
"wallettoken": {
"data": "base64encodeddata==",
"signature": "base64encodedsignature==",
"header": {
"publicKeyHash": "base64hash==",
"ephemeralPublicKey": "base64key==",
"transactionId": "abc123transactionid"
},
"version": "EC_v1"
},
"paymentData": {
"displayName": "Visa 1091",
"network": "Visa",
"type": "debit"
},
"versioninfo": "1.0"
}
200 application/json
Response schema (show)
{
"description": "Apple Pay payment response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"additionalProperties": false,
"required": [
"payment",
"amount",
"currency",
"localAmount",
"order",
"status",
"billingAddress",
"created"
],
"properties": {
"payment": {
"type": "string",
"description": "URI of the created Apple Pay payment resource"
},
"amount": {
"type": "string",
"description": "Charged amount as a decimal string (e.g. \"10.00\")"
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code"
},
"localAmount": {
"type": "integer",
"description": "Amount in the local currency expressed in minor units (pence)"
},
"order": {
"type": "string",
"description": "Order URI reference"
},
"status": {
"type": "string",
"enum": [
"Authorised",
"Pending",
"Declined"
],
"description": "Payment status"
},
"billingAddress": {
"type": "object",
"description": "Billing address associated with the payment",
"properties": {
"title": {
"type": "string"
},
"firstNames": {
"type": "string"
},
"surname": {
"type": "string"
},
"address1": {
"type": "string"
},
"address2": {
"type": "string"
},
"address3": {
"type": [
"string",
"null"
]
},
"town": {
"type": "string"
},
"county": {
"type": "string"
},
"country": {
"type": "string"
},
"postCode": {
"type": [
"string",
"null"
]
},
"telephoneNumber": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
}
}
},
"pan": {
"type": [
"string",
"null"
],
"description": "Masked card PAN"
},
"cardType": {
"type": [
"string",
"null"
],
"description": "Card network (e.g. VISA, MASTERCARD)"
},
"authReference": {
"type": [
"string",
"null"
],
"description": "Secure Trading transaction reference"
},
"created": {
"type": "string",
"description": "ISO 8601 creation timestamp"
},
"updated": {
"type": [
"string",
"null"
],
"description": "ISO 8601 last-updated timestamp"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"payment": "/st-apple-pay/123",
"amount": "10.00",
"currency": "GBP",
"localAmount": 1000,
"order": "/order/1",
"status": "Authorised",
"billingAddress": {
"title": "Mr",
"firstNames": "Test",
"surname": "User",
"address1": "123 Test Street",
"address2": "Another Road",
"address3": null,
"town": "Test Town",
"county": "Norfolk",
"country": "GB",
"postCode": "TE57 1NG",
"telephoneNumber": "+44123456789"
},
"pan": "400000######1091",
"cardType": "VISA",
"authReference": "6-9-4881726",
"created": "2023-01-01T12:00:00+01:00",
"updated": null
}
}
400 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
URI parameters
string id (required)
Apple Pay payment ID
GET /st-apple-pay/{id}
Retrieve an Apple Pay payment by ID.
200 application/json
Response schema (show)
{
"description": "Apple Pay payment response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"additionalProperties": false,
"required": [
"payment",
"amount",
"currency",
"localAmount",
"order",
"status",
"billingAddress",
"created"
],
"properties": {
"payment": {
"type": "string",
"description": "URI of the created Apple Pay payment resource"
},
"amount": {
"type": "string",
"description": "Charged amount as a decimal string (e.g. \"10.00\")"
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code"
},
"localAmount": {
"type": "integer",
"description": "Amount in the local currency expressed in minor units (pence)"
},
"order": {
"type": "string",
"description": "Order URI reference"
},
"status": {
"type": "string",
"enum": [
"Authorised",
"Pending",
"Declined"
],
"description": "Payment status"
},
"billingAddress": {
"type": "object",
"description": "Billing address associated with the payment",
"properties": {
"title": {
"type": "string"
},
"firstNames": {
"type": "string"
},
"surname": {
"type": "string"
},
"address1": {
"type": "string"
},
"address2": {
"type": "string"
},
"address3": {
"type": [
"string",
"null"
]
},
"town": {
"type": "string"
},
"county": {
"type": "string"
},
"country": {
"type": "string"
},
"postCode": {
"type": [
"string",
"null"
]
},
"telephoneNumber": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
}
}
},
"pan": {
"type": [
"string",
"null"
],
"description": "Masked card PAN"
},
"cardType": {
"type": [
"string",
"null"
],
"description": "Card network (e.g. VISA, MASTERCARD)"
},
"authReference": {
"type": [
"string",
"null"
],
"description": "Secure Trading transaction reference"
},
"created": {
"type": "string",
"description": "ISO 8601 creation timestamp"
},
"updated": {
"type": [
"string",
"null"
],
"description": "ISO 8601 last-updated timestamp"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"payment": "/st-apple-pay/123",
"amount": "10.00",
"currency": "GBP",
"localAmount": 1000,
"order": "/order/1",
"status": "Authorised",
"billingAddress": {
"title": "Mr",
"firstNames": "Test",
"surname": "User",
"address1": "123 Test Street",
"address2": "Another Road",
"address3": null,
"town": "Test Town",
"county": "Norfolk",
"country": "GB",
"postCode": "TE57 1NG",
"telephoneNumber": "+44123456789"
},
"pan": "400000######1091",
"cardType": "VISA",
"authReference": "6-9-4881726",
"created": "2023-01-01T12:00:00+01:00",
"updated": null
}
}
404 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
POST /st-apple-pay/{id}/refund
Refund an Apple Pay payment.
Request schema (show)
{
"description": "Payment refund request",
"type": "object",
"additionalProperties": false,
"required": [],
"properties": {
"amount": {
"type": "integer",
"description": "Amount pence in GBP (default currency)"
},
"localAmount": {
"type": "integer",
"description": "Amount pence in selected currency"
}
}
}
Request example (show)
{
"localAmount": 3000,
"amount": 2560
}
200 application/json
Response schema (show)
{
"description": "Apple Pay refund response",
"type": "object",
"allOf": [
{
"description": "Response with data",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
},
{
"properties": {
"data": {
"additionalProperties": false,
"required": [
"transactionRef"
],
"properties": {
"transactionRef": {
"type": "string",
"description": "Secure Trading refund transaction reference"
}
}
}
}
}
]
}
Response example (show)
{
"status": "success",
"data": {
"transactionRef": "6-9-4881726-refund"
}
}
400 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
404 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
422 application/json
Response schema (show)
{
"description": "Response with failure",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"data"
]
}
]
}
500 application/json
Response schema (show)
{
"description": "Response with error",
"allOf": [
{
"description": "A standard JSON response",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "Response status",
"enum": [
"success",
"fail",
"error"
]
},
"data": {
"description": "Response data",
"type": [
"object",
"array"
]
},
"code": {
"description": "Response error code",
"type": "string"
},
"message": {
"description": "Response error message",
"type": "string"
},
"links": {
"description": "Response resolved links",
"type": [
"object",
"array"
]
}
}
},
{
"required": [
"message"
]
}
]
}
Returns the SecureTrading st.js library bundled with Apple Pay initialisation code. The response is plain JavaScript intended to be loaded via a