openapi: 3.10.0
info:
title: UAE TPP Reports API
description: '## UAE Open Finance TPP Reports API Specification'
version: v1.0-rc2
tags:
- name: TPP Reports
description: Retrieve Open Finance Platform TPP reports
paths:
/tpp-reports:
get:
tags:
- TPP Reports
operationId: TppReports_read
summary: TPP Reports for Open Finance Platform
description: >-
Allows a TPP to retrieve reports provided through the Open Finance
Platform.
TPPs can either retrieve all reports for a given time period or filter
by report type.
Scoping of the reports is based on the TPP’s access rights. Only the
reports that the TPP has access to will be returned.
parameters:
- $ref: '#/components/parameters/AETppReportPeriodStartDateParameter'
- $ref: '#/components/parameters/AETppReportPeriodEndDateParameter'
- $ref: '#/components/parameters/AETppReportTypeParameter'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-fapi-interaction-id'
responses:
'200':
description: The request has succeeded.
headers:
x-fapi-interaction-id:
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEReportResponse'
application/json:
schema:
$ref: '#/components/schemas/AEReportResponse'
default:
description: >-
An unexpected error response, optionally including a response
payload depending on the HTTP return code
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/DefaultError'
application/json:
schema:
$ref: '#/components/schemas/DefaultError'
security:
- MutualTLSTPPOAuth2Security:
[] - tpp-reports
components:
parameters:
AETppReportPeriodEndDateParameter:
name: ReportingPeriodEndDate
in: query
required: true
description: The end date of the reporting period
schema:
$ref: '#/components/schemas/AEReportingPeriodEndDate'
AETppReportPeriodStartDateParameter:
name: ReportingPeriodStartDate
in: query
required: true
description: The start date of the reporting period
schema:
$ref: '#/components/schemas/AEReportingPeriodStartDate'
AETppReportTypeParameter:
name: ReportType
in: query
required: false
description: >-
The report type as defined by the OpenAPI description. If not provided,
all report types are returned.
schema:
$ref: '#/components/schemas/AETppReportTypeValues'
Authorization:
name: authorization
in: header
required: true
description: An Access Token as per https://tools.ietf.org/html/rfc6750
schema:
type: string
x-fapi-interaction-id:
name: x-fapi-interaction-id
in: header
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
schemas:
AEApiCallVolume:
type: object
required:
- Type
- ReportingPeriodDate
- LfiId
- LfiName
- ApiSet
- HttpMethod
- Url
- HttpResponseCodeGroup
- TotalCalls
properties:
Type:
type: string
enum:
- API Call Volume
ReportingPeriodDate:
type: string
format: date
LfiId:
type: string
description: The LFI Identifier as set in the Trust Framework
LfiName:
type: string
description: The LFI Name
ApiSet:
$ref: '#/components/schemas/AEApiSetValues'
HttpMethod:
$ref: '#/components/schemas/AEHttpMethodValues'
Url:
type: string
description: The URL of the reported API operation
HttpResponseCodeGroup:
$ref: '#/components/schemas/AEHttpResponseCodeGroupValues'
TotalCalls:
type: integer
description: The volume of API calls made per day by LFI
additionalProperties: false
AEApiSetValues:
type: string
enum:
- BankDataSharing
- BankServiceInitation
- InsuranceDataSharing
- InsuranceServiceInitation
description: Group of APIs to which the reported metric belongs
AEError:
type: object
required:
- Code
- Message
properties:
Code:
allOf:
- $ref: '#/components/schemas/AEErrorCode'
description: Low level textual error code, e.g., UAEOF.Field.Missing
Message:
type: string
minLength: 1
maxLength: 500
description: >-
A description of the error that occurred. e.g., 'A mandatory field
isn't supplied' or 'RequestedExecutionDateTime must be in future'
UAEOF doesn't standardise this field
Path:
type: string
minLength: 1
maxLength: 500
description: >-
Recommended but optional reference to the JSON Path of the field
with error, e.g., Data.Initiation.InstructedAmount.Currency
Url:
type: string
description: >-
URL to help remediate the problem, or provide more information, or
to API Reference, or help etc
description: Error
additionalProperties: false
AEErrorCode:
type: string
enum:
- AccessToken.Unauthorized
- AccessToken.InvalidScope
- Consent.Revoked
- Consent.TransientAccountAccessFailure
- Consent.AccountTemporarilyBlocked
- Consent.PermanentAccountAccessFailure
- Consent.Invalid
- JWS.InvalidSignature
- JWS.Malformed
- JWS.InvalidClaim
- JWS.InvalidHeader
- GenericRecoverableError
- GenericError
- JWE.DecryptionError
- JWE.InvalidHeader
- Event.UnexpectedEvent
- Body.InvalidFormat
- Resource.InvalidResourceId
- Resource.InvalidFormat
- Consent.BusinessRuleViolation
AEHttpMethodValues:
type: string
enum:
- GET
- POST
- PUT
- DELETE
- PATCH
- HEAD
- OPTIONS
- TRACE
description: HTTP method used in the reported API operation
AEHttpResponseCodeGroupValues:
type: string
enum:
- 2xx
- 4xx
- 5xx
description: Group of HTTP response codes to which the reported metric belongs
AELfiAvailability:
type: object
required:
- Type
- PeriodStartDate
- PeriodEndDate
- LfiId
- LfiName
- ApiSet
- HttpMethod
- Url
- TotalTimeMinutes
- TotalUptimeMinutes
- PlannedDowntimeMinutes
- UnplannedDowntimeMinutes
- TotalDowntimeMinutes
- UptimePercentage
- DowntimePercentage
- UnplannedDowntimePercentage
properties:
Type:
type: string
enum:
- LFI Availability
PeriodStartDate:
$ref: '#/components/schemas/AEReportingPeriodStartDate'
PeriodEndDate:
$ref: '#/components/schemas/AEReportingPeriodEndDate'
LfiId:
type: string
description: The LFI Identifier as set in the Trust Framework
LfiName:
type: string
description: The LFI Name
ApiSet:
$ref: '#/components/schemas/AEApiSetValues'
HttpMethod:
$ref: '#/components/schemas/AEHttpMethodValues'
Url:
type: string
description: The URL of the reported API operation
TotalTimeMinutes:
$ref: '#/components/schemas/AETotalTimeMinutes'
TotalUptimeMinutes:
$ref: '#/components/schemas/AETotalUptimeMinute'
PlannedDowntimeMinutes:
$ref: '#/components/schemas/AEPlannedDowntimeMinutes'
UnplannedDowntimeMinutes:
type: integer
description: >-
The total number of minutes that the LFI’s Ozone Connect was
unavailable for use or not functioning correctly during a period
when downtime was not planned
TotalDowntimeMinutes:
$ref: '#/components/schemas/TotalDowntimeMinutes'
UptimePercentage:
type: integer
description: >-
The percentage of time that the LFI’s Ozone Connect was available
for use and functioning correctly.
DowntimePercentage:
type: integer
description: >-
The percentage of time that the LFI’s Ozone Connect was unavailable
for use or not functioning correctly
UnplannedDowntimePercentage:
type: integer
description: >-
The percentage of time that the LFI’s was unavailable for use in the
time period excluding planned downtime
additionalProperties: false
AELfiPerformance:
type: object
required:
- Type
- PeriodStartDate
- PeriodEndDate
- LfiId
- LfiName
- ApiSet
- HttpMethod
- Url
- HttpResponseCodeGroup
- MaximumResponseTimeMicroseconds
- MinimumResponseTimeMicroseconds
- AverageResponseTimeMicroseconds
- TotalCalls
- ErrorRatePercentage
properties:
Type:
type: string
enum:
- LFI Performance
PeriodStartDate:
$ref: '#/components/schemas/AEReportingPeriodStartDate'
PeriodEndDate:
$ref: '#/components/schemas/AEReportingPeriodEndDate'
LfiId:
type: string
description: The LFI Identifier as set in the Trust Framework
LfiName:
type: string
description: The LFI Name
ApiSet:
$ref: '#/components/schemas/AEApiSetValues'
HttpMethod:
$ref: '#/components/schemas/AEHttpMethodValues'
Url:
type: string
description: The URL of the reported API operation
HttpResponseCodeGroup:
$ref: '#/components/schemas/AEHttpResponseCodeGroupValues'
MaximumResponseTimeMicroseconds:
type: integer
description: >-
The maximum response time used to respond to TPP requests for the
API
MinimumResponseTimeMicroseconds:
type: integer
description: >-
The minimum response time used to respond to TPP requests for the
API
AverageResponseTimeMicroseconds:
type: integer
description: >-
The average response time used to respond to TPP requests for the
API
TotalCalls:
type: integer
description: The total number of API calls
ErrorRatePercentage:
type: integer
description: >-
The error rate based on number of `5xx` errors divided by the total
number of API calls
additionalProperties: false
AEOfpAvailability:
type: object
required:
- Type
- PeriodStartDate
- PeriodEndDate
- LfiId
- LfiName
- ApiSet
- HttpMethod
- Url
- TotalTimeMinutes
- TotalUptimeMinutes
- PlannedDowntimeMinutes
- UnplannedDowntimeMinutes
- TotalDowntimeMinutes
- UptimePercentage
- DowntimePercentage
- UnplannedDowntimePercentage
properties:
Type:
type: string
enum:
- OFP Availability
PeriodStartDate:
$ref: '#/components/schemas/AEReportingPeriodStartDate'
PeriodEndDate:
$ref: '#/components/schemas/AEReportingPeriodEndDate'
LfiId:
type: string
description: The LFI Identifier as set in the Trust Framework
LfiName:
type: string
description: The LFI Name
ApiSet:
$ref: '#/components/schemas/AEApiSetValues'
HttpMethod:
$ref: '#/components/schemas/AEHttpMethodValues'
Url:
type: string
description: The URL of the reported API operation
TotalTimeMinutes:
$ref: '#/components/schemas/AETotalTimeMinutes'
TotalUptimeMinutes:
$ref: '#/components/schemas/AETotalUptimeMinute'
PlannedDowntimeMinutes:
$ref: '#/components/schemas/AEPlannedDowntimeMinutes'
UnplannedDowntimeMinutes:
type: integer
description: >-
The percentage of time that the OFP was unavailable for use or not
functioning correctly during a period when downtime was not planned
TotalDowntimeMinutes:
$ref: '#/components/schemas/TotalDowntimeMinutes'
UptimePercentage:
type: integer
description: >-
The percentage of time that the OFP was available for use and
functioning correctly
DowntimePercentage:
type: integer
description: >-
The percentage of time that the OFP was unavailable for use or not
functioning correctly
UnplannedDowntimePercentage:
type: integer
description: >-
The percentage of time that the OFP was unavailable for use in the
time period excluding planned downtime
additionalProperties: false
AEOfpPerformance:
type: object
required:
- Type
- PeriodStartDate
- PeriodEndDate
- LfiId
- LfiName
- ApiSet
- HttpMethod
- Url
- HttpResponseCodeGroup
- MaximumResponseTimeMicroseconds
- MinimumResponseTimeMicroseconds
- AverageResponseTimeMicroseconds
- TotalCalls
- ErrorRatePercentage
properties:
Type:
type: string
enum:
- OFP Performance
PeriodStartDate:
$ref: '#/components/schemas/AEReportingPeriodStartDate'
PeriodEndDate:
$ref: '#/components/schemas/AEReportingPeriodEndDate'
LfiId:
type: string
description: The LFI Identifier as set in the Trust Framework
LfiName:
type: string
description: The LFI Name
ApiSet:
$ref: '#/components/schemas/AEApiSetValues'
HttpMethod:
$ref: '#/components/schemas/AEHttpMethodValues'
Url:
type: string
description: The URL of the reported API operation
HttpResponseCodeGroup:
$ref: '#/components/schemas/AEHttpResponseCodeGroupValues'
MaximumResponseTimeMicroseconds:
type: integer
description: >-
The maximum response time used to respond to TPP requests for the
API
MinimumResponseTimeMicroseconds:
type: integer
description: >-
The minimum response time used to respond to TPP requests for the
API
AverageResponseTimeMicroseconds:
type: integer
description: >-
The average response time used to respond to TPP requests for the
API
TotalCalls:
type: integer
description: The total number of API calls
ErrorRatePercentage:
type: integer
description: >-
The error rate based on number of `5xx` errors divided by the total
number of API calls
additionalProperties: false
AEPlannedDowntimeMinutes:
type: integer
description: >-
The total number of minutes that were scheduled as downtime in the time
period
AEReportResponse:
type: object
required:
- Data
- Links
- Meta
properties:
Data:
type: array
items:
$ref: '#/components/schemas/AEReportType'
Links:
$ref: '#/components/schemas/LinksResource'
Meta:
$ref: '#/components/schemas/Meta'
description: The response to a request for TPP reports
AEReportTypeadditionalProperties: false
anyOfAEReportType:
oneOf:
- $ref: '#/components/schemas/AEApiCallVolume'
- $ref: '#/components/schemas/AELfiAvailability'
- $ref: '#/components/schemas/AEOfpAvailability'
- $ref: '#/components/schemas/AELfiPerformance'
- $ref: '#/components/schemas/AEOfpPerformance'
discriminator:
propertyName: Type
mapping:
API Call Volume: '#/components/schemas/AEApiCallVolume'
LFI Availability: '#/components/schemas/AELfiAvailability'
OFP Availability: '#/components/schemas/AEOfpAvailability'
LFI Performance: '#/components/schemas/AELfiPerformance'
OFP Performance: '#/components/schemas/AEOfpPerformance'
AEReportingPeriodEndDate:
type: string
format: date
description: End date of the reporting period
AEReportingPeriodStartDate:
type: string
format: date
description: Start date of the reporting period
AETotalTimeMinutes:
type: integer
description: The total number of minutes in the given time period of the report
AETotalUptimeMinute:
type: integer
description: The number of minutes of uptime in the given time period.
AETppReportTypeValues:
type: string
enum:
- API Call Volume
- LFI Availability
- OFP Availability
- LFI Performance
- OFP Performance
description: TPP Report Types
DefaultError:
type: object
properties:
Errors:
type: array
items:
$ref: '#/components/schemas/AEError'
minItems: 1
additionalProperties: false
First:
type: string
format: uri
description: A link to the first page in a paginated result set
Last:
type: string
format: uri
description: A link to the last page in a paginated result set
LinksResource:
type: object
required:
- Self
properties:
Self:
$ref: '#/components/schemas/Self'
First:
$ref: '#/components/schemas/First'
Prev:
$ref: '#/components/schemas/Prev'
Next:
$ref: '#/components/schemas/Next'
Last:
$ref: '#/components/schemas/Last'
description: Links relevant to the resource
additionalProperties: false
Meta:
type: object
description: Metadata relevant to the resource
additionalProperties: false
Next:
type: string
format: uri
description: A link to the next page in a paginated result set
Prev:
type: string
format: uri
description: A link to the previous page in a paginated result set
Self:
type: string
format: uri
description: A link to the current resource
TotalDowntimeMinutes:
type: integer
description: Total downtime in minutes
securitySchemes:
MutualTLSTPPOAuth2Security:
descriptiontype: >-oauth2
description: >-
Operation requires Mutual TLS for client authentication. Note connectingTPP confidential client authorization with the LFI to stage usinga MTLSconsent.
does not preclude other security mechanisms such as **Please refer to [OpenID FAPI Security Profile 1.0 certificate-bound access tokens.Part 2
Advanced](https://openid.net/specs/openid-financial-api-part-2-1_0.html#authorization-server)
- 5.2.2 point 14 - shall authenticate the confidential client using one
of the following methods private_key_jwt and [OpenID Connect Core
1.0](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication)
9. Client Authentication private_key_jwt**
flows:
clientCredentials:
tokenUrl: https://authserver.example/token
type: mutualTLS scopes:
tpp-reports: Right to read Open Finance Platform reports for a given TPP
servers:
- url: /open-finance/reporting/v1.0-rc2
|