Optional vs Mandatory
Implementation requirements
In order to reduce the potential for confusion, the following guidance is given to assist Standards Users in their understanding of the standards implementation requirements.
It is not possible, or advisable, to set all endpoints, fields and other elements to mandatory. Some API providers may not have all data items available, or may not be able to support all functionality. Realising this, the API Standards mark endpoints and fields as mandatory whenever possible, in order to provide consistency, but also allow for a degree of flexibility.
The following elements can be marked as mandatory or optional in the standards:
API Endpoints that identify actions on Resources
API request data fields
API response data fields
API query parameters
API path parameters
HTTP request and response headers
Idempotency requirements
Classification terminology
For clarity, the key words used to indicate the mandatory or optional expectations follows IETF Best Current Practice 14, namely:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 [RFC2119] [RFC8174] when, and only when, they
appear in all capitals, as shown here.
Endpoints / resources
API endpoints are classified as "mandatory" or "optional" for an API Provider to implement. Within an endpoint, there may be functionality that is marked as mandatory or optional.
The following guidance applies:
Any endpoint or functionality that is listed is mandatory MUST be implemented by the API Provider, so it can be relied on by other Standards Users.
Any endpoint or functionality that is listed as optional MAY be implemented by the API Provider
API Providers MUST document and publish publicly the implemented endpoints and functionality
For Account Information APIs, if an API Provider does not implement an optional endpoint, the API Provider MUST return a
501 Not Implemented
for any request made to that endpoint.API Providers that implement optional endpoints MUST implement any mandatory sub-resources under those endpoints
API Request fields
API requests that contain a JSON data structure could contain fields that are listed as mandatory and optional. In some cases, the optional fields are conditionally required, however the conditional rules cannot easily be described in a data model or OpenAPI specification and so the specification text MUST be followed.
For clarity:
A Third Party MUST specify all mandatory fields in an API request. Failure to do so SHALL result in rejection by the API Provider.
A Third Party MAY specify optional fields in an API request.
A Third Party MAY specify an optional object, and MUST populate mandatory fields within that object
An API Provider MUST process all fields (mandatory and optional) sent by the Third Party.
An API Provider MAY reject any request that it cannot process, and MUST return appropriate errors in the standard error response structure.
API Response fields
API responses containing JSON data may include both mandatory and optional data. In some cases, optional fields may be conditionally required, however the conditional rules cannot easily be described in a data model or OpenAPI specification and so the specification text MUST be followed.
If the API Provider can supply optional data in API Response, then it is encouraged to do so in a manner reflecting data available in it's online/mobile banking. API Providers may choose to make additional information available beyond the minimum requirements, and MUST document and publicly publish this.
For clarity:
An API Provider MUST populate mandatory response fields
An API Provider MAY populate optional response fields.
API Providers MUST populate optional response fields in such way that matches what a customer would expect to see in the API Provider online/mobile banking channels.
If the optional response values are reflections of those supplied by the Third Party, the API Provider MUST NOT alter the values.
FAPI HTTP headers
Where specified, the relevant FAPI headers MUST be populated with appropriate values. See the general guidance on HTTP headers:
Query string parameters
Use of query string for pagination and filtering is mandatory for API Providers to implement but optional for Third Parties to use. If Third Parties do not use pagination and filtering this may restrict the data to which they have access. Filtering and pagination are considered to be good practice for large data volumes. Implementation and usage of pagination and filtering MUST follow guidance on the specification pages.
URI path parameters
Resource identifiers are present in URI path parameters and MUST follow the guidance in the the relevant specification pages.
Idempotency requirements
Idempotency is required for correct behaviour, and MUST be implemented when listed. The idempotency requirements may be found here: