ASSIST | APIs | Railcard Data Management

Railcard Data Management
Revision A: 2026-02-27 13:04:51
Image to be added

ASSIST Subject: RSPS5232: 'Railcard Data Management'

Version: v3

Notes: Railcard Data Management
Railcard Data Management v3.jsonFri 27-Feb-2026 13:05:27

Home (Rev A)
Revision A: 2026-02-27 12:56:28

Page Content


Terminology

The following are key terms used throughout this documentation:

Term Description
Station Issued Railcards These Railcards have been issued at a Station these have a short character Railcard Number (~5 characters)
Retailer Issued Railcards These Railcards have been issued via a Retailer and have a longer Railcard Number (~15-16 characters)

Add/Maintain a Railcard

Resources:

Other (Rev A)
Revision A: 2026-02-27 12:57:57

Reference Data

Valid Railcard Types

The following table contains the valid Railcard Types accepted by the service:

Railcard Type Description LTOT (Capri) codes
2TR Two Together Railcard ZMO, ZMT
DIS/DIC Disabled Persons Railcard ZMM, ZNH, ZNU, ZNJ, ZNV
FAM Family & Friends Railcard ZCS, ZNS, ZMK, ZCB
NEW Network Railcard ZMU, ZCD
SRN Senior Railcard ZCC, ZNR, ZCR, ZME
TST 26-30 Railcard ZZB, ZZC
TSU 16-17 Saver ZAG, ZAH
VET Veterans Railcard ZAT, ZAU, ZAV, ZAW
YNG 16-25 Railcard ZCA, ZCT, ZNT, ZMA

Error handling (Rev A)
Revision A: 2026-02-27 13:00:01


Whilst every effort will be made to capture all errors which may be returned for these API resources on this page, if you are returned an error not recorded here, please provide details to RDG, including the request which generated the error and the error message itself, and we will investigate and add to this page.


Platform Error Format

The Developer Portal will return an error if submitted requests do not comply with one or more of an API's policies. A common example of this is the security policy, which requires a valid JWT in every request. If the request doesn't include a valid JWT then the Portal will reject the request immediately and make no attempt to process it. Rejected requests of this nature will result in a platform error, which has the following simple format (See Platform Error Object data type):

{
    "error" : "error message"
}


RDG Error format

If a request passes the policy checks it will be submitted to the relevant RDG API which may then result in an RDG specific error as opposed to a generic platform error. APIs on the RDG Developer Portal use the following common error format to contain and return these errors to consumers (See RDG Error Object data type):

{
    "errors": [
        {
            "code": "error_code",
            "message": "error message",
            "timestamp": "YYYY-MM-DDTHH:MM:SS",
            "context":
            {
                "{key}": "value"
            }
        }
    ]
}

The context object is an unspecified list of key value pairs, allowing new context information to be provided without requiring a schema change. There are currently no context fields added to Railcard Errors.


Known Error Cases

General

Code Message Comment
GBR-AUTH-2000 Security Error When RDG fails to process request due to client side or server side security failure
GBR-AUTH-2001 Unauthorised User When user’s token is invalid
GBR-AUTH-2002 Security validation: precondition failed -
GBR-AUTH-2003 Security validation: Bad request When request payload has failed to process
GBR_EXCEPTION_0000 Unknown Error Catch all for any unknown errors
GBR_EXCEPTION_0001 Undefined error by 3rd party system Unknown error from 3rd party APIs
GBR_EXCEPTION_3000 Invalid schema/ Invalid payload Bad request due to payload not conforming to the json/xml schema definition
GBR_EXCEPTION_3001 Internal Error Unable to complete operation
GBR_EXCEPTION_3006 Resource not found When API resource request is not found or not defined in the specification
GBR_EXCEPTION_3007 Method not allowed When API resource request doesn’t conform to the API specfication e.g. method GET is expected for a resource but POST or PUT call is made
GBR_EXCEPTION_3009 Unsupported media type When API resource request media type (e.g. application/json) doesn’t conform to the expected media type
GBR_EXCEPTION_3010 HTTP too many requests Rate-limit exceeded
GBR_EXCEPTION_3011 AWS S3 bad request error When AWS S3 throws error due to processing error of the request
GBR_EXCEPTION_3012 Invalid schema/ Invalid payload Bad request due to payload not conforming to the json/xml schema definition
GBR_EXCEPTION_3013 Invalid schema/ Invalid payload Bad request due to payload not conforming to the json/xml schema definition
GBR_EXCEPTION_3014 Forbidden Error When source system doesn’t allow access to a particular resource for a specfic client
GBR_EXCEPTION_3015 Validation Error [Email is valid] The structural conformation of email is checked and throws error if doesn’t match the built in REGEX pattern
GBR_EXCEPTION_3063 Expression error When any form of REGEX failed to excute due to incorrect inputs
GBR_EXCEPTION_3065 Retry exhausted, Redelivery Exhausted Retry component reaches the threshold number with respect to HTTP requests made
GBR_EXCEPTION_3066 Connectivity issue or service is not available When cannot reach the resource URL or underneath service doesn’t respond
GBR_EXCEPTION_3067 HTTP time out When the HTTP request gets timed out


Railcards

Code Message Comment
GBR_RAILCARDS_6100 Requested Railcard type is not supported The requested Railcard Type is not stored within the system and cannot be validated

Onboarding and Contact (Rev A)
Revision A: 2026-02-27 12:58:49

To request access to this API, please log a ticket with the Railcard ServiceDesk via portal or email

Providing details of your organisation, the API you are requesting access to and the reason for your requested access.

Your request will then be assessed to ensure you have sufficient justification and need to access and use this API.