...
Awesome api app render macro | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
openapi: 3.0.1 servers: - url: https://<your-ozone-cm-server> info: title: Consent Manager API description: | This document provides an API description in [OpenAPI](https://spec.openapis.org/oas/v3.0.1.html) for the Consent Manager API. These APIs are implemented by Ozone and should be called by the financial institution to find, modify and delete consents. #### Changes in Release 2024.46.0 * Changed PeriodicSchedule to mandatory in AEServiceInitiationLongLivedPaymentConsent * Changed AEServiceInitiationFixedDefinedSchedule and AEServiceInitiationVariableDefinedSchedule to a maximum of 53 items * Changed ExpirationDateTime to mandatory for insurance consents * Changed AEPaymentConsumption to match v1.1 of the standards * Changed PersonalIdentifiableInformation to optional in AEPaymentRequest * Changed AERisk object to provide details of enhanced risk data encrypted as the payload of the JWE * Changed ReadPartyPSU and ReadPartyPSUIdentity to ReadPartyUser and ReadPartyUserIdentity respectively * Changed PaymentPurposeCode from 4 to 3 characters to match Aani code format * Removed Received status from payment statuses * Changes as per V1.1 * Updated description of `ExpirationDateTime` and `BaseConsentId` * Removed `FollowingServiceLevel` enum from `CurrencyRequest.ChargeBearer` * Removed `IsPayByAccount`, `ExpectedInitiationTimeWindow` and added `IsDelegatedAuthentication` * Added new periodic Schedule type * Made `Permissions` and `ExpirationDateTime` Mandatory for Data sharing and Insurance * Introduced `oneOf` in `PersonalIdentifiableInformation` * Removed `oneOf` from `DebtorReference` * Added `ReadRefundAccount` enum in Service Initiation `Permissions` * Changed `tpp` property in to provide more information about the TPP and the Client software statement * Changed `pageSize` type from `string` to `integer` * Changed `consentBody` to be mandatory for consent operations #### Changes in Release 2024.43.0 * Added OpenFinanceBilling object to AEAccountAccessConsentBody, AEInsuranceConsentBody and AEPaymentConsentResponse * Added OpenFinanceBilling to Get and Patch Consents and Get and Patch Payment log. #### Changes in Release 2024.37.0 * Update description for consent identifier clarifying the source of the value. * Removed `additionalProperties: true` as not required and causes tooling issues #### Changes in Release 2024.34.1 * CreditCard, PrePaidCard, EMoney, ChargeCard and Other enums have been removed from the AccountSubType. * In AEAccountAccessConsentBody, Purpose field has been made mandatory and it has been made optional in AEInsuranceConsentBody. * Amount field has been changed from number type to string. * Amount, MaximumIndividualPaymentAmount and PeriodicSchedule have been made optional in MultiPayment. * In PeriodicSchedule, DefinedSchedule, FixedPeriodicSchedule and VariablePeriodicSchedule have been made optional. * In VariablePeriodicSchedule, MaximumCumulativeValueOfPaymentsPerPeriodType and MaximumCumulativeNumberOfPaymentsPerPeriodType have been made optional. * In VariablePeriodicSchedule, Type field has been removed. * In FilePayment, RequestedExecutionDateTime has been changed to RequestedExecutionDate * In AEServiceInitiationDefinedSchedule, maxItems has been updated to 50 * ConnectToken has been added to cbuaePatchBody * Refactored Security Scheme Objects to use common definitions across all API Hub APIs * Implemented the correct Security Requirements for this API description, reflecting security patterns available in API Hub * Added Rich Authorization Request (RAR) payload enumeration values for each consent type based on standards definitions #### Changes in Release 2024.31.1 * Added the `authorizationChannel` field to the `patchConsent` and `getConsent` APIs contact: name: Ozone Financial Technology Limited version: 2024.46.0 tags: - name: consents - name: consent-groups - name: consents-by-psu - name: consents-by-account - name: payments - name: actions security: - {} - OzoneConnectJwtAuth: [] paths: /consents: post: tags: - consents summary: Creates a new consent description: | Used by Ozone to create a new consent using a Heimdall interaction. operationId: addConsent requestBody: description: | Creates a new consent in the consent Manager. The API is primararily used by Ozone for creating consents when requested by a TPPs. Financial Institutions may use this end-point to import consents and for supporting externally managed consents. This is not part of the CBUAE standard. required: true content: application/json: schema: $ref: "#/components/schemas/AuthorizationDetails" responses: '201': description: | Indicates the successful creation of a consent content: application/json: schema: $ref: "#/components/schemas/ConsentPostResponse" '400': description: | Indicates a failure to create the consent content: application/json: schema: $ref: "#/components/schemas/errorResponse" get: tags: - consents summary: Retrieves all the consents that meet the search criteria description: | Retrieves an array of consents that meets the search criteria. If no consents could be found, then an empty array is returned. This API may be used by an financial institution to get a "stream" of consents that have been created or updated since a given timestamp. operationId: getAllConsents parameters: - name: updatedAt in: query schema: type: number required: false description: | Select only consents updated after the specified time - $ref: "#/components/parameters/consentType" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: '200': description: | Successful response content: application/json: schema: $ref: "#/components/schemas/multiConsentResponse" '400': description: Indicates a failure to retrieve the consents content: application/json: schema: $ref: "#/components/schemas/errorResponse" /consents/{consentId}: get: tags: - consents summary: Retrieve a consent by its id description: Retrieves a consent by its id. operationId: getConsentsByConsentId parameters: - $ref: "#/components/parameters/consentId" responses: '200': description: successful operation content: application/json: schema: type: object required: - data - meta properties: data: $ref: "#/components/schemas/consent" meta: $ref: "#/components/schemas/meta" '400': description: | Indicates a failure to retrieve the consent content: application/json: schema: $ref: "#/components/schemas/errorResponse" patch: tags: - consents summary: Patches one or more fields in a consent description: | This operation allows an financial institution modify fields within a consent's `consentBody`. Typically, this API would be called after the PSU has authorised a consent. This would allow the financial institution to "patch in" the `psuIdentifier` and `accountIds` associated with the consent. This is also called as authentication progresses for a multi-auth consent. operationId: patchConsent parameters: - $ref: "#/components/parameters/consentId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/cbuaePatchBody" responses: '204': description: | Indicates a successful operation. The response does not have a body. '400': description: | Indicates a failure to patch the consent content: application/json: schema: $ref: "#/components/schemas/errorResponse" /consents/{consentId}/audit: get: tags: - consents summary: Retrieve an audit of a consent by the consent's id description: Retrieves an audit of a consent by the consent's id. The audit log is a low-level record of all changes applied to a Consent throughout its life-cycle operationId: getAuditConsentsByConsentId parameters: - $ref: "#/components/parameters/consentId" responses: '200': description: successful operation content: application/json: schema: type: object required: - data - meta properties: data: type: array items: type: object required: - providerId - operation - timestamp - fkMongoId - fkId - id - ozoneInteractionId properties: providerId: type: string description: | The provider id of the financial institution that made the change operation: type: string description: | Like "create" or "patch" timestamp: type: integer fkMongoId: type: string description: | A unique identifier for the audit log in mongodb fkId: type: string description: | A unique identifier for the consentId id: type: string description: | A unique identifier for the audit log ozoneInteractionId: type: string description: | The ozone interaction id assigned to the interaction that caused this changed. Useful for looking up the api-log. Note - this is not the "heimdall Interaction Id" - this is an identifier for the API log callerDetails: type: object description: | The details of the API caller that made the change additionalProperties: false properties: callerOrgId: type: string callerClientId: type: string callerSoftwareStatementId: type: string patchFilter: type: string description: | Low-level operation description of the selector for the patch patch: type: string description: | Low-level operation description of the patch that was applied at the storage level meta: $ref: "#/components/schemas/meta" '400': description: | Indicates a failure to retrieve the consent's audit trail content: application/json: schema: $ref: "#/components/schemas/errorResponse" /consent-groups/{consentGroupId}/consents: get: tags: - consent-groups summary: Retrieves consents within a consent group description: | Retrieves an array of consents that are within a consent group. If no consents could be found, then an empty array is returned. For CBUAE, a consent group id is the `BaseConsentId` operationId: getConsentsInConsentGroup parameters: - name: consentGroupId in: path schema: type: string required: true description: | Select consents within the consentGroupId - $ref: "#/components/parameters/consentType" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: '200': description: | Successful response content: application/json: schema: $ref: "#/components/schemas/multiConsentResponse" '400': description: Indicates a failure to retrieve the consents content: application/json: schema: $ref: "#/components/schemas/errorResponse" /psu/{userId}/consents: get: tags: - consents-by-psu summary: Retrieves all the consents associated with a given PSU description: | Retrieves an array of consents associated with the PSU. If no consents could be found associated with the PSU, then an empty array is returned. The userId path parameter is matched with the `psuIdentifiers.userId` field in the consent. operationId: getConsents parameters: - $ref: "#/components/parameters/userId" - $ref: "#/components/parameters/consentType" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: '200': description: | Successful response content: application/json: schema: $ref: "#/components/schemas/multiConsentResponse" '400': description: Indicates a failure to retrieve the consents content: application/json: schema: $ref: "#/components/schemas/errorResponse" /accounts/{accountId}/consents: get: tags: - consents-by-account summary: Retrieve consents of a account by its id description: | Retrieve consents of a account by its id operationId: getAccountIdConsents parameters: - name: accountId in: path schema: type: string required: true description: Identifier for the account - $ref: "#/components/parameters/consentType" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" responses: '200': description: Successful response content: application/json: schema: $ref: "#/components/schemas/multiConsentResponse" '400': description: | Indicates a failure to create the consent content: application/json: schema: $ref: "#/components/schemas/errorResponse" /consent-groups/{consentGroupId}/consents/action/revoke: post: tags: - actions summary: Revokes consents within a consent group description: | Revokes consents that are within a consent group. operationId: revokeConsentsInConsentGroup parameters: - name: consentGroupId in: path schema: type: string required: true description: | Select consents within the consentGroupId requestBody: description: | An end-point for revoking a consent within a consent group. This is similar in behaviour to the consent revocation endpoint, but operates on a consent group id parameter instead required: true content: application/json: schema: $ref: "#/components/schemas/RevokeConsent" responses: '204': description: | Indicates a successful operation. The response does not have a body. '400': description: Indicates a failure to revoke the consent content: application/json: schema: $ref: "#/components/schemas/errorResponse" /consents/{consentId}/action/revoke: post: tags: - actions summary: Revoke a consent by its id description: Revokes a consent by its id along with any associated access and refresh tokens. This API is used by ozone internally to revoke consents. The API should be used by a financial institution to revoke consents (rather than simply patching the consent) to also revoke the tokens associated with the consent operationId: revokeConsentsByConsentId parameters: - $ref: "#/components/parameters/consentId" requestBody: description: | An end-point for revoking a consent. required: true content: application/json: schema: $ref: "#/components/schemas/RevokeConsent" responses: '204': description: | Indicates a successful operation. The response does not have a body. '400': description: | Indicates a failure to revoke the consent content: application/json: schema: $ref: "#/components/schemas/errorResponse" /payment-log: get: tags: - payments summary: Retrieve a payment log by its consent id or account id operationId: getAuditConsentsByConsentIdw description: | Either one of the query parameters can be used, not both. parameters: - name: consentId in: query schema: type: string required: true description: | Identifier for the consent - name: accountId in: query schema: type: string required: true description: | Identifier for the account responses: '200': description: successful operation content: application/json: schema: type: object required: - data - meta properties: data: type: array items: type: object required: - consentId - paymentType - paymentId - idempotencyKey - paymentResponse - tpp - accountId - psuIdentifiers - interactionId - authorizationCode - requestBody - requestHeaders properties: consentId: type: string description: | A consent identifier generated by the TPP for the consent. paymentType: type: string description: | The underlying payment type For example, - cbuae-payment (Single Instant Payment, Multi Payment - Fixed and Variable Recurring Payment, Future Dated Payment etc) - cbuae-file-payment paymentId: type: string idempotencyKey: type: string paymentResponse: type: object description: | The payment response as received from the financial institution as a result of a `make-payment` call properties: id: type: string description: | A unique id for the payment in uuid-v4 format. status: type: string description: | The current status of the payment enum: - "Pending" - "AcceptedSettlementCompleted" - "AcceptedCreditSettlementCompleted" - "AcceptedWithoutPosting" - "Rejected" creationDateTime: - "Received" type: string creationDateTime: type: string pattern: pattern: ($date-time) description: | An ISO date-time representing when the consent was created statusUpdateDateTime: type: string pattern: ($date-time) description: | An ISO date-time representing when the consent status was last updated OpenFinanceBilling: $ref: "#/components/schemas/AEServiceInitiationOpenFinancePaymentBilling" signedResponse: type: string tpp: $ref: "#/components/schemas/tpp" accountId: type: integer psuIdentifiers: $ref: "#/components/schemas/psuIdentifiers" interactionId: $ref: "#/components/schemas/apiLogInteractionId" authorizationCode: type: object properties: paymentId: type: string accessTokenHash: type: string currentDateTime: type: string pattern: ($date-time) requestBody: $ref: "#/components/schemas/AEPaymentAndFilePaymentRequest" signedRequestBody: type: string requestHeaders: type: object description: | The entire set of Http request headers that was received by Ozone from the TPP meta: $ref: "#/components/schemas/meta" '400': description: | Indicates a failure to retrieve the payments content: application/json: schema: $ref: "#/components/schemas/errorResponse" /payment-log/{id}: patch: tags: - payments summary: Patches one or more fields in a payment-log based on id . description: | This operation allows an modify fields within a payment's `paymentResponse`. This is used by the financial institutions to update the status of a payment operationId: patchPymentlog parameters: - $ref: "#/components/parameters/id" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CbuaePatchPaymentRecordBody" responses: '204': description: | Indicates a successful operation. The response does not have a body. '400': description: | Indicates a failure to retrieve the payments content: application/json: schema: $ref: "#/components/schemas/errorResponse" components: schemas: errorResponse: type: object properties: errorCode: type: string description: Error code identifying the problem occured errorMessage: type: string description: Message describing what problem has occured meta: type: object additionalProperties: false apiLogInteractionId: type: object properties: ozoneInteractionId: type: string clientInteractionId: type: string additionalProperties: false required: - ozoneInteractionId tpp: description: The TPP record as held by Ozone. If Ozone TPP Connect has been integrated into a directory, the `directoryRecord` provides the TPP's directory record as held by Ozone in base 64 encoded format. type: object required: - clientId - orgId - softwareStatementId - tppId - tppName - decodedSsa properties: clientId: description: The client identifier for the TPP as issued by the Trust Framework type: string pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$' tppId: description: The identifier used by the API Hub to uniquely identify the TPP type: string tppName: description: The TPP name recorded in the Trust Framework type: string obieTppId: description: The UK market TPP identifier. This property is not used for CBUAE and is therefore marked as deprecated. type: string deprecated: true softwareStatementId: description: The software statement identifier for the Client. type: string obieSoftwareStatementId: description: The UK market software statement identifier. This property is not used for CBUAE and is therefore marked as deprecated. type: string deprecated: true obieSoftwareStatementName: description: The UK market software statement name. This property is not used for CBUAE and is therefore marked as deprecated. type: string deprecated: true directoryRecord: type: string description: The latest copy of the TPP directory record retrieve from the CBUAE Trust Framework directory, encoded as a Base 64 string format: base64 ssa: description: The encoded Software Statement Assertion. This property is not used for CBUAE and is therefore marked as deprecated. type: string deprecated: true decodedSsa: $ref: "#/components/schemas/softwareStatementProperties" orgId: description: The organization identifier for the TPP type: string pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$' softwareStatementProperties: description: | The decoded software statement retrieved from the Trust Framework that provides the properties of the Client. Please note: - The JSON payload will contain other properties in addition to those listed here. The properties listed here are considered most relevant for activities such as TPP logo retrieval and JWS verification. - The content reflects elements of discovery metadata, which in generally defined as a file rather than an API. Providing constraints such as `minLength` and `maxLength` is impractical in this context The full software statement record is also available in the Trust Framework. Please also refer the Registration Framework page in the CBUAE standards for additional guidance on these properties. type: object properties: redirect_uris: description: The redirect URIs registered by the TPP at the Trust Framework type: array items: type: string client_name: description: Name of the Client to be presented to the End-User. type: string client_uri: description: URL of the home page of the Client. type: string logo_uri: description: URL of the Client logo. type: string jwks_uri: description: URL of the Client JSON Web Key Set (JWKS) at the Trust Framework. type: string client_id: description: Unique Client Identifier. type: string roles: description: The roles under which the organization is registered at the Trust Framework. type: array items: type: string sector_identifier_uri: description: URL using the https scheme to be used in calculating Pseudonymous Identifiers by the OP. Allows redirect URI values to be grouped, easing registration management. type: string application_type: description: Client application type. type: string organisation_id: description: Organization identifier for organization that owns the Client. type: string psuIdentifiers: type: object description: | The PSU that is associated with this consent. The `PSUIdentifiers` object may have artitrary custom fields that an financial institution may use to identify the PSU. However, all `PSUIdentifiers` must have a mandatory `userId` field that provides a unique user id for the PSU. The consent is initially created without a PSU identified. The value must be specified once the consent is authorised. properties: userId: type: string required: - userId newConsent: type: object properties: id: type: string description: | A unique identifier for the consent in uuid-v4 format. consentGroupId: type: string description: | A unique identifier for the consent group in uuid-v4 format. The consent group id is used to group together consents that are related to each other. requestUrl: type: string format: url description: | The request url of Http request that was received by Ozone from the TPP consentType: type: string description: | The type of the consent that is being created. Each financial institution's instance may support a different set of consent types The Consent Manager supports the creation of consents of different consent types depending on the standards supported. - cbuae-account-access-consents - cbuae-service-initiation-consents - cbuae-insurance-consents status: $ref: "#/components/schemas/AEConsentStatus" request: $ref: "#/components/schemas/AuthorizationDetails" requestHeaders: type: object description: | The entire set of Http request headers that was received by Ozone from the TPP consentBody: $ref: "#/components/schemas/cbuaeConsentBody" interactionId: type: string description: The Heimdall `interactionId` that this consent is associated with. tpp: $ref: "#/components/schemas/tpp" ozoneSupplementaryInformation: type: object updatedAt: type: number required: - id - consentType - consentBody - request - requestHeaders - tpp cbuaeConsentBody: type: object description: | An object representing the current state of the consent. This includes the entire request, augmented by additional computed properties (e.g. ids, charges etc) oneOf: - $ref: "#/components/schemas/AEAccountAccessConsentBody" - $ref: "#/components/schemas/AEInsuranceConsentBody" - $ref: "#/components/schemas/AEPaymentConsentResponse" patchedConsent: type: object properties: psuIdentifiers: $ref: "#/components/schemas/psuIdentifiers" accountIds: type: array items: type: string minItems: 1 description: |- An array of account ids associated with the consent. The array must be populated once consent has been authorised. For payment consents, the array must always have one element - the debtor account from which the payment will be made For CBPII consents, the array must always have one element - the account for which CoF requests will be answered For AIS requests, the array may contain multiple values, representing each of the payment accounts for which an AIS service will be provided. supplementaryInformation: description: Contains additional information at the discretion of the financial institution. type: object interactionId: type: string description: The heimdall interaction id that this consent is associated with. This is updated by heimdall and must not be set by financial institutions. paymentContext: type: object ConnectToken: type: string description: A bearer token that will be sent as the `Authorization` header for calls to Ozone Connect made under this consent. cbuaePatchBody: description: | Describes the fields to be patched and their corresponding values. type: object required: - authorizationChannel additionalProperties: false properties: psuIdentifiers: $ref: "#/components/schemas/psuIdentifiers" accountIds: type: array items: type: string minItems: 1 description: |- An array of account ids associated with the consent. The array must be populated once consent has been authorised. For service initiation, the array must always have one element - the debtor account from which the payment will be made For data sharing requests, the array may contain multiple values, representing each of the payment accounts for which an AIS service will be provided. As a convenience, when updating the status, the LFI may patch `status` or `consentBody.Data.Status` - the CM will ensure that these are synced. Not all state transitions are possible for consent statuses - the standard provides a list of valid transitions. supplementaryInformation: description: Contains additional information at the discretion of the financial institution. type: object status: $ref: "#/components/schemas/cbuaePatchableConsentStatus" consentBody.Data.Status: $ref: "#/components/schemas/cbuaePatchableConsentStatus" consentBody.Data.ExchangeRate: $ref: "#/components/schemas/AEExchangeRateInformation" consentBody.Data.Charges: $ref: "#/components/schemas/AECharges" consentBody.Data.RevokedBy: $ref: "#/components/schemas/AERevokedBy" consentBody.Meta.MultipleAuthorizers: $ref: "#/components/schemas/AEMetaMultiAuthorization" authorizationChannel: type: string enum: - App - Web ConnectToken: type: string description: A bearer token that will be sent as the `Authorization` header for certain calls to bank connect. consentBody.Data.OpenFinanceBilling: $ref: "#/components/schemas/AEOpenFinanceBillingPatch" AEServiceInitiationOpenFinanceBilling: type: object properties: IsLargeCorporate: type: "boolean" description: Customer has more than 100 million AED turnover description: Billing parameters specified by the LFI additionalProperties: false AEOpenFinanceBillingPatch: type: object properties: IsLargeCorporate: type: "boolean" description: Customer has more than 100 million AED turnover description: Billing parameters specified by the LFI additionalProperties: false cbuaePatchableConsentStatus: description: | Specifies the statuses that a consent can be patched to by an LFI. type: "string" enum: - "Authorized" - "Rejected" - "Revoked" - "Expired" - "Consumed" - "Suspended" CbuaePatchPaymentRecordBody: type: object description: | Describes the fields to be patched and their corresponding values. required: - paymentResponse.status additionalProperties: false properties: paymentResponse.status: type: string description: | The current status of the payment enum: - "Pending" - "AcceptedSettlementCompleted" - "AcceptedCreditSettlementCompleted" - "AcceptedWithoutPosting" - "Rejected" - "Received" paymentResponse.OpenFinanceBilling: $ref: "#/components/schemas/AEServiceInitiationOpenFinancePaymentBillingPatch" paymentResponse.paymentTransactionId: type: "string" description: | This is an end to end TransactionId that is generated by the underlying payment rails when it is sent from an Originating LFI to a Receiving LFI: - For IPP transactions, this is the IPP generated TransactionId. - This is not the same as the TransactionID in the Account Information Transactions API. - The payment transaction ID must be populated if the payment is processed by the LFI. minimum: 1 maximum: 40 AEServiceInitiationOpenFinancePaymentBillingPatch: type: object properties: NumberOfSuccessfulTransactions: type: "integer" description: | Number of individual transactions successfully executed by the LFI. This is returned by the LFI after the file is fully processed. additionalProperties: false AEServiceInitiationOpenFinancePaymentBilling: type: object properties: Type: type: string enum: - Collection - LargeValueCollection - PushP2P - PullP2P - Me2Me description: The type payment for billing MerchantId: description: "MerchantId" type: "string" minLength: 8 maxLength: 20 NumberOfSuccessfulTransactions: type: "integer" description: | Number of individual transactions successfully executed by the LFI. This is returned by the LFI after the file is fully processed. additionalProperties: false AEInsuranceConsentBody: type: object required: - Data properties: Data: type: object required: - "ConsentId" - "OpenFinanceBilling" - "Permissions" - "ExpirationDateTime" properties: ConsentId: $ref: '#/components/schemas/AEConsentId' Permissions: $ref: '#/components/schemas/AEInsuranceConsentPermissions' OpenFinanceBilling: $ref: '#/components/schemas/AEInsuranceOpenFinanceBilling' allOf: - $ref: '#/components/schemas/AEInsuranceAuthorizationDetailProperties' additionalProperties: false Meta: type: object properties: MultipleAuthorizers: $ref: '#/components/schemas/AEMetaMultiAuthorization' Subscription: type: object required: - Webhook properties: Webhook: $ref: '#/components/schemas/Webhook' AEInsuranceOpenFinanceBillingPost: type: object required: - Purpose properties: Purpose: description: Purpose of data sharing request type: string enum: - AccountAggregation - RiskAssessment - PremiumHistory - ClaimHistory - Onboarding - Verification - QuoteComparison - FinancialAdvice description: Billing parameters specified by the TPP additionalProperties: false AEInsuranceOpenFinanceBilling: type: object required: - Purpose properties: IsLargeCorporate: type: "boolean" description: Customer has more than 100 million AED turnover Purpose: description: Purpose of data sharing request type: string enum: - AccountAggregation - RiskAssessment - PremiumHistory - ClaimHistory - Onboarding - Verification - QuoteComparison - FinancialAdvice description: Billing parameters specified by the TPP additionalProperties: false AEAccountAccessConsentBody: type: object required: - Data properties: Data: type: object required: - "ConsentId" - "OpenFinanceBilling" - "Permissions" - "ExpirationDateTime" properties: ConsentId: $ref: '#/components/schemas/AEConsentId' Permissions: $ref: '#/components/schemas/AEAccountAccesssConsentPermissionCodes' OpenFinanceBilling: $ref: '#/components/schemas/AEAccountAccessOpenFinanceBilling' allOf: - $ref: '#/components/schemas/AEAccountAccessAuthorizationDetailProperties' additionalProperties: false Meta: type: object properties: MultipleAuthorizers: $ref: '#/components/schemas/AEMetaMultiAuthorization' Subscription: type: object required: - Webhook properties: Webhook: $ref: '#/components/schemas/Webhook' AEAccountAccessOpenFinanceBilling: type: object required: - UserType - Purpose properties: IsLargeCorporate: type: "boolean" description: Customer has more than 100 million AED turnover UserType: description: Type of Customer type: string enum: - Retail - SME - Corporate Purpose: description: Purpose of data sharing request type: string enum: - AccountAggregation - RiskAssessment - TaxFiling - Onboarding - Verification - QuoteComparison - BudgetingAnalysis - FinancialAdvice - AuditReconciliation description: Billing parameters specified by the TPP additionalProperties: false AEAccountAccessOpenFinanceBillingPost: type: object required: - UserType - Purpose properties: UserType: description: Type of Customer type: string enum: - Retail - SME - Corporate Purpose: description: Purpose of data sharing request type: string enum: - AccountAggregation - RiskAssessment - TaxFiling - Onboarding - Verification - QuoteComparison - BudgetingAnalysis - FinancialAdvice - AuditReconciliation description: Billing parameters specified by the TPP additionalProperties: false AEAccountAccessAuthorizationDetailProperties: type: object properties: BaseConsentId: $ref: '#/components/schemas/AEBaseConsentId' ExpirationDateTime: type: string format: date-time description: >- Specified date and time the permissions will expire. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 TransactionFromDateTime: type: string format: date-time description: |2- Specified start date and time for the transaction query period. If this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 TransactionToDateTime: type: string format: date-time description: |2- Specified end date and time for the transaction query period. If this is not populated, the end date will be open ended, and data will be returned to the latest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 AccountType: type: array items: $ref: '#/components/schemas/AEAccountTypeCode' AccountSubType: type: array items: $ref: '#/components/schemas/AEAccountSubTypeCode' OnBehalfOf: $ref: '#/components/schemas/AEOnBehalfOf' Status: $ref: '#/components/schemas/AEAccountAccessConsentStatus' RevokedBy: $ref: '#/components/schemas/AERevokedBy' additionalProperties: false AEInsuranceAuthorizationDetailProperties: type: object required: - ExpirationDateTime properties: BaseConsentId: $ref: '#/components/schemas/AEBaseConsentId' ExpirationDateTime: type: string format: date-time description: >- Specified date and time the permissions will expire. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 OnBehalfOf: $ref: '#/components/schemas/AEOnBehalfOf' Status: $ref: '#/components/schemas/AEAccountAccessConsentStatus' RevokedBy: $ref: '#/components/schemas/AERevokedBy' additionalProperties: false AEAccountAccessConsentStatus: description: >- Consent Status is set to either Authorized ,Revoked ,Rejected or AwaitingAuthorization type: string enum: - Authorized - AwaitingAuthorization - Rejected - Revoked - Expired - Suspended AEAccountAccessConsentPurpose: type: string enum: - Account Aggregation - Personal Finance Manager - Credit Assessment - Tax Filing - Enterprise Financial Management - Other AEAccountAccesssConsentPermissionCodes: type: string enum: - ReadAccountsBasic - ReadAccountsDetail - ReadBalances - ReadBeneficiariesBasic - ReadBeneficiariesDetail - ReadTransactionsBasic - ReadTransactionsDetail - ReadTransactionsCredits - ReadTransactionsDebits - ReadProduct - ReadScheduledPaymentsBasic - ReadScheduledPaymentsDetail - ReadDirectDebits - ReadStandingOrdersBasic - ReadStandingOrdersDetail - ReadConsents - ReadPartyPSUReadPartyUser - ReadPartyPSUIdentityReadPartyUserIdentity - ReadParty description: >- Specifies the permitted account access policy data types. This is a list of the data groups being consented by the User, and requested for authorization with the LFI. AEAccountSubTypeCode: type: string enum: - CurrentAccount - Savings description: Specifies the sub type of account (product family group) AEAccountTypeCode: type: string enum: - Retail - Corporate description: Specifies the type of account (Retail or Corporate). AEBaseConsentId: type: string minLength: 1 maxLength: 128 description: >- The original ConsentId assigned by the TPP AEConsentId: type: string minLength: 1 maxLength: 128 description: >- Unique identification assigned by the TPP to identify the consent resource. AEOnBehalfOf: type: object properties: TradingName: type: string description: Trading Name LegalName: type: string description: Legal Name IdentifierType: allOf: - $ref: '#/components/schemas/AEOnBehalfOfIdentifierType' description: Identifier Type Identifier: type: string description: Identifier additionalProperties: false AEOnBehalfOfIdentifierType: type: string enum: - Other Webhook: type: object description: | A Webhook Subscription Schema required: - Url - IsActive properties: Url: description: | The TPP Callback URL being registered with the LFI type: string example: https://api.tpp.com/webhook/callbackUrl IsActive: description: > The TPP specifying whether the LFI should send (IsActive true) or not send (IsActive false) Webhook Notifications to the TPP's Webhook URL type: boolean example: false additionalProperties: false AEInsuranceConsentPermissions: type: string enum: - ReadMotorInsurancePolicies - ReadMotorInsuranceCustomerBasic - ReadMotorInsuranceCustomerDetail - ReadMotorInsuranceCustomerPaymentDetails - ReadMotorInsuranceProduct - ReadMotorInsuranceTransactions AERevokedBy: description: | Denotes the Identifier of the revocation. | Identifier| Description| |-----------|------------| | LFI | Revoked by LFI without User initiation| | TPP | Revoked by TPP without User initiation| | LFI.InitiatedByUser | Initiated by User via the LFI| | TPP.InitiatedByUser | Initiated by User via the TPP| type: string enum: - LFI - TPP - LFI.InitiatedByUser - TPP.InitiatedByUser AEMetaMultiAuthorization: type: "object" description: | Meta Data with Multi-Authorization relevant to the payload. For a payment, it represents any Authorizers within the financial institution domain that are involved in approving the payment request. properties: TotalRequired: description: | The total number of Authorizers required to process the request type: "number" Authorizations: type: "array" items: description: | Authorizer type: "object" properties: AuthorizerId: description: | The Authorizer's Identifier type: "string" AuthorizerType: description: | The Type of Authorizer. For example, Financial, Management, etc. type: "string" AuthorizationDate: description: | The DateTime of when the Authorization occurred. 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:\n2023-04-05T10:43:07+00:00 type: "string" format: "date-time" AuthorizationStatus: description: | The Status reflecting the Authorizer's final decision regarding the request type: "string" enum: - "Pending" - "Approved" - "Rejected" additionalProperties: false additionalProperties: false additionalProperties: false AEReference: description: | A reason or reference in relation to a payment. Reason or reference for the beneficiary regarding the Payment type: "string" minLength: 1 maxLength: 120 AEPaymentConsentResponse: description: | Payment Consent Response Schema type: "object" additionalProperties: false required: - "Data" properties: Data: type: "object" additionalProperties: false required: - "ConsentId" - "Status" - "ExpirationDateTime" properties: ConsentId: $ref: "#/components/schemas/AEConsentId" BaseConsentId: $ref: "#/components/schemas/AEBaseConsentId" IsSingleAuthorization: description: | Specifies to the LFI that the consent authorization must be completed in a single authorization Step with the LFI type: "boolean" AuthorizationExpirationDateTime: $ref: "#/components/schemas/AEAuthorizationExpirationDateTime" Permissions: $ref: "#/components/schemas/AEConsentPermissions" AcceptedAuthorizationType: $ref: "#/components/schemas/AEAcceptedAuthorizationType" ExpirationDateTime: $ref: "#/components/schemas/AEConsentExpirationDateTime" Status: $ref: "#/components/schemas/AEConsentStatus" RevokedBy: $ref: "#/components/schemas/AERevokedBy" CreationDateTime: $ref: "#/components/schemas/AECreationDateTime" StatusUpdateDateTime: $ref: "#/components/schemas/AEStatusUpdateDateTime" Charges: $ref: "#/components/schemas/AECharges" ExchangeRate: $ref: "#/components/schemas/AEExchangeRateInformation" CurrencyRequest: $ref: "#/components/schemas/AECurrencyRequest" ControlParameters: $ref: '#/components/schemas/AEServiceInitiationConsentControlParameters' DebtorReference: $ref: '#/components/schemas/AEServiceInitiationStructuredDebtorReference' CreditorReference: $ref: "#/components/schemas/AEReference" PaymentPurposeCode: $ref: "#/components/schemas/AEPaymentPurposeCode" SponsoredTPPInformation: $ref: "#/components/schemas/AESponsoredTPPInformation" PaymentConsumption: $ref: "#/components/schemas/AEPaymentConsumption" OpenFinanceBilling: $ref: "#/components/schemas/AEServiceInitiationOpenFinanceBilling" Subscription: $ref: "#/components/schemas/AEEventNotification" Meta: $ref: "#/components/schemas/AEMetaMultiAuthorization" AEEventNotification: type: "object" description: | A Webhook Subscription Schema required: - "Webhook" properties: Webhook: description: | A Webhook Schema type: "object" required: - "Url" - "IsActive" properties: Url: description: | The TPP Callback URL being registered with the LFI type: "string" example: "https://api.tpp.com/webhook/callbackUrl" IsActive: description: | The TPP specifying whether the LFI should send (IsActive true) or not send (IsActive false) Webhook Notifications to the TPP's Webhook URL type: "boolean" example: false additionalProperties: false additionalProperties: false AEAcceptedAuthorizationType: description: | Specifies to the LFI the type of consent authorization accepted by the TPP when staging the consent * Single - The consent should incur a single authorization Step with the LFI * Multi - The consent should incur a multi-authorization Step with the LFI type: "string" enum: - "Single" - "Multi" AEAuthorizationExpirationDateTime: description: | The date and time by which a Consent (in AwaitingAuthorization status) must be Authorized by the User. type: "string" format: date-time AEConsentPermissions: type: "array" description: | Specifies the permitted Account Access data types. This is a list of the data groups being consented by the User, and requested for authorization with the LFI. This allows a TPP to request a balance check permission. items: type: "string" enum: - "ReadAccountsBasic" # Ability to read basic account information - "ReadAccountsDetail" # Ability to read account identification details - "ReadBalances" # Ability to read all balance information - "ReadRefundAccount" minItems: 1 AEFileNumberOfTransactions: type: "integer" description: | Number of individual transactions contained in the payment information group. AEControlSum: description: | Total of all individual amounts included in the group, irrespective of currencies. type: "string" pattern: "^\\d{1,16}\\.\\d{2}$" example: "100.00" AEFileType: type: "string" description: "Specifies the payment file type" minLength: 1 maxLength: 40 AEFileHash: type: "string" description: "A base64 encoding of a SHA256 hash of the file to be uploaded." minLength: 1 maxLength: 44 AEConsentExpirationDateTime: description: |2- Specified date and time the consent will expire. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is :2023-04-05T10:43:07+00:00 type: "string" format: "date-time" AEConsentStatus: description: | Specifies the status of a payment consent. | Consent Status| State Type| Description| |---------------|-----------|------| | AwaitingAuthorization | Pending | The consent is awaiting authorization.| | Authorized | In Use | The consent has been successfully authorized.| | Rejected | Terminal | The unauthorized consent has been rejected at the LFI.| | Revoked | Terminal | The consent has been revoked at the TPP or LFI.| | Expired | Terminal | The consent is now expired.| | Consumed | Terminal | The consented action(s) have either been completed successfully.| | Suspended | In Use | The consent has been suspended, pending further enquiries.| type: "string" enum: - "AwaitingAuthorization" - "Authorized" - "Rejected" - "Revoked" - "Expired" - "Consumed" - "Suspended" AECreationDateTime: description: "Date and time at which the message was created. 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:\n2023-04-05T10:43:07+00:00" type: "string" format: "date-time" AEStatusUpdateDateTime: description: "Date and time at which the resource status was updated.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:\n2023-04-05T10:43:07+00:00" type: "string" format: "date-time" AECharges: type: "array" items: type: "object" additionalProperties: false description: | Set of elements used to provide details of a charge for the payment initiation. * For Payments, these Charges are on the Debtor. required: - "ChargeBearer" - "Type" - "Amount" properties: ChargeBearer: $ref: "#/components/schemas/AEChargeBearerType1Code" Type: $ref: "#/components/schemas/AEExternalPaymentChargeTypeCode" Amount: $ref: "#/components/schemas/AEActiveCurrencyAmount" AEExchangeRateInformation: type: "object" additionalProperties: false required: - "UnitCurrency" - "ExchangeRate" - "RateType" description: "Further detailed information on the exchange rate that has been used in the payment transaction." properties: UnitCurrency: description: "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP." type: "string" pattern: "^[A-Z]{3,3}$" ExchangeRate: description: "The factor used for conversion of an amount from one currency to another. This reflects the price at which one currency was bought with another currency." type: "number" RateType: description: "Specifies the type used to complete the currency exchange." type: "string" enum: - "Actual" - "Agreed" - "Indicative" ContractIdentification: description: "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent." type: "string" minLength: 1 maxLength: 256 ExpirationDateTime: description: "Specified date and time the exchange rate agreement will expire.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" AECurrencyRequest: description: | The details of the non-local currency or FX request that has been agreed between the User and the TPP. The requested ChargeBearer and ExchangeRateInformation are included in this object may be overwritten by the LFI in the returned Consent object. type: "object" additionalProperties: false required: - "CurrencyOfTransfer" properties: InstructionPriority: description: "Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction." type: "string" enum: - "Normal" - "Urgent" ExtendedPurpose: description: "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes." type: "string" minLength: 1 maxLength: 140 ChargeBearer: $ref: "#/components/schemas/AEChargeBearerType1Code" CurrencyOfTransfer: description: "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account." type: "string" pattern: "^[A-Z]{3,3}$" DestinationCountryCode: description: "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code)." type: "string" pattern: "[A-Z]{2,2}" ExchangeRateInformation: type: "object" additionalProperties: false required: - "UnitCurrency" - "RateType" description: "Provides details on the currency exchange rate and contract." properties: UnitCurrency: description: "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP." type: "string" pattern: "^[A-Z]{3,3}$" ExchangeRate: description: "The factor used for conversion of an amount from one currency to another. This reflects the price at which one currency was bought with another currency." type: "number" RateType: description: "Specifies the type used to complete the currency exchange." type: "string" enum: - "Actual" - "Agreed" - "Indicative" ContractIdentification: description: "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent." type: "string" minLength: 1 maxLength: 256 AEPaymentPurposeCode: description: A category code that relates to the type of services or goods that corresponds to the underlying purpose of the payment. The code must conform to the published AANI payment purpose code list. type: "string" minLength: 1 maxLength: 4 pattern: "^[A-Z]{3}$" AESponsoredTPPInformation: type: "object" description: | The Sponsored TPP is: * A TPP that itself has no direct Open Banking API integrations. * A TPP that is using the integration of another TPP that does have direct Open Banking API integrations. properties: Name: type: "string" minLength: 1 maxLength: 50 description: | The Sponsored TPP Name Identification: type: "string" minLength: 1 maxLength: 50 description: | The Sponsored TPP Identification additionalProperties: false AEFilePaymentConsent: type: "object" description: | A file based payment consent. A Consent definition for defining Multi Payments required: - "FileType" - "FileHash" - "NumberOfTransactions" - "ControlSum" properties: FileType: $ref: "#/components/schemas/AEFileType" FileHash: $ref: "#/components/schemas/AEFileHash" FileReference: $ref: "#/components/schemas/AEReference" NumberOfTransactions: $ref: "#/components/schemas/AEFileNumberOfTransactions" ControlSum: $ref: "#/components/schemas/AEControlSum" RequestedExecutionDate: $ref: "#/components/schemas/AERequestedExecutionDate" additionalProperties: false AEPaymentConsumption: type: "object" description: | Data to track the consumption of Payments in relation to an authorized Consent Schedule required: - "CumulativeNumberOfPayments" - "CumulativeValueOfPayments" - "CumulativeValueOfPaymentsInCurrentPeriod" properties: CumulativeNumberOfPayments: type: "number" description: | The cumulative number of payment instructions successfullyinitiated accepted under the current consent schedule, (Settlementexcluding oninstructions thein Creditor'sa accountRejected hasstate. been completed) minLength: 1 example: 4 CumulativeValueOfPayments: description: | The cumulative value of payment instructions successfully acceptedinitiated under the current consent schedule, (Settlementexcluding oninstructions thein Creditor'sa accountRejected hasstate. been completed) A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217." type: "object" required: - "Amount" - "Currency" properties: Amount: $ref: "#/components/schemas/AEActiveOrHistoricAmount" Currency: $ref: "#/components/schemas/AEActiveOrHistoricCurrencyCode" CumulativeNumberOfPaymentsInCurrentPeriod: type: "number" description: | The cumulative number of payment instructions in the current period initiated under the consent schedule, excluding instructions in a Rejected state. minLength: 1 example: 1 CumulativeValueOfPaymentsInCurrentPeriod: description: | The cumulative value of payment instructions in the current period initiated under the consent schedule, excluding instructions in a Rejected state. A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217." type: "object" required: - "Amount" - "Currency" properties: Amount: $ref: "#/components/schemas/AEActiveOrHistoricAmount" Currency: $ref: "#/components/schemas/AEActiveOrHistoricCurrencyCode" additionalProperties: false AEActiveOrHistoricAmount: description: "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217." type: "string" pattern: "^\\d{1,16}\\.\\d{2}$" example: "100.00" AEActiveOrHistoricCurrencyCode: description: "A 3 character alphabetic code allocated to a currency under an international currency identification scheme, as described in the latest edition of the international standard ISO 4217 'Codes for the representation of currencies and funds'." type: "string" pattern: "^[A-Z]{3,3}$" example: "AED" AERequestedExecutionDate: description: | The date when the TPP expects the LFI to execute the payment. The date must be in the future and cannot be on the same day or a day in the past. The maximum date in the future that can be specified is 1 year from the day of the consent of the User to the TPP. All dates in the JSON payloads are represented in ISO 8601 date format. type: "string" format: "date" AEExternalPaymentChargeTypeCode: description: "Charge type, in a coded form." type: "string" enum: - "VAT" - "Fees" AEChargeBearerType1Code: description: "Specifies which party/parties will bear the charges associated with the processing of the payment transaction." type: "string" enum: - "BorneByCreditor" - "BorneByDebtor" - "Shared" AEActiveCurrencyAmount: description: | The Currency and Amount relating to the Payment type: "object" required: - "Amount" - "Currency" properties: Amount: $ref: "#/components/schemas/AEActiveOrHistoricAmount" Currency: $ref: "#/components/schemas/AEActiveOrHistoricCurrencyCode" AEDefinedScheduleAEPeriodType: type: "objectstring" description: | PaymentA SchedulePeriod denotingmay abegin listfrom ofthe pre-definedConsent futureCreationDateTime datedif paymentsa allPeriodStartDate withis fixed amounts and datesnot provided. additionalProperties: false |Period Type|Description| required: |-----------|-----------| - "Schedule" |Day|A continuous period of time, -consisting "Type"of 24 consecutive hours, starting from midnight properties: Type:(00:00:00) and finishing at 23:59:59 of the same day. | |Week|A continuous type: "string" description: "The Periodic Schedule Type" period of time, consisting of seven consecutive days, starting from midnight (00:00:00) and finishing at 23:59:59 of the 7th day. | enum: |Month|A continuous period of time starting from midnight (00:00:00) of -the DefinedSchedulefirst day of a month and finishing at Schedule23:59:59 of the last day of that month.| type: "array" |Year|A continuous period of time, consisting minItems:of 112 months.| enum: uniqueItems: false - Day items: - Week type: "object"- Month - Year additionalProperties: false AEPeriodStartDate: type: "string" required: description: | * - "PaymentExecutionDate" Payments: Specifies the start date of when a payment schedule begins. - format: "Amountdate" AEPaymentAndFilePaymentRequest: propertiesdescription: The payment request body as received from the TPP PaymentExecutionDateoneOf: - $ref: "#/components/schemas/AEPaymentRequest" - $ref: "#/components/schemas/AEPaymentExecutionDateAEFilePaymentRequest" AEPaymentRequest: description: | Amount: Payment Request Schema $reftype: "#/components/schemas/AEActiveCurrencyAmountobject" AEPaymentExecutionDate additionalProperties: false description required: | - Used"Data" to specify the expected payment execution date/time. properties: AllData: dates in the JSON payloads are represented in ISO 8601 date format.type: "object" An example isadditionalProperties: 2023-04-05false typerequired: "string" format:- "dateConsentId" AEPeriodType: type:- "stringInstruction" description: | - "PaymentPurposeCode" A Period may begin fromproperties: the Consent CreationDateTime if a PeriodStartDate is not provided. ConsentId: |Period Type|Description| |-----------|-----------|$ref: "#/components/schemas/AEConsentId" |Day|A continuous period of time,Instruction: consisting of 24 consecutive hours, starting from midnight (00:00:00) and finishing at 23:59:59 of the same day. |$ref: "#/components/schemas/AEPaymentInstruction" |Week|A continuous periodCurrencyRequest: of time, consisting of seven consecutive days, starting from midnight (00:00:00) and finishing at 23:59$ref:59 of the 7th day. | "#/components/schemas/AECurrencyRequest" |Month|A continuous period of time starting from midnight (00:00:00) of the first day of a month and finishing at 23:59:59 of the last day of that month.| PersonalIdentifiableInformation: description: Personal Identifiable Information, represented in both encoded and decoded form |Year|A continuous period of time, consisting of 12 months.| using a `oneOf`, enum:to help implementers readily understand both the structure and - Day - Week serialized form of the -property. Month - Year AEPeriodStartDate: **Implementations MUST reflect the AEJWEPaymentPII type: "string"Schema Object** description: | **structure Payments: Specifiesand the startnotes dateprovided ofon whenimplementing a payment schedule begins.JWS and JWE** Where this is an optional field, if a value**The decoded form AEPaymentInitiationPII is notfor provided,guidance thenon itcontent mustonly** default to the Consent CreationDateTime, starting from midnight 00:00:00. formatoneOf: "date" AEVariablePeriodicSchedule: description: | - $ref: "#/components/schemas/AEJWEPaymentPII" Payment Controls that apply to all payment instructions in a given period- under this payment consent.$ref: "#/components/schemas/AEPaymentInitiationPII" type: "object" additionalProperties: false PaymentPurposeCode: required: -$ref: "PeriodType#/components/schemas/AEPaymentPurposeCode" properties: DebtorReference: PeriodType: $ref: "'#/components/schemas/AEPeriodType"AEServiceInitiationStructuredDebtorReference' PeriodStartDateCreditorReference: $ref: "#/components/schemas/AEPeriodStartDateAEStructuredCreditorReference" MaximumCumulativeValueOfPaymentsPerPeriodTypeAEPaymentInitiationPII: $reftype: "#/components/schemas/AEPeriodTypeMaximumCumulativeValueOfPaymentsobject" MaximumCumulativeNumberOfPaymentsPerPeriodTypeadditionalProperties: false $refdescription: "#/components/schemas/AEPeriodTypeMaximumCumulativeNumberOfPayments" AEPeriodTypeMaximumCumulativeValueOfPayments:Elements of Personal Identifiable Information data" descriptionproperties: | Initiation: The maximum cumulative payment value of all payment initiations per Period Type. type: "object" required: additionalProperties: false - "Amount" description: "The Initiation -payload "Currency"is sent by the initiating party to properties:the LFI. It is used to request movement of funds from the debtor account to a Amount:creditor." $refproperties: "#/components/schemas/AEActiveOrHistoricAmount" CurrencyCreditorAgent: $ref: "#/components/schemas/AEActiveOrHistoricCurrencyCodeAECreditorAgent" AEPeriodTypeMaximumCumulativeNumberOfPayments: typeCreditor: "integer" description: | type: "object" The maximum frequency of payment initiations per Period Type. AEPaymentAndFilePaymentRequestadditionalProperties: false description: The payment request body as received from the TPPdescription: "Party to which an amount of oneOf:money is due." - $ref: "#/components/schemas/AEPaymentRequest" properties: - $ref: "#/components/schemas/AEFilePaymentRequest" AEPaymentRequest: descriptionName: | Payment Request Schema typedescription: "object"| additionalProperties: false required: Name by -which "Data"a party is known and which is properties:usually used to identify that party. Data: type: "object" This may be used to identify additionalProperties:the falseCreditor for international payments. required: -type: "ConsentIdstring" - "Instruction" minLength: 1 - "PersonalIdentifiableInformation" maxLength: 140 - "PaymentPurposeCode" properties: PostalAddress: ConsentId: $ref: "#/components/schemas/AEConsentIdAEAddress" InstructionCreditorAccount: $ref: "#/components/schemas/AEPaymentInstructionAECreditorAccount" CurrencyRequestConfirmationOfPayeeResponse: $ref: "#/components/schemas/AECurrencyRequestAEConfirmationOfPayeeResponse" Risk: PersonalIdentifiableInformation: $ref: "#/components/schemas/AERisk" descriptionAECreditorAgent: Personal Identifiable Information, represented in both encodeddescription: and| decoded form Refers to the Financial Institution. using a `oneOf`, to help implementers readily understand both the structure andtype: "object" required: - "SchemeName" serialized- form"Identification" of the property. properties: SchemeName: **Implementations MUST reflect the AEJWEPaymentPII Schema Object** type: "string" description: | **structure and the notes provided on implementing a JWS andRefers JWE**to the Identification scheme for uniquely identifying the Agent. **The decoded form AEPaymentInitiationPII is for guidance* onBICFI: content only** The BIC/SWIFT Code * oneOfOther: The ID; A Country Code followed by a Bank Code (4 character code). The full -list $ref: "#/components/schemas/AEJWEPaymentPII" of LFI names and 6 digits IDs are as follows: - $ref: "#/components/schemas/AEPaymentInitiationPII" enum: PaymentPurposeCode: - "BICFI" $ref:- "#/components/schemas/AEPaymentPurposeCodeOther" Identification: DebtorReference: description: | $ref: '#/components/schemas/AEServiceInitiationStructuredDebtorReference' The Agent is the Country Code followed CreditorReference:by a Bank Code" $reftype: "#/components/schemas/AEStructuredCreditorReferencestring" AEPaymentInitiationPII: Name: type: "object" additionalPropertiesdescription: false"Name by which an agent is known description: "Elements of Personal Identifiable Information data"and which is usually used to identify that agent." properties type: "string" Initiation: minLength: 1 typemaxLength: "object"140 PostalAddress: additionalProperties: false $ref: "#/components/schemas/AEAddress" description: "The Initiation payload is sent by the initiating party to theAECreditorAccount: LFI. It is used to request movementdescription: of"Unambiguous fundsidentification fromof the debtor account toof athe creditor." to which a credit entry will be posted." properties: type: "object" additionalProperties: false CreditorAgent: required: $ref:- "#/components/schemas/AECreditorAgentSchemeName" - "Identification" Creditor: - "Name" properties: type: "object" SchemeName: additionalProperties: false $ref: "#/components/schemas/AECreditorExternalAccountIdentificationCode" Identification: description: "Party to which an amount of money is due.$ref: "#/components/schemas/AEIdentification" Name: properties: $ref: "#/components/schemas/AEName" NameTradingName: $ref: "#/components/schemas/AETradingName" descriptionAEFilePaymentRequest: | description: | File Payment Request Schema Name by which a party is known and which is usually used to identify that party.type: "object" additionalProperties: false required: - "Data" This may be used to identify the Creditor for international payments. properties: Data: type: "object" typeadditionalProperties: false "string" required: minLength: 1 - "ConsentId" - "PaymentPurposeCode" maxLength: 140 properties: PostalAddress: ConsentId: $ref: "#/components/schemas/AEAddressAEConsentId" CreditorAccountInstruction: $ref: "#/components/schemas/AECreditorAccountAEFilePaymentConsent" ConfirmationOfPayeeResponsePaymentPurposeCode: $ref: "#/components/schemas/AEConfirmationOfPayeeResponseAEPaymentPurposeCode" Risk DebtorReference: $ref: "'#/components/schemas/AERisk"AEServiceInitiationStructuredDebtorReference' AECreditorAgentAEStructuredCreditorReference: description: | RefersA toreason theor Financialreference Institution.in relation to a payment, set to type: "object" requiredfacilitate a structured Creditor reference consisting of: - "SchemeName"* TPP ID and BIC for the Debtor Account, -followed "Identification"by freeform text to a maximum of properties:120 characters. SchemeName: The TPP ID value will match the organization ID type: "string" description: |value from the Trust Framework, and therefore will be a v4 UUID. A BIC is specific Refersaccording to the Identificationstandard schemeformat for uniquelyISO identifying20022, theand Agent.can therefore be either 8 or 11 characters in length. * BICFI: The BIC/SWIFT Code If the value of the concatenated string exceeds 120 characters, the TPP *must Other:first Theomit ID;or Atruncate Countrythe Codefreeform followedelement byof athe Bankreference. Code (4 character code). The full list of LFI names and 6 digits IDs are as follows: type: "string" minLength: 1 maxLength: 120 enum: pattern: "^TPP=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12},BIC=[A-Z0-9]{4}[A-Z0-9]{2}[A-Z0-9]{2}([A-Z0-9]{3}){0,1}($|,.+$)" AEPaymentInstruction: -type: "BICFIobject" additionalProperties: false required: - "Other" - "Amount" Identification: description: "The Initiation payload is description:sent |by the initiating party to the LFI. It is used to request movement Theof Agentfunds isfrom the Countrydebtor Codeaccount followedto by a Bankcreditor Code"for a single payment." type: "string"properties: NameAmount: description$ref: "Name by which an agent is known and which is usually used to identify that agent.""#/components/schemas/AEActiveCurrencyAmount" consent: description: | A consent type: "string" in its current state. minLength: 1If the consent has been authorised, then it can be expected maxLength:that 140the financial institution would have patched in `accountIds` and PostalAddress:`psuIdentifier` fields. $ref: "#/components/schemas/AEAddress" AECreditorAccount: Additionally, the financial institution may also patch in an arbitrary set of fields along with consent in the `supplementaryInformation` field. description: "Unambiguous identificationallOf: of the account of the creditor to which a- credit entry will be posted."$ref: "#/components/schemas/newConsent" - type$ref: "object#/components/schemas/patchedConsent" additionalProperties: false - properties: required: authorizationChannel: - "SchemeName" - "Identification" type: string - "Name" properties: SchemeNameenum: $ref: "#/components/schemas/AECreditorExternalAccountIdentificationCode" - App Identification: $ref: "#/components/schemas/AEIdentification" - Web Name: multiConsentResponse: $reftype: "#/components/schemas/AEName"object required: TradingName: - data $ref: "#/components/schemas/AETradingName" - AEFilePaymentRequest:meta descriptionproperties: | data: File Payment Request Schema type: "object"array additionalProperties: false items: required: -$ref: "Data" #/components/schemas/consent" properties: Datameta: type$ref: "object#/components/schemas/meta" ConsentPostResponse: additionalProperties: false type: object required: - "ConsentId"data - "PaymentPurposeCode"meta properties: ConsentId: data: $ref: "#/components/schemas/AEConsentIdnewConsent" Instruction: meta: $ref: "#/components/schemas/AEFilePaymentConsentmeta" RevokeConsent: PaymentPurposeCodetype: object required: $ref: "#/components/schemas/AEPaymentPurposeCode" - revokedBy properties: DebtorReference: revokedBy: $ref: '"#/components/schemas/AEServiceInitiationStructuredDebtorReference'AERevokedBy" AEStructuredCreditorReference: revokedByPsu: description: | type: object A reason or reference in relation to a payment, setproperties: to facilitate a structured Creditor reference consisting of: userId: * TPP ID and BIC for the Debtor Account, followed bytype: freeformstring text to a maximum of 120 characters.AuthorizationDetails: description: | The TPP ID value will match the organizationThe IDrequest valuebody fromfor thecreating Trusta Framework,new andconsent. therefore will be a v4 UUID. The body consists of the RAR Arequest BICthat is sent specificby the accordingTPP to the standardauthorization formatserver. for ISO 20022, and can therefore be eitheroneOf: 8 or 11 characters in length. - $ref: "#/components/schemas/DataSharingAuthorizationDetails" If the value of the- concatenated string exceeds 120 characters, the TPP must first omit or truncate the freeform element of the reference.$ref: "#/components/schemas/InsuranceAuthorizationDetails" - $ref: "#/components/schemas/ServiceInitiationAuthorizationDetails" DataSharingAuthorizationDetails: type: object properties: type: "string" minLength: 1description: The Rich Authorization Request (RAR) type maxLengthtype: string 120 pattern: "^TPP=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12},BIC=[A-Z0-9]{4}[A-Z0-9]{2}[A-Z0-9]{2}([A-Z0-9]{3}){0,1}($|,.+$)"enum: - urn:openfinanceuae:account-access-consent:v1.1 AEPaymentInstructionconsent: type$ref: "object" additionalProperties: false required: - "Amount" description: "The Initiation payload is sent by the initiating party to the LFI. It is used to request movement of funds from the debtor account to a creditor for a single payment." properties: Amount: $ref: "#/components/schemas/AEActiveCurrencyAmount" consent: description: | A consent in its current state. If the consent has been authorised, then it can be expected that the financial institution would have patched in `accountIds` and `psuIdentifier` fields. Additionally, the financial institution may also patch in an arbitrary set of fields along with consent in the `supplementaryInformation` field. allOf: - $ref: "#/components/schemas/newConsent"#/components/schemas/AuthorizationDetailsDataSharingConsent" subscription: $ref: '#/components/schemas/EventNotification' InsuranceAuthorizationDetails: type: object properties: type: description: The Rich Authorization Request (RAR) type type: string enum: - urn:openfinanceuae:insurance-consent:v1.1 consent: $ref: "#/components/schemas/AuthorizationDetailsInsuranceConsent" subscription: $ref: '#/components/schemas/EventNotification' ServiceInitiationAuthorizationDetails: type: object properties: type: description: The Rich Authorization Request (RAR) type type: string enum: - urn:openfinanceuae:service-initiation-consent:v1.1 consent: $ref: "#/components/schemas/AEServiceInitiationAuthorizationDetailProperties" subscription: $ref: '#/components/schemas/EventNotification' AEServiceInitiationAuthorizationDetailProperties: type: object required: - ConsentId - PersonalIdentifiableInformation - ControlParameters - PaymentPurposeCode - ExpirationDateTime properties: ConsentId: $ref: '#/components/schemas/AEConsentId' BaseConsentId: $ref: '#/components/schemas/AEBaseConsentId' IsSingleAuthorization: $ref: '#/components/schemas/IsSingleAuthorization' AuthorizationExpirationDateTime: type: string format: date-time description: |2- A time by which a Consent (in AwaitingAuthorization status) must be Authorized by the User. The time window starts from the actual CreationDateTime (when the Consent is staged with the LFI). If the current time window exceeds the Authorization Expiration Time Window (and the Consent status is AwaitingAuthorization) then the Consent Status must be set to Rejected. The time window is based on a custom time format hhh:mm:ss. e.g. 720:00:00 represents a time window of 720 hours, 00 minutes, 00 seconds (30 days) after the CreationDateTime to Authorize the Consent. ExpirationDateTime: allOf: - $ref: '#/components/schemas/ARConsentExpirationDateTime' description: |2- Specified date and time the consent will expire. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is :2023-04-05T10:43:07+00:00 Permissions: type: array items: $ref: '#/components/schemas/AEServiceInitiationConsentPermissionCodes' description: |2- Specifies the permitted Account Access data types. This is a list of the data groups being consented by the User, and requested for authorization with the LFI. This allows a TPP to request a balance check permission. CurrencyRequest: $ref: '#/components/schemas/AECurrencyRequest' PersonalIdentifiableInformation: description: Personal Identifiable Information, represented in both encoded and decoded form using a `oneOf`, to help implementers readily understand both the structure and serialized form of the property. **Implementations MUST reflect the AEJWEPaymentPII Schema Object** **structure and the notes provided on implementing a JWS and JWE** **The decoded form AEPaymentConsentPII is for guidance on content only** oneOf: - $ref: "#/components/schemas/AEJWEPaymentPII" - $ref: "#/components/schemas/AEPaymentConsentPII" ControlParameters: $ref: '#/components/schemas/AEServiceInitiationConsentControlParameters' DebtorReference: $ref: '#/components/schemas/AEServiceInitiationStructuredDebtorReference' CreditorReference: $ref: '#/components/schemas/AEServiceInitiationStructuredCreditorReference' PaymentPurposeCode: $ref: '#/components/schemas/AEServiceInitiationPaymentPurposeCode' SponsoredTPPInformation: $ref: '#/components/schemas/AEServiceInitiationSponsoredTPPInformation' additionalProperties: false ARConsentExpirationDateTime: type: string format: date-time AEServiceInitiationSponsoredTPPInformation: type: object required: - Name - Identification properties: Name: type: string minLength: 1 maxLength: 50 description: The Sponsored TPP Name Identification: type: string minLength: 1 maxLength: 50 description: The Sponsored TPP Identification description: |2- The Sponsored TPP is: * A TPP that itself has no direct Open Banking API integrations. * A TPP that is using the integration of another TPP that does have direct Open Banking API integrations. additionalProperties: false AEServiceInitiationPaymentPurposeCode: type: string minLength: 1 maxLength: 3 pattern: ^[A-Z]{3}$ description: A category code that relates to the type of services or goods that corresponds to the underlying purpose of the payment. The code must conform to the published Aani payment purpose code list. AEServiceInitiationStructuredCreditorReference: description: | A reason or reference in relation to a payment, set to facilitate a structured Creditor reference consisting of: * TPP ID and BIC for the Debtor Account, followed by freeform text to a maximum of 120 characters. The TPP ID value will match the organization ID value from the Trust Framework, and therefore will be a v4 UUID. A BIC is specific according to the standard format for ISO 20022, and can therefore be either 8 or 11 characters in length. If the value of the concatenated string exceeds 120 characters, the TPP must first omit or truncate the freeform element of the reference. type: "string" minLength: 1 maxLength: 120 pattern: "^TPP=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12},BIC=[A-Z0-9]{4}[A-Z0-9]{2}[A-Z0-9]{2}([A-Z0-9]{3}){0,1}($|,.+$)" AEServiceInitiationStructuredDebtorReference: description: | A reason or reference in relation to a payment, set to facilitate a structured Debtor reference consisting of: * For payments to Merchants: TPP ID, Merchant ID, BIC for the Creditor Account, followed by freeform text to a maximum of 120 characters. * For other payments: TPP ID and BIC for the Creditor Account, followed by freeform text to a maximum of 120 characters. The TPP ID value will match the organization ID value from the Trust Framework, and therefore will be a v4 UUID. The Merchant ID wil be as per the existing IPP rules for the Merchant identification, and will incorporate the Trade License number for the Merchant. A BIC is specific according to the standard format for ISO 20022, and can therefore be either 8 or 11 characters in length. If the value of the concatenated string exceeds 120 characters, the TPP must omit or truncate the freeform element of the reference. type: "string" minLength: 1 maxLength: 120 pattern: "^TPP=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12},(Merchant=[A-Z0-9]{3}-[A-Z]{4}-TL.+-[0-9]{4}|),BIC=[A-Z0-9]{4}[A-Z0-9]{2}[A-Z0-9]{2}([A-Z0-9]{3}){0,1}($|,.+$)" AEServiceInitiationConsentControlParameters: type: object properties: IsDelegatedAuthentication: type: boolean description: Indicates whether the all payment controls will be defined and managed by the TPP under the Payment with Delegated Authentication capability ConsentSchedule: $ref: '#/components/schemas/AEServiceInitiationConsentSchedule' description: Control Parameters set the overall rules for the Payment Schedule additionalProperties: false AEServiceInitiationConsentSchedule: type: object properties: SinglePayment: $ref: '#/components/schemas/AEServiceInitiationSinglePayment' MultiPayment: $ref: '#/components/schemas/AEServiceInitiationLongLivedPaymentConsent' FilePayment: $ref: '#/components/schemas/AEServiceInitiationFilePaymentConsent' description: |2- The various payment types that can be initiated: * A Single Payment * A Multi-Payment * A Combined Payment (one SinglePayment and one MultiPayment) additionalProperties: false AEServiceInitiationFilePaymentConsent: type: object required: - FileType - FileHash - NumberOfTransactions - ControlSum properties: FileType: type: string minLength: 1 maxLength: 40 description: Specifies the payment file type FileHash: type: string minLength: 1 maxLength: 44 description: A base64 encoding of a SHA256 hash of the file to be uploaded. FileReference: $ref: '#/components/schemas/AEServiceInitiationReference' NumberOfTransactions: type: integer description: >- Number of individual transactions contained in the payment information group. ControlSum: type: string pattern: ^\d{1,16}\.\d{2}$ description: >- Total of all individual amounts included in the group, irrespective of currencies. RequestedExecutionDate: $ref: '#/components/schemas/AERequestedExecutionDate' description: A Consent definition for defining Bulk/Batch Payments additionalProperties: false AEServiceInitiationReference: type: string minLength: 1 maxLength: 120 description: A reason or reference in relation to a payment. AEServiceInitiationLongLivedPaymentConsent: type: object required: - PeriodicSchedule properties: MaximumCumulativeValueOfPayments: allOf: - $ref: '#/components/schemas/AEAmountAndCurrency' description: |2- The maximum cumulative value of all successful payment rails executions under the Consent. Each successful payment rails execution amount (related to the Consent) is added to the total cumulative value of the Consent which cannot exceed the maximum value agreed with the User at the point of consent. MaximumCumulativeNumberOfPayments: type: integer description: |2- The maximum cumulative number of all successful payment rails executions under the Consent. Each successful payment rails execution (related to the Consent) is added to the total cumulative number of payments for the Consent which cannot exceed the maximum value agreed with the User at the point of consent. PeriodicSchedule: $ref: >- #/components/schemas/AEServiceInitiationLongLivedPaymentConsentPeriodicSchedule description: A Consent definition for defining Multi Payments additionalProperties: false AEServiceInitiationLongLivedPaymentConsentPeriodicSchedule: oneOf: - $ref: '#/components/schemas/AEServiceInitiationFixedDefinedSchedule' - $ref: '#/components/schemas/AEServiceInitiationVariableDefinedSchedule' - $ref: '#/components/schemas/AEServiceInitiationFixedPeriodicSchedule' - $ref: '#/components/schemas/AEServiceInitiationVariablePeriodicSchedule' - $ref: '#/components/schemas/AEServiceInitiationFixedOnDemand' - $ref: '#/components/schemas/AEServiceInitiationVariableOnDemand' discriminator: propertyName: Type description: The definition for a schedule additionalProperties: false AEServiceInitiationVariablePeriodicSchedule: type: object required: - Type - PeriodType - PeriodStartDate - MaximumIndividualAmount properties: Type: type: string enum: - VariablePeriodicSchedule PeriodType: $ref: '#/components/schemas/AEPeriodType' PeriodStartDate: $ref: '#/components/schemas/AEPeriodStartDate' MaximumIndividualAmount: allOf: - $ref: '#/components/schemas/AEAmountAndCurrency' description: >- This is the Maximum amount a variable payment can take per period. description: >- Payment Controls that apply to all payment instructions in a given period under this payment consent. The payments for this consent must be executed only on the PeriodStartDate, and dates recurring based on the PeriodType. additionalProperties: false AEServiceInitiationFixedDefinedSchedule: type: object required: - Type - Schedule properties: Type: type: string enum: - FixedDefinedSchedule description: The Periodic Schedule Type Schedule: type: array items: $ref: '#/components/schemas/AEServiceInitiationFixedSchedule' minItems: 1 maxItems: 53 description: >- Payment Schedule denoting a list of pre-defined future dated payments all with fixed amounts and dates. additionalProperties: false AEServiceInitiationVariableDefinedSchedule: type: object required: - Type - Schedule properties: Type: type: string enum: - VariableDefinedSchedule description: The Periodic Schedule Type Schedule: type: array items: $ref: '#/components/schemas/AEServiceInitiationVariableSchedule' minItems: 1 maxItems: 53 description: >- Payment Schedule denoting a list of pre-defined future dated payments all with variable amounts and dates. additionalProperties: false AEServiceInitiationFixedPeriodicSchedule: type: object required: - Type - PeriodType - PeriodStartDate - Amount properties: Type: type: string enum: - FixedPeriodicSchedule PeriodType: $ref: '#/components/schemas/AEPeriodType' PeriodStartDate: $ref: '#/components/schemas/AEPeriodStartDate' Amount: $ref: '#/components/schemas/AEAmountAndCurrency' description: >- Payment Controls that apply to all payment instructions in a given period under this payment consent. The payments for this consent must be executed only on the PeriodStartDate, and dates recurring based on the PeriodType. additionalProperties: false AEServiceInitiationFixedOnDemand: type: object required: - Type - PeriodType - PeriodStartDate - Amount - Controls properties: Type: type: string enum: - FixedOnDemand PeriodType: $ref: '#/components/schemas/AEPeriodType' PeriodStartDate: $ref: '#/components/schemas/AEPeriodStartDate' Amount: $ref: '#/components/schemas/AEAmountAndCurrency' Controls: type: "object" minProperties: 1 additionalProperties: false properties: MaximumCumulativeValueOfPaymentsPerPeriod: allOf: - $ref: '#/components/schemas/AEAmountAndCurrency' description: >- The maximum cumulative payment value of all payment initiations per Period Type. MaximumCumulativeNumberOfPaymentsPerPeriod: type: integer description: The maximum frequency of payment initiations per Period Type. description: >- Payment Controls that apply to all payment instructions in a given period under this payment consent. The payments for this consent may be executed on any date, as long as they are within the Controls for a PeriodType additionalProperties: false AEServiceInitiationVariableOnDemand: type: object required: - Type - PeriodType - PeriodStartDate - Controls properties: Type: type: string enum: - VariableOnDemand PeriodType: $ref: '#/components/schemas/AEPeriodType' PeriodStartDate: $ref: '#/components/schemas/AEPeriodStartDate' Controls: type: "object" minProperties: 1 additionalProperties: false properties: MaximumIndividualAmount: allOf: - $ref: '#/components/schemas/AEAmountAndCurrency' description: >- This is the Maximum amount a variable payment can take per period. MaximumCumulativeValueOfPaymentsPerPeriod: allOf: - $ref: '#/components/schemas/AEAmountAndCurrency' description: >- The maximum cumulative payment value of all payment initiations per Period Type. MaximumCumulativeNumberOfPaymentsPerPeriod: type: integer description: The maximum frequency of payment initiations per Period Type. description: >- Payment Controls that apply to all payment instructions in a given period under this payment consent. The payments for this consent may be executed on any date, as long as they are within the Controls for a PeriodType additionalProperties: false AEServiceInitiationFixedSchedule: type: object required: - PaymentExecutionDate - Amount properties: PaymentExecutionDate: type: string format: date description: |2- Used to specify the expected payment execution date/time. All dates in the JSON payloads are represented in ISO 8601 date format. An example is: 2023-04-05 Amount: $ref: '#/components/schemas/AEAmountAndCurrency' additionalProperties: false AEServiceInitiationVariableSchedule: type: object required: - PaymentExecutionDate - MaximumIndividualAmount properties: PaymentExecutionDate: type: string format: date description: >- Used to specify the expected payment execution date/time. All dates in the JSON payloads are represented in ISO 8601 date format. An example is: 2023-04-05 MaximumIndividualAmount: allOf: - $ref: '#/components/schemas/AEAmountAndCurrency' description: >- This is the Maximum amount a variable payment can take per period. additionalProperties: false AEServiceInitiationSinglePayment: anyOf: - $ref: '#/components/schemas/AEServiceInitiationSingleInstantPayment' - $ref: '#/components/schemas/AEServiceInitiationFutureDatedPayment' discriminator: propertyName: Type mapping: SingleInstantPayment: '#/components/schemas/AEServiceInitiationSingleInstantPayment' SingleFutureDatedPayment: '#/components/schemas/AEServiceInitiationFutureDatedPayment' description: A Consent definition for defining Single Payments AEServiceInitiationFutureDatedPayment: type: object required: - Type - Amount - RequestedExecutionDate properties: Type: type: string enum: - SingleFutureDatedPayment Amount: $ref: '#/components/schemas/AEAmountAndCurrency' RequestedExecutionDate: $ref: '#/components/schemas/AERequestedExecutionDate' description: A single payment consent that MUST be used for a single payment executed by the LFI on a future date. This payment consent will be authorized by the User during the payment journey, and the payment will be executed by the TPP immediately. additionalProperties: false AEServiceInitiationSingleInstantPayment: type: object required: - Type - Amount properties: Type: type: string enum: - $ref: "#/components/schemas/patchedConsent"SingleInstantPayment - propertiesdescription: The Payment Type authorizationChannelAmount: $ref: '#/components/schemas/AEAmountAndCurrency' typedescription: string>- A single immediate payment consent that MUST be enum:used for a single payment which will be initiated immediately after -User Appauthorization at the LFI. additionalProperties: -false Web multiConsentResponseAEAmountAndCurrency: type: object required: - dataCurrency - metaAmount properties: dataCurrency: type: array items: $ref: "'#/components/schemas/consent"CurrencyCode' metaAmount: $ref: "'#/components/schemas/meta"Amount' ConsentPostResponsedescription: >- type: object The Currency and Amount relating required:to the Payment -additionalProperties: datafalse Amount: - meta description: "A number of properties:monetary units specified in an active currency where the data:unit of currency is explicit and compliant with $ref: "#/components/schemas/newConsent"ISO 4217." metatype: string $ref: "#/components/schemas/meta"pattern: ^\\d{1,16}\\.\\d{2}$ RevokeConsentCurrencyCode: typedescription: object"A 3 character alphabetic code allocated to required:a currency under an international currency identification scheme, as -described revokedByin the latest edition of the international properties:standard ISO 4217 'Codes for the representation of currencies revokedBy: and funds'." $ref: "#/components/schemas/AERevokedBy"type: string pattern: ^[A-Z]{3}$ revokedByPsu: IsSingleAuthorization: typedescription: object| Specifies to properties:the LFI that the consent authorization must be completed in a single userId:authorization Step with the LFI type: string"boolean" AuthorizationDetailsAEServiceInitiationConsentPermissionCodes: descriptiontype: |string enum: The request body for creating a new consent.- ReadAccountsBasic The- bodyReadAccountsDetail consists of the RAR request that is sent by- theReadBalances TPP to the authorization server. - ReadRefundAccount oneOf: AEJWEPaymentPII: - $reftype: "#/components/schemas/DataSharingAuthorizationDetails"string description: | - $ref: "#/components/schemas/InsuranceAuthorizationDetails" A JSON Web - $ref: "#/components/schemas/ServiceInitiationAuthorizationDetails" DataSharingAuthorizationDetails: Encryption (JWE) object, which encapsulates a JWS. The value is a type: object compact serialization of a properties:JWE, which is a string consisting of five type: base64url-encoded parts joined by description:dots. TheIt Richencapsulates Authorizationencrypted Requestcontent (RAR) type using JSON data structures. type: string The decrypted JWS enum:content has the structure of the AEPaymentPII schema. - urn:openfinanceuae:account-access-consent:v1.1example: "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ...." AEPaymentConsentPII: consent: type: "object" $refadditionalProperties: "#/components/schemas/AuthorizationDetailsDataSharingConsent"false description: "Elements subscription:of Personal Identifiable Information data" $refproperties: '#/components/schemas/EventNotification' InsuranceAuthorizationDetailsInitiation: type: object type: "object" properties: additionalProperties: type:false description: "The RichInitiation Authorizationpayload Requestis (RAR)sent typeby the initiating party to the LFI. It is used to type:request stringmovement of funds from the debtor account to a creditor." enum: properties: - urn:openfinanceuae:insurance-consent:v1.1 DebtorAccount: consent: $reftype: "#/components/schemas/AuthorizationDetailsInsuranceConsent"object" subscription: additionalProperties: false $ref: '#/components/schemas/EventNotification' ServiceInitiationAuthorizationDetails: required: type: object properties: - "SchemeName" type: description: The Rich Authorization- Request (RAR) type"Identification" type: string description: "Unambiguous identification of the account of the debtor to enum:which a debit entry will be made as a result of the transaction." - urn:openfinanceuae:service-initiation-consent:v1.1 consent: properties: $ref: "#/components/schemas/AEServiceInitiationAuthorizationDetailProperties" subscriptionSchemeName: $ref: '#/components/schemas/EventNotification' AEServiceInitiationAuthorizationDetailPropertiesdescription: "Name of the identification scheme, in type:a objectcoded form as published in an required: external list." - ConsentId - PersonalIdentifiableInformationtype: "string" - ControlParameters - PaymentPurposeCodeenum: - ExpirationDateTime properties: - "IBAN" ConsentId: $ref: '#/components/schemas/AEConsentId' Identification: BaseConsentId: $refdescription: '#/components/schemas/AEBaseConsentId'| IsSingleAuthorization: $ref: '#/components/schemas/IsSingleAuthorization' AuthorizationExpirationDateTime: Identification for the account assigned by the LFI based on the Account Scheme Name. type: string format: date-time This identification is known by the User account owner. description: |2- A time by which a Consent (in AwaitingAuthorization status) must be Authorized by the User.type: "string" minLength: 1 The time window starts from the actual CreationDateTimeName: (when the Consent is staged with the LFI). type: "object" If the current time window exceeds the Authorization Expiration Time Window (and the Consent statusdescription: is| AwaitingAuthorization) then the Consent Status must be set to Rejected. The Account Holder Name is the Thename timeor windownames isof basedthe on a custom time format hhh:mm:ss. e.g. 720:00:00 represents a time window of 720 hours, 00 minutes, 00 seconds (30 days) after the CreationDateTime to Authorize the Consent.Account owner(s) represented at the account level properties: ExpirationDateTime: allOfen: - $ref: '#/components/schemas/ARConsentExpirationDateTime' type: "string" description: |2- Specified date anddescription: time"English thevalue consentof willthe expire.string" All dates in the JSON payloadsmaxLength: are70 represented in ISO 8601 date-time format. ar: All date-time fields in responses must include the timezone. An example is :2023-04-05T10:43:07+00:00 Permissionstype: "string" type: array itemsdescription: "Arabic value of the string" $ref: '#/components/schemas/AEServiceInitiationConsentPermissionCodes' descriptionmaxLength: 70 |2- Specifies the permitted AccountadditionalProperties: Accessfalse data types. Creditor: This is a list of the data groups being consented by thedescription: User,| and requested for authorization with the LFI. (Array) Identification elements for a Creditor Thisassociated allowswith athe TPPconsent to request a balance check permission. CurrencyRequesttype: "array" $ref: '#/components/schemas/AECurrencyRequest' minItems: 1 PersonalIdentifiableInformation: descriptionitems: Personal Identifiable Information, represented in both encoded and decoded form $ref: "#/components/schemas/AECreditor" using aRisk: `oneOf`, to help implementers readily understand both the structure and $ref: "#/components/schemas/AERisk" AECreditor: serialized form ofadditionalProperties: thefalse property. type: object **Implementations MUST reflect the AEJWEPaymentPII Schema Object**description: Identification elements for a Creditor. properties: **structure and theCreditorAgent: notes provided on implementing a JWS and JWE** description: | **The decoded form AEPaymentConsentPII isRefers forto guidancethe onFinancial contentInstitution. only** oneOftype: "object" - $ref: "#/components/schemas/AEJWEPaymentPII"required: - $ref: "#/components/schemas/AEPaymentConsentPIISchemeName" ControlParameters: - "Identification" $ref: '#/components/schemas/AEServiceInitiationConsentControlParameters' properties: DebtorReference: $refSchemeName: '#/components/schemas/AEServiceInitiationStructuredDebtorReference' CreditorReference: type: "string" $ref: '#/components/schemas/AEServiceInitiationStructuredCreditorReference' PaymentPurposeCodedescription: | $ref: '#/components/schemas/AEServiceInitiationPaymentPurposeCode' Refers to the SponsoredTPPInformation:Identification scheme for uniquely identifying the Agent. $ref: '#/components/schemas/AEServiceInitiationSponsoredTPPInformation' additionalProperties: false ARConsentExpirationDateTime: type: string * formatBICFI: date-time The BIC/SWIFT Code AEServiceInitiationSponsoredTPPInformation: type: object * requiredOther: The ID; A Country Code followed by a -Bank NameCode (4 character code). The full list of LFI -names Identificationand 6 properties: digits IDs are as follows: Name: typeenum: string minLength: 1 - "BICFI" maxLength: 50 - description:"Other" The Sponsored TPP Name Identification: type: string description: | minLength: 1 The Agent maxLength:is 50the Country Code followed by a Bank Code" description: The Sponsored TPP Identification descriptiontype: |2-"string" The Sponsored TPP isName: * A TPPdescription: that"Name itselfby haswhich noan directagent Openis Bankingknown APIand integrations.which is usually used to identify that agent." * A TPP that is using the integration of another TPP that does have direct Open Banking API integrations.type: "string" additionalPropertiesminLength: false1 AEServiceInitiationPaymentPurposeCode: type: string maxLength: 140 minLength: 1 maxLengthPostalAddress: 4 pattern: ^[A-Z]{4}$ description$ref: |2-"#/components/schemas/AEAddress" Creditor: A category code that relates to the type: "object" of services or goods that corresponds to the underlying purpose ofadditionalProperties: thefalse payment. description: "Party to Thewhich codean mustamount conformof tomoney theis publisheddue." AANI payment purpose code list. AEServiceInitiationStructuredCreditorReferenceproperties: description: | Name: A reason or reference in relation to a payment, setdescription: to| facilitate a structured Creditor reference consisting of: * TPPName IDby andwhich BICa forparty theis Debtorknown Account,and followedwhich byis freeformusually textused to aidentify maximumthat ofparty. 120 characters. The TPP ID value will matchThis themay organizationbe IDused valueto fromidentify the TrustCreditor Framework,for andinternational thereforepayments. will be a v4 UUID. A BIC is specific according to the standard format for ISO 20022, and can therefore be either 8 or 11 characters in length.type: "string" minLength: 1 IfmaxLength: the140 value of the concatenated string exceeds 120 characters, the TPP must first omitPostalAddress: or truncate the freeform element of the reference. typedescription: "string"| minLength: 1 maxLength: 120 (Array) Address information that locates and pattern: "^TPP=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12},BIC=[A-Z0-9]{4}[A-Z0-9]{2}[A-Z0-9]{2}([A-Z0-9]{3}){0,1}($|,.+$)" AEServiceInitiationStructuredDebtorReference: description: |identifes a specific address, as defined by a national or international postal service." A reason or reference in relation to a payment, set to facilitate a structured Debtor reference consisting of:type: "array" minItems: 1 * For payments to Merchantsitems: TPP ID, Merchant ID, BIC for the Creditor Account, followed by freeform text to a maximum of 120 characters.type: "object" * For other paymentsrequired: TPP ID and BIC for the Creditor Account, followed by freeform text to a maximum of- 120"AddressType" characters. The TPP ID value will match the organization ID- value"Country" from the Trust Framework, and therefore will be a v4 UUID. properties: The Merchant ID wil be as per the existing IPP rules for the Merchant identification, andAddressType: will incorporate the Trade License number for the Merchant. A BIC is specific according to the standard format for ISO 20022, and can therefore be either 8 or 11 characters in length.$ref: "#/components/schemas/AEAddressTypeCode" ShortAddress: If the value of the concatenated string exceeds 120 characters, the TPP must omit or truncate the freeform element of the reference.$ref: "#/components/schemas/AEShortAddress" type: "string" UnitNumber: minLength: 1 maxLength: 120 pattern: "^TPP=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12},(Merchant=[A-Z0-9]{3}-[A-Z]{4}-TL.+-[0-9]{4}|),BIC=[A-Z0-9]{4}[A-Z0-9]{2}[A-Z0-9]{2}([A-Z0-9]{3}){0,1}($|,.+$)$ref: "#/components/schemas/AEUnitNumber" AEServiceInitiationConsentControlParameters: type: object FloorNumber: properties: IsDelegatedAuthentication: type$ref: boolean "#/components/schemas/AEFloorNumber" description: A flag to denote if the Payment is an E-CommerceBuildingNumber: transaction ConsentSchedule: $ref: '"#/components/schemas/AEServiceInitiationConsentSchedule'AEBuildingNumber" descriptionStreetName: Control Parameters set the overall rules for the Payment Schedule additionalProperties: false $ref: "#/components/schemas/AEStreetName" AEServiceInitiationConsentSchedule: type: object propertiesSecondaryNumber: SinglePayment: $ref: '"#/components/schemas/AEServiceInitiationSinglePayment'AESecondaryNumber" MultiPayment: $refDistrict: '#/components/schemas/AEServiceInitiationLongLivedPaymentConsent' FilePayment: $ref: '"#/components/schemas/AEServiceInitiationFilePaymentConsent'AEDistrict" description: |2- PostalCode: The various payment types that can be initiated: * A Single Payment$ref: "#/components/schemas/AEPostalCode" * A Multi-Payment POBox: * A Combined Payment (one SinglePayment and one MultiPayment) $ref: "#/components/schemas/AEPOBox" additionalProperties: false AEServiceInitiationFilePaymentConsent: typeZipCode: object required: - FileType $ref: "#/components/schemas/AEZipCode" - FileHash - NumberOfTransactions City: - ControlSum properties: FileType$ref: "#/components/schemas/AECity" type: string Region: minLength: 1 maxLength: 40 $ref: "#/components/schemas/AERegion" description: Specifies the payment file type FileHashCountry: type: string minLength$ref: 1"#/components/schemas/AECountryCode" maxLength: 44 additionalProperties: false description: A base64 encoding ofCreditorAccount: a SHA256 hash of the file to be uploaded. description: "Unambiguous identification of the account of FileReference:the creditor to which a credit entry will be posted." $ref: '#/components/schemas/AEServiceInitiationReference' NumberOfTransactions:type: "object" typeadditionalProperties: integerfalse descriptionrequired: >- Number- of"SchemeName" individual transactions contained in the payment - "Identification" information group. - "Name" ControlSum: properties: type: string pattern: ^\d{1,16}\.\d{2}$SchemeName: description$ref: >-"#/components/schemas/AECreditorExternalAccountIdentificationCode" Identification: Total of all individual amounts included in the group, irrespective $ref: "#/components/schemas/AEIdentification" of currencies. Name: RequestedExecutionDate: $ref: '"#/components/schemas/AERequestedExecutionDate'AEName" description: A Consent definition for defining Bulk/BatchTradingName: Payments additionalProperties: false AEServiceInitiationReference$ref: "#/components/schemas/AETradingName" typeConfirmationOfPayeeResponse: string minLength: 1 $ref: "#/components/schemas/AEConfirmationOfPayeeResponse" maxLength: 120 descriptionAEDebtorIndicators: A reason or reference in relation to a payment.type: "object" AEServiceInitiationLongLivedPaymentConsentdescription: | type: object Debtor (User) Indicators properties: MaximumCumulativeValueOfPaymentsAuthentication: allOftype: "object" description: "The authentication method -used $ref: '#/components/schemas/AEAmountAndCurrency' description: |2-by the User to access their account with the TPP" properties: The maximum cumulative valueAuthenticationChannel: of all successful payment rails executions under the Consent. description: Channel on which the User was authenticated Each successful payment rails execution amount (related to the Consent) is addedtype: tostring the total cumulative value of the Consent which cannot exceed the maximum value agreed withenum: the User at the point of consent. MaximumCumulativeNumberOfPayments: - App type: integer - Web description: |2- PossessionFactor: The maximum cumulative number of all successful payment rails executions under the Consent.type: "object" description: "The User's possession, that only Eachthe successfulUser paymentpossesses" rails execution (related to the Consent) is added to the total cumulative number of paymentsproperties: for the Consent which cannot exceed the maximum value agreed with the User at the point ofIsUsed: consent. PeriodicSchedule: type: "boolean" $ref: >- #/components/schemas/AEServiceInitiationLongLivedPaymentConsentPeriodicSchedule Type: description: A Consent definition for defining Multi Payments additionalPropertiestype: "string" false AEServiceInitiationLongLivedPaymentConsentPeriodicSchedule: oneOf: enum: - $ref: '#/components/schemas/AEServiceInitiationFixedDefinedSchedule' - $ref: '#/components/schemas/AEServiceInitiationVariableDefinedSchedule' - $ref: '#/components/schemas/AEServiceInitiationFixedPeriodicSchedule'FIDO2SecurityKey - $ref: '#/components/schemas/AEServiceInitiationVariablePeriodicSchedule' - $ref: '#/components/schemas/AEServiceInitiationFixedOnDemand' - Passkey - $ref: '#/components/schemas/AEServiceInitiationVariableOnDemand' discriminator: - propertyName:OTPDevice Type description: The definition for a schedule additionalProperties: false- OTPApp AEServiceInitiationVariablePeriodicSchedule: type: object required: - SMSOTP - Type - PeriodType - EmailOTP - PeriodStartDate - MaximumIndividualAmount - PushNotification properties: Type: type:- stringWebauthnToken enum: - SecureEnclaveKey - VariablePeriodicSchedule PeriodType: - HardwareOTPKey $ref: '#/components/schemas/AEPeriodType' PeriodStartDate: - $ref: '#/components/schemas/AEPeriodStartDate'TrustedDevice MaximumIndividualAmount: allOf:- Other - $refKnowledgeFactor: '#/components/schemas/AEAmountAndCurrency' description: >- type: "object" This isdescription: the Maximum amount a variable payment can take per period."The User's knowledge, that only the User knows" description: >- properties: Payment Controls that apply to all payment instructions in a given IsUsed: period under this payment consent. The payments for this consent must be executed only on the PeriodStartDate, andtype: "boolean" Type: dates recurring based on the PeriodType. additionalProperties: false type: "string" AEServiceInitiationFixedDefinedSchedule: type: object required: enum: - Type - Schedule - PIN properties: Type: - type:Password string enum: - SecurityQuestion - FixedDefinedSchedule description: The Periodic Schedule Type - SMSOTP Schedule: type: array - EmailOTP items: $ref: '#/components/schemas/AEServiceInitiationFixedSchedule' - OTPPush minItems: 1 - maxItems:Other 53 description: >- InherenceFactor: Payment Schedule denoting a list of pre-defined future dated payments type: "object" all with fixed amounts and dates. description: "The User's inherance, additionalProperties:that falseis unique to the User's physical AEServiceInitiationVariableDefinedSchedule:characteristics" type: object requiredproperties: - Type IsUsed: - Schedule properties: Typetype: "boolean" type: string Type: enum: - VariableDefinedScheduletype: "string" description: The Periodic Schedule Type enum: Schedule: type: array - Biometric items: $ref: '#/components/schemas/AEServiceInitiationVariableSchedule' - Fingerprint minItems: 1 maxItems: 53- FaceRecognition description: >- Payment Schedule denoting a list of- pre-definedIrisScan future dated payments all with variable amounts and dates. - VoiceRecognition additionalProperties: false AEServiceInitiationFixedPeriodicSchedule: type: object - FIDOBiometric required: - Type - DeviceBiometrics PeriodType - PeriodStartDate - AmountOther properties: ChallengeOutcome: Type: type: "string" enum: description: "The result of multi-factor authentication performed by the -TPP, FixedPeriodicSchedulewith NotPerformed indication the User was not required to PeriodType:authenticate before consenting to the requested payment" $ref: '#/components/schemas/AEPeriodType' PeriodStartDateenum: $ref: '#/components/schemas/AEPeriodStartDate' - Pass Amount: $ref: '#/components/schemas/AEAmountAndCurrency'- Fail description: >- Payment- ControlsNotPerformed that apply to all payment instructions in a given AuthenticationFlow: period under this payment consent. type: "string" The payments for this consent must be executed only on the PeriodStartDate, and enum: dates recurring based on the PeriodType. - MFA additionalProperties: false AEServiceInitiationFixedOnDemand: type: object- Other required: AuthenticationValue: - Type - PeriodType type: "string" - PeriodStartDate description: -"Cryptographic Amountproof of authentication where supported by the device and -protocol." Controls properties: ChallengeDateTime: Type: type: "string" enum: format: "date-time" UserName: - FixedOnDemand PeriodTypetype: "object" $ref: '#/components/schemas/AEPeriodType' PeriodStartDate: description: "The Name of the User initiating the Payment" properties: $ref: '#/components/schemas/AEPeriodStartDate' Amounten: $ref: '#/components/schemas/AEAmountAndCurrency' type: "string" Controls: typedescription: "objectEnglish value of the string" minProperties: 1 ar: additionalProperties: false type: "string" properties: description: "Arabic value of MaximumCumulativeValueOfPaymentsPerPeriod:the string" GeoLocation: allOf: type: "object" - $refdescription: '#/components/schemas/AEAmountAndCurrency' "GPS to identify and track the whereabouts of the connected electronic device." description: >- required: The maximum- cumulativeLatitude payment value of all payment initiations per - Longitude Period Type.properties: MaximumCumulativeNumberOfPaymentsPerPeriodLatitude: type: integer"string" description: The"latitude" maximum frequency of payment initiations per Period Type. Longitude: description: >- Payment Controls that apply to all payment instructions in a giventype: "string" period under this payment consent.description: "longitude" DeviceInformation: The payments for this consent may be executed on any date, as long as they are within the Controls for a PeriodType type: "object" description: "Detailed device information" additionalProperties: false AEServiceInitiationVariableOnDemandproperties: type: object requiredDeviceId: - Type type: "string" - PeriodType - PeriodStartDate description: "IMEISV number of the connected electronic -device" Controls properties: AlternativeDeviceId: Type: type: "string" enum description: "Alternative identifier for the connected electronic device" - VariableOnDemand DeviceOperatingSystem: PeriodType: $reftype: '#/components/schemas/AEPeriodType' "string" PeriodStartDate: description: "Device operating system" $ref: '#/components/schemas/AEPeriodStartDate' ControlsDeviceOperatingSystemVersion: type: "objectstring" minProperties: 1 description: "Device operating system version" additionalProperties: false DeviceBindingId: properties: type: "string" MaximumIndividualAmount: description: "An identifier that associates a allOf:device uniquely with a specific application" - $refLastBindingDateTime: '#/components/schemas/AEAmountAndCurrency' descriptiontype: >-"string" format: "date-time" This is the Maximum amount a variable payment can take per period. description: "Date and time when the device was last bound MaximumCumulativeValueOfPaymentsPerPeriod:to the application" allOfBindingDuration: - $ref: '#/components/schemas/AEAmountAndCurrency'type: "string" descriptionformat: >-"duration" description: "ISO The8601 maximumduration cumulativesince paymentdevice valuewas oflast all payment initiations per bound (e.g., P30D for 30 days)" BindingStatus: Period Type. MaximumCumulativeNumberOfPaymentsPerPeriod:type: "string" typedescription: integer"Current status of the device binding" description: The maximum frequency of paymentenum: initiations per Period Type. description: >- - Active Payment Controls that apply to all payment instructions in a given - Expired period under this payment consent. The payments- forRevoked this consent may be executed on any date, as long as they are within the Controls for a PeriodType - Suspended additionalProperties: false AEServiceInitiationFixedScheduleDeviceType: type: object requiredtype: "string" - PaymentExecutionDate description: "Type of -device Amountused" properties: PaymentExecutionDateenum: type: string - Mobile format: date description: |2-- Desktop Used- toTablet specify the expected payment execution date/time. - Wearable All dates in the JSON payloads are represented in ISO 8601 date format.- Other DeviceManufacturer: An example is: 2023-04-05 Amounttype: "object" $ref: '#/components/schemas/AEAmountAndCurrency' properties: additionalProperties: false AEServiceInitiationVariableSchedule: typeModel: object required: - PaymentExecutionDate type: "string" - MaximumIndividualAmount properties: description: "Device model name" PaymentExecutionDate: type: string maxLength: 50 format: date descriptionManufacturer: >- Used to specify the expected payment execution date/time.type: "string" All dates in the JSON payloadsdescription: are"Device representedmanufacturer" in ISO 8601 date format. An example ismaxLength: 2023-04-0550 MaximumIndividualAmount: DeviceLanguage: allOf: type: "string" - $ref: '#/components/schemas/AEAmountAndCurrency' description: >-"Device language" This isDeviceLocalDateTime: the Maximum amount a variable payment can take per period. type: "string" additionalProperties: false AEServiceInitiationSinglePayment: anyOfdescription: "Device local time" - $ref: '#/components/schemas/AEServiceInitiationSingleInstantPayment' ConnectionType: - $ref: '#/components/schemas/AEServiceInitiationFutureDatedPayment' discriminatortype: "string" propertyName: Type description: "Type of mapping:connection to the internet" SingleInstantPayment: '#/components/schemas/AEServiceInitiationSingleInstantPayment' enum: SingleFutureDatedPayment: '#/components/schemas/AEServiceInitiationFutureDatedPayment' description: A Consent definition for- definingWiFi Single Payments AEServiceInitiationFutureDatedPayment: type: object - Cellular required: - Type - Other - Amount ScreenInformation: - RequestedExecutionDate properties: type: "object" Type: typeproperties: string enum: PixelDensity: - SingleFutureDatedPayment Amounttype: "number" $ref: '#/components/schemas/AEAmountAndCurrency' description: RequestedExecutionDate:"Screen pixel density" $ref: '#/components/schemas/AERequestedExecutionDate' descriptionOrientation: >- A long-lived consent that MUST be used for a single payment which willtype: "string" be authorized by the User during the payment journey,enum: but the payment will be initiated by the TPP in the future. - Portrait additionalProperties: false AEServiceInitiationSingleInstantPayment: type: object - Landscape required: BatteryStatus: - Type - Amount type: "object" properties: Type: properties: type: string Level: enum: - SingleInstantPayment type: "number" description: The Payment Type minimum: Amount:0 $ref: '#/components/schemas/AEAmountAndCurrency' descriptionmaximum: >- 100 A single immediate payment consent that MUST be used for a single IsCharging: payment which will be initiated immediately after User authorization at type: "boolean" the LFI. TouchSupport: additionalProperties: false AEAmountAndCurrency: type: "object" required: properties: - Currency - Amount propertiesSupported: Currency: $ref: '#/components/schemas/CurrencyCode'type: "boolean" Amount: MaxTouchPoints: $ref: '#/components/schemas/Amount' description: >- type: "integer" The Currency and Amount relating to the Payment additionalPropertiesminimum: false0 Amount: descriptionMotionSensors: "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217."type: "object" typeproperties: string pattern: ^\\d{1,16}\\.\\d{2}$ CurrencyCodeStatus: description: "A 3 character alphabetic code allocated to a currency under an international currency identification scheme, as described in the latest edition of the international standard ISO 4217 'Codes for the representation of currencies and funds'."type: "string" enum: type: string pattern: ^[A-Z]{3}$- InMotion IsSingleAuthorization: description: | - Stationary Specifies to the LFI that the consent authorization must be completed in a single authorizationAccelerometer: Step with the LFI type: "boolean" AEServiceInitiationConsentPermissionCodes: type: string Gyroscope: enum: - ReadAccountsBasic type: "boolean" - ReadAccountsDetail -DeviceEnvironmentContext: ReadBalances - ReadRefundAccount type: "array" AEJWEPaymentPII: type: string description: |"List of device environment context" A JSON Web Encryption (JWE) object, which encapsulates a JWS. The value isitems: a compact serialization of a JWE, which is atype: "string" consisting of five base64url-encoded parts joined by dots. Itenum: encapsulates encrypted content using JSON data structures. - VPNDetected The decrypted JWS content has the structure of the AEPaymentPII schema. - EmulatorDetected example: "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ...." AEPaymentConsentPIIBiometricCapabilities: type: "object" additionalProperties: false description: "Elements of Personal Identifiable Information data"Device biometric capabilities" properties: Initiation: SupportsBiometric: type: "object" type: "boolean" additionalProperties: false description: "The Initiation payload is sent by the initiating party to the LFI. It is used to request movement of funds from the debtor account to a creditor." Whether device supports biometric authentication" BiometricTypes: type: "array" properties: description: "Types of biometric authentication DebtorAccount:supported" typeitems: "object" additionalPropertiestype: false"string" required: enum: - "SchemeName" - Fingerprint - "Identification" - FacialRecognition description: "Unambiguous identification of the account of the debtor to which a debit- entryIris will be made as a result of the transaction." - VoicePrint properties: - Other SchemeName: AppInformation: descriptiontype: "object"Name of the identification scheme, in a coded form as publisheddescription: in"Mobile anapplication externalspecific list.information" properties: type: "string" AppVersion: enumtype: "string" description: "Version of the mobile - "IBANapplication" IdentificationPackageName: type: "string" description: | description: "Application package identifier" Identification for the account assigned by theBuildNumber: LFI based on the Account Scheme Name. type: "string" This identification isdescription: known"Application bybuild thenumber" User account owner. BrowserInformation: type: "stringobject" description: "Browser-specific information" minLength: 1 properties: NameUserAgent: type: "objectstring" description: "Complete browser user agent description:string" | IsCookiesEnabled: The Account Holder Name is the name or names of the Account owner(s) represented at the account leveltype: "boolean" description: "Whether cookies are enabled in the browser" properties: AvailableFonts: entype: "array" description: "List of available fonts" type: "string" items: description: "English value of thetype: "string" Plugins: maxLength: 70 type: "array" ardescription: "List of installed browser plugins" typeitems: "string" type: "string" description: "Arabic value of the string" PixelRatio: type: "number" maxLength: 70 description: "Device pixel ratio for scaling" additionalProperties: false UserBehavior: Creditor: type: "object" description: |"User behavior indicators" properties: (Array) Identification elements for a Creditor associated with the consentScrollBehavior: type: "arrayobject" minItemsproperties: 1 itemsDirection: $reftype: "#/components/schemas/AECreditor"string" Riskenum: $ref: "#/components/schemas/AERisk" AECreditor: - Up additionalProperties: false type: object description: Identification elements- forDown a Creditor. properties: CreditorAgent: - Both description: | Speed: Refers to the Financial Institution. type: "objectnumber" required: description: "Average scroll speed in pixels -per second"SchemeName" - "Identification"Frequency: properties: type: "number" SchemeName: typedescription: "string"Number of scroll events per minute" AccountRiskIndicators: description: | type: "object" Refers to the Identificationdescription: scheme"Risk forindicators uniquelyrelated identifyingto the Agent.account" properties: UserOnboardingDateTime: * BICFI: The BIC/SWIFT Code type: "string" * Otherformat: The ID; A Country Code followed by a Bank Code (4 character code). The full list of LFI names and 6 digits IDs are as follows: "date-time" description: "The exact date and time when the User account was activated with the TPP." enumLastAccountChangeDate: type: - "BICFIstring" -format: "Otherdate" Identification: description: "Date that the User's account was last changed" description: | LastPasswordChangeDate: The Agent is the Country Code followed by a Bank Codetype: "string" typeformat: "stringdate" Name: description: "Date of the last password change by description: "Name by which an agent is known and which is usually used to identify that agent."the User" SuspiciousActivity: type: "string" minLengthdescription: 1"Indicates any suspicious activity associated with the account" maxLength: 140 enum: PostalAddress: - NoSuspiciousActivity $ref: "#/components/schemas/AEAddress" Creditor: - SuspiciousActivityDetected type: "object" TransactionHistory: additionalProperties: false descriptiontype: "Party to which an amount of money is due.""object" properties: Name: LastDay: description: | type: "integer" Name by which a party is known and which isdescription: usually"Total usedtransactions tomade identifyby thatthe party.account in the last 24 hours" This may be used to identify the Creditorminimum: for0 international payments. typeLastYear: "string" minLength: 1 maxLength: 140 type: "integer" PostalAddress: description: |"Total transactions made by the account in the past year" (Array) Address information that locates and identifes a specific address, as definedminimum: by0 a national or international postal service." SupplementaryData: type: "arrayobject" description: | minItems: 1 Additional information that cannot be captured items:in the structured fields and/or any other specific block type: "object" This may include information that is not available in the structured fields, such as required:a user's behavioural data like their typing -speed "AddressType"and typing patterns. additionalProperties: true - "Country" properties: {} AERisk: properties: additionalProperties: false description: | AddressType: The Risk section is sent by the TPP to the LFI. It is used to specify additional details $ref: "#/components/schemas/AEAddressTypeCode" for risk/fraud scoring regarding Payments. type: "object" ShortAddressproperties: DebtorIndicators: $ref: "#/components/schemas/AEShortAddressAEDebtorIndicators" DestinationDeliveryAddress: UnitNumbertype: "object" description: | $ref: "#/components/schemas/AEUnitNumber" Destination Delivery Address FloorNumberproperties: $ref: "#/components/schemas/AEFloorNumber"RecipientType: type: "string" BuildingNumber: description: "The recipient of the goods $ref: "#/components/schemas/AEBuildingNumber" whether an individual or a corporation." StreetNameenum: - "Individual" $ref: "#/components/schemas/AEStreetName" - "Corporate" SecondaryNumber: RecipientName: $ref type: "#/components/schemas/AESecondaryNumberobject" description: "The name of District:the recipient of the goods, whether an individual or a corporation." $ref: "#/components/schemas/AEDistrict" properties: PostalCodeen: $reftype: "#/components/schemas/AEPostalCodestring" POBoxdescription: "English value of the string" $refar: "#/components/schemas/AEPOBox" ZipCodetype: "string" $refdescription: "#/components/schemas/AEZipCode" Arabic value of the string" City: NationalAddress: $ref: "#/components/schemas/AECityAEAddress" TransactionIndicators: Region$ref: "#/components/schemas/AETransactionIndicators" CreditorIndicators: $ref: "#/components/schemas/AERegionAECreditorIndicators" AETransactionIndicators: type: "object" Countrydescription: | Transaction Indicators properties: $ref: "#/components/schemas/AECountryCode" IsCustomerPresent: additionalPropertiesdescription: false"This field differentiates between automatic and manual payment initiation." CreditorAccount: descriptiontype: "Unambiguousboolean identification of the account of the creditor to whichIsContractPresent: a credit entry will be posted." typedescription: "object"Indicates if the Creditor has a contractual relationship with additionalProperties: falsethe TPP." requiredtype: boolean Channel: - "SchemeName" description: "Where the payment has been -initiated from."Identification" -type: "Namestring" propertiesenum: SchemeName:- Web - Mobile $ref: "#/components/schemas/AECreditorExternalAccountIdentificationCode" ChannelType: Identification: type: "string" $refdescription: "#/components/schemas/AEIdentification" The channel through which the transaction is being conducted" Name: enum: $ref: "#/components/schemas/AEName" - ECommerce TradingName: - InStore $ref: "#/components/schemas/AETradingName" - InApp ConfirmationOfPayeeResponse: - Telephone $ref: "#/components/schemas/AEConfirmationOfPayeeResponse" - Mail AEDebtorIndicators: type: "object" - RecurringPayment description: | - DebtorOther (User) Indicators propertiesSubChannelType: UserNametype: "string" typedescription: "object"More specific classification of the transaction channel" description: "The Name of the Userenum: initiating the Payment" - properties:WebBrowser en:- MobileApp - type:SmartTV "string" - WearableDevice description: "English value of the string" - POSTerminal ar: - ATM type: "string" - KioskTerminal description: "Arabic value of the- string"Other GeoLocationPaymentProcess: type: "object" description: "GPS to identify and track the whereabouts of the connected electronic device."Metrics related to the payment process duration and attempts" properties: requiredTotalDuration: - type: "latitudeinteger" - description: "longitude"Total time in seconds from payment initiation to completion" properties: latitudeminimum: 0 typeCurrentSessionAttempts: "string" descriptiontype: "latitudeinteger" longitudedescription: "Number of payment attempts in the current session" type: "string" minimum: 1 description: "longitude" CurrentSessionFailedAttempts: DeviceId: type: "stringinteger" description: "IMEISV numberNumber of thefailed connectedpayment electronicattempts device"in the current session" DeviceOperatingSystem: minimum: 0 type: "string" descriptionLast24HourAttempts: "Device operating system" DeviceOperatingSystemVersion: type: "integer" type: "string" description: "Number of payment attempts description:in "Devicethe operatinglast system24 versionhours" UserOnboardingDateTime: minimum: 0 type: "string" Last24HourFailedAttempts: format: "date-time" descriptiontype: "The exactinteger" date and time when the User account was activated with the TPP." description: "Number of failed payment attempts AuthenticationChannel:in the last 24 hours" description: Channel on which the User was authenticated minimum: 0 typeMerchantRisk: string enumtype: "object" description: -"Risk Appindicator details provided by the merchant" - Web AERisk: properties: additionalProperties: false description: | DeliveryTimeframe: The Risk section is sent by the TPP to the LFI. It is used to specify additional details for risk/fraud scoring regarding Payments. type: "object"type: "string" description: "Timeframe for the delivery of purchased items" properties: enum: DebtorIndicators: $ref: "#/components/schemas/AEDebtorIndicators" - ElectronicDelivery DestinationDeliveryAddress: type: "object" - SameDayShipping description: | - OvernightShipping Destination Delivery Address - properties:MoreThan1DayShipping RecipientTypeReorderItemsIndicator: type: "string" description: "TheIndicates recipient ofif the goodstransaction whether an individual or is a corporation.reorder" enum: - "Individual"FirstTimeOrder - "Corporate"Reorder RecipientNamePreOrderPurchaseIndicator: type: "objectstring" description: "TheIndicates nameif ofthis theis recipienta of the goods, whether an individual or a corporation.pre-ordered item" propertiesenum: en: - MerchandiseAvailable type: "string"- FutureAvailability description: "English value of the string" ar: IsGiftCardPurchase: type: "stringboolean" description: "Indicates if the description:transaction "Arabicincludes valuea ofgift the stringcard" NationalAddressIsDeliveryAddressMatchesBilling: $reftype: "#/components/schemas/AEAddress" boolean" TransactionIndicators: $ref: "#/components/schemas/AETransactionIndicators" CreditorIndicators: description: "Indicates if delivery address matches billing address" AddressMatchLevel: $ref: "#/components/schemas/AECreditorIndicators" AETransactionIndicators: type: "objectstring" description: | description: "Level of Transactionmatch Indicatorsbetween delivery and billing addresses" properties: IsCustomerPresent: enum: description: "This field differentiates between automatic and manual payment initiation."- FullMatch type: boolean - PartialMatch IsContractPresent: description: "Indicates if the Creditor- hasNoMatch a contractual relationship with the TPP." type:- booleanNotApplicable ChannelSupplementaryData: descriptiontype: "Where the payment has been initiated from.object" typedescription: "string"| enum: Additional information that cannot be captured in the structured fields and/or -any "Web"other specific block - "Mobile"properties: {} AECreditorIndicators: type: "object" description: | Creditor Indicators properties: AccountType: $ref: "#/components/schemas/AEExternalAccountTypeCodeAEAccountTypeCode" IsCreditorPrePopulated: $ref: "#/components/schemas/AEIsCreditorPrePopulated" TradingName: $ref: "#/components/schemas/AETradingName" IsVerifiedByTPP: $ref: "#/components/schemas/AEIsVerifiedbyTPP" AdditionalAccountHolderIdentifiers: $ref: "#/components/schemas/AEAdditionalAccountHolderIdentifiers" MerchantDetails: type: "object" description: | Details of the Merchant involved in the transaction. Merchant Details are specified only for those merchant categories that are generally expected to originate retail financial transactions properties: MerchantId: description: "MerchantId" type: "string" minLength: 8 maxLength: 20 MerchantName: description: "Name by which the merchant is known." type: "string" minLength: 1 maxLength: 350 MerchantSICCode: description: | SIC code stands for standard industrial classification (SIC) code. This four digit-number identifies a very specific short descriptor of the type of business a company is engaged in. SIC can be obtained from the Chamber of Commerce. type: "string" minLength: 3 maxLength: 4 MerchantCategoryCode: description: > Category code values are used to enable the classification of merchants into specific categories based on the type of business, trade or services supplied. Category code conforms to ISO 18245, related to the type of services or goods the merchant provides for the transaction." type: string minLength: 3 maxLength: 4 additionalProperties: false IsCreditorConfirmed: description: Creditor account details have been confirmed successfully using Confirmation of Payee type: boolean ConfirmationOfPayeeResponse: $ref: "#/components/schemas/AEConfirmationOfPayeeResponse" SupplementaryData: type: "object" description: | Additional information that cannot be captured in the structured fields and/or any other specific block properties: {} AEIsCreditorPrePopulated: description: "Is Creditor populated" type: "boolean" AEIsVerifiedbyTPP: description: "The TPP has onboarded the Creditor" type: "boolean" AEAdditionalAccountHolderIdentifiers: type: "array" items: type: "object" description: "Provides the details to identify an account." required: - "SchemeName" - "Identification" properties: SchemeName: $ref: "#/components/schemas/AERiskExternalAccountIdentificationCode" Identification: $ref: "#/components/schemas/AEIdentification" Name: $ref: "#/components/schemas/AEName" additionalProperties: false AERiskExternalAccountIdentificationCode: description: "Name of the identification scheme, in a coded form as published in an external list." type: "string" enum: - "EmiratesID" - "TradeLicenceNumber" AEConfirmationOfPayeeResponse: description: The JSON Web Signature returned by the Payee Confirmation operation at the Confirmation of Payee API. The value must be the full JWS string, including the header and signature, without decoding to an object. If Confirmation of Payee is not performed this property can be omitted type: string pattern: '^.+\..+\..+$' AEAddress: description: | (Array) Address information that locates and identifes a specific address, as defined by a national or international postal service." type: "array" minItems: 1 items: type: "object" required: - "AddressType" - "Country" properties: AddressType: $ref: "#/components/schemas/AEAddressTypeCode" ShortAddress: $ref: "#/components/schemas/AEShortAddress" UnitNumber: $ref: "#/components/schemas/AEUnitNumber" FloorNumber: $ref: "#/components/schemas/AEFloorNumber" BuildingNumber: $ref: "#/components/schemas/AEBuildingNumber" StreetName: $ref: "#/components/schemas/AEStreetName" SecondaryNumber: $ref: "#/components/schemas/AESecondaryNumber" District: $ref: "#/components/schemas/AEDistrict" PostalCode: $ref: "#/components/schemas/AEPostalCode" POBox: $ref: "#/components/schemas/AEPOBox" ZipCode: $ref: "#/components/schemas/AEZipCode" City: $ref: "#/components/schemas/AECity" Region: $ref: "#/components/schemas/AERegion" Country: $ref: "#/components/schemas/AECountryCode" additionalProperties: false AEAddressTypeCode: description: "Specifies the nature of the Address." type: "string" enum: - "Business" - "Correspondence" - "Residential" example: "Residential" AEShortAddress: description: "A short address consists of four letters: region code, branch code, division code, unique code and a four-digit number for the building." type: "string" minLength: 1 maxLength: 8 example: "ABCD1234" AEUnitNumber: description: "Identifies the unit or apartment number." type: "string" minLength: 1 maxLength: 10 example: "6" AEFloorNumber: description: "Identifies the building floor number." type: "string" minLength: 1 maxLength: 10 example: "2" AEBuildingNumber: description: "Identifies the building number." type: "string" minLength: 1 maxLength: 10 example: "34" AEStreetName: description: "Identifies the street name or road." type: "string" minLength: 1 maxLength: 70 example: "Omar Bin Hassan Street" AEDistrict: description: "Identifies the district of a city." type: "string" minLength: 1 maxLength: 35 example: "Olaya Dist." AECountryCode: description: "Indicates the country code in which the address is located (References ISO 3166-1 alpha-2)." type: "string" pattern: "^[A-Z]{2,2}$" example: "SA" AEPostalCode: description: " Identifies the postal code; a unique code assigned to a specific geographic area for efficient mail sorting and delivery purposes." type: "string" minLength: 1 maxLength: 10 example: "12345" AEPOBox: description: " Identifies the POBox." type: "string" minLength: 1 maxLength: 10 example: "11562" AEZipCode: description: "Identifies the ZIP code; a unique code assigned to a specific geographic area for efficient mail sorting and delivery purposes." type: "string" minLength: 1 maxLength: 10 example: "12366" AESecondaryNumber: description: "4 numbers representing the accurate location coordinates of the address" type: "string" minLength: 4 maxLength: 4 example: "1233" AECity: description: "Identifies the name of the city or town where the address is situated." type: "string" minLength: 1 maxLength: 35 example: "Riyadh" AERegion: description: "Identifies the region." type: "string" minLength: 1 maxLength: 35 example: "North" AECreditorExternalAccountIdentificationCode: description: "Name of the identification scheme, in a coded form as published in an external list." type: "string" enum: - "IBAN" - "AccountNumber" AEIdentification: description: | Identification for the account assigned by the LFI based on the Account Scheme Name. This identification is known by the User account owner. type: "string" minLength: 1 AEName: type: "object" description: | The Account Holder Name is the name or names of the Account owner(s) represented at the account level properties: en: type: "string" description: "English value of the string" maxLength: 70 ar: type: "string" description: "Arabic value of the string" maxLength: 70 additionalProperties: false AETradingName: type: "object" description: | The Trading Brand Name (if applicable) for the Creditor. Applicable to Payments. properties: en: type: "string" description: "English value of the string" maxLength: 70 ar: type: "string" description: "Arabic value of the string" maxLength: 70 additionalProperties: false AuthorizationDetailsDataSharingConsent: type: object required: - ConsentId - Permissions - OpenFinanceBilling - ExpirationDateTime properties: ConsentId: $ref: '#/components/schemas/AEConsentId' Permissions: type: array items: $ref: '#/components/schemas/AEAccountAccesssConsentPermissionCodes' minItems: 1 OpenFinanceBilling: $ref: '#/components/schemas/AEAccountAccessOpenFinanceBillingPost' allOf: - $ref: '#/components/schemas/AEAccountAccessAuthorizationDetailsProperties' additionalProperties: false AuthorizationDetailsInsuranceConsent: type: object required: - ConsentId - Permissions - OpenFinanceBilling - ExpirationDateTime properties: BaseConsentId: type: string description: >- The original ConsentId assigned by the TPP ExpirationDateTime: type: string format: date-time description: >- Specified date and time the permissions will expire. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 OnBehalfOf: $ref: '#/components/schemas/OnBehalfOf' ConsentId: $ref: '#/components/schemas/AEConsentId' Permissions: $ref: '#/components/schemas/AEInsuranceConsentPermissions' OpenFinanceBilling: $ref: '#/components/schemas/AEInsuranceOpenFinanceBillingPost' AEAccountAccessAuthorizationDetailsProperties: type: object properties: BaseConsentId: $ref: '#/components/schemas/AEBaseConsentId' ExpirationDateTime: type: string format: date-time description: >- Specified date and time the permissions will expire. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 TransactionFromDateTime: type: string format: date-time description: |2- Specified start date and time for the transaction query period. If this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 TransactionToDateTime: type: string format: date-time description: |2- Specified end date and time for the transaction query period. If this is not populated, the end date will be open ended, and data will be returned to the latest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 AccountType: type: array items: $ref: '#/components/schemas/AEExternalAccountTypeCode' AccountSubType: type: array items: $ref: '#/components/schemas/AEAccountSubTypeCode' OnBehalfOf: $ref: '#/components/schemas/AEOnBehalfOf' additionalProperties: false AEExternalAccountTypeCode: description: Specifies the type of account (Retail, SME or Corporate). type: string enum: - Retail - SME - Corporate OnBehalfOf: type: object description: On Behalf Of properties: TradingName: type: string description: Trading Name example: Acme Accounting Trading Name LegalName: type: string description: Legal Name example: Acme Accounting Legal Name IdentifierType: type: string description: Identifier Type enum: - Other Identifier: type: string description: Identifier example: abcd1234 additionalProperties: false EventNotification: type: object description: | A Webhook Subscription Schema required: - Webhook properties: Webhook: description: | A Webhook Schema type: object required: - "Url" - "IsActive" properties: Url: description: | The TPP Callback URL being registered with the LFI type: string example: https://api.tpp.com/webhook/callbackUrl IsActive: description: > The TPP specifying whether the LFI should send (IsActive true) or not send (IsActive false) Webhook Notifications to the TPP's Webhook URL type: boolean example: false additionalProperties: false additionalProperties: false parameters: consentId: name: consentId in: path schema: type: string required: true description: | Identifies the consent by an id id: name: id in: path schema: type: string required: true description: | Identifies the payment by an id userId: name: userId in: path schema: type: string required: true description: | Identifies the PSU associated with a consent. This should match up with the `psuIdentifier.userId` field. page: name: page in: query schema: type: integer format: int32 minimum: 1 required: false description: | The page number to retrieve in a paginated response pageSize: name: pageSize in: query schema: type: integer format: int32 minimum: 1 required: false description: | The maximum rows to retrieve in a given page. Defaults to 25 if not specified. consentType: name: consentType in: query schema: type: string description: Consents of particular accountId required: false status: name: status in: query schema: type: string description: Status of the consent required: false securitySchemes: OzoneConnectJwtAuth: description: | Communications between the API Hub and the LFI Ozone Connect implementation are secured using the "JWT Auth" mechanism, where the Client presents a signed JSON Web Token as a credential. The Server MUST verify the signature in order to authenticate the Client. Please note that the value of the `scheme` parameter is not a registered HTTP Authentication Scheme, to indicate it is specific to Ozone Connect. Please refer to API Hub documentation for further details. type: http scheme: Ozone-Connect-JWT-Auth |
...