{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/open-banking-uk/refs/heads/main/json-schema/events.json", "title": "Events API Specification - ASPSP Endpoints", "description": "OpenAPI for Events (Subscription & Aggregated Polling) API Specification - ASPSP Endpoints.\n\n**Please Note**: There are no optional fields, if a field is not marked as \u201cRequired\u201d it is a Conditional field.\n", "version": "4.0.1", "$defs": { "ISODateTime": { "description": "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", "type": "string", "format": "date-time" }, "Links": { "type": "object", "description": "Links relevant to the payload", "properties": { "Self": { "type": "string", "format": "uri" }, "First": { "type": "string", "format": "uri" }, "Prev": { "type": "string", "format": "uri" }, "Next": { "type": "string", "format": "uri" }, "Last": { "type": "string", "format": "uri" } }, "additionalProperties": false, "required": [ "Self" ] }, "Meta": { "title": "MetaData", "type": "object", "description": "Meta Data relevant to the payload", "properties": { "TotalPages": { "type": "integer", "format": "int32" }, "FirstAvailableDateTime": { "$ref": "#/components/schemas/ISODateTime" }, "LastAvailableDateTime": { "$ref": "#/components/schemas/ISODateTime" } }, "additionalProperties": false }, "OBError1": { "type": "object", "properties": { "ErrorCode": { "$ref": "#/components/schemas/OBExternalStatusReason1Code" }, "Message": { "description": "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBIE doesn't standardise this field", "type": "string", "minLength": 1, "maxLength": 500 }, "Path": { "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", "type": "string", "minLength": 1, "maxLength": 500 }, "Url": { "description": "URL to help remediate the problem, or provide more information, or to API Reference, or help etc", "type": "string" } }, "required": [ "ErrorCode" ], "additionalProperties": false, "minProperties": 1 }, "OBErrorResponse1": { "description": "An array of detail error codes, and messages, and URLs to documentation to help remediation.", "type": "object", "properties": { "Id": { "description": "A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.", "type": "string", "minLength": 1, "maxLength": 40 }, "Code": { "description": "Deprecated
High level textual error code, to help categorise the errors.", "type": "string", "minLength": 1, "example": "400 BadRequest", "maxLength": 40 }, "Message": { "description": "Deprecated
Brief Error message", "type": "string", "minLength": 1, "example": "There is something wrong with the request parameters provided", "maxLength": 500 }, "Errors": { "items": { "$ref": "#/components/schemas/OBError1" }, "type": "array", "minItems": 1 } }, "required": [ "Errors" ], "additionalProperties": false }, "OBEventSubscription1": { "type": "object", "required": [ "Data" ], "properties": { "Data": { "type": "object", "required": [ "Version" ], "properties": { "CallbackUrl": { "description": "Callback URL for a TPP hosted service. Will be used by ASPSPs, in conjunction with the resource name, to construct a URL to send event notifications to.", "type": "string", "format": "uri" }, "Version": { "$ref": "#/components/schemas/Version" }, "EventTypes": { "type": "array", "items": { "description": "Array of event types the subscription applies to.", "type": "string" } } } } }, "additionalProperties": false }, "OBEventSubscriptionResponse1": { "type": "object", "required": [ "Data" ], "properties": { "Data": { "type": "object", "required": [ "EventSubscriptionId", "Version" ], "properties": { "EventSubscriptionId": { "description": "Unique identification as assigned by the ASPSP to uniquely identify the callback URL resource.", "type": "string", "minLength": 1, "maxLength": 40 }, "CallbackUrl": { "description": "Callback URL for a TPP hosted service. Will be used by ASPSPs, in conjunction with the resource name, to construct a URL to send event notifications to.", "type": "string", "format": "uri" }, "Version": { "$ref": "#/components/schemas/Version" }, "EventTypes": { "type": "array", "items": { "description": "Array of event types the subscription applies to.", "type": "string" } } } }, "Links": { "$ref": "#/components/schemas/Links" }, "Meta": { "$ref": "#/components/schemas/Meta" } }, "additionalProperties": false }, "OBEventSubscriptionsResponse1": { "type": "object", "required": [ "Data" ], "properties": { "Data": { "type": "object", "properties": { "EventSubscription": { "type": "array", "items": { "type": "object", "required": [ "EventSubscriptionId", "Version" ], "properties": { "EventSubscriptionId": { "description": "Unique identification as assigned by the ASPSP to uniquely identify the callback url resource.", "type": "string", "minLength": 1, "maxLength": 40 }, "CallbackUrl": { "description": "Callback URL for a TPP hosted service. Will be used by ASPSPs, in conjunction with the resource name, to construct a URL to send event notifications to.", "type": "string", "format": "uri" }, "Version": { "$ref": "#/components/schemas/Version" }, "EventTypes": { "type": "array", "items": { "description": "Array of event types the subscription applies to.", "type": "string" } } } } } } }, "Links": { "$ref": "#/components/schemas/Links" }, "Meta": { "$ref": "#/components/schemas/Meta" } }, "additionalProperties": false }, "Version": { "description": "Version for the event notification.", "type": "string", "minLength": 1, "maxLength": 10 }, "OBEventPolling1": { "type": "object", "properties": { "maxEvents": { "description": "Maximum number of events to be returned. A value of zero indicates the ASPSP should not return events even if available", "type": "integer" }, "returnImmediately": { "description": "Indicates whether an ASPSP should return a response immediately or provide a long poll", "type": "boolean" }, "ack": { "type": "array", "items": { "description": "An array of jti values indicating event notifications positively acknowledged by the TPP", "type": "string", "minLength": 1, "maxLength": 128 } }, "setErrs": { "type": "object", "description": "An object that encapsulates all negative acknowledgements transmitted by the TPP", "properties": {}, "additionalProperties": { "type": "object", "required": [ "err", "description" ], "properties": { "err": { "description": "A value from the IANA \"Security Event Token Delivery Error Codes\" registry that identifies the error as defined here \nhttps://tools.ietf.org/id/draft-ietf-secevent-http-push-03.html#error_codes", "type": "string", "minLength": 1, "maxLength": 40 }, "description": { "description": "A human-readable string that provides additional diagnostic information", "type": "string", "minLength": 1, "maxLength": 256 } } } } }, "additionalProperties": false }, "OBEventPollingResponse1": { "type": "object", "required": [ "moreAvailable", "sets" ], "properties": { "moreAvailable": { "description": "A JSON boolean value that indicates if more unacknowledged event notifications are available to be returned.", "type": "boolean" }, "sets": { "type": "object", "description": "A JSON object that contains zero or more nested JSON attributes. If there are no outstanding event notifications to be transmitted, the JSON object SHALL be empty.", "properties": {}, "additionalProperties": { "description": "An object named with the jti of the event notification to be delivered. The value is the event notification, expressed as a string.\nThe payload of the event should be defined in the OBEventNotification2 format.", "type": "string" } } }, "additionalProperties": false }, "OBExternalStatusReason1Code": { "description": "Low level textual error code, for all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/)", "type": "string", "minLength": 4, "maxLength": 4, "example": "U001" } } }