Assertis APIs

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:

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.

Health check endpoint – returns service name, environment and API version.

GET /healthcheck

200 application/json
Response schema (show)
{
    "description": "Auth Service status",
    "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": {
                        "name": {
                            "type": "string"
                        },
                        "environment": {
                            "type": "string"
                        },
                        "apiVersion": {
                            "type": "number"
                        }
                    },
                    "required": [
                        "name",
                        "environment",
                        "apiVersion"
                    ],
                    "additionalProperties": false
                }
            }
        }
    ]
}
Response example (show)
{
    "status": "success",
    "data": {
        "name": "auth-service",
        "environment": "dev",
        "apiVersion": 1
    }
}

Exposes Prometheus metrics in text exposition format. POST resets all counters before returning the snapshot.

GET /metrics

Return current Prometheus metrics snapshot.

200 text/plain
Response example (show)
null

POST /metrics

Reset all metric counters, then return the current (zeroed) snapshot.

200 text/plain
Response example (show)
null

POST /auth

Request schema (show)
{
    "description": "Auth service token generation request",
    "type": "object",
    "additionalProperties": false,
    "required": [
        "vendor",
        "text",
        "signature"
    ],
    "properties": {
        "vendor": {
            "type": "string",
            "description": "Vendor name that exchanged with us its public key"
        },
        "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",
            "description": "Vendor name that exchanged with us its public key"
        },
        "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

GET /odyssey/fare-search

Plan a journey

Parameters

string origin (required)

NLC or CRS code

Example: TBW

string destination (required)

NLC or CRS code

Example: TBW

string outwardDate (required)

Example: 1540425600

string inwardDate

Example: 1540425600

number adults (required)

Example: 2

number children (required)

Example: 1

string railcards

Example: YNG,EDU

string routeCode

if specified, response will contain only fares with this route code

Example: 59

string ticketType

if specified, response will contain only tickets with this ticket type code

Example: SDS

string ticketCategory

if specified, only fares with ticket types with specified category will be return

Example: off-peak

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "data": {
            "type": "object",
            "additionalProperties": false,
            "required": [
                "outward",
                "inward",
                "return"
            ],
            "properties": {
                "outward": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "pattern": "/fare\\-option/fare/.+"
                    }
                },
                "inward": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "pattern": "/fare\\-option/fare/.+"
                    }
                },
                "return": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "pattern": "/fare\\-option/fare/.+"
                    }
                }
            }
        },
        "links": {
            "type": "object",
            "additionalProperties": false,
            "patternProperties": {
                "^/odyssey/fare/.+$": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "origin": {
                            "type": "string"
                        },
                        "destination": {
                            "type": "string"
                        },
                        "price": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "originalPrice": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "availability": {
                            "type": "number"
                        },
                        "railcard": {
                            "type": [
                                "null",
                                "string"
                            ]
                        },
                        "restrictionCode": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "route": {
                            "pattern": "^/route/\\d+$",
                            "type": "string"
                        },
                        "ticketType": {
                            "pattern": "^/ticket-type/\\w+$",
                            "type": "string"
                        },
                        "fareSetter": {
                            "pattern": "^[A-Z]{3}$",
                            "type": "string"
                        },
                        "statusCode": {
                            "type": "string"
                        },
                        "xLondon": {
                            "type": "number",
                            "description": "0 - not cross London; 1 - cross London; 2 - cross London by underground"
                        },
                        "permittedOriginStations": {
                            "type": "string"
                        },
                        "permittedDestinationStations": {
                            "type": "string"
                        },
                        "discount": {
                            "type": [
                                "null",
                                "object"
                            ],
                            "additionalProperties": false,
                            "properties": {
                                "type": {
                                    "type": "string"
                                },
                                "lennonCode": {
                                    "type": "string"
                                },
                                "promoCode": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "percent": {
                                    "type": "integer"
                                },
                                "shortDescription": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "longDescription": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "travelStartDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "travelEndDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "purchaseStartDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "purchaseEndDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                }
                            }
                        },
                        "season": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "stockColour": {
                                    "type": "string"
                                },
                                "comparisonPrice": {
                                    "type": "string"
                                },
                                "duration": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "days": {
                                            "type": "number"
                                        },
                                        "months": {
                                            "type": "number"
                                        }
                                    }
                                }
                            }
                        },
                        "groups": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "labels": {
                            "description": "Labels describing the fare",
                            "type": "array",
                            "items": {
                                "type": "string",
                                "examples": [
                                    "advance",
                                    "first-class",
                                    "split"
                                ],
                                "description": "Short, computer-readable string that describes a parameter of a fare or fare option"
                            }
                        }
                    },
                    "required": [
                        "origin",
                        "destination",
                        "route",
                        "price",
                        "ticketType",
                        "fareSetter",
                        "statusCode",
                        "xLondon",
                        "permittedOriginStations",
                        "permittedDestinationStations",
                        "groups"
                    ]
                },
                "^/odyssey/fare-option/.+$": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                        "fares",
                        "labels",
                        "totalPrice"
                    ],
                    "properties": {
                        "totalPrice": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "originalPrice": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "labels": {
                            "description": "Labels for the fare option, shared between all fares in the option plus extra fare option-specific labels",
                            "type": "array",
                            "items": {
                                "type": "string",
                                "examples": [
                                    "advance",
                                    "first-class",
                                    "split"
                                ],
                                "description": "Short, computer-readable string that describes a parameter of a fare or fare option"
                            }
                        },
                        "supplements": {
                            "type": "array",
                            "items": []
                        },
                        "hasETicket": {
                            "type": "string"
                        },
                        "validUntil": {
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "createdAt": {
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "requestId": {
                            "type": "string",
                            "pattern": ".{5,63}"
                        },
                        "sessionId": {
                            "type": "string",
                            "pattern": ".{5,63}"
                        },
                        "fares": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "adults": {
                                        "type": "number"
                                    },
                                    "children": {
                                        "type": "number"
                                    },
                                    "fare": {
                                        "type": "string",
                                        "pattern": "/odyssey/fare/.+"
                                    },
                                    "splitInfo": {
                                        "type": "object",
                                        "description": "Details of a fare split. If not present, this fare is not part of a split ticket.",
                                        "required": [
                                            "sectionIds"
                                        ],
                                        "sectionIds": {
                                            "type": "array",
                                            "items": {
                                                "type": "number"
                                            },
                                            "description": "Indicates which sections of a split ticket this fare belongs to."
                                        },
                                        "outwardOrigin": {
                                            "description": "Station where the split ticket starts for the outward journey. If not present, this fare is only for the inward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        },
                                        "outwardDestination": {
                                            "description": "The CRS code of the station where the split ticket ends for the outward journey. If not present, this fare is only for the inward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        },
                                        "inwardOrigin": {
                                            "description": "The CRS code of the station where the split ticket starts for the inward journey. If not present, this fare is only for the outward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        },
                                        "inwardDestination": {
                                            "description": "The CRS code of the station where the split ticket ends for the inward journey. If not present, this fare is only for the outward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        }
                                    },
                                    "validFrom": {
                                        "description": "Start of fare validity period",
                                        "type": "string",
                                        "examples": [
                                            "2016-01-01T12:00:00"
                                        ]
                                    },
                                    "validUntil": {
                                        "description": "End of fare validity period",
                                        "type": "string",
                                        "examples": [
                                            "2016-01-01T12:00:00"
                                        ]
                                    }
                                },
                                "required": [
                                    "adults",
                                    "children",
                                    "fare"
                                ]
                            }
                        }
                    }
                }
            }
        }
    }
}
Response example (show)
{
    "data": {
        "outward": [],
        "inward": [],
        "return": [
            "/odyssey/fare-option/fare/5268-I444-00777-SD4-000-1-DS-262-283-0/fare/5268-I444-00777-SD1-001-1-DS-262-283-0"
        ]
    },
    "links": []
}

GET /odyssey/season-search

Query season ticket fares. Response format can be manipulate, depends on API client needs. Default response format is like: response": { "fares": { "0100": [ "/odyssey/fare/1234", "/odyssey/fare/2345", ], "1200": [ "/odyssey/fare/9876", ] } } Fares are indexed by season duration. However, you can request for flat structure, using flatten parameter. To get fares only for particular duration, use duration. For instance, with flatten=1&duration=0100 above response would look like: response": { "fares": [ "/odyssey/fare/1234", "/odyssey/fare/2345", ] } Flatten and duration can be use separately.

Parameters

string origin (required)

NLC or CRS code

Example: TBW

string destination (required)

NLC or CRS code

Example: TBW

string startDate (required)

Start date of the season ticket (must be within 14 days)

Example: 1540425600

string passengerType (required)

Example: adult|child

string duration

Duration length (MMDD) of season ticket. Can be a single duration or comma separated list of durations. If duration is defined, only fares with those particular durations will be return. Default durations are 0007, 0100, 1200, and they will be return if duration is empty.

Example: 0100,0070,0600

string railcards

Example: YNG

string flatten

if set to true, fares won't be indexed by duration

Example: 1

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "response": {
            "type": "object",
            "additionalProperties": false,
            "required": [
                "fares"
            ],
            "properties": {
                "fares": {
                    "$oneOf": [
                        {
                            "type": "object",
                            "additionalProperties": true,
                            "properties": {
                                "0007": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "pattern": "/fare\\-option/fare/.+"
                                    }
                                },
                                "0100": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "pattern": "/fare\\-option/fare/.+"
                                    }
                                },
                                "1200": {
                                    "type": "array",
                                    "items": {
                                        "type": "string",
                                        "pattern": "/fare\\-option/fare/.+"
                                    }
                                }
                            }
                        },
                        {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "pattern": "/fare\\-option/fare/.+"
                            }
                        }
                    ]
                }
            }
        },
        "links": {
            "type": "object"
        }
    }
}
Response example (show)
{
    "response": {
        "fares": {
            "1200": [
                "/odyssey/fare/1072-0418-00000-PSS-000-1--331-344-0-12,0",
                "/odyssey/fare/1072-0418-00000-PSF-000-1--331-344-0-12,0"
            ],
            "0007": [
                "/odyssey/fare/1072-0418-00000-7DS-000-1--331-344-0-0,7",
                "/odyssey/fare/1072-0418-00000-7DF-000-1--331-344-0-0,7"
            ],
            "0100": [
                "/odyssey/fare/1072-0418-00000-PSS-000-1--331-344-0-1,0",
                "/odyssey/fare/1072-0418-00000-PSF-000-1--331-344-0-1,0"
            ],
            "0304": [
                "/odyssey/fare/1072-0418-00000-PSS-000-1--331-344-0-3,4",
                "/odyssey/fare/1072-0418-00000-PSF-000-1--331-344-0-3,4"
            ]
        }
    },
    "links": []
}

GET /odyssey/jp

Plan a journey

Parameters

string origin (required)

Outward journey origin as an NLC, CRS or TIPLOC code.

Example: TBW

string destination (required)

Outward journey destination as an NLC, CRS or TIPLOC code.

Example: TBW

string via

NLC, CRS or TIPLOC codes of stations the journeys are required to pass.

Example: EUS,MAN

string avoid

NLC, CRS or TIPLOC codes of stations the journeys are required not to to pass.

Example: EUS,MAN

string tocs

Short codes of TOCs the journey is required to use for at least one of the legs each.

Example: CS,NT

number adults (required)

Number of adult passengers.

number children (required)

Number of non-adult human passengers.

Example: 1

number pets

Number of pet-friendly compartments, might affect fare option selection.

number bikes

Number of bike spaces.

string railcards

List of railcard codes that the passengers are allowed to use.

Example: YNG,YNG,EDU

string promoCode

A promo code that can be used to enable a specific discount.

Example: ANB523DS

string outwardDate (required)

OUTWARD journey start date.

Example: 1540425600

string outwardDepartAt

OUTWARD journeys DEPARTING at or AFTER that time will be shown.

Example: 14:00

string outwardDepartBy

OUTWARD journeys DEPARTING at or BEFORE that time will be shown.

Example: 9:00

string outwardArriveAt

OUTWARD journeys ARRIVING at or AFTER that time will be shown.

Example: 14:00

string outwardArriveBy

OUTWARD journeys ARRIVING at or BEFORE that time will be shown.

Example: 9:30

string inwardDate

INWARD journey start date.

Example: 1540425600

string inwardDepartAt

INWARD journeys DEPARTING at or AFTER that time will be shown.

Example: 14:00

string inwardDepartBy

INWARD journeys DEPARTING at or BEFORE that time will be shown.

Example: 9:00

string inwardArriveAt

INWARD journeys ARRIVING at or AFTER that time will be shown.

Example: 7:30

string inwardArriveBy

INWARD journeys ARRIVING at or BEFORE that time will be shown.

Example: 00:00

boolean firstClass

Set to 'false' to not show first class tickets.

boolean standardClass

Set to 'false' to not show standard class tickets.

boolean singles

Set to 'false' to not show single direction tickets.

boolean returns

Set to 'false' to not show return tickets; does not prevent inward single tickets.

boolean advance

Set to 'false' to not show advance tickets.

string ticketCategory

Only show tickets from a selected category, one of "anytime", "off-peak", "advance".

Example: off-peak

string fareSetters

Only show tickets from selected fare setters.

Example: CAL,SCS

string tenant

Use the specified tenant configuration; either this or an X-Tenant header is required.

Example: rsm

number limit

Maximum number of results returned.

number horizon

Number of hours of schedules to look up; defaults to automatic, 3-27.

number maxPrice

Maximum fare option price in pence.

Example: 10000

boolean useSplits

Set to 'true'/'false' to use/not use split tickets.

string splitPattern

Only show split tickets with the specified pattern.

boolean ignoreNrs

Set to 'true' to assume all fares are fully available.

string journey

Ignore all journeys other than the one specified.

Example: /journey/280:EUS_INV_C72728

string fare

Ignore all fares other than the one specified.

Example: /fare/1444-8649-00345-1T8-001-1-U6--329-280-0-

string ticketType

Only show fares with the specified ticket code.

Example: 1SA

string routeCode

Only show fares with the specified route code.

Example: 100

200 application/json
Response schema (show)
{
    "type": "object",
    "additionalProperties": false,
    "required": [
        "pagination",
        "response"
    ],
    "properties": {
        "pagination": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "outward": {
                    "type": "object",
                    "properties": {
                        "current": {
                            "type": "string",
                            "description": "Current effective query string, if present (might be different from requested)"
                        },
                        "earlier": {
                            "type": "string",
                            "description": "Earlier result query string, if present"
                        },
                        "later": {
                            "type": "string",
                            "description": "Later result query string, if present"
                        }
                    }
                },
                "inward": {
                    "type": "object",
                    "properties": {
                        "current": {
                            "type": "string",
                            "description": "Current effective query string, if present (might be different from requested)"
                        },
                        "earlier": {
                            "type": "string",
                            "description": "Earlier result query string, if present"
                        },
                        "later": {
                            "type": "string",
                            "description": "Later result query string, if present"
                        }
                    }
                }
            }
        },
        "response": {
            "type": "object",
            "additionalProperties": false,
            "required": [
                "outward",
                "inward",
                "fares",
                "availability"
            ],
            "properties": {
                "outward": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "pattern": "/odyssey/journey/.+"
                    }
                },
                "inward": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "pattern": "/odyssey/journey/.+"
                    }
                },
                "fares": {
                    "type": "object",
                    "description": "Fares for journeys, keyed by journey uri in one-way search, two level journey uri in return search."
                },
                "faresNotForSale": {
                    "type": "object",
                    "description": "Fares for journeys, not for sale, keyed by journey uri in one-way search, two level journey uri in return search."
                },
                "addons": {
                    "type": "object",
                    "required": [
                        "outward"
                    ],
                    "properties": {
                        "outward": {
                            "type": "object"
                        },
                        "inward": {
                            "type": "object"
                        }
                    }
                },
                "availability": {
                    "type": "object",
                    "description": "availabilities associated with journeys and ticket types"
                },
                "splitSavings": {
                    "examples": [
                        {
                            "/odyssey/journey/285:285:EUS_GLC_C21856": {
                                "/odyssey/fare-option/fare/1444-1243-00515-V2V-000-1-VR---269-1-0--2500-1-0/fare/1243-0433-00515-V2X-000-1-VR---269-1-0--1300-1-0-EUS:CRE_CRE:GLC": 10
                            }
                        },
                        {
                            "/odyssey/journey/285:285:EUS_GLC_C22071": {
                                "/odyssey/journey/285:285:GLC_EUS_P79235": {
                                    "/odyssey/fare-option/fare/1444-1030-00516-V1R-000-1-VA---269-1-0--5550-1-0/fare/1030-0433-00516-V1G-000-1-VA---269-1-0--14850-1-0-EUS:COV_COV:GLC": {
                                        "/odyssey/fare-option/fare/0433-0785-00430-BPS-000-1-GC---269-1-0--3580-1-0": 4780
                                    }
                                }
                            }
                        }
                    ],
                    "oneOf": [
                        {
                            "description": "One way journey savings - Map>",
                            "type": "object",
                            "additionalProperties": {
                                "type": "object",
                                "additionalProperties": {
                                    "type": "number"
                                }
                            }
                        },
                        {
                            "description": "Return journey savings - Map>>>",
                            "type": "object",
                            "minProperties": 1,
                            "additionalProperties": {
                                "type": "object",
                                "additionalProperties": {
                                    "type": "object",
                                    "additionalProperties": {
                                        "type": "object",
                                        "additionalProperties": {
                                            "type": "number"
                                        }
                                    }
                                }
                            }
                        }
                    ]
                },
                "canSelectSeatOnJourney": {
                    "type": "object",
                    "description": "Whether a specific seat can be selected on a particular journey and fare option combination",
                    "examples": [
                        {
                            "/odyssey/journey/285:285:EUS_GLC_C21856": {
                                "/odyssey/fare-option/37:/fare/1072-1871-00300-SSS-000-1-CJ---37-1-0--8940-1-0-bebd": true
                            }
                        }
                    ]
                },
                "canSelectSeatOnLeg": {
                    "type": "object",
                    "description": "Whether a specific seat can be selected on a particular leg and fare option combination",
                    "examples": [
                        {
                            "/odyssey/leg/37:STP_NOT_Y12230": {
                                "/odyssey/fare-option/37:/fare/1072-1871-00300-SSS-000-1-CJ---37-1-0--8940-1-0-bebd": true
                            }
                        }
                    ]
                }
            }
        },
        "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": {
                    "type": "object",
                    "properties": {
                        "current": {
                            "type": "string",
                            "description": "Current effective query string, if present (might be different from requested)"
                        },
                        "earlier": {
                            "type": "string",
                            "description": "Earlier result query string, if present"
                        },
                        "later": {
                            "type": "string",
                            "description": "Later result query string, if present"
                        }
                    }
                },
                "inward": {
                    "type": "object",
                    "properties": {
                        "current": {
                            "type": "string",
                            "description": "Current effective query string, if present (might be different from requested)"
                        },
                        "earlier": {
                            "type": "string",
                            "description": "Earlier result query string, if present"
                        },
                        "later": {
                            "type": "string",
                            "description": "Later result query string, if present"
                        }
                    }
                }
            }
        },
        "links": {
            "type": "object",
            "additionalProperties": false,
            "patternProperties": {
                "^/odyssey/fare/.+$": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "origin": {
                            "type": "string"
                        },
                        "destination": {
                            "type": "string"
                        },
                        "price": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "originalPrice": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "availability": {
                            "type": "number"
                        },
                        "railcard": {
                            "type": [
                                "null",
                                "string"
                            ]
                        },
                        "restrictionCode": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "route": {
                            "pattern": "^/route/\\d+$",
                            "type": "string"
                        },
                        "ticketType": {
                            "pattern": "^/ticket-type/\\w+$",
                            "type": "string"
                        },
                        "fareSetter": {
                            "pattern": "^[A-Z]{3}$",
                            "type": "string"
                        },
                        "statusCode": {
                            "type": "string"
                        },
                        "xLondon": {
                            "type": "number",
                            "description": "0 - not cross London; 1 - cross London; 2 - cross London by underground"
                        },
                        "permittedOriginStations": {
                            "type": "string"
                        },
                        "permittedDestinationStations": {
                            "type": "string"
                        },
                        "discount": {
                            "type": [
                                "null",
                                "object"
                            ],
                            "additionalProperties": false,
                            "properties": {
                                "type": {
                                    "type": "string"
                                },
                                "lennonCode": {
                                    "type": "string"
                                },
                                "promoCode": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "percent": {
                                    "type": "integer"
                                },
                                "shortDescription": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "longDescription": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "travelStartDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "travelEndDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "purchaseStartDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                },
                                "purchaseEndDate": {
                                    "type": [
                                        "null",
                                        "string"
                                    ]
                                }
                            }
                        },
                        "season": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "stockColour": {
                                    "type": "string"
                                },
                                "comparisonPrice": {
                                    "type": "string"
                                },
                                "duration": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                        "days": {
                                            "type": "number"
                                        },
                                        "months": {
                                            "type": "number"
                                        }
                                    }
                                }
                            }
                        },
                        "groups": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        },
                        "labels": {
                            "description": "Labels describing the fare",
                            "type": "array",
                            "items": {
                                "type": "string",
                                "examples": [
                                    "advance",
                                    "first-class",
                                    "split"
                                ],
                                "description": "Short, computer-readable string that describes a parameter of a fare or fare option"
                            }
                        }
                    },
                    "required": [
                        "origin",
                        "destination",
                        "route",
                        "price",
                        "ticketType",
                        "fareSetter",
                        "statusCode",
                        "xLondon",
                        "permittedOriginStations",
                        "permittedDestinationStations",
                        "groups"
                    ]
                },
                "^/odyssey/fare-option/.+$": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                        "fares",
                        "labels",
                        "totalPrice"
                    ],
                    "properties": {
                        "totalPrice": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "originalPrice": {
                            "type": "number",
                            "examples": [
                                123.45
                            ],
                            "description": "Price in pence",
                            "pattern": "[0-9]+.[0-9]{2}"
                        },
                        "labels": {
                            "description": "Labels for the fare option, shared between all fares in the option plus extra fare option-specific labels",
                            "type": "array",
                            "items": {
                                "type": "string",
                                "examples": [
                                    "advance",
                                    "first-class",
                                    "split"
                                ],
                                "description": "Short, computer-readable string that describes a parameter of a fare or fare option"
                            }
                        },
                        "supplements": {
                            "type": "array",
                            "items": []
                        },
                        "hasETicket": {
                            "type": "string"
                        },
                        "validUntil": {
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "createdAt": {
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "requestId": {
                            "type": "string",
                            "pattern": ".{5,63}"
                        },
                        "sessionId": {
                            "type": "string",
                            "pattern": ".{5,63}"
                        },
                        "fares": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "adults": {
                                        "type": "number"
                                    },
                                    "children": {
                                        "type": "number"
                                    },
                                    "fare": {
                                        "type": "string",
                                        "pattern": "/odyssey/fare/.+"
                                    },
                                    "splitInfo": {
                                        "type": "object",
                                        "description": "Details of a fare split. If not present, this fare is not part of a split ticket.",
                                        "required": [
                                            "sectionIds"
                                        ],
                                        "sectionIds": {
                                            "type": "array",
                                            "items": {
                                                "type": "number"
                                            },
                                            "description": "Indicates which sections of a split ticket this fare belongs to."
                                        },
                                        "outwardOrigin": {
                                            "description": "Station where the split ticket starts for the outward journey. If not present, this fare is only for the inward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        },
                                        "outwardDestination": {
                                            "description": "The CRS code of the station where the split ticket ends for the outward journey. If not present, this fare is only for the inward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        },
                                        "inwardOrigin": {
                                            "description": "The CRS code of the station where the split ticket starts for the inward journey. If not present, this fare is only for the outward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        },
                                        "inwardDestination": {
                                            "description": "The CRS code of the station where the split ticket ends for the inward journey. If not present, this fare is only for the outward part of a split ticket.",
                                            "type": "string",
                                            "pattern": "/station/[A-Z0-9]+",
                                            "example": "/station/CRD"
                                        }
                                    },
                                    "validFrom": {
                                        "description": "Start of fare validity period",
                                        "type": "string",
                                        "examples": [
                                            "2016-01-01T12:00:00"
                                        ]
                                    },
                                    "validUntil": {
                                        "description": "End of fare validity period",
                                        "type": "string",
                                        "examples": [
                                            "2016-01-01T12:00:00"
                                        ]
                                    }
                                },
                                "required": [
                                    "adults",
                                    "children",
                                    "fare"
                                ]
                            }
                        }
                    }
                },
                "^/odyssey/journey/.+$": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                        "id",
                        "origin",
                        "destination",
                        "departure",
                        "arrival",
                        "realTime",
                        "scheduledDeparture",
                        "scheduledArrival",
                        "legs",
                        "disruptions",
                        "status"
                    ],
                    "properties": {
                        "id": {
                            "type": "string",
                            "pattern": "/odyssey/journey/.+"
                        },
                        "origin": {
                            "type": "string",
                            "pattern": "/station/[A-Z0-9]+",
                            "example": "/station/CRD",
                            "description": "A location URI containing a CRS, NLC or TIPLOC code"
                        },
                        "destination": {
                            "type": "string",
                            "pattern": "/station/[A-Z0-9]+",
                            "example": "/station/CRD",
                            "description": "A location URI containing a CRS, NLC or TIPLOC code"
                        },
                        "departure": {
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "arrival": {
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "realTime": {
                            "description": "Real time timing information",
                            "type": "object",
                            "properties": {
                                "arrival": {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "arrivalType": {
                                    "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                    "type": "string",
                                    "pattern": "scheduled|estimated|actual"
                                },
                                "departure": {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "departureType": {
                                    "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                    "type": "string",
                                    "pattern": "scheduled|estimated|actual"
                                }
                            }
                        },
                        "scheduledDeparture": {
                            "description": "[DEPRECATED] Unix timestamp, please use `departure` instead",
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "scheduledArrival": {
                            "description": "[DEPRECATED] Unix timestamp, please use `arrival` instead",
                            "type": "string",
                            "examples": [
                                "2016-01-01T12:00:00"
                            ]
                        },
                        "legs": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "pattern": "/odyssey/leg/.+"
                            }
                        },
                        "disruptions": {
                            "type": "string",
                            "pattern": "/disruption/[0-9\\-]+T[0-9\\:]+/.+"
                        },
                        "isReservationCompulsory": {
                            "type": "boolean",
                            "description": "Whether reservations on the service are compulsory"
                        },
                        "isReservationPossible": {
                            "type": "boolean",
                            "description": "Whether reservations on the service are possible"
                        },
                        "isOvertaken": {
                            "type": "boolean",
                            "description": "Whether the journey is overtaken by another journey within this page of results"
                        },
                        "overtakingJourneysCount": {
                            "type": "number",
                            "description": "Number of trains which overtakes given journey. Maximum number is 9 (so if there is more than 9 it will always be 9)"
                        },
                        "boardingTime": {
                            "$oneOf": [
                                {
                                    "type": "null"
                                },
                                {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                }
                            ]
                        },
                        "alightingTime": {
                            "$oneOf": [
                                {
                                    "type": "null"
                                },
                                {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                }
                            ]
                        },
                        "distance": {
                            "type": "number",
                            "description": "Distance traveled by the service, excluding fixed legs, in miles."
                        },
                        "co2": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                                "train",
                                "petrolCar",
                                "flight"
                            ],
                            "properties": {
                                "train": {
                                    "type": "number"
                                },
                                "petrolCar": {
                                    "type": "number"
                                },
                                "flight": {
                                    "type": "number"
                                }
                            },
                            "example": {
                                "train": 30,
                                "petrolCar": 50,
                                "flight": 70
                            }
                        },
                        "status": {
                            "type": "string",
                            "description": "Status of the journey (ready, too-soon, no-valid-fares, sold-out, cancelled)"
                        }
                    }
                },
                "^/odyssey/leg/.+$": {
                    "$oneOf": [
                        {
                            "type": "object",
                            "required": [
                                "type",
                                "source",
                                "origin",
                                "destination",
                                "mode",
                                "operator",
                                "service",
                                "departure",
                                "arrival",
                                "realTime",
                                "scheduledDeparture",
                                "scheduledArrival",
                                "disruptions",
                                "callingPoints",
                                "isDelayed"
                            ],
                            "additionalProperties": false,
                            "properties": {
                                "id": {
                                    "type": "string",
                                    "pattern": "/odyssey/leg/.+"
                                },
                                "type": {
                                    "enum": [
                                        "timetabled"
                                    ]
                                },
                                "source": {
                                    "enum": [
                                        "darwin",
                                        "dtd"
                                    ]
                                },
                                "origin": {
                                    "type": "string",
                                    "pattern": "/station/[A-Z0-9]+",
                                    "example": "/station/CRD",
                                    "description": "A location URI containing a CRS, NLC or TIPLOC code"
                                },
                                "destination": {
                                    "type": "string",
                                    "pattern": "/station/[A-Z0-9]+",
                                    "example": "/station/CRD",
                                    "description": "A location URI containing a CRS, NLC or TIPLOC code"
                                },
                                "mode": {
                                    "enum": [
                                        "train",
                                        "bus",
                                        "transfer"
                                    ]
                                },
                                "operator": {
                                    "type": "string",
                                    "pattern": "^/toc/[A-Z]{2}$"
                                },
                                "service": {
                                    "type": "object",
                                    "properties": {
                                        "trainUid": {
                                            "type": "string"
                                        },
                                        "retailServiceId": {
                                            "type": "string"
                                        },
                                        "reservationFlag": {
                                            "type": "string"
                                        },
                                        "reservable": {
                                            "type": "array",
                                            "items": [
                                                {
                                                    "enum": [
                                                        "Possible",
                                                        "Compulsory",
                                                        "Recommended",
                                                        "EssentialForBikes",
                                                        "NotReservable"
                                                    ]
                                                }
                                            ]
                                        },
                                        "origin": {
                                            "type": "string"
                                        },
                                        "destination": {
                                            "type": "string"
                                        },
                                        "date": {
                                            "type": "string"
                                        },
                                        "scheduledDeparture": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "departure": {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "arrival": {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "realTime": {
                                    "description": "Real time timing information",
                                    "type": "object",
                                    "properties": {
                                        "arrival": {
                                            "type": "string",
                                            "examples": [
                                                "2016-01-01T12:00:00"
                                            ]
                                        },
                                        "arrivalType": {
                                            "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                            "type": "string",
                                            "pattern": "scheduled|estimated|actual"
                                        },
                                        "departure": {
                                            "type": "string",
                                            "examples": [
                                                "2016-01-01T12:00:00"
                                            ]
                                        },
                                        "departureType": {
                                            "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                            "type": "string",
                                            "pattern": "scheduled|estimated|actual"
                                        }
                                    }
                                },
                                "scheduledDeparture": {
                                    "description": "[DEPRECATED] Unix timestamp, please use `departure` instead",
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "scheduledArrival": {
                                    "description": "[DEPRECATED] Unix timestamp, please use `arrival` instead",
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "disruptions": {
                                    "$oneOf": [
                                        {
                                            "type": "string",
                                            "pattern": "/disruption/[0-9\\-]+T[0-9\\:]+/.+"
                                        },
                                        {
                                            "type": "string",
                                            "pattern": "/disruption/[0-9\\-]+/[A-Za-z]{2}/[A-Za-z,]+"
                                        }
                                    ]
                                },
                                "disruptionReason": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "callingPoints": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "required": [
                                            "station",
                                            "arrival",
                                            "departure",
                                            "scheduledArrival",
                                            "scheduledDeparture",
                                            "cancelled",
                                            "pickup",
                                            "dropoff"
                                        ],
                                        "additionalProperties": false,
                                        "properties": {
                                            "station": {
                                                "type": "string",
                                                "pattern": "[A-Z]{3}"
                                            },
                                            "departure": {
                                                "type": "string",
                                                "examples": [
                                                    "2016-01-01T12:00:00"
                                                ]
                                            },
                                            "arrival": {
                                                "type": "string",
                                                "examples": [
                                                    "2016-01-01T12:00:00"
                                                ]
                                            },
                                            "realTime": {
                                                "description": "Real time timing information",
                                                "type": "object",
                                                "properties": {
                                                    "arrival": {
                                                        "type": "string",
                                                        "examples": [
                                                            "2016-01-01T12:00:00"
                                                        ]
                                                    },
                                                    "arrivalType": {
                                                        "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                                        "type": "string",
                                                        "pattern": "scheduled|estimated|actual"
                                                    },
                                                    "departure": {
                                                        "type": "string",
                                                        "examples": [
                                                            "2016-01-01T12:00:00"
                                                        ]
                                                    },
                                                    "departureType": {
                                                        "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                                        "type": "string",
                                                        "pattern": "scheduled|estimated|actual"
                                                    }
                                                }
                                            },
                                            "scheduledDeparture": {
                                                "type": "string",
                                                "examples": [
                                                    "2016-01-01T12:00:00"
                                                ]
                                            },
                                            "scheduledArrival": {
                                                "type": "string",
                                                "examples": [
                                                    "2016-01-01T12:00:00"
                                                ]
                                            },
                                            "cancelled": {
                                                "type": "boolean"
                                            },
                                            "delayed": {
                                                "type": "boolean"
                                            },
                                            "activities": {
                                                "description": "[LEGACY] Generated from pickup/dropoff, please use those fields directly",
                                                "type": "array"
                                            },
                                            "pickup": {
                                                "type": "boolean"
                                            },
                                            "dropoff": {
                                                "type": "boolean"
                                            },
                                            "platform": {
                                                "type": [
                                                    "null",
                                                    "string"
                                                ]
                                            }
                                        }
                                    }
                                },
                                "isDelayed": {
                                    "type": "boolean"
                                }
                            }
                        },
                        {
                            "type": "object",
                            "required": [
                                "type",
                                "source",
                                "origin",
                                "destination",
                                "departure",
                                "arrival",
                                "realTime",
                                "scheduledDeparture",
                                "scheduledArrival",
                                "duration",
                                "mode",
                                "originInterchange",
                                "destinationInterchange"
                            ],
                            "additionalProperties": false,
                            "properties": {
                                "type": {
                                    "enum": [
                                        "fixed"
                                    ]
                                },
                                "source": {
                                    "enum": [
                                        "darwin",
                                        "dtd"
                                    ]
                                },
                                "origin": {
                                    "type": "string",
                                    "pattern": "/station/[A-Z0-9]+",
                                    "example": "/station/CRD",
                                    "description": "A location URI containing a CRS, NLC or TIPLOC code"
                                },
                                "destination": {
                                    "type": "string",
                                    "pattern": "/station/[A-Z0-9]+",
                                    "example": "/station/CRD",
                                    "description": "A location URI containing a CRS, NLC or TIPLOC code"
                                },
                                "departure": {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "arrival": {
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "realTime": {
                                    "description": "Real time timing information",
                                    "type": "object",
                                    "properties": {
                                        "arrival": {
                                            "type": "string",
                                            "examples": [
                                                "2016-01-01T12:00:00"
                                            ]
                                        },
                                        "arrivalType": {
                                            "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                            "type": "string",
                                            "pattern": "scheduled|estimated|actual"
                                        },
                                        "departure": {
                                            "type": "string",
                                            "examples": [
                                                "2016-01-01T12:00:00"
                                            ]
                                        },
                                        "departureType": {
                                            "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                            "type": "string",
                                            "pattern": "scheduled|estimated|actual"
                                        }
                                    }
                                },
                                "scheduledDeparture": {
                                    "description": "[DEPRECATED] Unix timestamp, please use `departure` instead",
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "scheduledArrival": {
                                    "description": "[DEPRECATED] Unix timestamp, please use `arrival` instead",
                                    "type": "string",
                                    "examples": [
                                        "2016-01-01T12:00:00"
                                    ]
                                },
                                "mode": {
                                    "enum": [
                                        "train",
                                        "bus",
                                        "transfer"
                                    ]
                                },
                                "duration": {
                                    "description": "Time duration in seconds",
                                    "type": "integer"
                                },
                                "originInterchange": {
                                    "description": "Time duration in seconds",
                                    "type": "integer"
                                },
                                "destinationInterchange": {
                                    "description": "Time duration in seconds",
                                    "type": "integer"
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
}
Response example (show)
{
    "response": {
        "outward": [
            "/odyssey/journey/141:EUS_STP_transfer_900_1747799820,141:STP_SHF_Y07201,141:SHF_MAN_C27131",
            "/odyssey/journey/141:141:EUS_CRE_W09860,141:CRE_MAN_Y02956"
        ],
        "inward": [],
        "fares": {
            "/odyssey/journey/141:EUS_STP_transfer_900_1747799820,141:STP_SHF_Y07201,141:SHF_MAN_C27131": {
                "outward": [
                    "/odyssey/fare-option/141:/fare/1072-0438-00129-SOS-001-1----140-1-0--7610-0-1/fare/1072-0438-00129-SOS-000-1----140-1-0--15220-1-0",
                    "/odyssey/fare-option/141:/fare/1072-0438-00000-SOS-001-1----140-1-0--9650-0-1/fare/1072-0438-00000-SOS-000-1----140-1-0--19300-1-0",
                    "/odyssey/fare-option/141:/fare/1072-0438-00129-FOS-001-1----140-1-0--10145-0-1/fare/1072-0438-00129-FOS-000-1----140-1-0--20290-1-0",
                    "/odyssey/fare-option/141:/fare/1072-0438-00000-FOS-001-1----140-1-0--14000-0-1/fare/1072-0438-00000-FOS-000-1----140-1-0--28000-1-0"
                ],
                "inward": [],
                "return": []
            },
            "/odyssey/journey/141:141:EUS_CRE_W09860,141:CRE_MAN_Y02956": {
                "outward": [
                    "/odyssey/fare-option/141:/fare/1072-0438-00000-SOS-001-1----140-1-0--9650-0-1/fare/1072-0438-00000-SOS-000-1----140-1-0--19300-1-0",
                    "/odyssey/fare-option/141:/fare/1072-0438-00000-FOS-001-1----140-1-0--14000-0-1/fare/1072-0438-00000-FOS-000-1----140-1-0--28000-1-0",
                    "/odyssey/fare-option/141:/fare/1072-0438-00452-V2A-001-1-VR---140-1-0--9050-0-1/fare/1072-0438-00452-V2A-000-1-VR---140-1-0--18100-1-0"
                ],
                "inward": [],
                "return": []
            }
        },
        "faresNotForSale": {
            "/odyssey/journey/141:EUS_STP_transfer_900_1747799820,141:STP_SHF_Y07201,141:SHF_MAN_C27131": {
                "outward": [
                    "/odyssey/fare-option/330:/fare/3149-1072-00000-POC-000-1-PG---330-1-0--1470-1-0-1c46",
                    "/odyssey/fare-option/330:/fare/3149-3174-00000-POC-000-1-PQ---330-1-0--850-1-0/fare/3174-3087-01000-POP-000-1-PQ---330-1-0--380-1-0-RDG:WDT_WDT:PAD-1c46"
                ],
                "inward": [],
                "return": []
            },
            "/odyssey/journey/141:141:EUS_CRE_W09860,141:CRE_MAN_Y02956": {
                "outward": [
                    "/odyssey/fare-option/330:/fare/3149-1072-00000-POC-000-1-PG---330-1-0--1470-1-0-1c46"
                ],
                "inward": [],
                "return": []
            }
        },
        "addons": {
            "outward": {
                "origin": [],
                "destination": {
                    "plusbus": [
                        "/odyssey/fare-option/addon/fare/0438-J819-00009-PBD-000-1----140-1-0--490-1-1"
                    ]
                }
            }
        },
        "availability": {
            "/odyssey/journey/141:EUS_STP_transfer_900_1747799820,141:STP_SHF_Y07201,141:SHF_MAN_C27131": {
                "/ticket-type/SOS": {
                    "/route/00129": 9,
                    "/route/00000": 9
                },
                "/ticket-type/FOS": {
                    "/route/00129": 9,
                    "/route/00000": 9
                }
            },
            "/odyssey/journey/141:141:EUS_CRE_W09860,141:CRE_MAN_Y02956": {
                "/ticket-type/SOS": {
                    "/route/00000": 9
                },
                "/ticket-type/FOS": {
                    "/route/00000": 9
                },
                "/ticket-type/V2A": {
                    "/route/00452": 9
                }
            }
        },
        "splitSavings": []
    },
    "pagination": {
        "outward": {
            "current": "origin=1444&destination=2968&outwardDate=2025-05-21&outwardDepartAt=00%3A37&adults=1&children=1&horizon=24&limit=2",
            "earlier": "origin=1444&destination=2968&outwardDate=2025-05-21&outwardDepartBy=04%3A57&adults=1&children=1&horizon=24&limit=2",
            "later": "origin=1444&destination=2968&outwardDate=2025-05-21&outwardDepartAt=05%3A31&adults=1&children=1&horizon=24&limit=2"
        }
    },
    "links": {
        "/odyssey/fare/1072-0438-00129-SOS-001-1----140-1-0--7610": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00129",
            "price": 7610,
            "originalPrice": 15220,
            "ticketType": "/ticket-type/SOS",
            "restrictionCode": null,
            "fareSetter": "SMR",
            "railcard": null,
            "statusCode": "001",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00129",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00129",
            "discount": null,
            "groups": [
                "1072-0438-00129-SOS"
            ]
        },
        "/odyssey/fare/1072-0438-00129-SOS-000-1----140-1-0--15220": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00129",
            "price": 15220,
            "originalPrice": 15220,
            "ticketType": "/ticket-type/SOS",
            "restrictionCode": null,
            "fareSetter": "SMR",
            "railcard": null,
            "statusCode": "000",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00129",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00129",
            "discount": null,
            "groups": [
                "1072-0438-00129-SOS"
            ]
        },
        "/odyssey/fare-option/141:/fare/1072-0438-00129-SOS-001-1----140-1-0--7610-0-1/fare/1072-0438-00129-SOS-000-1----140-1-0--15220-1-0": {
            "totalPrice": 22830,
            "labels": [],
            "hasETicket": "/has-e-ticket/1072-0438-1555-2968-00129-SOS",
            "supplements": [],
            "fares": [
                {
                    "adults": 0,
                    "children": 1,
                    "fare": "/odyssey/fare/1072-0438-00129-SOS-001-1----140-1-0--7610"
                },
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/fare/1072-0438-00129-SOS-000-1----140-1-0--15220"
                }
            ],
            "validUntil": "2025-05-25T23:59:59"
        },
        "/odyssey/fare/1072-0438-00000-SOS-001-1----140-1-0--9650": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00000",
            "price": 9650,
            "originalPrice": 19300,
            "ticketType": "/ticket-type/SOS",
            "restrictionCode": null,
            "fareSetter": "IWC",
            "railcard": null,
            "statusCode": "001",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00000",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00000",
            "discount": null,
            "groups": [
                "1072-0438-00000-SOS"
            ]
        },
        "/odyssey/fare/1072-0438-00000-SOS-000-1----140-1-0--19300": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00000",
            "price": 19300,
            "originalPrice": 19300,
            "ticketType": "/ticket-type/SOS",
            "restrictionCode": null,
            "fareSetter": "IWC",
            "railcard": null,
            "statusCode": "000",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00000",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00000",
            "discount": null,
            "groups": [
                "1072-0438-00000-SOS"
            ]
        },
        "/odyssey/fare-option/141:/fare/1072-0438-00000-SOS-001-1----140-1-0--9650-0-1/fare/1072-0438-00000-SOS-000-1----140-1-0--19300-1-0": {
            "totalPrice": 28950,
            "labels": [],
            "hasETicket": "/has-e-ticket/1072-0438-1444-2968-00000-SOS",
            "supplements": [],
            "fares": [
                {
                    "adults": 0,
                    "children": 1,
                    "fare": "/odyssey/fare/1072-0438-00000-SOS-001-1----140-1-0--9650"
                },
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/fare/1072-0438-00000-SOS-000-1----140-1-0--19300"
                }
            ],
            "validUntil": "2025-05-25T23:59:59"
        },
        "/odyssey/fare/1072-0438-00129-FOS-001-1----140-1-0--10145": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00129",
            "price": 10145,
            "originalPrice": 20290,
            "ticketType": "/ticket-type/FOS",
            "restrictionCode": null,
            "fareSetter": "SMR",
            "railcard": null,
            "statusCode": "001",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00129",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00129",
            "discount": null,
            "groups": [
                "1072-0438-00129-FOS"
            ]
        },
        "/odyssey/fare/1072-0438-00129-FOS-000-1----140-1-0--20290": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00129",
            "price": 20290,
            "originalPrice": 20290,
            "ticketType": "/ticket-type/FOS",
            "restrictionCode": null,
            "fareSetter": "SMR",
            "railcard": null,
            "statusCode": "000",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00129",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00129",
            "discount": null,
            "groups": [
                "1072-0438-00129-FOS"
            ]
        },
        "/odyssey/fare-option/141:/fare/1072-0438-00129-FOS-001-1----140-1-0--10145-0-1/fare/1072-0438-00129-FOS-000-1----140-1-0--20290-1-0": {
            "totalPrice": 30435,
            "labels": [
                "first-class"
            ],
            "hasETicket": "/has-e-ticket/1072-0438-1555-2968-00129-FOS",
            "supplements": [],
            "fares": [
                {
                    "adults": 0,
                    "children": 1,
                    "fare": "/odyssey/fare/1072-0438-00129-FOS-001-1----140-1-0--10145"
                },
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/fare/1072-0438-00129-FOS-000-1----140-1-0--20290"
                }
            ],
            "validUntil": "2025-05-25T23:59:59"
        },
        "/odyssey/fare/1072-0438-00000-FOS-001-1----140-1-0--14000": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00000",
            "price": 14000,
            "originalPrice": 28000,
            "ticketType": "/ticket-type/FOS",
            "restrictionCode": null,
            "fareSetter": "IWC",
            "railcard": null,
            "statusCode": "001",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00000",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00000",
            "discount": null,
            "groups": [
                "1072-0438-00000-FOS"
            ]
        },
        "/odyssey/fare/1072-0438-00000-FOS-000-1----140-1-0--28000": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00000",
            "price": 28000,
            "originalPrice": 28000,
            "ticketType": "/ticket-type/FOS",
            "restrictionCode": null,
            "fareSetter": "IWC",
            "railcard": null,
            "statusCode": "000",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00000",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00000",
            "discount": null,
            "groups": [
                "1072-0438-00000-FOS"
            ]
        },
        "/odyssey/fare-option/141:/fare/1072-0438-00000-FOS-001-1----140-1-0--14000-0-1/fare/1072-0438-00000-FOS-000-1----140-1-0--28000-1-0": {
            "totalPrice": 42000,
            "labels": [
                "first-class"
            ],
            "hasETicket": "/has-e-ticket/1072-0438-1444-2968-00000-FOS",
            "supplements": [],
            "fares": [
                {
                    "adults": 0,
                    "children": 1,
                    "fare": "/odyssey/fare/1072-0438-00000-FOS-001-1----140-1-0--14000"
                },
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/fare/1072-0438-00000-FOS-000-1----140-1-0--28000"
                }
            ],
            "validUntil": "2025-05-25T23:59:59"
        },
        "/odyssey/fare/1072-0438-00452-V2A-001-1-VR---140-1-0--9050": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00452",
            "price": 9050,
            "originalPrice": 18100,
            "ticketType": "/ticket-type/V2A",
            "restrictionCode": "VR",
            "fareSetter": "IWC",
            "railcard": null,
            "statusCode": "001",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00452",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00452",
            "discount": null,
            "groups": [
                "1072-0438-00452-V2A"
            ]
        },
        "/odyssey/fare/1072-0438-00452-V2A-000-1-VR---140-1-0--18100": {
            "origin": "/station/1072",
            "destination": "/station/0438",
            "route": "/route/00452",
            "price": 18100,
            "originalPrice": 18100,
            "ticketType": "/ticket-type/V2A",
            "restrictionCode": "VR",
            "fareSetter": "IWC",
            "railcard": null,
            "statusCode": "000",
            "xLondon": 0,
            "permittedDestinationStations": "/station/0438/permitted-stations/1072/00452",
            "permittedOriginStations": "/station/1072/permitted-stations/0438/00452",
            "discount": null,
            "groups": [
                "1072-0438-00452-V2A"
            ]
        },
        "/odyssey/fare-option/141:/fare/1072-0438-00452-V2A-001-1-VR---140-1-0--9050-0-1/fare/1072-0438-00452-V2A-000-1-VR---140-1-0--18100-1-0": {
            "totalPrice": 27150,
            "labels": [
                "advance"
            ],
            "hasETicket": "/has-e-ticket/1072-0438-1444-2968-00452-V2A",
            "supplements": [],
            "fares": [
                {
                    "adults": 0,
                    "children": 1,
                    "fare": "/odyssey/fare/1072-0438-00452-V2A-001-1-VR---140-1-0--9050"
                },
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/fare/1072-0438-00452-V2A-000-1-VR---140-1-0--18100"
                }
            ],
            "validUntil": "2025-05-23T23:59:59"
        },
        "/odyssey/fare-option/addon/fare/0438-J819-00009-PBD-000-1----140-1-0--490-1-1": {
            "totalPrice": 980,
            "labels": [
                "addon",
                "plusbus"
            ],
            "supplements": [],
            "fares": [
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/fare/0438-J819-00009-PBD-000-1----140-1-0--490"
                },
                {
                    "adults": 0,
                    "children": 1,
                    "fare": "/odyssey/fare/0438-J819-00009-PBD-000-1----140-1-0--490"
                }
            ]
        },
        "/odyssey/fare/0438-J819-00009-PBD-000-1----140-1-0--490": {
            "origin": "/station/0438",
            "destination": "/station/J819",
            "route": "/route/00009",
            "price": 490,
            "originalPrice": 490,
            "ticketType": "/ticket-type/PBD",
            "restrictionCode": null,
            "fareSetter": "PLB",
            "railcard": null,
            "statusCode": "000",
            "xLondon": 0,
            "permittedDestinationStations": "/station/J819/permitted-stations/0438/00009",
            "permittedOriginStations": "/station/0438/permitted-stations/J819/00009",
            "discount": null,
            "groups": [
                "plusbus-PBD"
            ]
        },
        "/odyssey/leg/EUS_STP_transfer_900_1747799820": {
            "type": "fixed",
            "source": "dtd",
            "origin": "/station/EUS",
            "destination": "/station/STP",
            "departure": "2025-05-21T04:57:00",
            "arrival": "2025-05-21T05:12:00",
            "scheduledDeparture": "2025-05-21T04:57:00",
            "scheduledArrival": "2025-05-21T05:12:00",
            "realTime": {
                "departure": "2025-05-21T04:57:00",
                "departureType": "scheduled",
                "arrival": "2025-05-21T05:12:00",
                "arrivalType": "scheduled"
            },
            "duration": 900,
            "mode": "transfer",
            "originInterchange": 900,
            "destinationInterchange": 900
        },
        "/odyssey/leg/141:STP_SHF_Y07201": {
            "type": "timetabled",
            "source": "dtd",
            "origin": "/station/STP",
            "destination": "/station/SHF",
            "mode": "train",
            "operator": "/toc/EM",
            "service": {
                "trainUid": "Y07201",
                "retailServiceId": "EM110100",
                "reservationFlag": "S",
                "reservable": [
                    "Possible"
                ],
                "origin": "/station/STP",
                "destination": "/station/SHF",
                "date": "2025-05-21",
                "scheduledDeparture": "2025-05-21T05:27:00"
            },
            "departure": "2025-05-21T05:27:00",
            "arrival": "2025-05-21T07:42:00",
            "realTime": {
                "departure": "2025-05-21T05:27:00",
                "departureType": "scheduled",
                "arrival": "2025-05-21T07:42:00",
                "arrivalType": "scheduled"
            },
            "scheduledDeparture": "2025-05-21T05:27:00",
            "scheduledArrival": "2025-05-21T07:42:00",
            "disruptions": "/disruption/2025-05-21T05:27:00/EM_STP_SHF_Y07201",
            "callingPoints": [
                {
                    "station": "/station/STP",
                    "departure": "2025-05-21T05:27:00",
                    "arrival": "2025-05-21T05:27:00",
                    "scheduledDeparture": "2025-05-21T05:27:00",
                    "scheduledArrival": "2025-05-21T05:27:00",
                    "realTime": {
                        "departure": "2025-05-21T05:27:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T05:27:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "4",
                    "pickup": true,
                    "dropoff": false,
                    "activities": [
                        "PickUpOnly"
                    ]
                },
                {
                    "station": "/station/LEI",
                    "departure": "2025-05-21T06:37:00",
                    "arrival": "2025-05-21T06:36:00",
                    "scheduledDeparture": "2025-05-21T06:37:00",
                    "scheduledArrival": "2025-05-21T06:36:00",
                    "realTime": {
                        "departure": "2025-05-21T06:37:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T06:36:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "2",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/LBO",
                    "departure": "2025-05-21T06:47:00",
                    "arrival": "2025-05-21T06:46:00",
                    "scheduledDeparture": "2025-05-21T06:47:00",
                    "scheduledArrival": "2025-05-21T06:46:00",
                    "realTime": {
                        "departure": "2025-05-21T06:47:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T06:46:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "1",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/EMD",
                    "departure": "2025-05-21T06:55:00",
                    "arrival": "2025-05-21T06:54:00",
                    "scheduledDeparture": "2025-05-21T06:55:00",
                    "scheduledArrival": "2025-05-21T06:54:00",
                    "realTime": {
                        "departure": "2025-05-21T06:55:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T06:54:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "1",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/LGE",
                    "departure": "2025-05-21T06:59:00",
                    "arrival": "2025-05-21T06:58:00",
                    "scheduledDeparture": "2025-05-21T06:59:00",
                    "scheduledArrival": "2025-05-21T06:58:00",
                    "realTime": {
                        "departure": "2025-05-21T06:59:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T06:58:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/DBY",
                    "departure": "2025-05-21T07:10:00",
                    "arrival": "2025-05-21T07:08:00",
                    "scheduledDeparture": "2025-05-21T07:10:00",
                    "scheduledArrival": "2025-05-21T07:08:00",
                    "realTime": {
                        "departure": "2025-05-21T07:10:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T07:08:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "5",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/CHD",
                    "departure": "2025-05-21T07:28:00",
                    "arrival": "2025-05-21T07:27:00",
                    "scheduledDeparture": "2025-05-21T07:28:00",
                    "scheduledArrival": "2025-05-21T07:27:00",
                    "realTime": {
                        "departure": "2025-05-21T07:28:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T07:27:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "1",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/SHF",
                    "departure": "2025-05-21T07:42:00",
                    "arrival": "2025-05-21T07:42:00",
                    "scheduledDeparture": "2025-05-21T07:42:00",
                    "scheduledArrival": "2025-05-21T07:42:00",
                    "realTime": {
                        "departure": "2025-05-21T07:42:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T07:42:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "5A",
                    "pickup": false,
                    "dropoff": true,
                    "activities": [
                        "SetDownOnly"
                    ]
                }
            ],
            "isDelayed": false
        },
        "/odyssey/leg/141:SHF_MAN_C27131": {
            "type": "timetabled",
            "source": "darwin",
            "origin": "/station/SHF",
            "destination": "/station/MAN",
            "mode": "train",
            "operator": "/toc/TP",
            "service": {
                "trainUid": "C27131",
                "retailServiceId": "TP601700",
                "reservationFlag": "S",
                "reservable": [
                    "Possible"
                ],
                "origin": "/station/CLE",
                "destination": "/station/LIV",
                "date": "2025-05-21",
                "scheduledDeparture": "2025-05-21T06:26:00"
            },
            "departure": "2025-05-21T08:08:00",
            "arrival": "2025-05-21T09:05:00",
            "realTime": {
                "departure": "2025-05-21T08:08:00",
                "departureType": "scheduled",
                "arrival": "2025-05-21T09:05:00",
                "arrivalType": "scheduled"
            },
            "scheduledDeparture": "2025-05-21T08:08:00",
            "scheduledArrival": "2025-05-21T09:05:00",
            "disruptions": "/disruption/2025-05-21T08:08:00/TP_SHF_MAN_C27131",
            "callingPoints": [
                {
                    "station": "/station/SHF",
                    "departure": "2025-05-21T08:08:00",
                    "arrival": "2025-05-21T08:06:00",
                    "scheduledDeparture": "2025-05-21T08:08:00",
                    "scheduledArrival": "2025-05-21T08:06:00",
                    "realTime": {
                        "departure": "2025-05-21T08:08:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:06:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": true,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/DOR",
                    "departure": "2025-05-21T08:14:00",
                    "arrival": "2025-05-21T08:14:00",
                    "scheduledDeparture": "2025-05-21T08:14:00",
                    "scheduledArrival": "2025-05-21T08:14:00",
                    "realTime": {
                        "departure": "2025-05-21T08:14:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:14:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": true,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/SPT",
                    "departure": "2025-05-21T08:55:00",
                    "arrival": "2025-05-21T08:53:00",
                    "scheduledDeparture": "2025-05-21T08:55:00",
                    "scheduledArrival": "2025-05-21T08:53:00",
                    "realTime": {
                        "departure": "2025-05-21T08:55:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:53:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": true,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/MAN",
                    "departure": "2025-05-21T09:07:00",
                    "arrival": "2025-05-21T09:05:00",
                    "scheduledDeparture": "2025-05-21T09:07:00",
                    "scheduledArrival": "2025-05-21T09:05:00",
                    "realTime": {
                        "departure": "2025-05-21T09:07:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T09:05:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": true,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                }
            ],
            "isDelayed": false
        },
        "/odyssey/journey/141:EUS_STP_transfer_900_1747799820,141:STP_SHF_Y07201,141:SHF_MAN_C27131": {
            "id": "/odyssey/journey/141:EUS_STP_transfer_900_1747799820,141:STP_SHF_Y07201,141:SHF_MAN_C27131",
            "origin": "/station/EUS",
            "destination": "/station/MAN",
            "departure": "2025-05-21T05:27:00",
            "arrival": "2025-05-21T09:05:00",
            "realTime": {
                "departure": "2025-05-21T05:27:00",
                "departureType": "scheduled",
                "arrival": "2025-05-21T09:05:00",
                "arrivalType": "scheduled"
            },
            "scheduledDeparture": "2025-05-21T05:27:00",
            "scheduledArrival": "2025-05-21T09:05:00",
            "legs": [
                "/odyssey/leg/EUS_STP_transfer_900_1747799820",
                "/odyssey/leg/141:STP_SHF_Y07201",
                "/odyssey/leg/141:SHF_MAN_C27131"
            ],
            "disruptions": "/disruption/2025-05-21T04:57:00/EUS_STP_transfer,EM_STP_SHF_Y07201,TP_SHF_MAN_C27131",
            "isReservationCompulsory": false,
            "isReservationPossible": true,
            "isOvertaken": true,
            "overtakingJourneysCount": 4,
            "status": "ready",
            "boardingTime": null,
            "alightingTime": null,
            "distance": 207
        },
        "/odyssey/leg/141:EUS_CRE_W09860": {
            "type": "timetabled",
            "source": "dtd",
            "origin": "/station/EUS",
            "destination": "/station/CRE",
            "mode": "train",
            "operator": "/toc/VT",
            "service": {
                "trainUid": "W09860",
                "retailServiceId": "VT600000",
                "reservationFlag": "A",
                "reservable": [
                    "Compulsory"
                ],
                "origin": "/station/EUS",
                "destination": "/station/GLC",
                "date": "2025-05-21",
                "scheduledDeparture": "2025-05-21T05:31:00"
            },
            "departure": "2025-05-21T05:31:00",
            "arrival": "2025-05-21T07:23:00",
            "realTime": {
                "departure": "2025-05-21T05:31:00",
                "departureType": "scheduled",
                "arrival": "2025-05-21T07:23:00",
                "arrivalType": "scheduled"
            },
            "scheduledDeparture": "2025-05-21T05:31:00",
            "scheduledArrival": "2025-05-21T07:23:00",
            "disruptions": "/disruption/2025-05-21T05:31:00/VT_EUS_CRE_W09860",
            "callingPoints": [
                {
                    "station": "/station/EUS",
                    "departure": "2025-05-21T05:31:00",
                    "arrival": "2025-05-21T05:31:00",
                    "scheduledDeparture": "2025-05-21T05:31:00",
                    "scheduledArrival": "2025-05-21T05:31:00",
                    "realTime": {
                        "departure": "2025-05-21T05:31:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T05:31:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "5",
                    "pickup": true,
                    "dropoff": false,
                    "activities": [
                        "PickUpOnly"
                    ]
                },
                {
                    "station": "/station/WFJ",
                    "departure": "2025-05-21T05:48:00",
                    "arrival": "2025-05-21T05:48:00",
                    "scheduledDeparture": "2025-05-21T05:48:00",
                    "scheduledArrival": "2025-05-21T05:48:00",
                    "realTime": {
                        "departure": "2025-05-21T05:48:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T05:48:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "8",
                    "pickup": true,
                    "dropoff": false,
                    "activities": [
                        "PickUpOnly"
                    ]
                },
                {
                    "station": "/station/MKC",
                    "departure": "2025-05-21T06:17:00",
                    "arrival": "2025-05-21T06:16:00",
                    "scheduledDeparture": "2025-05-21T06:17:00",
                    "scheduledArrival": "2025-05-21T06:16:00",
                    "realTime": {
                        "departure": "2025-05-21T06:17:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T06:16:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "2",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/RUG",
                    "departure": "2025-05-21T06:39:00",
                    "arrival": "2025-05-21T06:37:00",
                    "scheduledDeparture": "2025-05-21T06:39:00",
                    "scheduledArrival": "2025-05-21T06:37:00",
                    "realTime": {
                        "departure": "2025-05-21T06:39:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T06:37:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "1",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/CRE",
                    "departure": "2025-05-21T07:27:00",
                    "arrival": "2025-05-21T07:23:00",
                    "scheduledDeparture": "2025-05-21T07:27:00",
                    "scheduledArrival": "2025-05-21T07:23:00",
                    "realTime": {
                        "departure": "2025-05-21T07:27:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T07:23:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "11",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                }
            ],
            "isDelayed": false
        },
        "/odyssey/leg/141:CRE_MAN_Y02956": {
            "type": "timetabled",
            "source": "dtd",
            "origin": "/station/CRE",
            "destination": "/station/MAN",
            "mode": "train",
            "operator": "/toc/NT",
            "service": {
                "trainUid": "Y02956",
                "retailServiceId": "NT718400",
                "reservationFlag": "S",
                "reservable": [
                    "Possible"
                ],
                "origin": "/station/CRE",
                "destination": "/station/MAN",
                "date": "2025-05-21",
                "scheduledDeparture": "2025-05-21T07:46:00"
            },
            "departure": "2025-05-21T07:46:00",
            "arrival": "2025-05-21T08:42:00",
            "realTime": {
                "departure": "2025-05-21T07:46:00",
                "departureType": "scheduled",
                "arrival": "2025-05-21T08:42:00",
                "arrivalType": "scheduled"
            },
            "scheduledDeparture": "2025-05-21T07:46:00",
            "scheduledArrival": "2025-05-21T08:42:00",
            "disruptions": "/disruption/2025-05-21T07:46:00/NT_CRE_MAN_Y02956",
            "callingPoints": [
                {
                    "station": "/station/CRE",
                    "departure": "2025-05-21T07:46:00",
                    "arrival": "2025-05-21T07:46:00",
                    "scheduledDeparture": "2025-05-21T07:46:00",
                    "scheduledArrival": "2025-05-21T07:46:00",
                    "realTime": {
                        "departure": "2025-05-21T07:46:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T07:46:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "1",
                    "pickup": true,
                    "dropoff": false,
                    "activities": [
                        "PickUpOnly"
                    ]
                },
                {
                    "station": "/station/SDB",
                    "departure": "2025-05-21T07:53:00",
                    "arrival": "2025-05-21T07:53:00",
                    "scheduledDeparture": "2025-05-21T07:53:00",
                    "scheduledArrival": "2025-05-21T07:53:00",
                    "realTime": {
                        "departure": "2025-05-21T07:53:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T07:53:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "2",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/HCH",
                    "departure": "2025-05-21T07:58:00",
                    "arrival": "2025-05-21T07:57:00",
                    "scheduledDeparture": "2025-05-21T07:58:00",
                    "scheduledArrival": "2025-05-21T07:57:00",
                    "realTime": {
                        "departure": "2025-05-21T07:58:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T07:57:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/GTR",
                    "departure": "2025-05-21T08:01:00",
                    "arrival": "2025-05-21T08:01:00",
                    "scheduledDeparture": "2025-05-21T08:01:00",
                    "scheduledArrival": "2025-05-21T08:01:00",
                    "realTime": {
                        "departure": "2025-05-21T08:01:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:01:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/CEL",
                    "departure": "2025-05-21T08:05:00",
                    "arrival": "2025-05-21T08:05:00",
                    "scheduledDeparture": "2025-05-21T08:05:00",
                    "scheduledArrival": "2025-05-21T08:05:00",
                    "realTime": {
                        "departure": "2025-05-21T08:05:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:05:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": null,
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/ALD",
                    "departure": "2025-05-21T08:10:00",
                    "arrival": "2025-05-21T08:09:00",
                    "scheduledDeparture": "2025-05-21T08:10:00",
                    "scheduledArrival": "2025-05-21T08:09:00",
                    "realTime": {
                        "departure": "2025-05-21T08:10:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:09:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "1",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/WML",
                    "departure": "2025-05-21T08:13:00",
                    "arrival": "2025-05-21T08:13:00",
                    "scheduledDeparture": "2025-05-21T08:13:00",
                    "scheduledArrival": "2025-05-21T08:13:00",
                    "realTime": {
                        "departure": "2025-05-21T08:13:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:13:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "3",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/HTH",
                    "departure": "2025-05-21T08:16:00",
                    "arrival": "2025-05-21T08:16:00",
                    "scheduledDeparture": "2025-05-21T08:16:00",
                    "scheduledArrival": "2025-05-21T08:16:00",
                    "realTime": {
                        "departure": "2025-05-21T08:16:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:16:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "2",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/CHU",
                    "departure": "2025-05-21T08:21:00",
                    "arrival": "2025-05-21T08:21:00",
                    "scheduledDeparture": "2025-05-21T08:21:00",
                    "scheduledArrival": "2025-05-21T08:21:00",
                    "realTime": {
                        "departure": "2025-05-21T08:21:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:21:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "1",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/SPT",
                    "departure": "2025-05-21T08:26:00",
                    "arrival": "2025-05-21T08:26:00",
                    "scheduledDeparture": "2025-05-21T08:26:00",
                    "scheduledArrival": "2025-05-21T08:26:00",
                    "realTime": {
                        "departure": "2025-05-21T08:26:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:26:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "4",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/HTC",
                    "departure": "2025-05-21T08:30:00",
                    "arrival": "2025-05-21T08:30:00",
                    "scheduledDeparture": "2025-05-21T08:30:00",
                    "scheduledArrival": "2025-05-21T08:30:00",
                    "realTime": {
                        "departure": "2025-05-21T08:30:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:30:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "2",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/LVM",
                    "departure": "2025-05-21T08:33:00",
                    "arrival": "2025-05-21T08:33:00",
                    "scheduledDeparture": "2025-05-21T08:33:00",
                    "scheduledArrival": "2025-05-21T08:33:00",
                    "realTime": {
                        "departure": "2025-05-21T08:33:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:33:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "2",
                    "pickup": true,
                    "dropoff": true,
                    "activities": [
                        "Normal"
                    ]
                },
                {
                    "station": "/station/MAN",
                    "departure": "2025-05-21T08:42:00",
                    "arrival": "2025-05-21T08:42:00",
                    "scheduledDeparture": "2025-05-21T08:42:00",
                    "scheduledArrival": "2025-05-21T08:42:00",
                    "realTime": {
                        "departure": "2025-05-21T08:42:00",
                        "departureType": "scheduled",
                        "arrival": "2025-05-21T08:42:00",
                        "arrivalType": "scheduled"
                    },
                    "cancelled": false,
                    "delayed": false,
                    "platform": "3",
                    "pickup": false,
                    "dropoff": true,
                    "activities": [
                        "SetDownOnly"
                    ]
                }
            ],
            "isDelayed": false
        },
        "/odyssey/journey/141:141:EUS_CRE_W09860,141:CRE_MAN_Y02956": {
            "id": "/odyssey/journey/141:141:EUS_CRE_W09860,141:CRE_MAN_Y02956",
            "origin": "/station/EUS",
            "destination": "/station/MAN",
            "departure": "2025-05-21T05:31:00",
            "arrival": "2025-05-21T08:42:00",
            "realTime": {
                "departure": "2025-05-21T05:31:00",
                "departureType": "scheduled",
                "arrival": "2025-05-21T08:42:00",
                "arrivalType": "scheduled"
            },
            "scheduledDeparture": "2025-05-21T05:31:00",
            "scheduledArrival": "2025-05-21T08:42:00",
            "legs": [
                "/odyssey/leg/141:EUS_CRE_W09860",
                "/odyssey/leg/141:CRE_MAN_Y02956"
            ],
            "disruptions": "/disruption/2025-05-21T05:31:00/VT_EUS_CRE_W09860,NT_CRE_MAN_Y02956",
            "isReservationCompulsory": true,
            "isReservationPossible": true,
            "isOvertaken": false,
            "overtakingJourneysCount": 0,
            "status": "ready",
            "boardingTime": null,
            "alightingTime": null,
            "distance": 185
        }
    },
    "messages": []
}

GET /odyssey/rover-search

Find Rangers & Rovers

Parameters

number adults (required)

Example: 2

number children (required)

Example: 1

string railcards

Example: YNG,EDU

string startDate (required)

Example: 1539475200

string roverCode (required)

code of Rover you are looking for

Example: 14R

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "response": {
            "type": "object",
            "required": [
                "fares"
            ],
            "additionalProperties": false,
            "properties": {
                "fares": {
                    "type": "array",
                    "description": "array of RoverOption links, which were selected as a best possible option for passenger set",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "links": {
            "type": "object"
        }
    }
}
Response example (show)
{
    "response": {
        "fares": [
            "/odyssey/rover-option/1234-I662-14R-1-0-77815-DIS-2018164-1234-I662-14R-1-0-77815-DIS-2018164",
            "/odyssey/rover-option/1234-I662-14R-1-0-50950-DIS-2018164-1234-I662-14R-1-0-50950-DIS-2018164"
        ]
    },
    "links": {
        "1234-I662-14R-1-0-77815-DIS-2018164": {
            "origin": "/station/1234",
            "destination": "/station/I662",
            "restrictionCode": "/restriction/AL",
            "isFirstClass": true,
            "price": 77815,
            "railcard": "/railcard/DIS",
            "type": "/rover-type/14R",
            "validityPeriod": {
                "from": "2018-06-13 00:00:00",
                "until": "2018-06-26 23:59:59"
            }
        },
        "1234-I662-14R-1-0-50950-DIS-2018164": {
            "origin": "/station/1234",
            "destination": "/station/I662",
            "restrictionCode": "/restriction/AL",
            "isFirstClass": false,
            "price": 50950,
            "railcard": "/railcard/DIS",
            "type": "/rover-type/14R",
            "validityPeriod": {
                "from": "2018-06-13 00:00:00",
                "until": "2018-06-26 23:59:59"
            }
        },
        "/odyssey/rover-option/1234-I662-14R-1-0-77815-DIS-2018164-1234-I662-14R-1-0-77815-DIS-2018164": {
            "fares": [
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/rover/1234-I662-14R-1-0-77815-DIS-2018164"
                },
                {
                    "adults": 1,
                    "children": 0,
                    "fare": "/odyssey/rover/1234-I662-14R-1-0-77815-DIS-2018164"
                }
            ]
        },
        "/odyssey/rover-option/1234-I662-14R-1-0-50950-DIS-2018164-1234-I662-14R-1-0-50950-DIS-2018164": {
            "fares": [
                {
                    "adults": 1,
                    "children": 0,
                    "rover": "/odyssey/rover/1234-I662-14R-1-0-50950-DIS-2018164"
                },
                {
                    "adults": 1,
                    "children": 0,
                    "rover": "/odyssey/rover/1234-I662-14R-1-0-50950-DIS-2018164"
                }
            ]
        },
        "/station/7648": [],
        "/station/I662": [],
        "/restriction/AL": [],
        "/rover-type/14R": [],
        "/railcard/DIS": []
    }
}

GET /odyssey/rover-option/:id

Return rover option.

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "data": {
            "type": "object",
            "properties": {
                "fares": {
                    "type": "array",
                    "description": "List of rover uses.",
                    "items": {
                        "type": "object",
                        "properties": {
                            "adults": {
                                "type": "number"
                            },
                            "children": {
                                "type": "number"
                            },
                            "rover": {
                                "type": "string",
                                "description": "URI of rover-type"
                            }
                        }
                    }
                }
            },
            "required": [
                "fares"
            ]
        }
    }
}
Response example (show)
{
    "data": {
        "fares": [
            {
                "adults": 1,
                "children": 0,
                "fare": "/odyssey/rover/1234-I662-14R-1-0-77815-DIS-2018164"
            },
            {
                "adults": 0,
                "children": 1,
                "fare": "/odyssey/rover/1234-I662-14R-0-1-58950--2018164"
            }
        ]
    },
    "links": {
        "1234-I662-14R-1-0-77815-DIS-2018164": {
            "origin": "/station/1234",
            "destination": "/station/I662",
            "restrictionCode": "/restriction/AL",
            "isFirstClass": true,
            "price": 77815,
            "railcard": "/railcard/DIS",
            "type": "/rover-type/14R",
            "validityPeriod": {
                "from": "2018-06-13 00:00:00",
                "until": "2018-06-26 23:59:59"
            }
        },
        "1234-I662-14R-0-1-58950--2018164": {
            "origin": "/station/1234",
            "destination": "/station/I662",
            "restrictionCode": "/restriction/AL",
            "isFirstClass": true,
            "price": 58950,
            "railcard": "/railcard/null",
            "type": "/rover-type/14R",
            "validityPeriod": {
                "from": "2018-06-13 00:00:00",
                "until": "2018-06-26 23:59:59"
            }
        },
        "/station/7648": [],
        "/station/I662": [],
        "/restriction/AL": [],
        "/rover-type/14R": [],
        "/railcard/DIS": []
    }
}

GET /odyssey/rover/:id

Return rover.

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "data": {
            "type": "object",
            "properties": {
                "origin": {
                    "type": "string",
                    "description": "origin station URI. It will be always retailer NLC uri."
                },
                "destination": {
                    "type": "string",
                    "description": "origin station URI. It will be always rover accounting code uri."
                },
                "price": {
                    "type": "number",
                    "description": "Sum of 'rovers' prices"
                },
                "railcard": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "restrictionCode": {
                    "type": "string",
                    "description": "Restriction code"
                },
                "isFirstClass": {
                    "type": "boolean"
                },
                "validityPeriod": {
                    "type": "object",
                    "properties": {
                        "from": {
                            "type": "string"
                        },
                        "until": {
                            "type": "string"
                        }
                    }
                }
            },
            "required": [
                "origin",
                "destination",
                "price",
                "railcard",
                "restrictionCode",
                "isFirstClass",
                "validityPeriod"
            ]
        }
    }
}
Response example (show)
{
    "data": {
        "origin": "/station/1234",
        "destination": "/station/I662",
        "restrictionCode": "AL",
        "isFirstClass": true,
        "price": 77815,
        "railcard": "/railcard/DIS",
        "type": "/rover-type/14R",
        "validityPeriod": {
            "from": "2018-06-13 00:00:00",
            "until": "2018-06-26 23:59:59"
        }
    },
    "links": {
        "/station/7648": [],
        "/station/I662": [],
        "/restriction/AL": [],
        "/rover-type/14R": [],
        "/railcard/DIS": []
    }
}

GET /odyssey/loading

Service loading information

Parameters

string tenant

Tenant name

Headers

string X-Tenant

Tenant name

200 application/json
Response schema (show)
{
    "type": "object",
    "required": [
        "data"
    ],
    "additionalProperties": false,
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "required": [
                    "rid",
                    "uid",
                    "toc",
                    "departure",
                    "arrival",
                    "stops"
                ],
                "additionalProperties": false,
                "properties": {
                    "rid": {
                        "type": "string",
                        "pattern": "[0-9]+"
                    },
                    "uid": {
                        "type": "string",
                        "pattern": "[A-Z]+[0-9]+"
                    },
                    "toc": {
                        "type": "string",
                        "pattern": "[A-Z]{2}"
                    },
                    "departure": {
                        "type": "string",
                        "pattern": "\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}"
                    },
                    "arrival": {
                        "type": "string",
                        "pattern": "\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}"
                    },
                    "stops": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "crs",
                                "departure"
                            ],
                            "additionalProperties": false,
                            "properties": {
                                "crs": {
                                    "type": "string",
                                    "pattern": "[A-Z]{3}"
                                },
                                "departure": {
                                    "type": "string",
                                    "pattern": "\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}"
                                },
                                "averageLoading": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 100
                                },
                                "observedLoading": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "coaches": {
                        "type": "object"
                    }
                }
            }
        },
        "links": {
            "type": "object"
        }
    }
}
Response example (show)
{
    "data": [
        {
            "rid": "201901317119776",
            "uid": "G19776",
            "toc": "GX",
            "departure": "2019-01-31T06:14",
            "arrival": "2019-01-31T07:14",
            "stops": [
                {
                    "crs": "BTN",
                    "departure": "2019-01-31T06:14",
                    "averageLoading": 25,
                    "observedLoading": {
                        "1": 10,
                        "2": 20
                    }
                },
                {
                    "crs": "HSK",
                    "departure": "2019-01-31T06:23",
                    "averageLoading": 30,
                    "observedLoading": {
                        "1": 15,
                        "2": 25
                    }
                }
            ],
            "coaches": {
                "1": {
                    "class": "Standard",
                    "toiletType": "Accessible",
                    "toiletStatus": "Unknown"
                },
                "2": {
                    "class": "Standard",
                    "toiletType": "Standard",
                    "toiletStatus": "Unknown"
                }
            }
        },
        {
            "rid": "201901317119837",
            "uid": "G19837",
            "toc": "GX",
            "departure": "2019-01-31T06:29",
            "arrival": "2019-01-31T07:28",
            "stops": [
                {
                    "crs": "BTN",
                    "departure": "2019-01-31T06:29"
                },
                {
                    "crs": "HSK",
                    "departure": "2019-01-31T06:38"
                }
            ]
        }
    ],
    "links": []
}

GET /odyssey/travelcard

Query standalone Travelcard fares. Travelcards are only available in the London area.

Parameters

string date (required)

Date of travel on the travelcard.

Example: 1540425600

integer adults (required)

Number of adult fares.

Example: 1

integer children

Number of child fares.

Example: 2

string railcards

Comma separated list of railcards. To indicate multiples of a railcard type either repeat it, or use the 'x' format (YNGx3).

Example: YNGx2,DIS

string promoCode

Promo code to apply to the fares, if possible.

Example: SUMMER23

string include

Lets you specify which parts of the response you want to include.

Example: *.station

string ticketType

For debugging purposes, allows you to specify a ticket type to return.

Example: 1SA

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "response": {
            "type": "object",
            "additionalProperties": false,
            "required": [
                "fares"
            ],
            "properties": {
                "fares": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "pattern": "/fare\\-option/fare/.+"
                    }
                }
            }
        },
        "links": {
            "type": "object"
        }
    }
}
Response example (show)
{
    "response": {
        "fares": [
            "/odyssey/fare-option/fare/1072-0034-01000-ADT-000-1----58-1-0--1-0",
            "/odyssey/fare-option/fare/1072-0035-01000-ADT-000-1----58-1-0--1-0",
            "/odyssey/fare-option/fare/1072-0035-01000-ODT-000-1-B1---58-1-0--1-0"
        ]
    },
    "links": []
}

Journey Planning Reference Data

GET /current-schedule/{origin}/{destination}/{departure}/{arrival}/{rsid}

Fetch latest state of a scheduled leg.

Parameters

string origin (required)

NLC, TIPLOC or CRS code of journey origin

Example: TBW

string destination (required)

NLC, TIPLOC or CRS code of journey destination

Example: TBW

string departure (required)

Original departure date and time

Example: 2018-10-25T12:34

string arrival (required)

Original arrival date and time

Example: 2018-10-25T12:34

string rsid (required)

Original RSID of the service

Example: GW646000

200 application/json
Response schema (show)
{
    "type": "object",
    "additionalProperties": false,
    "required": [
        "status",
        "data",
        "links"
    ],
    "properties": {
        "status": {
            "type": "string"
        },
        "data": {
            "type": "object",
            "additionalProperties": false,
            "required": [
                "type",
                "source",
                "mode",
                "origin",
                "destination",
                "departure",
                "arrival",
                "service",
                "stops"
            ],
            "properties": {
                "type": {
                    "type": "string",
                    "pattern": "timetabled|fixed"
                },
                "source": {
                    "type": "string",
                    "pattern": "dtd|darwin"
                },
                "mode": {
                    "type": "string"
                },
                "origin": {
                    "type": "string",
                    "pattern": "[A-Z]{3}",
                    "example": "EUS"
                },
                "originNlc": {
                    "type": "string",
                    "pattern": "[a-z0-9]{4}",
                    "example": "1072"
                },
                "destination": {
                    "type": "string",
                    "pattern": "[A-Z]{3}",
                    "example": "EUS"
                },
                "destinationNlc": {
                    "type": "string",
                    "pattern": "[a-z0-9]{4}",
                    "example": "1072"
                },
                "departure": {
                    "description": "Unix timestamp",
                    "type": "integer"
                },
                "arrival": {
                    "description": "Unix timestamp",
                    "type": "integer"
                },
                "realTime": {
                    "description": "Real time timing information",
                    "type": "object",
                    "properties": {
                        "arrival": {
                            "description": "Unix timestamp",
                            "type": "integer"
                        },
                        "arrivalType": {
                            "description": "Indicates whether the time is scheduled, estimated or actually measured",
                            "type": "string",
                            "pattern": "scheduled|estimated|actual"
                        },
                        "departure": {
                            "description": "Unix timestamp",
                            "type": "integer"
                        },
                        "departureType": {
                            "description": "Indicates whether the time is scheduled, estimated or actually measured",
                            "type": "string",
                            "pattern": "scheduled|estimated|actual"
                        }
                    }
                },
                "scheduledDeparture": {
                    "description": "[DEPRECATED] Unix timestamp, please use `departure` instead",
                    "type": "integer"
                },
                "scheduledArrival": {
                    "description": "[DEPRECATED] Unix timestamp, please use `arrival` instead",
                    "type": "integer"
                },
                "service": {
                    "type": "string",
                    "pattern": "/service/.+"
                },
                "disruptionReason": {
                    "type": "string"
                },
                "stops": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                            "station",
                            "departure",
                            "arrival",
                            "cancelled",
                            "platform",
                            "pickup",
                            "dropoff"
                        ],
                        "properties": {
                            "station": {
                                "type": "string",
                                "pattern": "[A-Z]{3}",
                                "example": "EUS"
                            },
                            "stationNlc": {
                                "type": "string",
                                "pattern": "[a-z0-9]{4}",
                                "example": "1072"
                            },
                            "departure": {
                                "description": "Unix timestamp",
                                "type": "integer"
                            },
                            "arrival": {
                                "description": "Unix timestamp",
                                "type": "integer"
                            },
                            "realTime": {
                                "description": "Real time timing information",
                                "type": "object",
                                "properties": {
                                    "arrival": {
                                        "description": "Unix timestamp",
                                        "type": "integer"
                                    },
                                    "arrivalType": {
                                        "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                        "type": "string",
                                        "pattern": "scheduled|estimated|actual"
                                    },
                                    "departure": {
                                        "description": "Unix timestamp",
                                        "type": "integer"
                                    },
                                    "departureType": {
                                        "description": "Indicates whether the time is scheduled, estimated or actually measured",
                                        "type": "string",
                                        "pattern": "scheduled|estimated|actual"
                                    }
                                }
                            },
                            "scheduledDeparture": {
                                "description": "[DEPRECATED] Unix timestamp, please use `departure` instead",
                                "type": "integer"
                            },
                            "scheduledArrival": {
                                "description": "[DEPRECATED] Unix timestamp, please use `arrival` instead",
                                "type": "integer"
                            },
                            "cancelled": {
                                "type": "boolean"
                            },
                            "platform": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "pickup": {
                                "type": "boolean"
                            },
                            "dropoff": {
                                "type": "boolean"
                            }
                        }
                    }
                }
            }
        },
        "links": {
            "type": "object"
        }
    }
}
Response example (show)
{
    "status": "success",
    "data": {
        "type": "timetabled",
        "source": "dtd",
        "mode": "train",
        "origin": "LST",
        "originNlc": "6965",
        "destination": "CLT",
        "destinationNlc": "6850",
        "departure": 1642977420,
        "arrival": 1642982880,
        "scheduledArrival": 1637879800,
        "service": "/service/23:C56364",
        "stops": [
            {
                "station": "LST",
                "stationNlc": "6965",
                "departure": 1642977420,
                "arrival": 1642977420,
                "cancelled": false,
                "platform": "12",
                "pickup": true,
                "dropoff": false
            },
            {
                "station": "GDP",
                "stationNlc": "6877",
                "departure": 1642978350,
                "arrival": 1642978350,
                "cancelled": false,
                "platform": "2",
                "pickup": false,
                "dropoff": false
            }
        ],
        "disruptionReason": "This train has been delayed by a passenger having been taken ill earlier near London Euston"
    },
    "links": []
}

GET /service-info/{tuid}/{date}

Fetch service information

Parameters

string tuid (required)

Service TUID

Example: C49393

string date (required)

Service date

Example: 1745971200

200 application/json
Response schema (show)
{
    "type": "object",
    "additionalProperties": false,
    "required": [
        "status",
        "data"
    ],
    "properties": {
        "status": {
            "type": "string"
        },
        "data": {
            "type": "object",
            "additionalProperties": false,
            "required": [
                "operator",
                "tuid",
                "reservationCode",
                "reservation",
                "isSleeper",
                "facilitiesCode",
                "facilities"
            ],
            "properties": {
                "operator": {
                    "description": "A two-letter service operator code",
                    "pattern": "[A-Z]{2}",
                    "type": "string",
                    "example": "CS"
                },
                "tuid": {
                    "description": "Train Unique ID code",
                    "pattern": "[A-Z]{1}[0-9]{5}",
                    "type": "string",
                    "example": "C12345"
                },
                "rsid": {
                    "description": "Retail Service ID code",
                    "pattern": "[A-Z]{2}[0-9]{4,6}",
                    "type": "string",
                    "example": "CS1234"
                },
                "reservationCode": {
                    "description": "Service reservation indicator (A: Compulsory, R: Recommended, S: Possible, E: Essential for bikes, empty string means non-reservable)",
                    "pattern": "A|R|S|B|",
                    "type": "string"
                },
                "reservation": {
                    "description": "Service reservation indicator text",
                    "pattern": "compulsory|essential-for-bikes|recommended|possible|non-reservable",
                    "type": "string"
                },
                "isSleeper": {
                    "type": "boolean"
                },
                "facilitiesCode": {
                    "description": "Facilities indicator",
                    "pattern": "[C|F|H|M|P|R|T]{0,4}",
                    "type": "string"
                },
                "facilities": {
                    "type": "object",
                    "properties": {
                        "standardClass": {
                            "type": "boolean"
                        },
                        "firstClass": {
                            "type": "boolean"
                        },
                        "firstClassMeal": {
                            "type": "boolean"
                        },
                        "firstClassRestaurant": {
                            "type": "boolean"
                        },
                        "hotFood": {
                            "type": "boolean"
                        },
                        "buffet": {
                            "type": "boolean"
                        },
                        "restaurant": {
                            "type": "boolean"
                        },
                        "trolley": {
                            "type": "boolean"
                        },
                        "wheelchair": {
                            "type": "boolean"
                        }
                    }
                }
            }
        }
    }
}
Response example (show)
{
    "status": "success",
    "data": {
        "operator": "VT",
        "tuid": "C49393",
        "rsid": "VT713500",
        "reservationCode": "A",
        "reservation": "compulsory",
        "isSleeper": false,
        "facilitiesCode": "F",
        "facilities": {
            "standardClass": true,
            "firstClass": true,
            "firstClassMeal": false,
            "firstClassRestaurant": true,
            "hotFood": false,
            "buffet": false,
            "restaurant": false,
            "trolley": false,
            "wheelchair": false
        }
    }
}

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.

Application health check. Returns plain JSON (no JSend wrapper) with app name, environment, and git SHA.

GET /healthcheck

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string",
            "description": "Application name"
        },
        "env": {
            "type": "string",
            "description": "Environment name (e.g. prod, staging, dev)"
        },
        "sha": {
            "type": "string",
            "description": "Git commit SHA of the deployed build"
        }
    },
    "required": [
        "name",
        "env",
        "sha"
    ],
    "additionalProperties": false
}
Response example (show)
{
    "name": "order-service",
    "env": "prod",
    "sha": "abc1234def5678"
}

Prometheus metrics endpoint. Returns metrics in Prometheus exposition format (text/plain).

GET /metrics

200 text/plain
Response example (show)
null

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"
                                        }
                                    ]
                                }
                            }
                        },
                        "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"
                                }
                            ]
                        },
                        "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"
        }
    }
}
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}/fulfilment

Return the fulfilment status of the order. Note that individual items in the order may have different fulfilment statuses.

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": {
                    "properties": {
                        "machine": {
                            "type": "string",
                            "pattern": "^/machine/[A-Z0-9]{3,}/\\d{2}/\\d{4}$"
                        }
                    },
                    "required": [],
                    "additionalProperties": false
                }
            }
        }
    ]
}
Response example (show)
{
    "status": "success",
    "data": {
        "machine": "/machine/H123/01/2222"
    }
}
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 /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}/delivery

Add delivery method to existing order without delivery

Request schema (show)
{
    "type": "object",
    "properties": {
        "delivery": {
            "type": "object",
            "description": "Delivery property is allowed only if items are not blank. You can't specify delivery type when there is no items in order.",
            "properties": {
                "type": {
                    "type": "string",
                    "pattern": "^/delivery/.+$"
                },
                "collectionPoint": {
                    "type": "string",
                    "pattern": "^/station/[A-Z0-9]+$"
                },
                "address": {
                    "type": "object",
                    "properties": {
                        "title": {
                            "type": "string"
                        },
                        "firstNames": {
                            "type": "string"
                        },
                        "surname": {
                            "type": "string"
                        },
                        "address1": {
                            "type": "string"
                        },
                        "address2": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "address3": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "town": {
                            "type": "string"
                        },
                        "county": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "postCode": {
                            "type": "string"
                        },
                        "country": {
                            "type": "string"
                        },
                        "telephoneNumber": {
                            "type": "string"
                        }
                    }
                },
                "smartcardDetails": {
                    "schema": "http://json-schema.org/schema",
                    "type": "object",
                    "description": "Used only in case of /new-smartcard delivery type",
                    "properties": {
                        "displayName": {
                            "type": "string",
                            "pattern": ".{1,100}",
                            "description": "Human-readable name of card. To be used in GUI."
                        },
                        "name": {
                            "type": "string",
                            "pattern": "\\w{2,100}"
                        },
                        "surname": {
                            "type": "string",
                            "pattern": "\\w{2,100}"
                        },
                        "title": {
                            "type": "string",
                            "pattern": "\\w{2,10}"
                        },
                        "gender": {
                            "type": "number",
                            "enum": [
                                1,
                                2
                            ],
                            "description": "1-Male, 2-Female"
                        },
                        "address1": {
                            "type": "string"
                        },
                        "address2": {
                            "type": "string"
                        },
                        "address3": {
                            "type": "string"
                        },
                        "address4": {
                            "type": "string"
                        },
                        "address5": {
                            "type": "string"
                        },
                        "address6": {
                            "type": "string"
                        },
                        "postcode": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "displayName",
                        "name",
                        "surname",
                        "title",
                        "gender",
                        "address1",
                        "address2",
                        "postcode"
                    ],
                    "additionalProperties": false
                },
                "smartcard": {
                    "schema": "http://json-schema.org/schema",
                    "type": "object",
                    "description": "Used for existing smartcards (both external and created by us).",
                    "properties": {
                        "uri": {
                            "type": "string"
                        },
                        "location": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "uri",
                        "location"
                    ],
                    "additionalProperties": false
                },
                "passenger": {
                    "schema": "http://json-schema.org/schema",
                    "type": "object",
                    "description": "Passenger data used for GoldStar fulfilment. At least one property is required.",
                    "properties": {
                        "address": {
                            "type": "../Address/Address.jschema"
                        },
                        "photocard": {
                            "schema": "http://json-schema.org/schema",
                            "type": "object",
                            "description": "Used for GoldStar fulfilment",
                            "properties": {
                                "photocardNumber": {
                                    "type": "string"
                                },
                                "photocardPostcode": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "photocardNumber",
                                "photocardPostcode"
                            ],
                            "additionalProperties": false
                        },
                        "isChild": {
                            "type": "boolean"
                        }
                    },
                    "additionalProperties": false
                }
            },
            "required": [
                "type"
            ],
            "additionalProperties": false
        },
        "links": {
            "type": [
                "array",
                "object"
            ]
        }
    },
    "required": [
        "delivery"
    ],
    "additionalProperties": true
}
Request example (show)
{
    "delivery": {
        "type": "/delivery/mobile",
        "collectionPoint": "/station/H456",
        "address": {
            "title": "Mr",
            "firstNames": "Tester",
            "surname": "Person",
            "address1": "456 Test Street",
            "address2": "Another Street",
            "address3": null,
            "town": "Test Town",
            "county": "Norfolk",
            "country": "United Kingdom",
            "postCode": "TE57 1NG",
            "telephoneNumber": "+79123123123"
        }
    },
    "links": {
        "/delivery/mobile": {
            "uri": "/delivery/mobile",
            "displayOrder": 1,
            "name": "mobile",
            "time": "5 minutes",
            "requirements": "Available to both UK and overseas customers. The card used to make payment will be required for collection. Tickets can be collected from the above stations.",
            "fulfilmentType": 5,
            "price": 0,
            "isForCarnet": false,
            "isForSeason": true,
            "minSecondsBefore": 1200,
            "minWorkingDaysBefore": null,
            "maxValue": null
        }
    }
}
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": {
                        "sTicketCustomerId": {
                            "type": "integer"
                        }
                    },
                    "additionalProperties": false
                }
            }
        }
    ]
}
Response example (show)
{
    "status": "success",
    "data": {
        "sTicketCustomerId": "1210"
    },
    "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"
            ]
        }
    ]
}

DELETE /order/{id}/delivery

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"
            ]
        }
    ]
}

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"
            ]
        }
    ]
}
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"
                                        }
                                    ]
                                }
                            }
                        },
                        "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"
                                }
                            ]
                        },
                        "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"
        }
    }
}
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"
                            ]
                        }
                    },
                    "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 request/response error log entries, optionally filtered by date, error code threshold, or session ID.

GET /error-log

Parameters

string date

Date to filter logs (defaults to today)

string filter

Minimum HTTP response code to include (e.g. 500)

integer limit

Maximum number of entries to return (default 20)

string sessionId

Filter by session ID

string debug

Enable debug output

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "status": {
            "description": "Response status",
            "enum": [
                "success",
                "fail",
                "error"
            ]
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer",
                        "description": "Log entry ID"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "ISO 8601 timestamp of when the error occurred"
                    },
                    "tenant": {
                        "type": "string",
                        "description": "Tenant identifier"
                    },
                    "failure": {
                        "type": "string",
                        "description": "Error code or failure reason"
                    },
                    "request": {
                        "type": "object",
                        "properties": {
                            "headers": {
                                "type": "string"
                            },
                            "method": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            },
                            "body": {
                                "type": "string"
                            }
                        }
                    },
                    "response": {
                        "type": "object",
                        "properties": {
                            "code": {
                                "type": "integer"
                            },
                            "headers": {
                                "type": "string"
                            },
                            "body": {
                                "type": "string"
                            }
                        }
                    },
                    "requestId": {
                        "type": "string",
                        "description": "Unique request identifier"
                    },
                    "sessionId": {
                        "type": "string",
                        "description": "Session identifier"
                    }
                }
            }
        },
        "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": 1001,
            "createdAt": "2024-01-15T10:30:00+00:00",
            "tenant": "uk",
            "failure": "SOME_ERROR",
            "request": {
                "headers": "Content-Type: application/json",
                "method": "POST",
                "url": "/order",
                "body": "{}"
            },
            "response": {
                "code": 500,
                "headers": "Content-Type: application/json",
                "body": "{\"status\":\"error\",\"message\":\"Internal server error\"}"
            },
            "requestId": "abc-123",
            "sessionId": "session-456"
        }
    ]
}

Returns a daily error log summary as CSV text for the given date and optional environment.

URI parameters

string date (required)

Date in YYYY-MM-DD format

Pattern: ^[0-9\-]+$

string env (required)

Optional environment filter (e.g. prod, staging)

Pattern: ^[a-z]+$

GET /daily-error-log/{date}

200 text/plain
Response example (show)
null

Returns a daily error log summary as CSV text for the given date and optional environment.

URI parameters

string date (required)

Date in YYYY-MM-DD format

Pattern: ^[0-9\-]+$

string env (required)

Optional environment filter (e.g. prod, staging)

Pattern: ^[a-z]+$

GET /daily-error-log/{date}/{env}

200 text/plain
Response example (show)
null

Processes an incoming queue message and routes it to the appropriate handler.

POST /queue/msg/handler

Request example (show)
{
    "name": "Assertis.Order.Sold",
    "payload": []
}
200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "status": {
            "description": "Response status",
            "enum": [
                "success",
                "fail",
                "error"
            ]
        },
        "data": {
            "description": "Empty object 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": []
}
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"
            ]
        }
    ]
}

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"
            ]
        }
    ]
}

GET /s-ticket/customers/admin/auth

Authenticates an S-Ticket admin. Returns 204 No Content on success.

Headers

string X-Token-Data (required)

string X-Access-Token (required)

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"
            ]
        }
    ]
}

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.

Returns the service health status including name, environment and build SHA.

GET /healthcheck

200 application/json
Response schema (show)
{
    "type": "object",
    "properties": {
        "status": {
            "description": "Health check status",
            "type": "string",
            "enum": [
                "ok"
            ]
        },
        "data": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Application name"
                },
                "env": {
                    "type": "string",
                    "description": "Deployment environment"
                },
                "sha": {
                    "type": [
                        "string",
                        "boolean"
                    ],
                    "description": "Git SHA of the deployed build, or false if not set"
                }
            },
            "required": [
                "name",
                "env",
                "sha"
            ],
            "additionalProperties": false
        }
    },
    "required": [
        "status",
        "data"
    ],
    "additionalProperties": false
}
Response example (show)
{
    "status": "ok",
    "data": {
        "name": "delivery-service",
        "env": "prod",
        "sha": "abc1234"
    }
}

Returns Prometheus metrics in the standard exposition format.

GET /metrics

200 text/plain
Response example (show)
null
URI parameters

string id (required)

Pattern: ^[a-z\-]+$

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"
                            ]
                        },
                        "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,
        "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-z\-]+$

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"
                            ]
                        },
                        "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,
        "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,
            "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,
            "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 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
                }
            }
        }
    ]
}
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
                }
            }
        }
    ]
}
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

Pattern: ^([0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{5}-[A-Za-z0-9]{3}[,]*)+$

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

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
                }
            }
        }
    ]
}
Response example (show)
{
    "status": "success",
    "data": {
        "e-ticket": true
    }
}

Card Payments

Secure Trading API

The card payments API processes card payments with 3d secure and fraud checks.

Returns service health information.

GET /healthcheck

200 application/json
Response schema (show)
{
    "description": "Healthcheck 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,
                    "properties": {
                        "name": {
                            "type": "string",
                            "description": "Service name"
                        },
                        "node_environment": {
                            "type": "string",
                            "description": "Node environment (e.g. production, staging)"
                        },
                        "sha": {
                            "type": "string",
                            "description": "Git SHA of the deployed revision"
                        }
                    },
                    "required": [
                        "name",
                        "node_environment",
                        "sha"
                    ]
                }
            }
        }
    ]
}
Response example (show)
{
    "status": "success",
    "data": {
        "name": "secure-trading-service",
        "node_environment": "prod",
        "sha": "abc123def456"
    }
}

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

URI parameters

string id (required)

Pattern: ^\d+$

POST /st-card-payment/{id}/refund

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": "Secure Trading Card Payment 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": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                        "transactionRef"
                    ],
                    "properties": {
                        "transactionRef": {
                            "type": "string"
                        }
                    }
                }
            }
        }
    ]
}
Response example (show)
{
    "status": "success",
    "data": {
        "transactionRef": "123abc"
    }
}
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\""
        }
    }
}
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": "Refund amount too great",
        "code": 20007
    }
}
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"
            ]
        }
    ]
}

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"
}

Receives payment notifications from Secure Trading.

POST /st-notification

Request schema (show)
{
    "description": "Secure Trading notification request body",
    "type": "object",
    "properties": {
        "requesttypedescription": {
            "type": "string",
            "description": "Type of the request (e.g. AUTH)"
        },
        "settlestatus": {
            "type": "string",
            "description": "Settlement status"
        },
        "transactionreference": {
            "type": "string",
            "description": "Unique transaction reference"
        },
        "orderreference": {
            "type": "string",
            "description": "Order URI reference"
        },
        "acquirerresponsemessage": {
            "type": "string",
            "description": "Acquirer response message"
        },
        "baseamount": {
            "type": "string",
            "description": "Payment amount in pence"
        },
        "currencyiso3a": {
            "type": "string",
            "description": "ISO 4217 currency code"
        },
        "paymenttypedescription": {
            "type": "string",
            "description": "Payment method (e.g. VISA, ALIPAY)"
        },
        "sitereference": {
            "type": "string",
            "description": "Secure Trading site reference"
        },
        "responsesitesecurity": {
            "type": "string",
            "description": "Security hash for request verification"
        },
        "errorcode": {
            "type": "string",
            "description": "Error code (0 = success)"
        },
        "errormessage": {
            "type": "string",
            "description": "Human-readable error message"
        },
        "expirydate": {
            "type": "string",
            "description": "Card expiry date (MM/YYYY)"
        },
        "maskedpan": {
            "type": "string",
            "description": "Masked card PAN"
        },
        "billingcountryiso2a": {
            "type": "string"
        },
        "billingcounty": {
            "type": "string"
        },
        "billingfirstname": {
            "type": "string"
        },
        "billinglastname": {
            "type": "string"
        },
        "billingpostcode": {
            "type": "string"
        },
        "billingprefixname": {
            "type": "string"
        },
        "billingpremise": {
            "type": "string"
        },
        "billingstreet": {
            "type": "string"
        },
        "billingtown": {
            "type": "string"
        },
        "billingtelephone": {
            "type": "string"
        },
        "billingemail": {
            "type": "string"
        },
        "customercountryiso2a": {
            "type": "string"
        },
        "customercounty": {
            "type": "string"
        },
        "customerfirstname": {
            "type": "string"
        },
        "customerlastname": {
            "type": "string"
        },
        "customerpostcode": {
            "type": "string"
        },
        "customerprefixname": {
            "type": "string"
        },
        "customerpremise": {
            "type": "string"
        },
        "customerstreet": {
            "type": "string"
        },
        "customertown": {
            "type": "string"
        },
        "customertelephone": {
            "type": "string"
        },
        "customeremail": {
            "type": "string"
        },
        "customfield1": {
            "type": "string"
        }
    },
    "required": [
        "requesttypedescription",
        "transactionreference"
    ]
}
Request example (show)
{
    "requesttypedescription": "AUTH",
    "settlestatus": "0",
    "transactionreference": "6-9-4881726",
    "orderreference": "/order/1",
    "acquirerresponsemessage": "APPROVED",
    "baseamount": "1000",
    "currencyiso3a": "GBP",
    "paymenttypedescription": "VISA",
    "sitereference": "test_assertis51618",
    "expirydate": "12/2025",
    "maskedpan": "400000######1091",
    "billingcountryiso2a": "GB",
    "billingcounty": "Norfolk",
    "billingfirstname": "Test",
    "billinglastname": "User",
    "billingpostcode": "TE57 1NG",
    "billingprefixname": "Mr",
    "billingpremise": "123",
    "billingstreet": "Test Street",
    "billingtown": "Test Town",
    "billingtelephone": "+44123456789",
    "billingemail": "test@example.com"
}
200 application/json
Response schema (show)
{
    "description": "Secure Trading notification 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,
                    "properties": {
                        "result": {
                            "type": "string",
                            "enum": [
                                "processed",
                                "ignored"
                            ],
                            "description": "Whether the notification was acted upon or skipped"
                        }
                    },
                    "required": [
                        "result"
                    ]
                }
            }
        }
    ]
}
Response example (show)
{
    "status": "success",
    "data": {
        "result": "processed"
    }
}

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