{ "swagger": "2.0", "info": { "title": "Experience API to manage bookings, services, refdata, and availability under reservations", "version": "v1" }, "paths": { "/bookings": { "post": { "description": "Make provisional booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/CreateProvisionalBookingRequest" } } ], "responses": { "201": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}": { "get": { "description": "Recall booking by S3 reference", "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/rebooking": { "put": { "description": "A rebook operation of a existing booking which can contain the full journey or part of the journey.\n", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "isRetailerRebook", "description": "Should be sent as true if retailer wants to rebook the booking\n", "required": false, "in": "query", "type": "boolean" }, { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/RebookRequest" } } ], "responses": { "200": { "description": "If the booking was successfully rebooked", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "204": { "description": "No content - Booking successfully updated" }, "404": { "description": "Booking reference not found" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/utn": { "put": { "description": "Update the Unique Ticket Number for a Booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/definitions/BookingReference" } } } } ], "responses": { "204": { "description": "No content - Unique Ticket Number successfully updated" }, "404": { "description": "Booking reference not found" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/rbr": { "put": { "description": "Update the Retailer's Booking Reference", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "type": "object", "required": [ "value" ], "properties": { "value": { "$ref": "#/definitions/BookingReference" } } } } ], "responses": { "204": { "description": "No content - Unique Ticket Number successfully updated" }, "404": { "description": "Booking reference not found" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/status": { "put": { "description": "Confirm or cancel a provisional booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "example": { "status": "CONFIRM" }, "type": "object", "required": [ "status" ], "properties": { "status": { "enum": [ "CONFIRM", "REVERT", "CANCEL" ], "type": "string" } } } } ], "responses": { "200": { "description": "If the booking was successfully confirmed or reverted", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "204": { "description": "If the booking was successfully cancelled" }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/seats": { "patch": { "description": "Update seats", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "type": "array", "items": { "$ref": "#/definitions/SeatUpdate" } } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/customer": { "patch": { "description": "Update customer details", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/Customer" } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/passengers": { "post": { "description": "Add a passenger to a booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/PassengerCreate" } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] }, "patch": { "description": "Update one or more passengers for a booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "type": "array", "items": { "$ref": "#/definitions/PassengerUpdate" } } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/passengers/cancel": { "patch": { "description": "Cancel one or more passengers in an existing booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/CancelPassengers" } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/legs": { "patch": { "description": "Add one or more legs and/or product items to an existing booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "type": "object", "required": [ "legs" ], "properties": { "legs": { "type": "array", "items": { "$ref": "#/definitions/BookingLeg" } } } } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/legs/cancel": { "patch": { "description": "Cancel one or more legs in an existing booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/CancelLegs" } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/legs/productItems": { "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 } ] }, "/bookings/{bookingReference}/legs/productItems/cancel": { "patch": { "description": "Cancel one or more seat product items in an existing booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/CancelItems" } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{bookingReference}/notes": { "post": { "description": "Add a note to a booking", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bookingReference", "required": true, "in": "path", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "type": "object", "required": [ "noteContent" ], "properties": { "noteContent": { "type": "string" } } } } ], "responses": { "201": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "If the booking isn't found for the specified booking reference" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/references": { "get": { "description": "Get booking by external reference number", "produces": [ "application/json" ], "parameters": [ { "name": "uniqueTicketNumber", "in": "query", "type": "string", "maxLength": 16 }, { "name": "retailersBookingReference", "in": "query", "type": "string", "maxLength": 16 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "type": "object", "required": [ "bookingReferences" ], "properties": { "bookingReferences": { "type": "array", "items": { "$ref": "#/definitions/BookingReference" } } } } }, "404": { "description": "If the booking isn't found for the specified external reference number" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{rsid}": { "parameters": [ { "name": "rsid", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 } ] }, "/bookings/{rsid}/{serviceOriginDate}/{boardLocation}/{alightLocation}/{coachId}/{seatId}": { "get": { "description": "Get booking by service and seat", "produces": [ "application/json" ], "parameters": [ { "name": "seatId", "required": true, "in": "path", "type": "string", "minLength": 1, "maxLength": 5 }, { "name": "rsid", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, { "name": "serviceOriginDate", "required": true, "in": "path", "type": "string", "format": "date" }, { "name": "boardLocation", "required": true, "in": "path", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "alightLocation", "required": true, "in": "path", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "coachId", "required": true, "in": "path", "type": "string", "minLength": 1, "maxLength": 5 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "404": { "description": "Booking not found" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{rsid}/tickets": { "parameters": [ { "name": "rsid", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 } ] }, "/bookings/{rsid}/tickets/{serviceOriginDate}/{boardLocation}/{alightLocation}/{coachId}/{seatId}": { "get": { "description": "Get Tickets by service and seat", "produces": [ "application/json" ], "parameters": [ { "name": "carrierCode", "description": "The 2-character Carrier code from the published timetable data.\n", "required": true, "in": "query", "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, { "name": "seatId", "required": true, "in": "path", "type": "string", "minLength": 1, "maxLength": 5 }, { "name": "rsid", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, { "name": "serviceOriginDate", "description": "service origin date (yyyy-MM-dd)", "required": true, "in": "path", "type": "string", "format": "date" }, { "name": "boardLocation", "required": true, "in": "path", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "alightLocation", "required": true, "in": "path", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "coachId", "required": true, "in": "path", "type": "string", "minLength": 1, "maxLength": 5 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/TicketsBySeatResponse" } }, "404": { "description": "Tickets not found SQHQ399-003" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/{rsid}/tickets/{ticketReference}": { "get": { "description": "Get Tickets by service and seat", "produces": [ "application/json" ], "parameters": [ { "name": "carrierCode", "description": "The 2-character Carrier code from the published timetable data.\n", "required": true, "in": "query", "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, { "name": "includeValidationStatus", "in": "query", "type": "boolean" }, { "name": "rsid", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, { "name": "ticketReference", "required": true, "in": "path", "type": "string" }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/TicketsByTicketReferenceResponse" } }, "404": { "description": "Ticket details not found SQHQ399-003" }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/validate": { "post": { "description": "validate ticket", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "carrierCode", "description": "The 2-character Carrier code from the published timetable data.\n", "required": true, "in": "query", "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/ValidateBookingRequest" } } ], "responses": { "204": { "description": "No content - Validated Tickets successfully.." }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/validate/revert": { "post": { "description": "validate ticket", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "carrierCode", "description": "The 2-character Carrier code from the published timetable data.\n", "required": true, "in": "query", "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/RevertValidationBookingRequest" } } ], "responses": { "204": { "description": "No content - Ticket validations have been reverted successfully." }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/bookings/booking": { "post": { "description": "to make one stop booking and confirm booking status", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "includeConfirmBooking", "in": "query", "type": "boolean" }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/OneStopBookingRequest" } } ], "responses": { "201": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/BookingResponse" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/services": {}, "/services/{rsid}": { "parameters": [ { "name": "rsid", "description": "Full 8 character Retail Service ID used by RARS,\nin combination with the Service Origin Date, to\nuniquely identify a service. Please see Association\nlogic page for details on how to choose the right\nRSID for services involved in a split or join association.\n", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 } ] }, "/services/{rsid}/coaches": { "get": { "description": "Fetch coach layout on service based on filters being passed \n", "produces": [ "application/json" ], "parameters": [ { "name": "allowKeepOriginDirection", "description": "If true the directional seat properties (ODR and IDR) are kept on the seats, even when there is a reversal-en-route during the requested OD\n", "required": false, "in": "query", "type": "boolean" }, { "name": "carrierCode", "description": "The 2-character Carrier code from the published timetable data.\n", "required": true, "in": "query", "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, { "name": "serviceOriginDate", "description": "The date of departure at the origin station used by RARS,\nin combination with the RSID, to uniquely identify a\nservice. Please see Association logic page for details on\nhow to choose the right serviceOriginDate for services\ninvolved in a split or join association.\n", "required": true, "in": "query", "type": "string", "format": "date" }, { "name": "boardLocation", "description": "The CRS code of the station at which a passenger boards a service.\n", "required": true, "in": "query", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "alightLocation", "description": "The CRS code of the station at which a passenger alights from a service.\n", "required": true, "in": "query", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "rsid", "description": "Full 8 character Retail Service ID used by RARS,\nin combination with the Service Origin Date, to\nuniquely identify a service. Please see Association\nlogic page for details on how to choose the right\nRSID for services involved in a split or join association.\n", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/LayoutAndSeatStatus" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/services/{rsid}/coaches/images": { "get": { "description": "Fetch coach images on service based on filters being passed \n", "produces": [ "application/json" ], "parameters": [ { "name": "serviceOriginDate", "description": "The date of departure at the origin station used by RARS,\nin combination with the RSID, to uniquely identify a\nservice. Please see Association logic page for details on\nhow to choose the right serviceOriginDate for services\ninvolved in a split or join association.\n", "required": true, "in": "query", "type": "string", "format": "date" }, { "name": "carrierCode", "description": "The 2-character Carrier code from the published timetable data.\n", "required": true, "in": "query", "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, { "name": "boardLocation", "description": "The CRS code of the station at which a passenger boards a service.\n", "required": true, "in": "query", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "alightLocation", "description": "The CRS code of the station at which a passenger alights from a service.\n", "required": true, "in": "query", "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, { "name": "rsid", "description": "Full 8 character Retail Service ID used by RARS,\nin combination with the Service Origin Date, to\nuniquely identify a service. Please see Association\nlogic page for details on how to choose the right\nRSID for services involved in a split or join association.\n", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/ServiceCoachImages" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/services/{rsid}/reports/passengers": { "get": { "description": "Fetch coach images on service based on filters being passed \n", "produces": [ "application/json" ], "parameters": [ { "name": "serviceOriginDate", "description": "The date of departure at the origin station used by RARS,\nin combination with the RSID, to uniquely identify a\nservice. Please see Association logic page for details on\nhow to choose the right serviceOriginDate for services\ninvolved in a split or join association.\n", "required": true, "in": "query", "type": "string", "format": "date" }, { "name": "carrierCode", "description": "The 2-character Carrier code from the published timetable data.\n", "required": true, "in": "query", "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, { "name": "rsid", "description": "Full 8 character Retail Service ID used by RARS,\nin combination with the Service Origin Date, to\nuniquely identify a service. Please see Association\nlogic page for details on how to choose the right\nRSID for services involved in a split or join association.\n", "required": true, "in": "path", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Passengers" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/refdata": {}, "/refdata/disabilityTypes": { "get": { "description": "Get Disability Types", "produces": [ "application/json" ], "parameters": [ { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "Status Ok", "x-amf-mediaType": "application/json", "schema": { "example": { "disabilityTypes": [ { "code": "BLIND", "description": "Visually impaired use" } ] }, "type": "object", "required": [ "disabilityTypes" ], "properties": { "disabilityTypes": { "$ref": "#/definitions/DisabilityTypes" } } } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/refdata/discountedOrSeasonCardTypes": { "get": { "description": "Get the list of discounted or season card types that have been configured", "produces": [ "application/json" ], "parameters": [ { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/DiscountedOrSeasonCodesResponse" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/refdata/seatProperties": { "get": { "description": "Get the list of seat properties of a carrier that have been mapped", "produces": [ "application/json" ], "parameters": [ { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/SeatPropertiesResponse" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } }, "/availability": { "post": { "description": "Make an availability journey search", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "includeLegAvailability", "in": "query", "type": "boolean" }, { "name": "includeInventoryClassType", "in": "query", "type": "boolean" }, { "name": "Authorization?", "description": "Bearer", "required": false, "in": "header", "type": "string" }, { "name": "client_id", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "client_secret", "description": "Security token to access API on Anypoint Platform\n", "in": "header", "type": "string" }, { "name": "X-Correlation-Cust-Id", "description": "Unique client reference id that can be traced through mule API-led layer (if supplied)", "required": false, "in": "header", "type": "string" }, { "name": "Accept-Encoding", "description": "The Accept-Encoding request HTTP header indicates the content encoding that the client can understand", "required": false, "in": "header", "type": "string" }, { "x-amf-mediaType": "application/json", "in": "body", "name": "generated", "schema": { "$ref": "#/definitions/AvailabilitySearch" } } ], "responses": { "200": { "description": "", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/AvailabilitySearchResponse" } }, "400": { "description": "Token was not provided.", "x-amf-mediaType": "application/json", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Bad or expired token. To fix, you should re-authenticate the user." }, "403": { "description": "The client id validation failed." }, "503": { "description": "Error communicating with JWKS server." } }, "x-amf-security": [ { "jwt_pass_through": [] } ] } } }, "definitions": { "CreateProvisionalBookingRequest": { "example": { "customer": { "title": "Mr", "firstName": "Fred", "lastName": "Blogs", "phoneNumber": "01234-2086824", "initials": "FB", "email": "fred.blogs@fdsfdsfdsfds.com" }, "legs": [ { "routeCode": "00000", "carrierCode": "GW", "alightLocation": "PLY", "rsid": "GW111600", "boardLocation": "PAD", "serviceOriginDate": "2021-04-15", "direction": "OUTBOUND", "journeyConditions": { "journeyOD": { "journeyDestination": "3526", "journeyOrigin": "3087" } }, "seatProducts": [ { "passengerId": "passenger_1", "tariffCode": "550-SDS-S01", "seat": { "coachId": "D", "seatId": "73", "strategy": "exact" }, "seatPreferences": [ "AISL", "BAR" ] } ], "serviceIdentifier": "0:F|GW|0:DA|GW111600|TRAIN|2021-04-15T00:00|2021-04-15T23:59:59" } ], "retailersBookingRef": "example_rbr", "uniqueTicketNumber": "example_utn", "passengers": [ { "id": "passenger_1", "title": "Mr", "firstName": "Abc", "lastName": "Xyz", "email": "abc.xyz@gfdhdfhfd.com", "phoneNumber": "01234-7261891", "protectPrivacy": true, "statusCode": "000" } ] }, "type": "object", "required": [ "customer", "legs", "passengers" ], "properties": { "customer": { "description": "Person who purchases the booking. Sometimes known as a Lead Passenger for a group booking, although they are not necesarily one of the passengers", "type": "object", "required": [ "lastName" ], "properties": { "updatedRevision": { "title": "Updated Revision", "description": "Revision number for the Customer record.", "example": 2, "type": "integer" }, "initials": { "$ref": "#/definitions/Initials" }, "lastName": { "$ref": "#/definitions/LastName" }, "title": { "$ref": "#/definitions/Title" }, "firstName": { "$ref": "#/definitions/FirstName" }, "email": { "$ref": "#/definitions/EmailAddress" }, "crmReference": { "description": "A field which allows a retailer to capture their CRM identifier for a Customer", "example": "GHK8745L", "type": "string" }, "phoneNumber": { "title": "Phone Number", "description": "A phone number which can be used to contact an individual. This may be a landline or mobile number.", "default": "0", "type": "string", "maxLength": 24 } } }, "legs": { "type": "array", "items": { "$ref": "#/definitions/BookingLeg" } }, "passengers": { "description": "A list of passengers for this booking", "type": "array", "maxItems": 99, "minItems": 1, "items": { "$ref": "#/definitions/Passenger" } }, "retailersBookingRef": { "title": "Retailer's Booking Reference", "description": "A field which can be used by a retailer to capture their own identifier for a booking", "x-amf-examples": { "example_0": "abc", "example_1": "TF288067" }, "type": "string", "maxLength": 16 }, "uniqueTicketNumber": { "title": "Unique Ticket Number", "description": "A field which can be used by a retailer to capture a unique ticket number.", "x-amf-examples": { "example_0": "xyz", "example_1": "TF288067" }, "type": "string", "maxLength": 16 } } }, "BookingResponse": { "example": { "data": { "uniqueTicketNumber": "example_utn", "agent": { "office": "blah", "organisation": "fdsfds", "contractCode": "ZZ", "username": "dfsgfd.gfdgfd" }, "outboundBookingTariffLegs": [ { "routeCode": "00000", "validityStartDate": "2021-04-15", "boardLocation": "PAD", "classOfTravel": "2", "validityEndDate": "2021-04-15", "serviceIdentifier": "0:F|GW|0:DA|GW111600|TRAIN|2021-04-15T00:00|2021-04-15T23:59:59", "validityRsid": "GW111600", "additionalProducts": [], "alightLocation": "PLY", "id": "segment_1", "serviceOriginDate": "2021-04-15", "requiredProducts": [ { "canBeRebooked": true, "isCancelled": false, "itemRef": 97923, "isProvisional": true, "inventoryClass": "2N", "tariffCode": "550-SDS-S01", "description": "ANYTIME DAY S", "productBookingId": "SO571484-001", "ticketTypeCode": "SDS", "canBeCancelled": true, "canChangeName": true, "canBeUpgraded": true, "name": "ANYTIME DAY S", "passengerId": "passenger_1", "canChangeSeat": true, "seatProperties": [ "AISL", "BAR" ], "productType": "ST", "seat": { "id": "60", "coachId": "25V", "compartmentNumber": "sdfff", "inventoryClass": "S", "isBlocked": false, "isBookable": false, "isBooked": false, "isReversed": false, "propertyCodes": [ "Work" ], "reusagePercentage": 25, "rowNumber": 12, "rowPosition": 5, "sequenceNumber": 10, "xPos": 10, "yPos": 15 } } ], "journeyLeg": { "carrierCode": "GW", "alightLocation": "PLY", "departureDateTime": "2021-04-15T23:45:00+01:00", "rsid": "GW111600", "arrivalDateTime": "2021-04-16T05:11:00+01:00", "boardLocation": "PAD" } } ], "passengers": [ { "id": "passenger_1", "title": "Mr", "firstName": "Abc", "lastName": "Xyz", "email": "abc.xyz@gfdhdfhfd.com", "phoneNumber": "01234-7261891", "protectPrivacy": true, "statusCode": "000" } ], "notes": [ { "content": "This is content", "type": "note", "createdBy": "John Smith", "createdOn": "2021-04-01T08:13:49Z", "createdRevision": 1 } ], "inboundBookingTariffLegs": [], "bookingRef": "SO571484", "createdOn": "2021-04-01T08:13:49Z", "retailersBookingRef": "example_rbr", "salesChannelCode": "PHASE_2", "canBeUpgraded": true, "recordStructureVersion": "v2", "customer": { "title": "Mr", "firstName": "Fred", "lastName": "Blogs", "phoneNumber": "01234-2086824", "initials": "FB", "email": "fred.blogs@fdsfdsfdsfds.com" }, "provisionalExpiredOn": "2021-04-01T08:43:49Z" }, "notices": [ { "notice": "13058", "message": "Booking: Service not in roster" } ] }, "type": "object", "properties": { "data": { "$ref": "#/definitions/Booking" }, "notices": { "description": "A list of partial error messages for parts of the request that could not be processed.", "type": "array", "items": { "$ref": "#/definitions/Notice" } } } }, "Error": { "title": "RDG Error object", "description": "A code used to uniquely identify an item.", "type": "object", "required": [ "errorCode", "errorMessage", "errorDateTime" ], "properties": { "errorCode": { "title": "Error Code", "description": "unique code for this error", "example": "service_not_in_roster", "type": "string" }, "errorMessage": { "title": "Error Message", "description": "Description of the error", "example": "The specified service can not be found.", "type": "string" }, "errorDateTime": { "title": "Error Timestamp", "description": "Timestamp of error", "example": "2021-05-14T14:39:38+00:00", "type": "string", "format": "date-time" } } }, "RebookRequest": { "example": { "legs": [ { "routeCode": "00000", "carrierCode": "GW", "alightLocation": "PLY", "rsid": "GW111600", "boardLocation": "PAD", "serviceOriginDate": "2021-04-15", "direction": "OUTBOUND", "journeyConditions": { "journeyOD": { "journeyDestination": "3526", "journeyOrigin": "3087" } }, "seatProducts": [ { "passengerId": "passenger_1", "tariffCode": "550-SDS-S01", "seat": { "coachId": "D", "seatId": "73", "strategy": "exact" }, "seatPreferences": [ "AISL", "BAR" ] } ], "serviceIdentifier": "0:F|GW|0:DA|GW111600|TRAIN|2021-04-15T00:00|2021-04-15T23:59:59" } ], "replaceSeatProductUuids": [ "example_uuids" ], "rebookReason": "Reason for rebook", "retailerRebookReason": "CANCELLATION" }, "type": "object", "required": [ "replaceSeatProductUuids" ], "properties": { "legs": { "type": "array", "items": { "$ref": "#/definitions/BookingLeg" } }, "replaceSeatProductUuids": { "type": "array", "items": { "$ref": "#/definitions/UniversallyUniqueIdentifier" } }, "rebookReason": { "description": "Provides details as to why a booking was rebooked.", "type": "string" }, "retailerRebookReason": { "description": "Reason for the retailer rebook. This field is mandatory if the queryParam isRetailerRebook is set to true", "enum": [ "SET_SWAP", "CANCELLATION", "TIMETABLE_CHANGE", "MISTAKE" ], "type": "string" } } }, "BookingReference": { "type": "string", "maxLength": 16 }, "SeatUpdate": { "type": "object", "required": [ "itemRef" ], "properties": { "seatId": { "$ref": "#/definitions/SeatId" }, "coachId": { "$ref": "#/definitions/EquipmentUnitId" }, "itemRef": { "$ref": "#/definitions/Id" }, "strategy": { "$ref": "#/definitions/SeatStrategy" }, "preferences": { "type": "array", "items": { "$ref": "#/definitions/SeatPreference" } } } }, "Customer": { "type": "object", "required": [ "lastName" ], "properties": { "crmReference": { "description": "A field which allows a retailer to capture their CRM identifier for a Customer", "example": "GHK8745L", "type": "string" }, "email": { "$ref": "#/definitions/EmailAddress" }, "firstName": { "$ref": "#/definitions/FirstName" }, "initials": { "$ref": "#/definitions/Initials" }, "lastName": { "$ref": "#/definitions/LastName" }, "phoneNumber": { "title": "Phone Number", "description": "A phone number which can be used to contact an individual. This may be a landline or mobile number.", "default": "0", "type": "string", "maxLength": 24 }, "title": { "$ref": "#/definitions/Title" }, "updatedRevision": { "title": "Updated Revision", "description": "Revision number for the Customer record.", "example": 2, "type": "integer" } } }, "PassengerCreate": { "type": "object", "required": [ "statusCode" ], "properties": { "discountedOrSeasonCode": { "type": "array", "items": { "$ref": "#/definitions/PassengerDiscountedOrSeason" } }, "statusCode": { "$ref": "#/definitions/StatusCode" }, "disabilityType": { "$ref": "#/definitions/DisabilityTypeCode" }, "title": { "$ref": "#/definitions/Title" }, "firstName": { "$ref": "#/definitions/FirstName" }, "lastName": { "$ref": "#/definitions/LastName" }, "email": { "$ref": "#/definitions/EmailAddress" }, "phoneNumber": { "$ref": "#/definitions/PhoneNumber" }, "protectPrivacy": { "type": "boolean" } } }, "PassengerUpdate": { "type": "object", "required": [ "id" ], "properties": { "disabilityType": { "$ref": "#/definitions/DisabilityTypeCode" }, "discountedOrSeasonCode": { "type": "array", "items": { "$ref": "#/definitions/PassengerDiscountedOrSeason" } }, "email": { "$ref": "#/definitions/EmailAddress" }, "firstName": { "$ref": "#/definitions/FirstName" }, "id": { "$ref": "#/definitions/PassengerId" }, "lastName": { "$ref": "#/definitions/LastName" }, "phoneNumber": { "$ref": "#/definitions/PhoneNumber" }, "protectPrivacy": { "type": "boolean" }, "statusCode": { "$ref": "#/definitions/StatusCode" }, "title": { "$ref": "#/definitions/Title" } } }, "CancelPassengers": { "type": "object", "required": [ "cancelPassengers" ], "properties": { "cancellationReason": { "type": "string" }, "cancelPassengers": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/UniversallyUniqueIdentifier" } } } }, "BookingLeg": { "type": "object", "required": [ "alightLocation", "boardLocation", "carrierCode", "direction", "routeCode", "rsid", "seatProducts", "serviceIdentifier", "serviceOriginDate" ], "properties": { "alightLocation": { "title": "Alight Location", "description": "The CRS code of the station at which a passenger alights from a service", "x-amf-examples": { "example_0": "SRA", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "boardLocation": { "title": "Board Location", "description": "The CRS code of the station at which a passenger boards a service", "x-amf-examples": { "example_0": "IPS", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "carrierCode": { "title": "Carrier Code", "description": "The 2-character code identifying the service provider (TOC) from the published timetable data", "x-amf-examples": { "example_0": "LE", "example_1": "GR" }, "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, "direction": { "$ref": "#/definitions/Direction" }, "journeyConditions": { "$ref": "#/definitions/JourneyConditions" }, "routeCode": { "$ref": "#/definitions/RouteCode" }, "rsid": { "$ref": "#/definitions/RetailServiceId" }, "seatProducts": { "type": "array", "items": { "$ref": "#/definitions/BookingSeatProduct" } }, "serviceIdentifier": { "$ref": "#/definitions/ServiceIdentifier" }, "serviceOriginDate": { "description": "The date of departure at the origin station. In combination with the RSID used to uniquely identify a service.", "example": "2021-04-01", "type": "string", "format": "date" } } }, "CancelLegs": { "type": "object", "required": [ "cancelLegs" ], "properties": { "cancellationReason": { "type": "string" }, "cancelLegs": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/UniversallyUniqueIdentifier" } } } }, "CancelItems": { "type": "object", "required": [ "cancelItemRefs" ], "properties": { "cancellationReason": { "type": "string" }, "cancelItemRefs": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/Id" } } } }, "TicketsBySeatResponse": { "example": { "tickets": [ { "bookingReference": "TF288067", "ticketReference": "TF288067-001", "ticketTypeCode": "FFSC", "productType": "ST" } ] }, "type": "object", "properties": { "tickets": { "type": "array", "items": { "$ref": "#/definitions/Tickets" } } } }, "TicketsByTicketReferenceResponse": { "example": { "data": { "ticketDetails": { "bookingReference": "TF288067", "ticketReference": "TF288067-001", "boardLocation": "PAD", "boardLocationName": "London Paddington", "alightLocation": "MAI", "alightLocationName": "Maidenehad", "coachId": "K", "seatId": "35", "createdOn": "2024-05-09T10:10:10Z", "confirmedOn": "2024-05-09T10:11:10Z", "validated": false, "validations": [ { "userName": "rarsUser", "ticketReference": "TF288067-001", "rsid": "AB123400", "device": "hand-held-10", "dateTime": "2024-08-10T10:10:10Z", "voidDateTime": "2024-08-10T11:10:10Z", "location": "London", "validationType": "NOSHOW", "lightValidation": false, "additionalDetails": [ { "key": "NO_SHOW", "value": "validated" } ] } ] } } }, "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "ticketDetails" ], "properties": { "ticketDetails": { "$ref": "#/definitions/TicketDetails" } } } } }, "ValidateBookingRequest": { "example": { "userName": "rarsUser", "ticketReference": "SQHQ399-003", "rsid": "AB123400", "device": "hand-held-10", "dateTime": "2010-11-10T10:10:10Z", "location": "London", "validationType": "FULL", "additionalDetails": [ { "key": "NO_SHOW", "value": "validated" } ] }, "type": "object", "required": [ "userName", "ticketReference", "rsid", "device", "dateTime", "location", "validationType" ], "properties": { "userName": { "$ref": "#/definitions/ValidationUsername" }, "ticketReference": { "$ref": "#/definitions/TicketReference" }, "rsid": { "$ref": "#/definitions/RSID" }, "device": { "$ref": "#/definitions/ValidationDevice" }, "dateTime": { "$ref": "#/definitions/ValidationDateTime" }, "location": { "$ref": "#/definitions/Location" }, "validationType": { "$ref": "#/definitions/ValidationType" }, "additionalDetails": { "description": "Additional details required for TOC", "type": "array", "items": { "$ref": "#/definitions/AdditionalDetails" } } } }, "RevertValidationBookingRequest": { "example": { "rsid": "GR234000", "ticketReference": "SQHQ399-003", "validationTypes": [ "NOSHOW", "RELEASE_REQUESTED" ] }, "type": "object", "required": [ "rsid", "ticketReference", "validationTypes" ], "properties": { "rsid": { "$ref": "#/definitions/RSID" }, "ticketReference": { "$ref": "#/definitions/TicketReference" }, "validationTypes": { "example": [ "NOSHOW", "RELEASE_REQUESTED" ], "type": "array", "items": { "$ref": "#/definitions/RevertValidationType" } } } }, "OneStopBookingRequest": { "example": { "customer": { "title": "Mr", "firstName": "Fred", "lastName": "Blogs", "phoneNumber": "01234-2086824", "initials": "FB", "email": "fred.blogs@fdsfdsfdsfds.com" }, "legs": [ { "routeCode": "00000", "carrierCode": "GW", "alightLocation": "PLY", "rsid": "GW111600", "boardLocation": "PAD", "serviceOriginDate": "2021-04-15", "direction": "OUTBOUND", "journeyConditions": { "journeyOD": { "journeyDestination": "3526", "journeyOrigin": "3087" } }, "seatProducts": [ { "passengerId": "passenger_1", "ticketTypeCode": "SOS", "seat": { "coachId": "D", "seatId": "73", "strategy": "exact" }, "seatPreferences": [ "AISL", "BAR" ] } ] } ], "retailersBookingRef": "example_rbr", "uniqueTicketNumber": "example_utn", "passengers": [ { "id": "passenger_1", "title": "Mr", "firstName": "Abc", "lastName": "Xyz", "email": "abc.xyz@gfdhdfhfd.com", "phoneNumber": "01234-7261891", "protectPrivacy": true, "statusCode": "000" } ] }, "type": "object", "required": [ "customer", "legs", "passengers" ], "properties": { "customer": { "description": "Person who purchases the booking. Sometimes known as a Lead Passenger for a group booking, although they are not necesarily one of the passengers", "type": "object", "required": [ "lastName" ], "properties": { "updatedRevision": { "title": "Updated Revision", "description": "Revision number for the Customer record.", "example": 2, "type": "integer" }, "initials": { "$ref": "#/definitions/Initials" }, "lastName": { "$ref": "#/definitions/LastName" }, "title": { "$ref": "#/definitions/Title" }, "firstName": { "$ref": "#/definitions/FirstName" }, "email": { "$ref": "#/definitions/EmailAddress" }, "crmReference": { "description": "A field which allows a retailer to capture their CRM identifier for a Customer", "example": "GHK8745L", "type": "string" }, "phoneNumber": { "title": "Phone Number", "description": "A phone number which can be used to contact an individual. This may be a landline or mobile number.", "default": "0", "type": "string", "maxLength": 24 } } }, "legs": { "type": "array", "items": { "$ref": "#/definitions/OneStopBookingLeg" } }, "passengers": { "description": "A list of passengers for this booking", "type": "array", "maxItems": 99, "minItems": 1, "items": { "$ref": "#/definitions/Passenger" } }, "retailersBookingRef": { "title": "Retailer's Booking Reference", "description": "A field which can be used by a retailer to capture their own identifier for a booking", "x-amf-examples": { "example_0": "abc", "example_1": "TF288067" }, "type": "string", "maxLength": 16 }, "uniqueTicketNumber": { "title": "Unique Ticket Number", "description": "A field which can be used by a retailer to capture a unique ticket number.", "x-amf-examples": { "example_0": "xyz", "example_1": "TF288067" }, "type": "string", "maxLength": 16 } } }, "LayoutAndSeatStatus": { "example": { "isReversed": true, "coaches": [ { "id": "A", "name": "AT0101 GWR 10 IET COACH A UP DEC 19", "coachType": "1018 Azuma 10 car coach K South", "sequenceNumber": 10, "imageTemplate": "https://template.rdg-ref-gw-acc.cloud.sqills.com/template/GWR%205%20IET%20A_200615163210337.jpg", "seatHeight": 35, "seatWidth": 20, "floorplanDimensions": { "height": 300, "width": 200 }, "canSelectSeatManually": false, "canAutoAllocateSeat": false, "isBlocked": false, "isReversed": false, "blockedReason": "No reason available", "seats": [ { "id": "60", "coachId": "25V", "compartmentNumber": "sdfff", "inventoryClass": "S", "isBlocked": false, "isBookable": false, "isBooked": false, "isReversed": false, "propertyCodes": [ "Work" ], "reusagePercentage": 25, "rowNumber": 12, "rowPosition": 5, "sequenceNumber": 10, "xPos": 10, "yPos": 15 } ] } ], "seatProperties": [ { "code": { "seatPropertyCode": "AIRL", "description": "DIRECTION AIRLINE", "totalRemainingSeats": 0 } } ], "stationsInformation": [ { "infoType": "reversing_direction", "sequenceNumber": 6, "station": "SWA" } ] }, "type": "object", "required": [ "isReversed", "coaches" ], "properties": { "isReversed": { "title": "Is Reversed", "description": "Identifies if coach is travelling in the reverse direction compared to the supplied Coach Image Template.", "example": false, "type": "boolean" }, "coaches": { "title": "Coaches", "description": "Coaches on a service.", "type": "array", "items": { "$ref": "#/definitions/CoachLayout" } }, "seatProperties": { "title": "Seat Properties", "description": "Seat Properties available on a service.", "type": "array", "items": { "$ref": "#/definitions/SeatProperty" } }, "stationsInformation": { "title": "Station Information", "description": "Indication at which stations between the requested origin and destination a reverse en route takes place.", "type": "array", "items": { "$ref": "#/definitions/StationInformation" } } } }, "ServiceCoachImages": { "example": { "coachImages": [ { "id": "A", "name": "AT0101 GWR 10 IET COACH A UP DEC 19", "sequenceNumber": 10, "imageTemplate": "https://template.rdg-ref-gw-acc.cloud.sqills.com/template/GWR%205%20IET%20A_200615163210337.jpg" } ] }, "type": "object", "properties": { "coachImages": { "title": "Coach Images", "description": "A list of coaches and their respective Coach Image Templates.", "type": "array", "items": { "$ref": "#/definitions/CoachImage" } } } }, "Passengers": { "example": { "reportDateAndTime": "2023-06-23T21:00:00", "serviceDetails": { "rsid": "GB605000", "serviceOriginDate": "2023-12-28", "boardingTime": "09:00:00", "reservationStatus": "Open", "serviceOriginLocation": "ENS", "serviceOriginLocationName": "ENSCHEDE", "serviceDestinationLocation": "AMS", "serviceDestinationLocationName": "AMSTERDAM" }, "tickets": [ { "bookingRef": "UF700538", "boardLocation": "ENS", "boardLocationName": "ENSCHEDE", "alightLocation": "AMS", "alightLocationName": "AMSTERDAM", "coachId": "K", "seatId": "35", "statusCode": "000", "firstName": "Tom", "lastName": "Hanks", "userId": "sqills-agent", "ticketTypeCode": "FFSC", "inventoryClass": "SZ", "organisationCode": "HQ", "agentNotes": [ { "createdBy": "rars2cfs1", "createdRevision": "2", "type": "AGENT_NOTE", "createdOn": "2025-03-13T16:43:16+0000", "content": "Note By Pasenger" } ] } ] }, "type": "object", "required": [ "reportDateAndTime" ], "properties": { "reportDateAndTime": { "title": "Report Date And Time", "description": "Timestamp at when report is generated.", "example": "2023-06-23T21:00:00", "type": "string", "format": "date-time-only" }, "serviceDetails": { "title": "Service Details", "description": "Information related to the service.", "type": "object", "properties": { "reservationStatus": { "title": "Reservation Status", "description": "Reservation status of a ticket", "enum": [ "Open", "Provisional" ], "example": "Open", "type": "string" }, "serviceDestinationLocationName": { "title": "Service Destination Location Name", "description": "Name of the Service Destination Station", "example": "AMSTERDAM", "type": "string" }, "boardingTime": { "title": "Departure Time", "description": "Service Departure Time", "example": "09:00:00", "type": "string", "format": "time" }, "serviceDestinationLocation": { "title": "Service Destination Location", "description": "A compact code of the Service Destination Station", "x-amf-examples": { "example_0": "AMS", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "rsid": { "title": "RSID", "description": "The Retail Service ID is used to uniquely identify a service (on a given day)", "x-amf-examples": { "example_0": "GB605000", "example_1": "AB123400" }, "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, "serviceOriginLocationName": { "title": "Service Origin Location Name", "description": "Name of the Service Origin Station", "example": "ENSCHEDE", "type": "string" }, "serviceOriginLocation": { "title": "Service Origin Location", "description": "A compact code of the Service Origin Station", "x-amf-examples": { "example_0": "ENS", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "serviceOriginDate": { "title": "Service Origin Date", "description": "Date when the Service originates at the station", "example": "2023-06-22", "type": "string", "format": "date" } } }, "tickets": { "title": "Tickets", "description": "Ticket information.", "type": "array", "items": { "type": "object", "properties": { "bookingRef": { "title": "Booking reference", "description": "Booking reference", "x-amf-examples": { "example_0": "WC406188", "example_1": "TF288067" }, "type": "string", "maxLength": 16 }, "boardLocation": { "title": "Board Location", "description": "A compact code of the boarding station", "x-amf-examples": { "example_0": "ENS", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "boardLocationName": { "title": "Board Location Name", "description": "Name of the boarding station", "example": "ENSCHEDE", "type": "string" }, "alightLocation": { "title": "Alight Location", "description": "A compact code of the Alight station.", "x-amf-examples": { "example_0": "AMS", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "alightLocationName": { "title": "Alight Station Location Name", "description": "Name of the Alight station", "example": "AMSTERDAM", "type": "string" }, "coachId": { "title": "Coach Id", "description": "The name of the equipment unit", "x-amf-examples": { "example_0": "15", "example_1": "2SV" }, "type": "string", "minLength": 1, "maxLength": 5 }, "seatId": { "title": "Seat Id", "description": "The number of the seat", "x-amf-examples": { "example_0": "35", "example_1": "5A" }, "type": "string", "minLength": 1, "maxLength": 5 }, "firstName": { "title": "First Name", "description": "first name of passenger", "x-amf-examples": { "example_0": "Tom", "example_1": "Jane" }, "type": "string", "maxLength": 50 }, "lastName": { "title": "Last Name", "description": "Last name of passenger", "x-amf-examples": { "example_0": "Hanks", "example_1": "Bloggs" }, "type": "string", "maxLength": 50 }, "phoneNumber": { "title": "Phone Number", "description": "phone number of passenger", "x-amf-examples": { "example_0": "+31612345678", "example_1": "07777 555 666" }, "type": "string", "maxLength": 24 }, "userId": { "title": "User Id", "description": "User Id of the agent who sold the ticket", "x-amf-examples": { "example_0": "sqills-agent", "example_1": "joe.bloggs" }, "type": "string" }, "ticketTypeCode": { "title": "Ticket Type Code", "description": "The code of the product", "x-amf-examples": { "example_0": "A60", "example_1": "SOS" }, "type": "string", "minLength": 3, "maxLength": 5 }, "inventoryClass": { "title": "Inventory Class", "description": "Inventory Class of the seat.", "x-amf-examples": { "example_0": "SZ", "example_1": "1C" }, "type": "string", "minLength": 1, "maxLength": 2 }, "organisationCode": { "title": "Organisation Code", "description": "The code of the Organisation", "example": "HQ", "type": "string" }, "agentNotes": { "description": "Agent Notes", "type": "array", "items": { "type": "object", "properties": { "createdBy": { "title": "Created By", "description": "Note created by", "example": "rars2cfs1", "type": "string" }, "createdRevision": { "title": "Created Revision", "description": "Revision of the Note", "example": "3", "type": "string" }, "type": { "title": "Note Type", "description": "Type of the Note", "example": "AGENT_NOTE", "type": "string" }, "createdOn": { "title": "Created On", "description": "DateTime of the Note created", "example": "2025-03-13T16:25:15+0000", "type": "string" }, "content": { "title": "Note Content", "description": "Content of the Note", "example": "Note", "type": "string" } } } } } } } } }, "DisabilityTypes": { "type": "array", "items": { "$ref": "#/definitions/DisabilityType" } }, "DiscountedOrSeasonCodesResponse": { "example": { "discountedOrSeasonCodes": [ { "code": "ST", "id": "id1", "name": "Season Ticket" } ] }, "type": "object", "properties": { "discountedOrSeasonCodes": { "type": "array", "items": { "$ref": "#/definitions/DiscountedOrSeason" } } } }, "SeatPropertiesResponse": { "example": { "carrierSeatProperties": [ { "carrierCode": "GR", "validFrom": "2020-10-12", "validUntil": "2020-10-13", "seatProperties": [ { "code": "GR", "description": "London North Eastern Railway" } ] } ] }, "type": "object", "properties": { "CarrierSeatProperties": { "type": "array", "items": { "$ref": "#/definitions/CarrierSeatProperties" } } } }, "AvailabilitySearch": { "example": { "passengers": [ { "id": "passenger_1", "statusCode": "000" } ], "journeys": [ { "journeyConditions": { "journeyOD": { "journeyDestination": "3333", "journeyOrigin": "3087" } }, "legs": [ { "alightLocation": "KGX", "rsid": "GR108000", "id": "segment_1", "boardLocation": "LDS", "serviceOriginDate": "2023-12-18", "carrierCode": "GR" }, { "alightLocation": "EDB", "rsid": "GR616000", "id": "segment_2", "boardLocation": "KGX", "serviceOriginDate": "2023-12-18", "carrierCode": "GR" } ], "bundles": [ { "id": "bundle_1", "products": [ { "routeCode": "00000", "ticketTypeCode": "SOS" }, { "routeCode": "00000", "ticketTypeCode": "FOS" } ] } ], "id": "journey_1", "direction": "OUTBOUND" }, { "journeyConditions": { "journeyOD": { "journeyDestination": "3333", "journeyOrigin": "3087" } }, "legs": [ { "alightLocation": "KGX", "rsid": "GR108000", "id": "segment_2_1", "boardLocation": "LDS", "serviceOriginDate": "2023-12-18", "carrierCode": "GR" } ], "bundles": [ { "id": "bundle_2_1", "products": [ { "routeCode": "00000", "ticketTypeCode": "SOS" } ] }, { "id": "bundle_2_3", "products": [ { "routeCode": "00000", "ticketTypeCode": "SOR" } ] } ], "id": "journey_2", "direction": "OUTBOUND" } ], "salesFlowType": "SALES" }, "type": "object", "required": [ "salesFlowType", "passengers", "journeys" ], "properties": { "salesFlowType": { "$ref": "#/definitions/SalesFlowType" }, "passengers": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/PassengerAvailabilitySearch" } }, "journeys": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/JourneyAvailabilitySearch" } } } }, "AvailabilitySearchResponse": { "example": { "passengers": [ { "id": "passenger_1", "statusCode": "000" } ], "journeys": [ { "journeyConditions": { "journeyOD": { "journeyDestination": "3333", "journeyOrigin": "3087" } }, "legs": [ { "alightLocation": "KGX", "rsid": "GR108000", "departureDateTime": "2023-12-18T06:40:00Z", "id": "segment_1", "boardLocation": "LDS", "serviceOriginDate": "2023-12-18", "arrivalDateTime": "2023-12-18T08:49:00Z", "serviceIdentifier": "0:R|GR108000|TRAIN|2023-12-18", "carrierCode": "GR" }, { "alightLocation": "EDB", "rsid": "GR616000", "departureDateTime": "2023-12-18T09:00:00Z", "id": "segment_2", "boardLocation": "KGX", "serviceOriginDate": "2023-12-18", "arrivalDateTime": "2023-12-18T13:21:00Z", "serviceIdentifier": "0:R|GR616000|TRAIN|2023-12-18", "carrierCode": "GR" } ], "bundles": [ { "bundleOutcome": "NO_AVAILABILITY", "id": "bundle_1", "products": [ { "routeCode": "00000", "ticketTypeCode": "SOS", "items": [ { "tariffCode": "SOS", "inventoryClass": "2S", "inventoryClassType": "CARRIAGE_AND_SEAT", "legId": "segment_1", "legAvailability": "FULL_AVAILABILITY", "passengerIds": [ "passenger_1" ] }, { "legId": "segment_2", "legAvailability": "NO_AVAILABILITY" } ] }, { "routeCode": "00000", "ticketTypeCode": "FOS", "items": [ { "tariffCode": "FOS", "inventoryClass": "1F", "inventoryClassType": "CARRIAGE_AND_SEAT", "legId": "segment_1", "legAvailability": "FULL_AVAILABILITY", "passengerIds": [ "passenger_1" ] }, { "legId": "segment_2", "legAvailability": "NO_AVAILABILITY" } ] } ] } ], "id": "journey_1", "direction": "OUTBOUND" }, { "journeyConditions": { "journeyOD": { "journeyDestination": "3333", "journeyOrigin": "3087" } }, "legs": [ { "alightLocation": "KGX", "rsid": "GR108000", "departureDateTime": "2023-12-18T06:40:00Z", "id": "segment_2_1", "boardLocation": "LDS", "serviceOriginDate": "2023-12-18", "arrivalDateTime": "2023-12-18T08:49:00Z", "serviceIdentifier": "0:R|GR108000|TRAIN|2023-12-18", "carrierCode": "GR" } ], "bundles": [ { "bundleOutcome": "FULL_AVAILABILITY", "id": "bundle_2_1", "products": [ { "routeCode": "00000", "ticketTypeCode": "SOS", "items": [ { "tariffCode": "SOS", "inventoryClass": "2S", "inventoryClassType": "CARRIAGE_AND_SEAT", "legId": "segment_2_1", "passengerIds": [ "passenger_1" ] } ] } ] }, { "bundleOutcome": "NO_AVAILABILITY", "id": "bundle_2_3" } ], "id": "journey_2", "direction": "OUTBOUND" } ], "salesFlowType": "SALES" }, "type": "object", "properties": { "salesFlowType": { "$ref": "#/definitions/SalesFlowType" }, "passengers": { "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/PassengerAvailabilitySearch" } }, "journeys": { "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/JourneyAvailability" } }, "notices": { "description": "A list of partial error for parts of the request that could not be processed.", "type": "array", "items": { "$ref": "#/definitions/Notice_1" } } } }, "Initials": { "title": "Initials", "description": "An individual's initials.", "example": "J.S.", "type": "string", "maxLength": 16 }, "LastName": { "title": "Last Name", "description": "An individual's surname(s).", "example": "Bloggs", "type": "string", "maxLength": 50 }, "Title": { "title": "Title", "description": "An individual's title (Mr, Mrs, Miss, etc.).", "example": "MS", "type": "string", "maxLength": 16 }, "FirstName": { "title": "First Name", "description": "An individual's first name(s).", "example": "Jane", "type": "string", "maxLength": 50 }, "EmailAddress": { "title": "Email Address", "description": "An email address which can be used to contact an individual.", "example": "jane.bloggs@example.com", "type": "string", "maxLength": 200 }, "Passenger": { "type": "object", "required": [ "id", "statusCode" ], "properties": { "createdRevision": { "title": "Created Revision", "description": "", "example": 1, "type": "integer" }, "disabilityType": { "$ref": "#/definitions/DisabilityTypeCode" }, "discountedOrSeasonCode": { "type": "array", "items": { "$ref": "#/definitions/PassengerDiscountedOrSeason" } }, "email": { "$ref": "#/definitions/EmailAddress" }, "firstName": { "$ref": "#/definitions/FirstName" }, "id": { "title": "Passenger Identifier", "description": "A unique ID for a passenger within a booking", "example": "passenger_1", "type": "string", "pattern": "^passenger_[1-9][0-9]{0,2}$" }, "lastName": { "$ref": "#/definitions/LastName" }, "phoneNumber": { "$ref": "#/definitions/PhoneNumber" }, "protectPrivacy": { "title": "Protect Privacy", "description": "Used as an indicator to choose whether to protect passenger information.", "example": true, "type": "boolean" }, "statusCode": { "$ref": "#/definitions/StatusCode" }, "title": { "$ref": "#/definitions/Title" }, "updatedRevision": { "title": "Updated Revision", "description": "Revision number for the Passenger record.", "example": 2, "type": "integer" }, "uuid": { "$ref": "#/definitions/UniversallyUniqueIdentifier" } } }, "Booking": { "type": "object", "required": [ "bookingRef", "passengers", "salesChannelCode" ], "properties": { "agent": { "$ref": "#/definitions/BookingAgent" }, "bookingRef": { "$ref": "#/definitions/BookingReference_2" }, "canBeUpgraded": { "title": "Can Be Upgraded", "description": "Indicates whether the booking can be upgraded", "example": false, "type": "boolean" }, "cancelledOn": { "title": "Cancelled On", "description": "Date and time this booking was cancelled", "example": "2020-10-12T15:36:00+00:00", "type": "string", "format": "date-time" }, "changeExpiryOn": { "title": "Change Expires On", "description": "Date and Time a change expires on", "example": "2020-10-13T15:00:00+00:00", "type": "string", "format": "date-time" }, "confirmedOn": { "title": "Confirmed On", "description": "Date and time this booking was confirmed", "example": "2020-10-12T15:00:00+00:00", "type": "string", "format": "date-time" }, "createdOn": { "title": "Created On", "description": "Date and time this booking was created", "example": "2020-10-12T14:29:00+00:00", "type": "string", "format": "date-time" }, "recordStructureVersion": { "title": "Record Structure Version", "description": "Additional details required for Booking", "example": "v2", "type": "string" }, "customer": { "$ref": "#/definitions/Customer" }, "outboundBookingTariffLegs": { "title": "Outbound Booking Leg(s) Details", "type": "array", "items": { "$ref": "#/definitions/BookingLegTariff" } }, "inboundBookingTariffLegs": { "title": "Inbound Booking Leg(s) Details", "type": "array", "items": { "$ref": "#/definitions/BookingLegTariff" } }, "lastAfterSalesOperation": { "title": "Last After Sales Operation", "description": "The following options are defined - others may be added over time:
- AFTERSALES_CANCEL
- AFTERSALES_MODIFY
- AFTERSALES_NAMECHANGE
- AFTERSALES_REBOOK
- AFTERSALES_SEATCHANGE", "example": "AFTERSALES_CANCEL", "type": "string" }, "notes": { "title": "Notes", "type": "array", "items": { "$ref": "#/definitions/BookingNote" } }, "passengers": { "title": "Passengers", "type": "array", "items": { "$ref": "#/definitions/Passenger" } }, "provisionalExpiredOn": { "title": "Provisional Booking Expires On", "description": "Date and time this booking expired (applicable to provisional bookings)", "example": "2020-10-12T15:45:00+00:00", "type": "string", "format": "date-time" }, "retailersBookingRef": { "title": "Retailer's Booking reference", "description": "A unique identifier for a booking.", "x-amf-examples": { "example_1": "TF288067" }, "type": "string", "maxLength": 16 }, "revisionNumber": { "title": "Revision Number", "description": "Current revision number of the booking.", "example": 12, "type": "integer" }, "salesChannelCode": { "$ref": "#/definitions/SalesChannelCode" }, "uniqueTicketNumber": { "title": "Unique Ticket Number", "description": "A unique identifier for a booking.", "x-amf-examples": { "example_1": "TF288067" }, "type": "string", "maxLength": 16 }, "updatedOn": { "title": "Updated On", "description": "Date and time this booking was last updated", "example": "2020-10-12T15:00:00+00:00", "type": "string", "format": "date-time" } } }, "Notice": { "title": "Notice", "description": "Information notice from the booking service.", "type": "object", "required": [ "notice" ], "properties": { "notice": { "title": "Notice", "description": "Information notice from the booking service.", "type": "string" }, "message": { "title": "Message", "description": "Additional information about the notice.", "type": "string" }, "context": { "title": "Context", "description": "Additional context in relation to the notice.", "type": "object", "patternProperties": { "[a-zA-Z0-9_]*": { "type": "string" } } } } }, "UniversallyUniqueIdentifier": { "title": "Universally Unique Identifier (UUID)", "description": "A code used to uniquely identify an item.", "example": "54e3bd31-0c64-4667-b477-fbc6815ac201", "type": "string", "maxLength": 50 }, "SeatId": { "title": "Seat Identifier", "description": "A unique identifier for a seat within a coach.", "example": "5A", "type": "string", "minLength": 1, "maxLength": 5 }, "EquipmentUnitId": { "title": "Equipment Unit Id", "description": "An identifier for an equipment unit (coach).", "example": "2SV", "type": "string", "minLength": 1, "maxLength": 5 }, "Id": { "title": "General Identifier", "description": "A code used to uniquely identify an item.", "example": 123, "type": "integer" }, "SeatStrategy": { "description": "The strategy chosen for assigning a seat. There are currently two options supported:

- exact
- close_to


The exact strategy is the default strategy which will allocate the requested seat if it is available. If the seat is unavailable, the fallback is the regular seating algorithm

The close_to strategy will allocate a seat nearby the indicated seat number and carriage. That seat can be indicated and an available seat close to that seat will be assigned. It will only fall back to auto-allocation (the seating algorithm) in cases where no seat in close proximity of the requested seat can be found.", "example": "exact", "type": "string" }, "SeatPreference": { "type": "object", "required": [ "code", "preference" ], "properties": { "code": { "$ref": "#/definitions/SeatPropertyCode" }, "preference": { "$ref": "#/definitions/Preference" } } }, "StatusCode": { "title": "Status Code", "description": "The type of passenger, expressed using the standard fare status codes (e.g. 000 = Adult, 001 = Child, etc.).", "example": "000", "type": "string", "minLength": 3, "maxLength": 3 }, "DisabilityTypeCode": { "title": "Disability Type Code", "description": "Used to identify an individual's accessibility requirements, if applicable.", "x-amf-examples": { "example_0": "WCHC", "example_1": "WCCF" }, "type": "string", "minLength": 1, "maxLength": 20 }, "PhoneNumber": { "title": "Phone Number", "description": "A phone number which can be used to contact an individual. This may be a landline or mobile number.", "example": "07777 555 666", "type": "string", "maxLength": 24 }, "PassengerDiscountedOrSeason": { "description": "Used to identify whether a seat is being booked with a season ticket or with a discounted ticket", "type": "object", "required": [ "code", "id", "name" ], "properties": { "code": { "$ref": "#/definitions/DiscountedOrSeasonCode" }, "id": { "$ref": "#/definitions/DiscountedOrSeasonIdentifier" }, "name": { "$ref": "#/definitions/DiscountedOrSeasonName" } } }, "PassengerId": { "title": "Passenger Identifier", "description": "Used to uniquely identify a passenger", "example": "passenger_1", "type": "string", "pattern": "^passenger_[1-9][0-9]{0,2}$" }, "Direction": { "title": "Direction", "description": "Indicates the direction of travel. For a single journey outbound should be used. For a return journey outbound should be used for the outbound portion and inbound for the return portion.", "enum": [ "INBOUND", "OUTBOUND" ], "example": "OUTBOUND", "type": "string" }, "JourneyConditions": { "title": "Journey Conditions", "description": "Provides overall journey information.", "type": "object", "required": [ "journeyOD" ], "properties": { "journeyOD": { "$ref": "#/definitions/JourneyOD" } } }, "RouteCode": { "title": "Route Code", "description": "Route code against which which the availability applies. Defines a product in combination with the ticket type code.", "example": "00000", "type": "string", "minLength": 5, "maxLength": 5 }, "RetailServiceId": { "title": "Retail Service Id", "description": "The Retail Service ID is used to uniquely identify a service (on a given day). It is comprised of the 2-character Carrier code followed by a 4 digit headcode followed by a 2 digit portion suffix (required for services which split/join on route).", "example": "AB123400", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, "ServiceIdentifier": { "title": "Service Identifier", "description": "Unique identifier of a service. Required for making a booking.", "example": "0:R|AB123400|AB|2020-12-10", "type": "string" }, "BookingSeatProduct": { "type": "object", "required": [ "passengerId", "tariffCode" ], "properties": { "passengerId": { "title": "Passenger Identifier", "description": "Unique ID for a passenger", "example": "passenger_1", "type": "string", "pattern": "^passenger_[1-9][0-9]{0,2}$" }, "seat": { "$ref": "#/definitions/BookingSeat" }, "seatPreferences": { "description": "Allows retailers to specify 1 or more seat properties", "example": [ "AISL", "TBL" ], "type": "array", "items": { "$ref": "#/definitions/SeatPropertyCode" } }, "tariffCode": { "$ref": "#/definitions/TariffCode" } } }, "Tickets": { "type": "object", "properties": { "bookingReference": { "$ref": "#/definitions/BookingReference_2" }, "ticketReference": { "$ref": "#/definitions/TicketReference" }, "ticketTypeCode": { "title": "Ticket Type Code", "description": "The product code of the purchased ticket item.", "x-amf-examples": { "example_0": "FFSC", "example_1": "SOS" }, "type": "string", "minLength": 3, "maxLength": 5 }, "productType": { "description": "The product type of the purchased ticket item.", "example": "ST", "type": "string" } } }, "TicketDetails": { "type": "object", "properties": { "bookingReference": { "$ref": "#/definitions/BookingReference_2" }, "ticketReference": { "$ref": "#/definitions/TicketReference" }, "boardLocation": { "title": "Board Location", "description": "A three character code used to unique identify a location. CRS codes act as a map between TIPLOCs used in timetables and NLCs used in fares and are made known to the public as a handy shortcut for finding a location.", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "boardLocationName": { "title": "board Location Name", "description": "Full name of the boarding station Name.", "type": "string" }, "alightLocation": { "title": "Alight Location", "description": "A three character code used to unique identify a location. CRS codes act as a map between TIPLOCs used in timetables and NLCs used in fares and are made known to the public as a handy shortcut for finding a location.", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "alightLocationName": { "title": "Alight Location Name", "description": "Full name of the Alight station Name.", "type": "string" }, "coachId": { "$ref": "#/definitions/EquipmentUnitId" }, "seatId": { "$ref": "#/definitions/SeatId" }, "validated": { "$ref": "#/definitions/Validated" }, "createdOn": { "type": "string", "format": "date-time" }, "confirmedOn": { "type": "string", "format": "date-time" }, "validations": { "type": "array", "items": { "$ref": "#/definitions/Validations" } } } }, "ValidationUsername": { "title": "Validation Username", "description": "The identity of the Agent doing the validation", "x-amf-examples": { "example_0": "station_terminal", "example_1": "joe.bloggs", "amf_example_1": "rarsUser" }, "type": "string" }, "TicketReference": { "type": "string" }, "RSID": { "title": "RSID", "description": "The Retail Service ID is used to uniquely", "example": "AB123400", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 }, "ValidationDevice": { "title": "Validation Device", "description": "Device with which the validation has taken place", "example": "hand-held-10", "type": "string" }, "ValidationDateTime": { "title": "Validation DateTime", "description": "Timestamp of when the validation took place in the format yyyy-MM-dd'T'HH:mm:ss'Z'", "x-amf-examples": { "example_0": "2024-08-10T10:10:10Z", "example_1": "2024-08-10T11:10:10Z", "amf_example_1": "2010-11-10T10:10:10Z" }, "type": "string" }, "Location": { "title": "Location", "description": "Station / location where validation took place", "example": "London", "type": "string" }, "ValidationType": { "title": "ValidationType", "description": "The type of validation", "enum": [ "FULL", "LIGHT", "PASSAGE", "ISSUE", "NOSHOW", "BOARDING", "DISEMBARKMENT", "RELEASE_REQUESTED", "RELEASE_CONFIRMED", "SEAT_RELEASED" ], "example": "FULL", "type": "string" }, "AdditionalDetails": { "title": "Additional Details", "description": "additional details to be stored.", "type": "object", "properties": { "key": { "title": "Key", "description": "key for the additional details to be stored", "type": "string" }, "value": { "title": "Value", "description": "value for the additional details to be stored", "type": "string" } } }, "RevertValidationType": { "title": "RevertValidationType", "description": "The type of validation allowed to revert", "enum": [ "ALL", "FULL", "LIGHT", "PASSAGE", "ISSUE", "NOSHOW", "RELEASE_REQUESTED" ], "type": "string" }, "OneStopBookingLeg": { "type": "object", "required": [ "alightLocation", "boardLocation", "carrierCode", "direction", "journeyConditions", "routeCode", "rsid", "seatProducts", "serviceOriginDate" ], "properties": { "alightLocation": { "title": "Alight Location", "description": "The CRS code of the station at which a passenger alights from a service", "x-amf-examples": { "example_0": "SRA", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "boardLocation": { "title": "Board Location", "description": "The CRS code of the station at which a passenger boards a service", "x-amf-examples": { "example_0": "IPS", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "carrierCode": { "title": "Carrier Code", "description": "The 2-character code identifying the service provider (TOC) from the published timetable data", "x-amf-examples": { "example_0": "LE", "example_1": "GR" }, "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, "direction": { "$ref": "#/definitions/Direction" }, "journeyConditions": { "$ref": "#/definitions/JourneyConditions" }, "routeCode": { "$ref": "#/definitions/RouteCode" }, "rsid": { "$ref": "#/definitions/RetailServiceId" }, "seatProducts": { "type": "array", "items": { "$ref": "#/definitions/OneStopBookingSeatProduct" } }, "serviceOriginDate": { "description": "The date of departure at the origin station. In combination with the RSID used to uniquely identify a service.", "example": "2021-04-01", "type": "string", "format": "date" } } }, "CoachLayout": { "title": "Coach Layout", "type": "object", "required": [ "id", "name", "sequenceNumber", "seatHeight", "seatWidth", "floorplanDimensions", "canSelectSeatManually", "canAutoAllocateSeat", "isReversed", "isBlocked", "seats" ], "properties": { "id": { "title": "Coach identifier", "description": "Identifier of a coach on a service.", "x-amf-examples": { "example_0": "A", "example_1": "2SV" }, "type": "string", "minLength": 1, "maxLength": 5 }, "name": { "title": "Coach Name", "description": "Name of a coach on a service. This may be expressed using a TOC specific structure to support train service electronic displays.", "example": "AL1202 GWR 10 IET COACH L UP DEC 19", "type": "string", "minLength": 1, "maxLength": 50 }, "sequenceNumber": { "title": "Sequence Number of coach", "description": "Where a coach appears in relation to other coaches in the makeup of a service.", "example": 3, "type": "integer" }, "imageTemplate": { "title": "Coach Image Template", "description": "Location from where a coach image can be retrieved.", "example": "https://example.com/template/train2nd_171208114208979_200410092332074.png", "type": "string" }, "seatHeight": { "title": "Seat Height", "description": "Height in pixels of a seat within a Coach Image Template.", "example": 40, "type": "integer" }, "seatWidth": { "title": "Seat Width", "description": "Width in pixels of a seat within a Coach Image Template.", "example": 40, "type": "integer" }, "floorplanDimensions": { "title": "Floorplan Dimensions", "description": "Dimentions of a coach.", "type": "object", "required": [ "width", "height" ], "properties": { "width": { "title": "Width", "description": "Width in pixels of the coach floorplan image.", "example": 1400, "type": "integer" }, "height": { "title": "Height", "description": "Height in pixels of the coach floorplan image.", "example": 120, "type": "integer" } } }, "canSelectSeatManually": { "title": "Manual Seat Selection", "description": "Identifies if its possible to select a seat manually. If false then seats can only be allocated by the service.", "example": true, "type": "boolean" }, "canAutoAllocateSeat": { "title": "Automatic Allocation of Seats", "description": "Identifies if its possible for seats to be allocated automatically. If false then seats can only be allocated manually.", "example": false, "type": "boolean" }, "isReversed": { "title": "Is Reversed", "description": "Identifies if coach is travelling in the reverse direction compared to the supplied Coach Image Template.", "example": false, "type": "boolean" }, "isBlocked": { "title": "Is Blocked", "description": "Identifies that seats on a coach can't be booked. Overrides individual seat values.", "example": true, "type": "boolean" }, "blockedReason": { "title": "Blocked Reason", "description": "Reason why seats on a coach cannot be booked.", "type": "string" }, "seats": { "title": "Seats", "description": "Seats within a coach.", "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/Seat" } }, "coachType": { "title": "Coach Type", "description": "Type of a coach on a service.", "example": "1018 Azuma 10 car coach K South", "type": "string", "minLength": 1, "maxLength": 50 } } }, "SeatProperty": { "title": "Seat Property", "type": "object", "required": [ "code" ], "properties": { "code": { "title": "Seat Property Code Details", "type": "object", "required": [ "seatPropertyCode", "description", "totalRemainingSeats" ], "properties": { "seatPropertyCode": { "title": "Seat Property Code", "description": "Code representing a seat property", "example": "AISL", "type": "string", "minLength": 1, "maxLength": 20 }, "description": { "title": "Seat Property Description", "description": "Description of a seat property", "example": "SEAT POSITION: AISLE", "type": "string" }, "totalRemainingSeats": { "title": "Total number of Remaining Seats", "description": "The total number of seats remaining", "example": 13, "type": "integer" } } } } }, "StationInformation": { "title": "Station Information", "description": "A station where a reverse en route takes place.", "type": "object", "required": [ "infoType", "sequenceNumber", "station" ], "properties": { "infoType": { "title": "Info Type", "description": "", "example": "", "type": "string" }, "sequenceNumber": { "title": "Sequence Number", "description": "Sequence number of the station in relation to other stations.", "example": 2, "type": "integer" }, "station": { "title": "Station", "description": "The station where a reverse en route occurs.", "x-amf-examples": { "example_0": "RDG", "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 } } }, "CoachImage": { "type": "object", "required": [ "id", "name", "sequenceNumber" ], "properties": { "id": { "title": "Coach identifier", "description": "Identifier of a coach on a service.", "x-amf-examples": { "example_0": "A", "example_1": "2SV" }, "type": "string", "minLength": 1, "maxLength": 5 }, "name": { "title": "Coach Name", "description": "Name of a coach on a service. This may be expressed using a TOC specific structure to support train service electronic displays.", "example": "AL1202 GWR 10 IET COACH L UP DEC 19", "type": "string", "minLength": 1, "maxLength": 50 }, "sequenceNumber": { "title": "Sequence Number of coach", "description": "Where a coach appears in relation to other coaches in the makeup of a service.", "example": 3, "type": "integer" }, "imageTemplate": { "title": "Coach Image Template", "description": "Location from where a coach image can be retrieved.", "example": "https://example.com/template/train2nd_171208114208979_200410092332074.png", "type": "string" } } }, "DisabilityType": { "title": "Disability Type", "description": "Disability Type object, mapping the disability type code to a customer friendly description.", "type": "object", "required": [ "code", "description" ], "properties": { "code": { "$ref": "#/definitions/DisabilityTypeCode_3" }, "description": { "description": "A customer friendly description of what requirements the disability code covers.", "example": "PERMANENT OWN WHEELCHAIR USER", "type": "string" } } }, "DiscountedOrSeason": { "type": "object", "required": [ "code", "name" ], "properties": { "code": { "$ref": "#/definitions/DiscountedOrSeasonCode_4" }, "name": { "$ref": "#/definitions/DiscountedOrSeasonName_5" } } }, "CarrierSeatProperties": { "title": "Carrier Seat Properties", "description": "A list of seat properties available for a carrier (train operator) during the specified period", "type": "object", "required": [ "carrierCode", "validFrom", "validUntil" ], "properties": { "carrierCode": { "title": "Carrier Code", "description": "The 2-character code identifying the service provider (TOC) from the published timetable data", "x-amf-examples": { "example_0": "LE", "example_1": "GR" }, "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, "validFrom": { "title": "Valid from", "description": "Date this list of seat properties are valid from", "example": "2020-10-12", "type": "string", "format": "date" }, "validUntil": { "title": "Valid until", "description": "Date this list of seat properties are valid until", "example": "2020-10-13", "type": "string", "format": "date" }, "seatProperties": { "title": "Seat Properties", "description": "A list of available seat properties for this carrier", "type": "array", "items": { "$ref": "#/definitions/SeatPropertyDescription" } } } }, "SalesFlowType": { "description": "Define the type of sales flow. Currently one of: \nSALES; should be used for availability checks prior to a ticket sale (i.e. the 'normal' flow)\nAFTER_SALES; availability check if required for an after sales actions.\n", "default": "SALES", "example": "SALES", "type": "string" }, "PassengerAvailabilitySearch": { "type": "object", "required": [ "id", "statusCode" ], "properties": { "id": { "title": "Passenger Identifier", "description": "Unique identifier for a passenger", "example": "passenger_1", "type": "string", "pattern": "^passenger_[1-9][0-9]{0,2}$" }, "statusCode": { "$ref": "#/definitions/StatusCode" }, "disabilityType": { "$ref": "#/definitions/DisabilityTypeCode" }, "discountedOrSeasonCode": { "$ref": "#/definitions/DiscountedOrSeasonCode_6" } } }, "JourneyAvailabilitySearch": { "type": "object", "required": [ "id", "direction", "journeyConditions", "legs", "bundles" ], "properties": { "id": { "$ref": "#/definitions/JourneyId" }, "direction": { "$ref": "#/definitions/Direction_7" }, "journeyConditions": { "$ref": "#/definitions/JourneyConditions_8" }, "legs": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/LegAvailabilitySearch" } }, "bundles": { "description": "Products to check availability for, Possible offer for which an availability is looked for", "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/BundleAvailabilitySearch" } } } }, "JourneyAvailability": { "type": "object", "properties": { "id": { "$ref": "#/definitions/JourneyId" }, "direction": { "$ref": "#/definitions/Direction_7" }, "journeyConditions": { "$ref": "#/definitions/JourneyConditions_8" }, "legs": { "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/LegAvailability" } }, "bundles": { "description": "Information about availability of products", "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/BundleAvailability" } } } }, "Notice_1": { "title": "Notice", "description": "Information notice from the booking service.", "type": "object", "required": [ "notice" ], "properties": { "notice": { "title": "Notice", "description": "Information notice from the booking service.", "type": "string" }, "message": { "title": "Message", "description": "Additional information about the notice.", "type": "string" }, "context": { "title": "Context", "description": "Additional context in relation to the notice.", "type": "object", "patternProperties": { "[a-zA-Z0-9_]*": { "type": "string" } } } } }, "BookingAgent": { "title": "Booking Agent", "description": "Agent making the booking.", "type": "object", "properties": { "contractCode": { "$ref": "#/definitions/AgentContractCode" }, "office": { "$ref": "#/definitions/AgentOfficeCode" }, "organisation": { "$ref": "#/definitions/AgentOrganisation" }, "username": { "$ref": "#/definitions/Username" } } }, "BookingReference_2": { "title": "Booking Reference", "description": "A unique identifier for a booking.", "x-amf-examples": { "example_1": "TF288067" }, "type": "string", "maxLength": 16 }, "SalesChannelCode": { "description": "TBD if included", "example": "TBD", "type": "string" }, "BookingLegTariff": { "type": "object", "required": [ "serviceOriginDate", "routeCode", "serviceIdentifier" ], "properties": { "additionalProducts": { "title": "Additional Products", "type": "array", "items": { "$ref": "#/definitions/BookingLegSeatProduct" } }, "alightLocation": { "title": "Alight Location", "description": "The CRS code of the station at which a passenger alights from a service", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "boardLocation": { "title": "Board Location", "description": "The CRS code of the station at which a passenger boards a service", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "classOfTravel": { "title": "Class of Travel", "description": "Class of travel booked", "type": "string" }, "id": { "title": "Identifier", "type": "string" }, "uuid": { "$ref": "#/definitions/UniversallyUniqueIdentifier" }, "journeyConditions": { "$ref": "#/definitions/JourneyConditions" }, "serviceOriginDate": { "title": "Service Origin Date", "description": "Departure date from journey origin location", "example": "2021-03-22", "type": "string", "format": "date" }, "journeyLeg": { "title": "Journey Leg(s)", "type": "object", "required": [ "alightLocation", "boardLocation", "carrierCode", "rsid" ], "properties": { "alightLocation": { "title": "Alight Location", "description": "A three character code used to unique identify a location. CRS codes act as a map between TIPLOCs used in timetables and NLCs used in fares and are made known to the public as a handy shortcut for finding a location.", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "arrivalDateTime": { "title": "Arrival Date and Time", "example": "2021-03-22T15:27:00+01:00", "type": "string", "format": "date-time" }, "boardLocation": { "title": "Board Location", "description": "A three character code used to unique identify a location. CRS codes act as a map between TIPLOCs used in timetables and NLCs used in fares and are made known to the public as a handy shortcut for finding a location.", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "departureDateTime": { "title": "Departure date and Time", "example": "2021-03-22T15:27:00+01:00", "type": "string", "format": "date-time" }, "carrierCode": { "$ref": "#/definitions/CarrierCode" }, "id": { "title": "Identifier", "type": "string" }, "rsid": { "$ref": "#/definitions/RetailServiceId" } } }, "requiredProducts": { "title": "Required Products", "type": "array", "items": { "$ref": "#/definitions/BookingLegSeatProduct" } }, "routeCode": { "$ref": "#/definitions/RouteCode" }, "serviceIdentifier": { "$ref": "#/definitions/ServiceIdentifier" }, "validityStartDate": { "title": "Validity Start Date", "type": "string", "format": "date" }, "validityEndDate": { "title": "Validity End Date", "type": "string", "format": "date" }, "validityRsid": { "title": "Validity RSID", "description": "The Retail Service ID is used to uniquely identify a service (on a given day). It is comprised of the 2-character Carrier code followed by a 4 digit headcode followed by a 2 digit portion suffix (required for services which split/join on route).", "example": "AB123400", "type": "string", "pattern": "^[A-Z]{2}[0-9]{6}$", "minLength": 8, "maxLength": 8 } } }, "BookingNote": { "type": "object", "required": [ "content", "createdBy", "createdOn" ], "properties": { "content": { "type": "string" }, "createdBy": { "$ref": "#/definitions/Username" }, "createdOn": { "example": "2021-03-22T15:27:21+01:00", "type": "string", "format": "date-time" }, "createdRevision": { "example": 6, "type": "integer" }, "type": { "$ref": "#/definitions/BookingNoteType" } } }, "SeatPropertyCode": { "title": "Seat Property Code", "description": "Codes used to identify attributes of a seat or berth.", "example": "AISL", "type": "string", "minLength": 1, "maxLength": 20 }, "Preference": { "enum": [ "REQUIRED", "PREFERRED" ], "example": "REQUIRED", "type": "string" }, "DiscountedOrSeasonCode": { "title": "Discounted or Season Ticket Code", "description": "A code used to identify a disounted ticket or season ticket. Supported codes are available as reference data.", "example": "ST", "type": "string" }, "DiscountedOrSeasonIdentifier": { "title": "Discounted or Season Ticket Identifier", "description": "Unique identifier used to relate a DiscountOrSeason record to a booking item.", "example": "id1", "type": "string" }, "DiscountedOrSeasonName": { "title": "Discounted or Season Ticket Name", "description": "The name of a disounted ticket or season ticket. Supported names are available as reference data.", "example": "Season Ticket", "type": "string" }, "JourneyOD": { "title": "Journey Origin and Destination", "description": "The timetabled origin and destination for the complete journey. The complete journey includes non-reservable legs but must exclude any fixed link legs (e.g. Walk, Underground, Transfer, etc.)

For example, a journey from Upminster to Peterborough would be represented by 7464 to 6133, whereas a journey from Yeovil Junction to Paddington, whose first leg is a Walk to Yeovil Pen Mill, should be provided as 5856 to 3087.", "type": "object", "required": [ "journeyOrigin", "journeyDestination" ], "properties": { "journeyOrigin": { "title": "Journey Origin", "description": "The NLC for the origin location. This may be for a non-reservable leg, if this is the first leg of a journey. It must be the NLC for the journey origin and not the fare origin NLC.", "x-amf-examples": { "example_0": "3087", "example_1": "1072" }, "type": "string", "pattern": "^[0-9A-Z]{4}$", "minLength": 4, "maxLength": 4 }, "journeyDestination": { "title": "Journey Destination", "description": "The NLC for the destination location. This may be for a non-reservable leg, if this is the last leg of a journey. It must be the NLC for the journey destination and not the fare destination NLC.", "x-amf-examples": { "example_0": "3526", "example_1": "1072" }, "type": "string", "pattern": "^[0-9A-Z]{4}$", "minLength": 4, "maxLength": 4 } } }, "BookingSeat": { "type": "object", "required": [ "coachId", "seatId" ], "properties": { "coachId": { "$ref": "#/definitions/EquipmentUnitId" }, "seatId": { "$ref": "#/definitions/SeatId" }, "strategy": { "$ref": "#/definitions/SeatStrategy" } } }, "TariffCode": { "title": "Tariff Code", "description": "Tariff code associated to a product. Required for making a booking.", "example": "SOS_1", "type": "string" }, "Validated": { "title": "Validated", "description": "true, when the ticket has a FULL validation and VOID is not used, false otherwise", "type": "boolean" }, "Validations": { "type": "object", "properties": { "userName": { "$ref": "#/definitions/ValidationUsername" }, "ticketReference": { "$ref": "#/definitions/TicketReference" }, "rsid": { "$ref": "#/definitions/RSID" }, "device": { "$ref": "#/definitions/ValidationDevice" }, "dateTime": { "$ref": "#/definitions/ValidationDateTime" }, "voidDateTime": { "$ref": "#/definitions/ValidationDateTime" }, "location": { "$ref": "#/definitions/Location" }, "lightValidation": { "$ref": "#/definitions/LightValidation" }, "validationType": { "$ref": "#/definitions/ValidationType" }, "additionalDetails": { "description": "Additional details required for TOC", "type": "array", "items": { "$ref": "#/definitions/AdditionalDetails" } } } }, "OneStopBookingSeatProduct": { "type": "object", "required": [ "passengerId", "ticketTypeCode" ], "properties": { "passengerId": { "title": "Passenger Identifier", "description": "Unique ID for a passenger", "example": "passenger_1", "type": "string", "pattern": "^passenger_[1-9][0-9]{0,2}$" }, "seat": { "$ref": "#/definitions/BookingSeat" }, "seatPreferences": { "description": "Allows retailers to specify 1 or more seat properties", "example": [ "AISL", "TBL" ], "type": "array", "items": { "$ref": "#/definitions/SeatPropertyCode" } }, "ticketTypeCode": { "$ref": "#/definitions/TicketTypeCode" } } }, "Seat": { "title": "Seat", "description": "Seat attributes.", "type": "object", "required": [ "id", "sequenceNumber", "inventoryClass", "isBookable", "isReversed", "rowNumber", "rowPosition", "xPos", "yPos" ], "properties": { "id": { "title": "Seat identifier", "description": "Unique identifier of the seat within a coach.", "x-amf-examples": { "example_1": "5A" }, "type": "string", "minLength": 1, "maxLength": 5 }, "compartmentNumber": { "title": "Compartment Number", "description": "Compartment number of the seat, if applicable.", "example": "BER1A", "type": "string", "minLength": 1, "maxLength": 5 }, "sequenceNumber": { "title": "Sequence Number", "description": "Sequence number of the seat in relation to other seats within the coach.", "type": "integer" }, "inventoryClass": { "title": "Inventory Class", "description": "Inventory Class of the seat.", "x-amf-examples": { "example_1": "1C" }, "type": "string", "minLength": 1, "maxLength": 2 }, "isBlocked": { "title": "Is Blocked", "description": "The seat cannot be booked.", "type": "boolean" }, "isBookable": { "title": "Is Bookable", "description": "The seat can be booked.", "type": "boolean" }, "isBooked": { "title": "Is Booked", "description": "The seat has been booked.", "type": "boolean" }, "isReversed": { "title": "Is Reversed", "description": "The seat direction is opposite to that shown in the Coach Image Template.", "type": "boolean" }, "reusagePercentage": { "title": "Reusage Percentage", "description": "An integer value for each seat between 0 and 100 that indicates how much of the route outside of the requested origin destination the seat is occupied. (i.e. how 'warm' the seat is).", "example": 33, "type": "integer", "minimum": 0, "maximum": 100 }, "rowNumber": { "title": "Row Number", "description": "The row number of the seat", "type": "integer" }, "rowPosition": { "title": "Row Position", "description": "The position in the row of the seat", "type": "integer" }, "xPos": { "title": "X Co-ordinate", "description": "The x co-ordinate of the seat within the coach map.", "type": "integer" }, "yPos": { "title": "Y Co-ordinate", "description": "The y co-ordinate of the seat within the coach map.", "type": "integer" }, "propertyCodes": { "title": "Seat Property Codes", "description": "A list of seat properties applicable to this seat.", "type": "array", "items": { "$ref": "#/definitions/SeatPropertyCode_9" } } } }, "DisabilityTypeCode_3": { "title": "Disability Type Code", "description": "Used to identify an individual's accessibility requirements, if applicable.", "x-amf-examples": { "example_0": "WCHC", "example_1": "WCCF" }, "type": "string", "minLength": 1, "maxLength": 20 }, "DiscountedOrSeasonCode_4": { "title": "Discounted or Season Ticket Code", "description": "A code used to identify a disounted ticket or season ticket. Supported codes are available as reference data.", "example": "ST", "type": "string" }, "DiscountedOrSeasonName_5": { "title": "Discounted or Season Ticket Name", "description": "The name of a disounted ticket or season ticket. Supported names are available as reference data.", "example": "Season Ticket", "type": "string" }, "SeatPropertyDescription": { "title": "Seat Property Description", "description": "A seat property code and associated description", "type": "object", "required": [ "code", "description" ], "properties": { "code": { "title": "Seat Property Code", "description": "Code used to identify an attribute of a seat (or berth)", "x-amf-examples": { "example_0": "TABL", "example_1": "AISL" }, "type": "string", "minLength": 1, "maxLength": 20 }, "description": { "title": "Seat Property Description", "description": "A description of the seat (or berth) attribute", "example": "A table is available at this seat", "type": "string" } } }, "DiscountedOrSeasonCode_6": { "title": "Discounted or Season Ticket Code", "description": "A code used to identify a disounted ticket or season ticket. Supported codes are available as reference data.", "example": "ST", "type": "string" }, "JourneyId": { "description": "Unique identifier for this journey", "example": "journey_1", "type": "string" }, "Direction_7": { "title": "Direction", "description": "Indicates the direction of travel. For a single journey outbound should be used. For a return journey outbound should be used for the outbound portion and inbound for the return portion.", "enum": [ "INBOUND", "OUTBOUND" ], "example": "OUTBOUND", "type": "string" }, "JourneyConditions_8": { "title": "Journey Conditions", "description": "Provides overall journey information.", "type": "object", "required": [ "journeyOD" ], "properties": { "journeyOD": { "$ref": "#/definitions/JourneyOD_10" } } }, "LegAvailabilitySearch": { "type": "object", "required": [ "id", "boardLocation", "alightLocation", "rsid", "serviceOriginDate" ], "properties": { "id": { "$ref": "#/definitions/LegId" }, "boardLocation": { "title": "Computer Reservation System Code (CRS)", "description": "The CRS code of the station at which a passenger boards a service", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "alightLocation": { "title": "Computer Reservation System Code (CRS)", "description": "The CRS code of the station at which a passenger alights from a service", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "rsid": { "$ref": "#/definitions/RetailServiceId" }, "serviceOriginDate": { "description": "The date of departure at the origin station. Used in combination with the RSID to uniquely identify a service.", "type": "string", "format": "date" } } }, "BundleAvailabilitySearch": { "type": "object", "required": [ "id", "products" ], "properties": { "id": { "$ref": "#/definitions/BundleId" }, "products": { "description": "List of products requested in that offer, optionally limited to the selected passenger ids", "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/ProductAvailabilitySearch" } } } }, "LegAvailability": { "type": "object", "properties": { "id": { "$ref": "#/definitions/LegId" }, "boardLocation": { "title": "Computer Reservation System Code (CRS)", "description": "The CRS code of the station at which a passenger boards a service", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "alightLocation": { "title": "Computer Reservation System Code (CRS)", "description": "The CRS code of the station at which a passenger alights from a service", "x-amf-examples": { "example_1": "YRK" }, "type": "string", "pattern": "^[0-9A-Z]{3}$", "minLength": 3, "maxLength": 3 }, "rsid": { "$ref": "#/definitions/RetailServiceId" }, "serviceOriginDate": { "description": "The date of departure at the origin station used by RARS, in combination with the RSID, to uniquely identify a service.", "type": "string", "format": "date" }, "departureDateTime": { "description": "Timestamp of departure from the board location", "type": "string", "format": "date-time" }, "arrivalDateTime": { "description": "Timestamp of arrival at the alight location", "type": "string", "format": "date-time" }, "serviceIdentifier": { "$ref": "#/definitions/ServiceIdentifier_11" }, "carrierCode": { "$ref": "#/definitions/CarrierCode" } } }, "BundleAvailability": { "type": "object", "properties": { "id": { "$ref": "#/definitions/BundleId" }, "bundleOutcome": { "$ref": "#/definitions/AvailabilityOutcome" }, "products": { "description": "List of products within this bundle, potentially limited to selected passenger ids", "type": "array", "minItems": 0, "items": { "$ref": "#/definitions/ProductAvailability" } } } }, "AgentContractCode": { "title": "Agent Contract Code", "description": "Contract code of an agent", "example": "CONTRACT_A", "type": "string" }, "AgentOfficeCode": { "title": "Agent Office Code", "description": "The office code for an agent", "example": "KGX", "type": "string" }, "AgentOrganisation": { "title": "Agent Organisation", "description": "The Organisation of an Agent", "example": "RDG", "type": "string" }, "Username": { "title": "Username", "description": "An identifier used to represent a user.", "x-amf-examples": { "example_1": "joe.bloggs" }, "type": "string" }, "BookingLegSeatProduct": { "type": "object", "required": [ "canBeCancelled", "canBeRebooked", "canBeUpgraded", "canChangeName", "canChangeSeat", "description", "isCancelled", "isProvisional", "name", "passengerId", "productType", "tariffCode" ], "properties": { "canBeCancelled": { "description": "", "example": false, "type": "boolean" }, "canBeRebooked": { "description": "", "example": false, "type": "boolean" }, "canBeUpgraded": { "description": "", "example": false, "type": "boolean" }, "canChangeName": { "description": "", "example": false, "type": "boolean" }, "canChangeSeat": { "description": "", "example": false, "type": "boolean" }, "cancelledReason": { "description": "Provides details as to why a booking was cancelled.", "type": "string" }, "cancelledRevision": { "type": "integer" }, "confirmedOn": { "type": "string", "format": "date-time" }, "createdRevision": { "type": "integer" }, "description": { "type": "string" }, "inventoryClass": { "$ref": "#/definitions/InventoryClassCode" }, "isCancelled": { "description": "", "example": false, "type": "boolean" }, "isProvisional": { "description": "", "example": false, "type": "boolean" }, "itemRef": { "$ref": "#/definitions/Id" }, "name": { "type": "string" }, "passengerId": { "$ref": "#/definitions/PassengerId" }, "productBookingId": { "$ref": "#/definitions/ItemBookingId" }, "productType": { "$ref": "#/definitions/ProductType" }, "provisionalExpiryOn": { "type": "string", "format": "date-time" }, "seat": { "$ref": "#/definitions/Seat_12" }, "seatProperties": { "description": "This allows consumers to specify 1 or more seat properties, which will enable the booking algorithm to take these into account when allocating a seat", "example": [ "AISL", "TBL" ], "type": "array", "items": { "$ref": "#/definitions/SeatPropertyCode" } }, "tariffCode": { "$ref": "#/definitions/TariffCode" }, "ticketTypeCode": { "$ref": "#/definitions/TicketTypeCode" }, "updatedRevision": { "type": "integer" }, "uuid": { "$ref": "#/definitions/UniversallyUniqueIdentifier" } } }, "CarrierCode": { "title": "Carrier Code", "description": "A two character code used to identify train operators in timetable data (aka Train Operating Company (TOC) code).", "x-amf-examples": { "example_1": "GR" }, "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }, "BookingNoteType": { "type": "string" }, "LightValidation": { "title": "Light Validation", "description": "Indicates whether the validation was a light validation or not", "type": "boolean" }, "TicketTypeCode": { "title": "Ticket Type Code", "description": "Ticket type code against which which the availability applies. Defines a product in combination with the route code.", "x-amf-examples": { "example_1": "SOS" }, "type": "string", "minLength": 3, "maxLength": 5 }, "SeatPropertyCode_9": { "title": "Seat Property Code", "description": "Codes used to identify attributes of a seat or berth.", "example": "AISL", "type": "string", "minLength": 1, "maxLength": 20 }, "JourneyOD_10": { "title": "Journey Origin and Destination", "description": "The timetabled origin and destination for the complete journey. The complete journey includes non-reservable legs but must exclude any fixed link legs (e.g. Walk, Underground, Transfer, etc.)

For example, a journey from Upminster to Peterborough would be represented by 7464 to 6133, whereas a journey from Yeovil Junction to Paddington, whose first leg is a Walk to Yeovil Pen Mill, should be provided as 5856 to 3087.", "type": "object", "required": [ "journeyOrigin", "journeyDestination" ], "properties": { "journeyOrigin": { "title": "Journey Origin", "description": "The NLC for the origin location. This may be for a non-reservable leg, if this is the first leg of a journey. It must be the NLC for the journey origin and not the fare origin NLC.", "x-amf-examples": { "example_0": "3087", "example_1": "1072" }, "type": "string", "pattern": "^[0-9A-Z]{4}$", "minLength": 4, "maxLength": 4 }, "journeyDestination": { "title": "Journey Destination", "description": "The NLC for the destination location. This may be for a non-reservable leg, if this is the last leg of a journey. It must be the NLC for the journey destination and not the fare destination NLC.", "x-amf-examples": { "example_0": "3526", "example_1": "1072" }, "type": "string", "pattern": "^[0-9A-Z]{4}$", "minLength": 4, "maxLength": 4 } } }, "LegId": { "description": "Unique identifier for a leg", "type": "string" }, "BundleId": { "description": "Unique identifier for a bundle", "example": "bundle_1", "type": "string" }, "ProductAvailabilitySearch": { "type": "object", "required": [ "ticketTypeCode", "routeCode" ], "properties": { "ticketTypeCode": { "$ref": "#/definitions/TicketTypeCode" }, "routeCode": { "$ref": "#/definitions/RouteCode" }, "sequenceNumber": { "description": "If defined, indicates the order of allocation preference for the passengers. This sequence should have the lowest value for the product with the highest allocation preference.\n", "type": "integer" }, "passengerIds": { "description": "Individual passenger ids this product is requested for. If this field is omitted, the product is requested for ALL passengers.\n", "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/PassengerId_13" } } } }, "ServiceIdentifier_11": { "title": "Service Identifier", "description": "Unique identifier of a service. Required for making a booking.", "example": "0:R|AB123400|AB|2020-12-10", "type": "string" }, "AvailabilityOutcome": { "description": "Provides an indication of the outcome of an availability check. For example (others may be added over time):\n- FULL_AVAILABILITY; available for all passengers\n- PARTIAL_AVAILABILITY; only available for some of the passengers\n- NO_AVAILABILITY; there is no availability\n- NO_TARIFF; returned when tariff conditions are not met due to booking horizon or sales retriction (within booking horizon but temporarily blocked from accepting further bookings)\n- SERVICE_FULL; the service is full\n", "enum": [ "FULL_AVAILABILITY", "PARTIAL_AVAILABILITY", "NO_AVAILABILITY", "NO_TARIFF", "SERVICE_FULL" ], "type": "string" }, "ProductAvailability": { "type": "object", "properties": { "ticketTypeCode": { "$ref": "#/definitions/TicketTypeCode" }, "routeCode": { "$ref": "#/definitions/RouteCode" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ItemAvailability" } } } }, "InventoryClassCode": { "title": "Inventory Class Code", "description": "A code representing distinct set of seats or other inventory (e.g. bicycles, prams or meals) used to determine logical availability for a given tariff.", "example": "1C", "type": "string", "minLength": 1, "maxLength": 2 }, "ItemBookingId": { "type": "string" }, "ProductType": { "type": "string" }, "Seat_12": { "type": "object", "required": [ "coachId", "id" ], "properties": { "coachId": { "$ref": "#/definitions/EquipmentUnitId" }, "id": { "$ref": "#/definitions/SeatId" } } }, "PassengerId_13": { "title": "Passenger Identifier", "description": "Used to uniquely identify a passenger", "example": "passenger_1", "type": "string", "pattern": "^passenger_[1-9][0-9]{0,2}$" }, "ItemAvailability": { "type": "object", "properties": { "legId": { "$ref": "#/definitions/LegId" }, "legAvailability": { "$ref": "#/definitions/AvailabilityOutcome" }, "tariffCode": { "$ref": "#/definitions/TariffCode_14" }, "inventoryClass": { "title": "Inventory Class Code", "description": "Inventory class this product is associated to. Required when assessing availability of different product combinations for multiple passengers.", "example": "1C", "type": "string", "minLength": 1, "maxLength": 2 }, "inventoryClassType": { "title": "Inventory Class Type", "description": "The type of Inventory Class that will be allocated such that the configured type of allocation is suggested before a booking is made.", "enum": [ "NON_SPECIFIC_SEAT", "SEAT_ONLY", "CARRIAGE_ONLY", "CARRIAGE_AND_SEAT" ], "example": "CARRIAGE_AND_SEAT", "type": "string" }, "passengerIds": { "description": "Defines passengers, by their id, which are allocated to this item", "example": [ "passenger_1" ], "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/PassengerId_13" } }, "cappedAvailability": { "description": "Indicates the remaining availability when less than or equal to the maximum number the requestor is permitted to know.", "example": 5, "type": "integer" } } }, "TariffCode_14": { "title": "Tariff Code", "description": "Tariff code associated to a product. Required for making a booking.", "example": "SOS_1", "type": "string" } }, "x-amf-securitySchemes": { "jwt_pass_through": { "type": "Pass Through", "description": "JWT pass-through", "x-amf-describedBy": { "headers": { "Authorization": { "required": false, "type": "string" } } } } } }