openapi: 3.0.1
servers:
- url: https://{server}/v2024.07
description: Ozone Connect - Data Sharing APIs
variables:
server:
default: rs1.*
description: The server that the API is hosted on.
info:
title: Ozone Connect - Data Sharing APIs
description: |
This document provides the OAS3 specification for Data Sharing APIs for Ozone Connect.
These APIs should be implemented by an LFI so that Ozone
can expose these end-points to TPPs.
version: Version 2.3 Release 2023.14.1
tags:
- name: accounts
description: |
APIs that should be implemented by LFIs to expose `accounts` information to TPPs.
- name: balances
description: |
APIs that should be implemented by LFIs to expose `balances` information to TPPs.
- name: transactions
description: |
APIs that should be implemented by LFIs to expose `transactions` information to TPPs.
- name: customer
description: |
APIs that should be implemented by LFIs to expose `customer` information to TPPs.
- name: direct-debits
description: |
APIs that should be implemented by LFIs to expose `direct debit` information to TPPs.
- name: scheduled-payments
description: |
APIs that should be implemented by LFIs to expose `scheduled payment` information to TPPs.
- name: standing-orders
description: |
APIs that should be implemented by LFIs to expose `standing order` information to TPPs.
- name: offers
description: |
APIs that should be implemented by LFIs to expose `offer` information to TPPs.
- name: products
description: |
APIs that should be implemented by LFIs to expose `product` information to TPPs.
- name: statement
description: |
APIs that should be implemented by LFIs to expose `statement` information to TPPs.
paths:
/accounts:
get:
tags:
- accounts
summary: Fetch accounts
description: |
###### ACC-010-010
The API must return all the accounts specified by the `accountIds` query parameter.
###### ACC-010-140
If one or more specified accountIds does not exist or cannot be retrieved the call should continue to return other accounts.
###### ACC-010-150
If no accounts are found, the call must return a success status code `200` with an empty `data` array.
## Optionality
At least one of `/accounts` or `/accounts/:accountId` must be implemented.
If not implemented, Ozone will use the `/accounts/:accountId` end-point.
However, that is not as performant an alternative and LFIs are encouraged to implement this end-point.
operationId: findAccounts
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/AccountsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### ACC-010-020
If the `accountsIds` query parameter is not supplied.
- ###### ACC-010-040
The `o3-psu-identifier` header parameter is not specified.
- ###### ACC-010-050
Both the `accountIds` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### ACC-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### ACC-010-070, ACC-010-080, ACC-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### ACC-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}:
get:
tags:
- accounts
summary: Fetch the account specified by the account id
description: |
###### ACC-020-010
The API must return the account specified by the `accountId` path parameter.
## Optionality
At least one of `/accounts` or `/accounts/:accountId` must be implemented.
operationId: findByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/AccountResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### ACC-020-020
The account corresponding to the `accountId` query parameter does not exist or is under a bar
- ###### ACC-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __should__ be failed with a status of `400` under the following error conditions:
- ###### ACC-020-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
- ###### ACC-020-050
If both the `accountId` and `o3-psu-identifier` header are not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### ACC-020-070, ACC-020-080, ACC-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### ACC-020-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/balances:
get:
tags:
- balances
summary: Fetch balances
operationId: findBalancesByAccountIds
description: |
###### BAL-010-010
The API must return all the balances for accounts specified by the `accountIds` query parameter.
###### BAL-010-140
If one or more specified accountIds does not exist or cannot be retrieved the call should continue to return balances of other accounts.
###### BAL-010-150
If no accounts are found, the call must return a success status code `200` with an empty `data` array.
###### BAL-010-110
If the `balanceType` is specified, the LFI must return the specified balance type only.
###### BAL-010-120
If the `balanceType` is not specified, the LFI may return more than one balance record for each account. Each row would represent a balance of a different type.
## Optionality
At least one of `/balances` or `/accounts/:accountId/balances` must be implemented.
If not implemented, Ozone will use the `/accounts/:accountId/balances` end-point.
However, that is not as performant an alternative and LFIs are encouraged to implement this end-point.
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
- name: balanceType
in: query
description: Type of balance to be returned
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/BalancesResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### BAL-010-020
If the `accountsIds` query parameter is not supplied
- ###### BAL-010-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
- ###### BAL-010-050
Both the `accountIds` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### BAL-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### BAL-010-130
The `balanceType` query parameter has an unexpected value or is not supported by the connector.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### BAL-010-070, BAL-010-080, BAL-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### BAL-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/balances:
get:
tags:
- balances
summary: Fetch the balances for the account specified by the account id.
operationId: findBalancesByAccountId
description: |
###### BAL-020-010
Retrieves the balance for account specified by the `accountId` parameter.
###### BAL-020-110
If the `balanceType` is specified, the LFI must return the specified balance type only.
###### BAL-020-120
If the balanceType is not specified, the LFI may return more than one balance record for each account. Each row would represent a balance of a different type.
## Optionality
At least one of `/balances` or `/accounts/:accountId/balances` must be implemented.
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
- name: balanceType
in: query
description: Type of balance to be returned
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/BalancesResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### BAL-020-020
The balance for account corresponding to the `accountId` query parameter does not exist or is under a bar
- ###### BAL-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### BAL-020-130
The `balanceType` query parameter has an unexpected value or is not supported by the connector.
The operation __should__ be failed with a status of `400` under the following error conditions:
- ###### BAL-020-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
- ###### BAL-020-050
Both the `accountId` query parameter and the `o3-psu-identifier` header parameter are not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### BAL-020-070, BAL-020-080, BAL-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### BAL-020-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/transactions:
get:
tags:
- transactions
summary: Fetch transactions
description: |
One of the `psuIdentifier` header parameter or `accountIds` query parameter would always be specified.
The field `creditDebitIndicator` should contain "Credit" if it is incoming transaction / adding money to account, or "Debit" if it is outgoing transaction / paying someone.
The term `creditor` refers to the one receiving the money. So, when the account holder is the one sending the money, the field `creditorAccount` needs to contain the information about the receiving side, and the field `creditorAgent` needs to contain the information about the financial institution that serves the creditor.
The term `debtor` refers to the one sending the money. So, when the account holder is the one receiving the money, the field `debtorAccount` needs to contain the information about the sender, and the field `debtorAgent` needs to contain information about the financial institution that serves the debtor.
For the field `balance`, “Credit” is 0 or positive balance and “Debit” is when customer has negative balance on their account. The `amount` in the `balance` field is always a positive value.
`transactionInformation` should match up with the narration (description) seen on the direct channels and statements.
Populate `bankTransactionCode` when using ISO codes in direct channels. Populate `proprietaryBankTransactionCode` when not using ISO codes in direct channels.
`currencyExchange` section is used where Forex transactions are made off pre-negotiated treasury or forex contracts with "call off" rates. Usually only used with mid to high-end corporate accounts
Most of those fields are optional, the bank would typically provide those they are included on the online transactions or statements.
For e.g. CreditorAgent / PostalAddress is typically found on inward foreign remittances (on SWIFT messages)
General rule of thumb: shouldn't have to compute data / find data from multiple systems because the information expected is what would "match" the direct channels. If there are situations where data is not readily available, chances are that that information is already stretching beyond regulatory needs.
###### TXN-010-010
Retrieves all the transactions for the accounts specified.
If `accountIds` is specified, transactions for the specified accounts.
If only `psuIdentifier` is specified, return transactions for all the accounts for the PSU.
###### TXN-010-011
Retrieves the transactions for the list of accounts specified, either as accountIds in the query params, or the psuIdentified in the header, starting from the specified valid `fromBookingDateTime` query parameter, until today.
###### TXN-010-012
Retrieves the transactions for the account specified, starting from the begining, and ending at the specified valid `toBookingDateTime` query parameter.
###### TXN-010-013
Retrieves the transactions for the account specified, starting from the the specified valid `fromBookingDateTime` query parameter, and ending at the specified valid `toBookingDateTime` query parameter.
###### TXN-010-020
If one or more specified accountIds does not exist or cannot be retrieved, the call should continue to return transactions for other accounts.
## Optionality
At least one of `/transactions` or `/accounts/:accountId/transactions` must be implemented.
## Optionality
At least one of `/transactions` or `/accounts/:accountId/transactions` must be implemented.
If not implemented, Ozone will use the `/accounts/:accountId/transactions` end-point.
However, that is not as performant an alternative and LFIs are encouraged to implement this end-point.
operationId: findTransactions
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
- $ref: "#/components/parameters/pagination-page"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
- $ref: "#/components/parameters/transaction-status"
- $ref: "#/components/parameters/transaction-fromBookingDateTime"
- $ref: "#/components/parameters/transaction-toBookingDateTime"
- $ref: "#/components/parameters/transaction-creditDebitIndicator"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/TransactionsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### TXN-010-020
If one or more specified accountIds does not exist or cannot be retrieved, the call should continue to return transactions for other accounts.
- ###### TXN-010-040
If the `o3-psu-identifier` header parameter is not specified.
- ###### TXN-010-050
Both the `accountIds` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### TXN-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### TXN-010-170
The `fromBookingDateTime` is not in ISO Date format
- ###### TXN-010-180
The `toBookingDateTime` is not in ISO Date format
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### TXN-010-070, TXN-010-080, TXN-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### TXN-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/transactions:
get:
tags:
- transactions
summary: Fetch transactions for the account specified by the accountId
description: |
For details on the data to be returned in the response, refer to the `/transactions` endpoint documentation above.
###### TXN-020-010
Retrieves all the transactions for the account specified by the `accountId` in the URL.
###### TXN-020-011
Retrieves the transactions for the account specified, starting from the specified valid `fromBookingDateTime` query parameter, until today.
###### TXN-020-012
Retrieves the transactions for the account specified, starting from the begining, and ending at the specified valid `toBookingDateTime` query parameter.
###### TXN-020-013
Retrieves the transactions for the account specified, starting from the the specified valid `fromBookingDateTime` query parameter, and ending at the specified valid `toBookingDateTime` query parameter.
###### TXN-020-020
If the account does not exist or is under a bar, then the LFI should return an error with status 400.
## Optionality
At least one of `/transactions` or `/accounts/:accountId/transactions` must be implemented.
operationId: findTransactionsByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
- $ref: "#/components/parameters/pagination-page"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
example: abc-123
- $ref: "#/components/parameters/transaction-status"
- $ref: "#/components/parameters/transaction-fromBookingDateTime"
- $ref: "#/components/parameters/transaction-toBookingDateTime"
- $ref: "#/components/parameters/transaction-creditDebitIndicator"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/TransactionsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### TXN-020-020
If the account does not exist or is under a bar, then the LFI should return an error with status 400.
- ###### TXN-020-040
If the `o3-psu-identifier` header parameter is not specified.
- ###### TXN-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### TXN-020-050
Both the `accountId` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### TXN-020-170
The `fromBookingDateTime` is not in ISO Date format
- ###### TXN-020-180
The `toBookingDateTime` is not in ISO Date format
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### TXN-020-070, TXN-020-080, TXN-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### TXN-020-100
The API consumer is not authorised.
security:
- bearerAuth: []
/accounts/{accountId}/transactions/{transactionId}:
get:
tags:
- transactions
summary: Fetch transaction for the account specified by the accountId and transactionId
description: |
For details on the data to be returned in the response, refer to the `/transactions` endpoint documentation above.
###### TXN-020-010
Retrieves the transaction for the account specified by the `accountId` and `transactionId` in the URL.
###### TXN-020-011
Retrieves the transaction for the account specified, starting from the specified valid `fromBookingDateTime` query parameter, until today.
###### TXN-020-012
Retrieves the transaction for the account specified, starting from the begining, and ending at the specified valid `toBookingDateTime` query parameter.
###### TXN-020-013
Retrieves the transactions for the account specified, starting from the the specified valid `fromBookingDateTime` query parameter, and ending at the specified valid `toBookingDateTime` query parameter.
###### TXN-020-020
If the account does not exist or is under a bar, then the LFI should return an error with status 400.
## Optionality
At least one of `/transactions` or `/accounts/:accountId/transactions` must be implemented.
operationId: findTransactionsByAccountIdAndTransactionId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
- $ref: "#/components/parameters/pagination-page"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
example: abc-123
- name: transactionId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
example: abc-123
- $ref: "#/components/parameters/transaction-status"
- $ref: "#/components/parameters/transaction-fromBookingDateTime"
- $ref: "#/components/parameters/transaction-toBookingDateTime"
- $ref: "#/components/parameters/transaction-creditDebitIndicator"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/TransactionResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### TXN-020-020
If the account does not exist or is under a bar, then the LFI should return an error with status 400.
- ###### TXN-020-040
If the `o3-psu-identifier` header parameter is not specified.
- ###### TXN-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### TXN-020-050
Both the `accountId` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### TXN-020-170
The `fromBookingDateTime` is not in ISO Date format
- ###### TXN-020-180
The `toBookingDateTime` is not in ISO Date format
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### TXN-020-070, TXN-020-080, TXN-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### TXN-020-100
The API consumer is not authorised.
security:
- bearerAuth: []
/accounts/{accountId}/statements/{statementId}/transactions:
get:
tags:
- transactions
summary: "Get Transactions for given statement id"
operationId: "FindTransactionsByAccountsAccountIdStatementsStatementId"
parameters:
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: accountId of the statement to be queried
required: true
schema:
type: string
- name: statementId
in: path
description: statementId of the statement to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/TransactionByStatementId"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### TXN-020-020
If the account does not exist or is under a bar, then the LFI should return an error with status 400.
- ###### TXN-020-040
If the `o3-psu-identifier` header parameter is not specified.
- ###### TXN-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### TXN-020-050
Both the `accountId` query parameter and the `o3-psu-identifier` header parameter are not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### TXN-020-070, TXN-020-080, TXN-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### TXN-020-100
The API consumer is not authorised.
security:
- bearerAuth: []
/direct-debits:
get:
tags:
- direct-debits
summary: Fetch direct debits
description: |
###### DBT-010-010
The API must return all the direct debits specified by the `accountIds` query parameter.
###### DBT-010-020
If the `accountsIds` query parameter is not specified.
###### DBT-010-140
If one or more specified accountIds does not exist or cannot be retrieved the call should continue to return other accounts.
###### DBT-010-150
If no accounts are found, the call must return a success status code `200` with an empty `data` array.
## Optionality
At least one of `/direct-debits` or `/accounts/:accountId/direct-debits` must be implemented.
If not implemented, Ozone will use the `/accounts/:accountId/direct-debits` end-point.
However, that is not as performant an alternative and LFIs are encouraged to implement this end-point.
operationId: findDirectDebits
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DirectDebitsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### DBT-010-020
If the `accountsIds` query parameter is not specified.
- ###### DBT-010-040
If the `o3-psu-identifier` header parameter is not specified.
- ###### DBT-010-050
Both the `accountIds` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### DBT-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### DBT-010-070, DBT-010-080, DBT-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### DBT-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/direct-debits:
get:
tags:
- direct-debits
summary: Fetch the direct debits specified by the account id
description: |
###### DBT-020-010
Retrieves the direct debits specified by the `accountId` parameter.
## Optionality
At least one of `/direct-debits` or `/accounts/:accountId/direct-debits` must be implemented.
operationId: findDirectDebitByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DirectDebitsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### DBT-020-020
The account corresponding to the `accountId` query parameter does not exist or is under a bar
- ###### DBT-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __should__ be failed with a status of `400` under the following error conditions:
- ###### DBT-020-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
- ###### DBT-020-050
Both the `accountId` query parameter and the `o3-psu-identifier` header parameter are not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### DBT-020-070, DBT-020-080, DBT-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### DBT-020-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/scheduled-payments:
get:
tags:
- scheduled-payments
summary: Fetch scheduled payments
description: |
###### FDP-010-010
The API must return all the scheduled payments specified by the `accountIds` query parameter.
###### FDP-010-020
If the `accountsIds` query parameter is not specified.
###### FDP-010-050
Both the `accountsIds` and `o3-psu-identifier` are not specified.
###### FDP-010-140
If one or more specified accountIds does not exist or cannot be retrieved the call should continue to return other accounts.
###### FDP-010-150
If no accounts are found, the call must return a success status code `200` with an empty `data` array.
## Optionality
At least one of `/scheduled-payments` or `/accounts/:accountId/scheduled-payments` must be implemented.
If not implemented, Ozone will use the `/accounts/:accountId/scheduled-payments` end-point.
However, that is not as performant an alternative and LFIs are encouraged to implement this end-point.
operationId: findScheduledPayments
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ScheduledPaymentsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### FDP-010-020
If the `accountsIds` query parameter is not specified.
- ###### FDP-010-040
If the `o3-psu-identifier` header is not specified.
- ###### FDP-010-050
Both the `accountIds` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### FDP-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### FDP-010-070, FDP-010-080, FDP-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### FDP-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/scheduled-payments:
get:
tags:
- scheduled-payments
summary: Fetch the scheduled payments specified by the account id
description: |
###### FDP-020-010
Retrieves the scheduled payments specified by the `accountId` parameter.
## Optionality
At least one of `/scheduled-payments` or `/accounts/:accountId/scheduled-payments` must be implemented.
operationId: findScheduledPaymentByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ScheduledPaymentsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### FDP-020-020
The account corresponding to the `accountId` query parameter does not exist or is under a bar
- ###### FDP-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __should__ be failed with a status of `400` under the following error conditions:
- ###### FDP-020-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
- ###### FDP-020-050
Both the `accountId` query parameter and the `o3-psu-identifier` header parameter are not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### FDP-020-070, FDP-020-080, FDP-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### FDP-020-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/standing-orders:
get:
tags:
- standing-orders
summary: Fetch standing orders
description: |
###### STO-010-010
The API must return all the standing orders specified by the `:accountIds` query parameter.
###### STO-010-020
If the `accountsIds` query parameter is not specified, the API must return all the standing orders for
the PSU identified by the `o3-psu-identifier` header.
###### STO-010-030
If one or more specified accountIds does not exist or cannot be retrieved the call should continue to return other accounts.
###### STO-010-040
If no accounts are found, the call must return a success status code `200` with an empty `data` array.
## Optionality
At least one of `/standing-orders` or `/accounts/:accountId/standing-orders` must be implemented.
If not implemented, Ozone will use the `/accounts/:accountId/standing-orders` end-point.
However, that is not as performant an alternative and LFIs are encouraged to implement this end-point.
operationId: findStandingOrders
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/StandingOrdersResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### STO-010-020
If the `accountsIds` query parameter is not specified.
- ###### STO-010-040
If the `o3-psu-identifier` header is not specified.
- ###### STO-010-050
Both the `accountIds` query parameter and the `o3-psu-identifier` header parameter are not specified.
- ###### STO-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### STO-010-070, STO-010-080, STO-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### STO-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/standing-orders:
get:
tags:
- standing-orders
summary: Fetch the standing orders specified by the account id
description: |
###### STO-020-010
Retrieves the standing orders specified by the `accountId` parameter.
## Optionality
At least one of `/standing-orders` or `/accounts/:accountId/standing-orders` must be implemented.
operationId: findStandingOrderByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/StandingOrdersResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### STO-020-020
The account corresponding to the `accountId` query parameter does not exist or is under a bar
- ###### STO-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __should__ be failed with a status of `400` under the following error conditions:
- ###### STO-020-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
- ###### STO-020-050
The LFI should fail the call if the `accountId` does not refer to an account that
is accessible by a the PSU identified by the `o3-psu-identifier` header.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### STO-020-060, STO-020-070, STO-020-080
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### STO-020-090
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/customer:
get:
tags:
- customer
summary: Fetch customer
description: |
###### CUS-010-040
The API must return the customer for the PSU identified by the `o3-psu-identifier` header.
###### CUS-010-190
If no customer is found, the call must return a success status code `200` with an empty `data` object.
## Optionality
operationId: findCustomer
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- name: o3-psu-identifier
in: header
schema:
type: string
required: true
description: A Base64 encoded representation of the psuIdentifier JSON object.
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CustomerResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### CUS-010-040
The `o3-psu-identifier` header parameter are not specified.
- ###### CUS-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### CUS-010-070, CUS-010-080, CUS-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### CUS-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/customer:
get:
tags:
- customer
summary: Fetch the customers specified by the account id
description: |
###### CUS-020-040
The API must return the customer for the PSU identified by the `o3-psu-identifier` header.
###### CUS-020-190
If no customer is found, the call must return a success status code `200` with an empty `data` object.
## Optionality
operationId: findCustomerByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- name: o3-psu-identifier
in: header
schema:
type: string
required: true
description: A Base64 encoded representation of the psuIdentifier JSON object.
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
example: abc-123
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CustomersResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### CUS-020-040
The `o3-psu-identifier` header parameter are not specified.
- ###### CUS-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### CUS-020-070, CUS-020-080, CUS-020-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### CUS-020-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/offers:
get:
tags:
- offers
summary: Fetch offers
operationId: findOffers
description: |
###### OFF-010-010
The API must return all the offers for accounts consented to by the psu - identifed by the `o3-psu-identifier` header.
###### OFF-010-020
If the PSU identifed by `o3-psu-identifier` header exists but has no offers, the call must return a success status code 200 with an empty data array.
###### OFF-010-030
If the PSU identified by `o3-psu-identifier` header does not exist, the call must return a success status code 200 with an empty data array.
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- name: o3-psu-identifier
in: header
schema:
type: string
required: true
description: A Base64 encoded representation of the psuIdentifier JSON object.
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OffersResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
###### OFF-010-040
The `o3-psu-identifier` header parameter is not specified.
###### OFF-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
###### OFF-010-060
The o3-api-uri header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### OFF-010-060, OFF-010-070, OFF-010-080
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### OFF-010-090
The API consumer is not authorised
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/offers:
get:
tags:
- offers
summary: Fetch the offers for the account specified by the account id.
operationId: findOffersByAccountId
description: |
###### OFF-020-010
Retrieves the offers for account specified by the `accountId` parameter.
## Optionality
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- name: o3-psu-identifier
in: header
schema:
type: string
required: true
description: A Base64 encoded representation of the psuIdentifier JSON object.
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
example: abc-123
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OffersResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
###### OFF-020-020
The account corresponding to the `accountId` query parameter does not exist or is under a bar.
###### OFF-020-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
###### OFF-020-050
The LFI should fail the call if the `accountId` does not refer to an account that
is accessible by the PSU identified by the `o3-psu-identifier` header.
The operation __may__ be failed with a status of `400` under the following error conditions:
###### OFF-020-060, OFF-020-070, OFF-020-080
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
###### OFF-020-090
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/beneficiaries:
get:
tags:
- beneficiaries
summary: Fetch beneficiaries
description: |
###### BEN-010-010
The API must return all the beneficiaries specified by the `accountIds` query parameter.
###### BEN-010-020
If the `accountsIds` query parameter is not specified, the API must return all the beneficiaries for
the PSU identified by the `o3-psu-identifier` header.
###### BEN-010-140
If one or more specified accountIds does not exist or cannot be retrieved the call should continue to return other accounts.
###### BEN-010-150
If no accounts are found, the call must return a success status code `200` with an empty `data` array.
## Optionality
At least one of `/beneficiaries` or `/accounts/:accountId/beneficiaries` must be implemented.
operationId: findBeneficiaries
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/BeneficiariesResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### BEN-010-020
If the `accountsIds` query parameter is not specified.
- ###### BEN-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### BEN-010-040
The `o3-psu-identifier` is not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### BEN-010-070, BEN-010-080, BEN-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### BEN-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/beneficiaries:
get:
tags:
- beneficiaries
summary: Fetch the beneficiaries specified by the account id
description: |
###### BEN-020-010
Retrieves the beneficiaries specified by the `accountId` parameter.
###### BEN-020-020
The account corresponding to the `accountId` query parameter does not exist or is under a bar
## Optionality
At least one of `/beneficiaries` or `/accounts/:accountId/beneficiaries` must be implemented.
operationId: findBeneficiariesByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: Id of the account to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/BeneficiariesResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### BEN-020-020
If the `accountsId` query parameter is not specified.
- ###### BEN-020-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __should__ be failed with a status of `400` under the following error conditions:
- ###### BEN-020-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
- ###### BEN-020-050
Both the `accountId` query parameter and the `o3-psu-identifier` header parameter are not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### BEN-020-060, BEN-020-070, BEN-020-080
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### BEN-020-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/customer/beneficiaries:
get:
tags:
- beneficiaries
summary: Fetch the beneficiaries specified by the `o3-psu-identifier` header
description: |
###### BEN-030-010
Retrieves the beneficiaries specified by the `o3-psu-identifier` header
operationId: findBeneficiariesByCustomerId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/BeneficiariesResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### BEN-030-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __should__ be failed with a status of `400` under the following error conditions:
- ###### BEN-030-040
The LFI should fail the call if the `o3-psu-identifier` header is not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### BEN-030-070, BEN-030-080, BEN-030-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### BEN-030-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/products:
get:
tags:
- products
summary: Fetch products.
description: |
The API must return all the products that are provided by the LFI.
If no products are found, the call must return a success status code `200` with an empty `data` array.
It should be noted that the TPP calling the standards based API may not do so under a consent. The PSU is not identifiable and the `o3-consent-id` and `o3-psu-identifier` headers should not be expected.
operationId: findProducts
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
# - $ref: '#/components/parameters/consentId'
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ProductsResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
- ###### PRD-010-040
The `o3-psu-identifier` header parameter is not specified.
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-070, PRD-010-080, PRD-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### PRD-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/statement/accounts:
get:
tags:
- statement
summary: Fetch statement accounts.
description: |
###### STT-010-010
The API must return all the statements specified by the `:accountIds` query parameter.
###### STT-010-020
If the `accountsIds` query parameter is not specified, the API must return all the statements for
the PSU identified by the `o3-psu-identifier` header.
###### STT-010-030
If one or more specified accountIds does not exist or cannot be retrieved the call should continue to return other accounts.
###### STT-010-040
If no accounts are found, the call must return a success status code `200` with an empty `data` array.
operationId: findStatement
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# query parameters
- name: accountIds
in: query
description: Comma separated ids of the accounts to be returned
schema:
type: string
minimum: 1
required: true
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/StatementResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-070, PRD-010-080, PRD-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### PRD-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/statements:
get:
tags:
- statement
summary: Fetch statement by accountId.
description: |
###### STT-020-010
Retrieves the statements specified by the `accountId` parameter.
operationId: findStatementByAccountId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: accountId of the statement to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/StatementResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-070, PRD-010-080, PRD-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### PRD-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
/accounts/{accountId}/statements/{statementId}:
get:
tags:
- statement
summary: Fetch statement by accountId.
description: |
###### STT-030-010
Retrieves the statements specified by the `accountId` parameter.
operationId: findStatementByStatementId
parameters:
# common header parameters that set context
- $ref: "#/components/parameters/aspspId"
- $ref: "#/components/parameters/callerOrgId"
- $ref: "#/components/parameters/callerClientId"
- $ref: "#/components/parameters/callerSoftwareStatementId"
- $ref: "#/components/parameters/apiUri"
- $ref: "#/components/parameters/apiOperation"
- $ref: "#/components/parameters/consentId"
- $ref: "#/components/parameters/callerInteractionId"
- $ref: "#/components/parameters/ozoneInteractionId"
- $ref: "#/components/parameters/psuIdentifier"
# Path param definitions
- name: accountId
in: path
description: accountId of the statement to be queried
required: true
schema:
type: string
- name: statementId
in: path
description: statementId of the statement to be queried
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/StatementResponse"
400:
description: |
The operation __must__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-030
The `o3-aspsp-id` header is missing or has an unexpected value
The operation __may__ be failed with a status of `400` under the following error conditions:
- ###### PRD-010-070, PRD-010-080, PRD-010-090
One or more of the mandatory header parameters is not specified or has an unexpected value
- `o3-api-uri`,
- `o3-api-operation`,
- `o3-ozone-interaction-id`
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
401:
description: |
The operation __must__ be failed with a status of `401` under the following error conditions:
- ###### PRD-010-100
The API consumer is not authorised.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
security:
- bearerAuth: []
components:
schemas:
#
# Schemas for Accounts
#
AccountsResponse:
type: object
example:
data:
- id: string
brandName: string
companyCnpj: string
accountType: string
accountSubType: string
currency: string
status: string
compeCode: string
branchCode: string
checkDigit: string
resourceType: string
resourceStatus: string
accountHolderName: string
accountholderShortName: string
servicer:
schemeName: string
identification: string
accountNumbers:
- name: string
schemeName: string
identification: string
secondaryIdentification: string
product:
id: string
productName: string
bundleName: string
accountOwnership: string
productCategory: string
isOwned: boolean
specificAccountUType: string
creditCard:
minPaymentAmount: string
paymentDueAmount: string
paymentCurrency: string
paymentDueDate: string
termDeposit:
- lodgementDate: string
maturityDate: string
maturityAmount: string
maturityCurrency: string
maturityInstructions: string
loan:
originalStartDate: string
originalLoanAmount: string
originalLoanCurrency: string
loanEndDate: string
nextInstalmentDate: string
minInstalmentAmount: string
minInstalmentCurrency: string
maxRedraw: string
maxRedrawCurrency: string
minRedraw: string
minRedrawCurrency: string
offsetAccountEnabled: boolean
offsetAccountIds: string[]
repaymentType: string
repaymentFrequency: string
depositRate: string
lendingRate: string
depositRates:
- depositRateType: string
rate: string
calculationFrequency: string
applicationFrequency: string
tiers:
- name: string
unitOfMeasure: string
minimumValue: string
maximumValue: string
rateApplicationMethod: string
applicabilityConditions:
additionalInfo: string
additionalInfoUri: string
additionalInfo: string
additionalInfoUri: string
additionalValue: string
additionalInfo: string
additionalInfoUri: string
lendingRates:
- lendingRateType: string
rate: string
comparisonRate: string
calculationFrequency: string
applicationFrequency: string
interestPaymentDue: string
repaymentType: string
loanPurpose: string
tiers:
- name: string
unitOfMeasure: string
minimumValue: string
maximumValue: string
rateApplicationMethod: string
applicabilityConditions:
additionalInfo: string
additionalInfoUri: string
additionalInfo: string
additionalInfoUri: string
additionalValue: string
additionalInfo: string
additionalInfoUri: string
features:
- featureType: string
additionalValue: string
additionalInfo: string
additionalInfoUri: string
isActivated: boolean
fees:
- name: string
feeType: string
amount: string
balanceRate: string
transactionRate: string
accruedRate: string
accrualFrequency: string
currency: string
additionalValue: string
additionalInfo: string
additionalInfoUri: string
discounts:
- description: string
discountType: string
amount: string
balanceRate: string
transactionRate: string
accruedRate: string
feeRate: string
additionalValue: string
additionalInfo: string
additionalInfoUri: string
eligibility:
- discountEligibilityType: string
additionalValue: string
additionalInfo: string
additionalInfoUri: string
addresses:
- addressUType: string
simple:
mailingName: string
addressLine1: string
addressLine2: string
addressLine3: string
postcode: string
city: string
state: string
country: string
paf:
dpid: string
thoroughfareNumber1: number
thoroughfareNumber1Suffix: string
thoroughfareNumber2: number
thoroughfareNumber2Suffix: string
flatUnitType: string
flatUnitNumber: string
floorLevelType: string
floorLevelNumber: string
lotNumber: string
buildingName1: string
buildingName2: string
streetName: string
streetType: string
streetSuffix: string
postalDeliveryType: string
postalDeliveryNumber: string
postalDeliveryNumberPrefix: number
postalDeliveryNumberSuffix: string
localityName: string
postcode: string
state: string
meta: {}
properties:
data:
type: array
items:
$ref: "#/components/schemas/Account"
meta:
$ref: "#/components/schemas/Meta"
AccountResponse:
type: object
properties:
data:
$ref: "#/components/schemas/Account"
meta:
$ref: "#/components/schemas/Meta"
Account:
type: object
description: |
A descriptor for an account.
This is a composite object that may be expanded in the future to support
additional account types for new API standards and account types.
oneOf:
- $ref: "#/components/schemas/GenericAccount"
GenericAccount:
type: object
properties:
id:
type: string
product:
$ref: "#/components/schemas/ProductIdentifier"
multiAuth:
description: |
type: boolean
currency:
$ref: "#/components/schemas/TCurrency"
businessCustomer:
type: array
items:
$ref: "#/components/schemas/CustomerIdentifier"
customers:
description: |
type: array
items:
$ref: "#/components/schemas/CustomerIdentifier"
minimum: 1
accountNumbers:
type: array
items:
$ref: "#/components/schemas/AccountNumber"
minimum: 1
status:
description: |
The status of the account.
The LFI must return a status code from the enumeration of the underlying standard.
type: string
statusUpdateDateTime:
description: The last time when the status was updated
Only used for SAMA KSA
type: string
format: date-time
accountType:
type: string
description: |
accountSubType:
type: string
description:
type: string
nickName:
type: string
openingDate:
type: string
format: date-time
maturityDate:
type: string
format: date-time
accountHolderName:
$ref: "#/components/schemas/AccountHolderName"
accountholderShortName:
$ref: "#/components/schemas/AccountHolderShortName"
servicer:
$ref: "#/components/schemas/Agent"
required:
- id
- product
- accountNumbers
additionalProperties: false
CustomersResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Customer"
meta:
$ref: "#/components/schemas/Meta"
CustomerResponse:
type: object
properties:
data:
$ref: "#/components/schemas/Customer"
meta:
$ref: "#/components/schemas/Meta"
Customer:
type: object
properties:
id:
type: string
description: |
number:
type: string
description: |
customerName:
type: string
description: |
accountRole:
type: string
legalStructure:
type: string
contact:
$ref: "#/components/schemas/Contact"
verifiedClaims:
type: "array"
description: "Container object containing entries for the trust framework and the evidence used to verify the PSU 1 claims"
items:
$ref: "#/components/schemas/VerifiedClaim"
required:
- customerType
Contact:
type: object
properties:
email:
type: string
phone:
type: string
mobile:
type: string
address:
type: array
items:
$ref: "#/components/schemas/Address"
required:
- email
- phone
- mobile
VerifiedClaim:
description: |
Verified Claims :This is Required field for ksa
Container object containing entries for the trust framework and the evidence used to verify the PSU 1 claims
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-representing-verified-claim](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-representing-verified-claim)
type: "object"
required:
- "claims"
properties:
verification:
description: |
Verification
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element)
type: "object"
required:
- "trustFramework"
properties:
trustFramework:
type: "string"
enum: [SA_IAM, SA_AML, SA_MyAddress, SA_MobileTelecoms]
description: |
Identifies the trust framework used for PSU 1 verification. This consists of a set of rules and standards and sets out requirements so that organisations know what ‘good’ identity verification looks like.
Trust Frameworks: [https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)
SA_IAM, SA_AML, SA_MYAddress, SA_MobileTelecoms are to be confirmed as the finalised list from SAMA
assuranceLevel:
type: "string"
description: |
Determines the assurance level associated with the PSU1 in the respective VerifiedClaims. The value range depends on the respective TrustFramework value.
Assurance Level: [https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)
assuranceProcess:
type: "object"
description: |
Determines the assurance process that was followed. This reflects how the evidence meets the requirements of the TrustFramework and AssuranceLevel. The factual record of the evidence and the procedures followed are recorded in the evidence element, this element is used to cross reference the evidence to the AssuranceLevel followed
OpenID Connect for Identity Assurance 1.0: [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element)
properties:
policy:
type: "string"
description: "Representing the standard or policy that was followed."
procedure:
type: "string"
description: "Representing a specific procedure from the policy that was followed."
assuranceDetails:
type: "array"
description: "Denoting the details about how the evidence complies with the policy"
items:
type: "object"
properties:
assuranceType:
description: "String denoting which part of the assurance_process the evidence fulfils"
type: "string"
assuranceClassification:
description: "String reflecting how the evidence has been classified or measured as required by the TrustFramework"
type: "string"
evidenceRef:
description: "Evidence being referred to"
type: "array"
items:
type: "object"
required:
- "txn"
properties:
txn:
description: "Identifier referring to the txn used in the CheckDetails."
type: "string"
evidenceMetadata:
description: "Object indicating any meta data about the evidence that is required by the AssuranceProcess in order to demonstrate compliance with the TrustFramework. It has the following sub-elements"
type: "object"
properties:
evidenceClassification:
type: "string"
description: "String indicating how the process demonstrated by the check_details for the evidence is classified by the AssuranceProcess in order to demonstrate compliance with the TrustFramework."
time:
type: "string"
format: "date-time"
description: |
Representing the date and time when the identity verification process took place. 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
verificationProcess:
type: "string"
description: |
Unique reference to the identity verification process as performed by the OP. Used for identifying and retrieving details in case of disputes or audits. Presence of this element might be required for certain trust frameworks.
evidence:
description: |
The type of evidence allowed for providing PSU 1 verification.
OpenID Connect for Identity Assurance 1.0: [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element)
type: "array"
items:
anyOf:
- $ref: "#/components/schemas/OBPartyIdentityEvidenceTypeDocument"
- $ref: "#/components/schemas/OBPartyIdentityEvidenceTypeElectronicRecord"
claims:
description: |
Standard Claims:
[https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)
IdentityAssurance Claims:
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-claims](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-claims)
type: "object"
properties:
sub:
description: |
Subject - Identifier for the PSU 1 at the Issuer.
type: "string"
name:
description: |
The PSU 1 name claim that has been verified by the PASP in english
type: "string"
nameInLocalLanguage:
description: |
name in local language
type: string
givenName:
description: |
The PSU 1 given name claim that has been verified by the PASP.
Given name (also called forename) is used to differentiate from the surname or family name. Also called first name to distinguish it from the family name. Some people have two or more given names or acquired names that they use before the family name.
type: "string"
givenNameInLocalLanguage:
description: |
given name in local language
type: string
grandfatherName:
description: |
The PSU 1 grandfather name claim that has been verified by the PASP.
type: "string"
grandfatherNameInLocalLanguage:
description: |
grandfather name in local language
type: string
familyName:
description: |
The PSU 1 family name claim that has been verified by the PASP.
type: "string"
familyNameInLocalLanguage:
description: |
family name in local language
type: string
middleName:
description: |
The PSU 1 middle name claim that has been verified by the PASP.
type: "string"
middleNameInLocalLanguage:
description: |
middle name in local language
type: string
nickname:
description: |
The PSU 1 nickname claim that has been verified by the PASP.
type: "string"
nickNameInLocalLanguage:
description: |
nickname in local language
type: string
preferredUsername:
description: |
The PSU 1 preferred username claim that has been verified by the PASP.
type: "string"
profile:
description: |
The PSU 1 profile id claim that has been verified by the PASP.
type: "string"
picture:
description: |
The PSU 1 photo claim that has been verified by the PASP.
type: "string"
website:
description: |
The PSU 1 website claim that has been verified by the PASP.
type: "string"
email:
description: |
The PSU 1 Email claim that has been verified by the PASP.
type: "string"
emailVerified:
description: |
The PSU 1 Email Verified claim that has been verified by the PASP.
type: "boolean"
gender:
description: |
The PSU 1 Gender claim that has been verified by the PASP.
type: "string"
birthDate:
description: |
The PSU 1 date of birth claim that has been verified by the PASP.
type: "string"
format: "date"
zoneInfo:
description: |
The PSU 1 timezone claim that has been verified by the PASP.
type: "string"
locale:
description: |
The PSU 1 locale claim that has been verified by the PASP.
type: "string"
phoneNumber:
description: |
The PSU 1 phone number claim that has been verified by the PASP.
type: "string"
phoneNumberVerified:
description: |
The PSU 1 verified phone number claim that has been verified by the PASP.
type: "boolean"
salutation:
description: |
The PSU 1 Salutation claim that has been verified by the PASP.
type: "string"
title:
description: |
The PSU 1 Title claim that has been verified by the PASP.
type: "string"
msisdn:
description: |
The PSU 1 MSISDN claim that has been verified by the PASP.
The MSISDN uniquely identifies a mobile subscriber across the globe. It is the phone number digits along with other protocol information.
type: "string"
birthFamilyName:
description: |
The PSU 1 birth family name claim that has been verified by the PASP.
type: "string"
birthGivenName:
description: |
The PSU 1 birth given name claim that has been verified by the PASP.
type: "string"
birthMiddleName:
description: |
The PSU 1 birth middle name claim that has been verified by the PASP.
type: "string"
alsoKnownAs:
description: |
The PSU 1 other name claim that has been verified by the PASP.
type: "string"
placeOfBirth:
description: |
Place of Birth Claim
type: "object"
properties:
country:
# The PSU 1 country of birth claim that has been verified by the PASP.
$ref: "#/components/schemas/CountryCode"
region:
description: |
The PSU 1 region of birth claim that has been verified by the PASP.
type: "string"
locality:
description: |
The PSU 1 locality (village, town, city etc) of birth claim that has been verified by the PASP.
type: "string"
nationalities:
type: "array"
description: |
The PSU 1 nationality claim that has been verified by the PASP.
This is an array which may contain multiple entries
items:
type: string
address:
items:
$ref: "#/components/schemas/OBPartyIdentityAddressClaim"
type: "array"
postalAddresses:
$ref: "#/components/schemas/OBAddress"
educationLevel:
description: |
The PSU 1 education level that has been verified by the PASP.
type: "string"
enum:
- KSAOB.Elementary
- KSAOB.Intermediate
- KSAOB.Secondary
- KSAOB.University
- KSAOB.Other
partyIdentity:
description: |
The PSU 1 Party Data that has been verified by the PASP.
type: "object"
additionalProperties: false
properties:
type:
type: "string"
enum:
- "KSAOB.NationalID"
- "KSAOB.IqamaID"
- "KSAOB.GCCNationalID"
number:
type: "string"
placeOfIssuance:
type: "string"
expirationDate:
type: "string"
format: "date"
calendarType:
$ref: "#/components/schemas/OBPartyCalendarType"
additionalContactInformation:
description: |
The PSU 1 additional contact information.
type: "array"
items:
additionalProperties: false
properties:
fullName:
description: "Full name in arabic (1st, 2nd, 3rd and family)"
type: "string"
relation:
description: "The relationship of the contact with the PSU 1"
type: "string"
mobilePhoneNumber:
description: "The mobile phone number of the contact"
type: "string"
homePhoneNumber:
description: "The home phone number of the contact"
type: "string"
jobInformation:
description: |
The PSU 1 job information.
type: "object"
additionalProperties: false
properties:
employerName:
description: "The PSU1 employer name"
type: "string"
jobTitle:
description: "The PSU1 job title "
type: "string"
employmentSector:
description: "The PSU1 employment sector"
type: "string"
enum:
- KSAOB.Governmental
- KSAOB.Private
- KSAOB.Semi-Governmental
- KSAOB.Other
professionalActivity:
description: "The PSU1 profession"
type: "string"
dateOfEmployment:
description: "The PSU1 date of employment"
type: "string"
format: "date"
calendarType:
$ref: "#/components/schemas/OBPartyCalendarType"
financialInformation:
description: |
The PSU 1 financial information.
type: "array"
additionalProperties: false
items:
properties:
income:
description: "Basic / Additional income amount by source"
type: "object"
additionalProperties: false
properties:
type:
description: |
The type of income.
Where Type is BasicMonthlyIncome, then Source can only be one of the following:
* Salary
* FreelanceWork
* Subvention
* Reward
* Other
Where Type is AdditionalMonthlyIncome, then Source can only be one of:
* Rental
* EquityInvestment
* Other
type: "string"
enum:
- KSAOB.BasicMonthlyIncome
- KSAOB.AdditionalMonthlyIncome
amount:
$ref: "#/components/schemas/OBActiveCurrencyAndAmountSimpleType"
currency:
$ref: "#/components/schemas/ActiveOrHistoricCurrencyCode"
source:
description: |
Source of Income.
* Salary, FreelanceWork, Subvention, Reward, Other apply only where Type is: BasicMonthlyIncome
* Rental, EquityInvestment, Other apply only where Type is: AdditionalMonthlyIncome
type: "string"
enum:
- KSAOB.Salary
- KSAOB.FreelanceWork
- KSAOB.Subvention
- KSAOB.Reward
- KSAOB.Other
- KSAOB.Rental
- KSAOB.EquityInvestment
transactionFrequency:
description: "Anticipated transaction frequency"
type: "object"
additionalProperties: false
properties:
expectedIncomingTransactionFrequency:
description: "Anticipated incoming transaction frequency"
type: "string"
expectedOutgoingTransactionFrequency:
description: "Anticipated outgoing transaction frequency"
type: "string"
additionalInformation:
description: "Additional information about the PSU 1"
type: "object"
additionalProperties: false
properties:
politicalAcquaintance:
type: "object"
description: "Capture PSU 1 Political Acquaintance information"
additionalProperties: false
properties:
isPoliticallyAcquainted:
description: "Are you politically acquianted?"
type: "boolean"
hasFirstOrSecondDegreeRelationship:
description: "Do you have a first or second degree relationship with a political acquiantaince ?"
type: "boolean"
disability:
type: "object"
description: "Capture PSU 1 disabled information"
additionalProperties: false
properties:
isDisabled:
description: "Are you a person with a disability ?"
type: "boolean"
disabilityType:
description: "The type of disability"
type: "string"
enum:
- "KSAOB.Hearing"
- "KSAOB.Visual"
- "KSAOB.Physical"
- "KSAOB.Other"
isRealBeneficiary:
description: "Confirms if the PSU1 is the real beneficiary of the account"
type: "boolean"
guardianInformation:
description: "PSU 1 Guardian Information"
type: "object"
additionalProperties: false
properties:
relationshipType:
type: "string"
enum:
- "KSAOB.Father"
- "KSAOB.Mother"
- "KSAOB.Guardian"
- "KSAOB.Other"
firstName:
description: "PSU 1 Guardian First Name"
type: "string"
firstNameInLocalLanguage:
description: "PSU 1 Guardian First Name in local language"
type: "string"
fatherName:
description: "PSU 1 Guardian Father Name in english"
type: "string"
fatherNameInLocalLanguage:
description: "PSU 1 Guardian Father Name in local language"
type: "string"
grandfatherName:
description: "PSU 1 Guardian GrandFather Name in english"
type: "string"
grandfatherNameInLocalLanguage:
description: "PSU 1 Guardian GrandFather Name in local language"
type: "string"
familyName:
description: "PSU 1 Guardian Family Name"
type: "string"
familyNameInLocalLanguage:
description: "PSU 1 Guardian Family Name in local language"
type: "string"
gender:
description: |
PSU 1 Guardian Gender.
Male or Female.
type: "string"
enum:
- "Male"
- "Female"
nationality:
description: |
PSU 1 Guardian Nationality .
type: "string"
birthDate:
description: |
PSU 1 Guardian date of birth.
type: "string"
format: "date"
birthDateCalendarType:
$ref: "#/components/schemas/OBPartyCalendarType"
placeOfBirth:
description: |
PSU 1 Guardian Birth Claim
type: "object"
properties:
country:
# The PSU 1 country of birth claim that has been verified by the PASP.
$ref: "#/components/schemas/OBCountryCode"
region:
description: |
PSU 1 Guardian region of birth claim that has been verified by the PASP.
type: "string"
locality:
description: |
The PSU 1 locality (village, town, city etc) of birth claim that has been verified by the PASP.
type: "string"
additionalProperties: false
educationLevel:
description: |
PSU 1 Guardian education level that has been verified by the PASP.
type: "string"
enum:
- KSAOB.Elementary
- KSAOB.Intermediate
- KSAOB.Secondary
- KSAOB.University
- KSAOB.Other
nationalId:
description: |
PSU 1 Guardian NationalId Data that has been verified by the PASP.
type: "object"
additionalProperties: false
properties:
type:
type: "string"
number:
type: "string"
placeOfIssuance:
type: "string"
expirationDate:
type: "string"
format: "date"
calendarType:
$ref: "#/components/schemas/OBPartyCalendarType"
nationalAddress:
$ref: "#/components/schemas/OBAddress"
mobilePhoneNumber:
description: "PSU 1 Guardian mobile phone number"
type: "string"
homePhoneNumber:
description: "PSU 1 Guardian home phone number"
type: "string"
email:
description: "PSU 1 Guardian Email"
type: "string"
jobInformation:
description: |
PSU 1 Guardian job information.
type: "object"
additionalProperties: false
properties:
employerName:
description: "PSU 1 Guardian employer name"
type: "string"
jobTitle:
description: "PSU 1 Guardian job title "
type: "string"
employmentSector:
description: "PSU 1 Guardian employment sector"
type: "string"
enum:
- KSAOB.Governmental
- KSAOB.Private
- KSAOB.Semi-Governmental
- KSAOB.Other
updatedAt:
description: |
Time the PSU1's information was last updated. Its value is a JSON number representing the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the date/time.
type: "string"
OBAddress:
title: "OBAddress"
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/OBAddressTypeCode"
addressSubType:
$ref: "#/components/schemas/OBAddressSubTypeCode"
shortAddress:
$ref: "#/components/schemas/OBShortAddress"
unitNumber:
$ref: "#/components/schemas/OBUnitNumber"
floorNumber:
$ref: "#/components/schemas/OBFloorNumber"
buildingNumber:
$ref: "#/components/schemas/OBBuildingNumber"
streetName:
$ref: "#/components/schemas/OBStreetName"
secondaryNumber:
$ref: "#/components/schemas/OBSecondaryNumber"
district:
$ref: "#/components/schemas/OBDistrict"
postalCode:
$ref: "#/components/schemas/OBPostalCode"
poBox:
$ref: "#/components/schemas/OBPOBox"
zipCode:
$ref: "#/components/schemas/OBZipCode"
city:
$ref: "#/components/schemas/OBCity"
region:
$ref: "#/components/schemas/OBRegion"
country:
$ref: "#/components/schemas/OBCountryCode"
additionalProperties: false
OBAddressTypeCode:
title: "OBAddressTypeCode"
description: "Specifies the nature of the Address."
type: "string"
enum:
- "KSAOB.National"
- "KSAOB.HomeCountry"
example: "KSAOB.National"
OBAddressSubTypeCode:
title: "OBAddressSubTypeCode"
description: "Specifies the nature of the Address."
type: "string"
enum:
- "KSAOB.Business"
- "KSAOB.Correspondence"
- "KSAOB.Residential"
example: "KSAOB.Residential"
OBShortAddress:
title: "OBShortAddress"
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"
OBUnitNumber:
title: "OBUnitNumber"
description: "Identifies the unit or apartment number."
type: "string"
minLength: 1
maxLength: 10
example: "6"
OBFloorNumber:
title: "OBFloorNumber"
description: "Identifies the building floor number."
type: "string"
minLength: 1
maxLength: 10
example: "2"
OBBuildingNumber:
title: "OBBuildingNumber"
description: "Identifies the building number."
type: "string"
minLength: 1
maxLength: 10
example: "34"
OBStreetName:
title: "OBStreetName"
description: "Identifies the street name or road."
type: "string"
minLength: 1
maxLength: 70
example: "Omar Bin Hassan Street"
OBDistrict:
title: "OBDistrict"
description: "Identifies the district of a city."
type: "string"
minLength: 1
maxLength: 35
example: "Olaya Dist."
OBCountryCode:
title: "OBCountryCode"
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"
OBPostalCode:
title: "OBPostalCode"
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"
OBPOBox:
title: "POBox"
description: " Identifies the POBox."
type: "string"
minLength: 1
maxLength: 10
example: "11562"
OBZipCode:
title: "ZipCode"
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"
OBSecondaryNumber:
title: "OBSecondaryNumber"
description: "4 numbers representing the accurate location coordinates of the address"
type: "string"
minLength: 4
maxLength: 4
example: "1233"
OBCity:
title: "OBCity"
description: "Identifies the name of the city or town where the address is situated."
type: "string"
minLength: 1
maxLength: 35
example: "Riyadh"
OBRegion:
title: "OBRegion"
description: "Identifies the region."
type: "string"
minLength: 1
maxLength: 35
example: "North"
Address:
type: object
properties:
addressType:
type: string
department:
type: string
subDepartment:
type: string
street:
type: string
building:
type: string
postCode:
type: string
town:
type: string
countrySubDivision:
type: string
country:
type: string
addressLine:
type: array
items:
type: string
ProductIdentifier:
type: object
properties:
id:
description: |
type: string
productName:
type: string
bundleName:
description: Optional field to indicate if this account is part of a bundle that is providing additional benefit for to the customer
type: string
required:
- productName
CustomerIdentifier:
type: object
properties:
id:
type: string
customerName:
type: string
required:
- id
- customerName
#
# Schemas related to Balances
#
OBPartyIdentityEvidenceTypeDocument:
description: |
Document Evidence
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-document](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-document)
type: "object"
properties:
type:
description: "The type of evidence allowed for providing PSU 1 verification."
type: "string"
enum: [document]
checkDetails:
$ref: "#/components/schemas/OBPartyIdentityCheckDetails"
verifier:
type: "object"
properties:
organization:
type: "string"
txn:
type: "string"
time:
# Date and time at which the the evidence was verified by the PASP
$ref: "#/components/schemas/ISODateTime"
documentDetails:
type: "object"
properties:
type:
description: |
The type of document used for evidence checking by the PASP
[https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)"
type: "string"
enum: [passport, driving_permit, idcard, residence_permit]
documentNumber:
description: "The unique id number in the evidence used for verification checking"
type: "string"
personalNumber:
description: |
An identifier that is assigned to the End-User and is not limited to being used in one document, for example a national identification number, personal identity number, citizen number, social security number, driver number, account number, customer number, licensee number, etc
type: "string"
serialNumber:
description: |
An identifier/number that identifies the document irrespective of any personalization information (this usually only applies to physical artifacts and is present before personalization).
type: "string"
calendarType:
$ref: "#/components/schemas/OBPartyCalendarType"
dateOfIssuance:
# The issuing date of the document used for verification checking.
$ref: "#/components/schemas/ISODateTime"
dateOfExpiry:
# The expiry date of the document used for verification checking
$ref: "#/components/schemas/ISODateTime"
issuer:
type: "object"
properties:
name:
description: |
Designation of the issuer of the document.
type: "string"
address:
# All elements of the OpenID Connect address Claim
items:
$ref: "#/components/schemas/OBPartyIdentityAddressClaim"
type: array
countryCode:
description: |
String denoting the country or supranational organization that issued the document as ISO 3166
type: "string"
jurisdiction:
description: |
String containing the name of the region(s)/state(s)/province(s)/municipality(ies) that issuer has jurisdiction over (if this information is not common knowledge or derivable from the address)
type: "string"
attachments:
$ref: "#/components/schemas/OBPartyIdentityEvidenceAttachments"
OBPartyIdentityEvidenceTypeElectronicRecord:
description: |
Electronic Record Evidence
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-electronic_re](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-type-electronic_re)
type: "object"
properties:
type:
description: "The type of evidence allowed for providing PSU 1 verification."
type: "string"
enum: [electronic_record]
checkDetails:
$ref: "#/components/schemas/OBPartyIdentityCheckDetails"
time:
#Date and time at which the the evidence was verified by the PASP
$ref: "#/components/schemas/ISODateTime"
record:
description: |
Representing the record used to perform the identity verification.
type: "object"
properties:
type:
description: |
String denoting the type of electronic record
"[https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)"
type: "string"
enum: [bank_account, mortgage_account, loan_account]
personalNumber:
description: |
String representing an identifier that is assigned to the PSU1 and is not limited to being used in one record, for example a national identification number, personal identity number, citizen number, social security number, driver number, account number, customer number, licensee number, etc.
type: "string"
calendarType:
$ref: "#/components/schemas/OBPartyCalendarType"
createdAt:
# The time the record was created
$ref: "#/components/schemas/ISODateTime"
dateOfExpiry:
# The date the evidence will expire
$ref: "#/components/schemas/ISODateTime"
source:
type: "object"
description: |
Information about the source of this record
properties:
name:
description: |
Designation of the source of the electronic_record
type: "string"
address:
# All elements of the OpenID Connect address Claim
items:
$ref: "#/components/schemas/OBPartyIdentityAddressClaim"
type: "array"
countryCode:
description: |
String denoting the country or supranational organization that issued the evidence as ISO 3166
type: "string"
jurisdiction:
description: |
String containing the name of the region(s) / state(s) / province(s) / municipality(ies) that source has jurisdiction over (if it's not common knowledge or derivable from the address)
type: "string"
attachments:
$ref: "#/components/schemas/OBPartyIdentityEvidenceAttachments"
OBPartyIdentityCheckDetails:
description: |
Identifes the method used by PASP for checking the PSU 1 evidence for verification.
Representing the checks done in relation to the evidence
OpenID Connect for Identity Assurance 1.0: [https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element)
type: "array"
items:
type: "object"
properties:
checkMethod:
description: |
Identifes the method used by PASP for checking the PSU 1 evidence for verification
String representing the check done, this includes processes such as checking the authenticity of the document, or verifying the user's biometric against an identity document.
type: "string"
organization:
description: |
String denoting the legal entity that performed the check. This SHOULD be included if the OP did not perform the check itself
type: "string"
txn:
description: |
Identifier referring to the identity verification transaction. The OP MUST ensure that this is present when EvidenceRef element is used. The OP MUST ensure that the transaction identifier can be resolved into transaction details during an audit
type: "string"
time:
$ref: "#/components/schemas/ISODateTime"
BalancesResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Balance"
meta:
$ref: "#/components/schemas/Meta"
ISODateTime:
title: "ISODateTime"
description: "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
type: "string"
format: "date-time"
OBPartyIdentityEvidenceAttachments:
description: |
Attachments
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-attachments](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-attachments)
type: "array"
items:
type: "object"
properties:
desc:
description: |
Description of the document. This can be the filename or just an explanation of the content.
type: "string"
contentType:
description: |
Content (MIME) type of the document
type: "string"
content:
description: |
Base64 encoded representation of the document content
type: "string"
txn:
description: |
Identifier referring to the transaction
type: "string"
OBPartyCalendarType:
description: |
The type of calendar used for the date of issuance and date of expiry in the document evidence
Allowable values:
"Islamic Calendar"
"Gregorian Calendar"
Both calendars must follow YYYY-MM-DD
type: "string"
enum: [KSAOB.IslamicCalendar, KSAOB.GregorianCalendar]
OBPartyIdentityAddressClaim:
description: |
Address object as per OpenID Connect Core 1.0 Address Claim
[https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim](https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim)
type: "object"
properties:
formatted:
description: |
The PSU 1 address number and street claim that has been verified by the PASP.
type: "string"
streetAddress:
description: |
The PSU 1 address street claim that has been verified by the PASP.
type: "string"
locality:
description: |
The PSU 1 address locality (village, town, city etc) claim that has been verified by the PASP.
type: "string"
region:
description: |
The PSU 1 address region claim that has been verified by the PASP.
type: "string"
postalCode:
# The PSU 1 address postcode claim that has been verified by the PASP.
$ref: "#/components/schemas/PostalCode"
country:
$ref: "#/components/schemas/CountryCode"
addressType:
description: |
Specifies the nature of the Address.
type: "string"
shortAddress:
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"
unitNumber:
description: |
Identifies the unit or apartment number.
type: "string"
floorNumber:
description: |
Identifies the building floor number.
type: "string"
buildingNumber:
description: |
Identifies the building number.
type: "string"
streetName:
description: |
Identifies the street name or road.
type: "string"
secondaryNumber:
description: |
4 numbers representing the accurate location coordinates of the address.
type: "string"
district:
description: |
Identifies the district of a city.
type: "string"
poBox:
description: |
Identifies the POBox.
type: "string"
zipCode:
description: |
Identifies the ZIP code; a unique code assigned to a specific geographic area for efficient mail sorting and delivery purposes.
type: "string"
city:
description: |
Identifies the name of the city or town where the address is situated.
type: "string"
PostalCode:
description: "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail."
type: "string"
minLength: 5
maxLength: 5
CountryCode:
description: "Nation with its own government, occupying a particular territory."
type: "string"
pattern: "^[A-Z]{2,2}$"
BalanceResponse:
type: object
properties:
data:
$ref: "#/components/schemas/Balance"
meta:
$ref: "#/components/schemas/Meta"
OBActiveCurrencyAndAmountSimpleType:
title: "OBActiveCurrencyAndAmountSimpleType"
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,13}$|^\\d{1,13}\\.\\d{1,5}$"
ActiveOrHistoricCurrencyCode:
title: "ActiveOrHistoricCurrencyCode"
description: |
* /accounts/{AccountId} | /accounts resource
Identification of the currency in which the account is held. A 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'.
* /accounts/{AccountId}/balances | /accounts/{AccountId}/transactions resource
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: "SAR"
Balance:
type: object
properties:
accountId:
type: string
creditDebitIndicator:
description: |
items:
$ref: "#/components/schemas/BalanceCreditDebitEnum"
type: string
balanceType:
type: string
description: |
timestamp:
description: |
type: string
format: "date-time"
amount:
$ref: "#/components/schemas/Amount"
creditLines:
type: array
items:
$ref: "#/components/schemas/CreditLine"
required:
- accountId
- balanceType
- amount
CreditLine:
type: object
properties:
included:
description: |
type: boolean
amount:
$ref: "#/components/schemas/Amount"
creditType:
type: string
creditLineType:
type: string
description: |
#
# Schemas related to Transactions
#
TransactionResponse:
type: object
properties:
data:
$ref: "#/components/schemas/GenericTransaction"
meta:
$ref: "#/components/schemas/Meta"
TransactionsResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Transaction"
meta:
$ref: "#/components/schemas/PaginatedMeta"
Transaction:
type: object
oneOf:
- $ref: "#/components/schemas/GenericTransaction"
GenericTransaction:
type: object
properties:
accountId:
type: string
transactionId:
type: string
transactionReference:
type: string
transactionDateTime:
$ref: "#/components/schemas/TransactionDateTime"
localTimeZone:
$ref: "#/components/schemas/LocalTimeZone"
terminalId:
$ref: "#/components/schemas/TerminalId"
paymentModes:
$ref: "#/components/schemas/PaymentMode"
billDetails:
$ref: "#/components/schemas/BillDetails"
transactionType:
type: string
description: |
subTransactionType:
$ref: "#/components/schemas/SubTransactionType"
flags:
type: "array"
items:
$ref: "#/components/schemas/Flags"
statementReference:
type: array
items:
type: string
creditDebitIndicator:
$ref: "#/components/schemas/CreditDebitEnum"
status:
type: string
description: |
transactionMutability:
type: string
bookingDateTime:
description: |
type: string
format: date-time
valueDateTime:
type: string
format: date-time
transactionInformation:
type: string
merchantAddress:
type: string
amount:
$ref: "#/components/schemas/Amount"
chargeAmount:
$ref: "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_6"
currencyExchange:
$ref: "#/components/schemas/CurrencyExchange"
bankTransactionCode:
$ref: "#/components/schemas/BankTransactionCode"
proprietoryBankTransactionCode:
$ref: "#/components/schemas/ProprietoryBankTransactionCode"
chargeAmountVat:
$ref: "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_6"
balance:
type: object
description: |
A descriptor for balance.
This is a composite object that may be expanded in the future to support
oneOf:
- $ref: "#/components/schemas/TransactionBalance"
merchantDetails:
$ref: "#/components/schemas/MerchantDetails"
creditorAgent:
$ref: "#/components/schemas/Agent"
creditorAccount:
$ref: "#/components/schemas/AccountNumber"
debtorAgent:
$ref: "#/components/schemas/Agent"
debtorAccount:
$ref: "#/components/schemas/AccountNumber"
cardInstrument:
$ref: "#/components/schemas/CardInstrument"
supplementaryData:
type: object
required:
- accountId
- status
- amount
CardInstrument:
type: object
properties:
cardSchemeName:
type: string
instrumentType:
type: string
authorizationType:
type: string
name:
type: string
identification:
type: string
required:
- cardSchemeName
OBPaymentPurposeCode:
title: "OBPaymentPurposeCode:"
description: |
A Category code, related to the type of services or goods that corresponds to the underlying purpose of the payment.
The Purpose Codes can be based on either:
* The SARIE IPS Message Implementation Guide - Section 21.4 - Category Purpose Codes
* The ISO20022 External code sets
type: "string"
minLength: 1
maxLength: 4
pattern: "^[A-Z]{3,4}$"
Agent:
type: object
properties:
schemeName:
description: |
The scheme name used for identifying the agent.
The value should be one of the enumerated values supported by the underlying standard.
type: string
identification:
type: string
name:
type: string
postalAddress:
$ref: "#/components/schemas/PostalAddress"
postalAddressList:
description: "This is only for SAMA"
items:
$ref: "#/components/schemas/OBPartyIdentityAddressClaim"
type: array
required:
- identification
PostalAddress:
type: object
properties:
addressType:
type: string
description: For Ksa Version 2 enums should be KSAOB.Business, KSAOB.Correspondence, KSAOB.Residential
department:
type: string
subDepartment:
type: string
streetName:
type: string
description: Identifies the street name or road.
buildingNumber:
type: string
description: Identifies the building number.
postCode:
type: string
description: Identifies the postal code; a unique code assigned to a specific geographic area for efficient mail sorting and delivery purposes.
townName:
type: string
countrySubDivision:
type: string
country:
type: string
description: Indicates the country code in which the address is located (References ISO 3166-1 alpha-2).
pattern: ^[A-Z]{2,2}$
addressLine:
type: array
items:
type: string
minItems: 0
maxItems: 7
shortAddress:
type: string
description: A short address consists of four letters region code, branch code, division code, unique code and a four-digit number for the building.
unitNumber:
type: string
description: Identifies the unit or apartment number.
floorNumber:
type: string
description: Identifies the building floor number.
poBox:
type: string
description: Identifies the POBox.
zipCode:
type: string
description: Identifies the ZIP code; a unique code assigned to a specific geographic area for efficient mail sorting and delivery purposes.
region:
type: string
description: Identifies the region.
secondaryNumber:
type: string
description: 4 numbers representing the accurate location coordinates of the address
district:
type: string
description: Identifies the district of a city.
MerchantDetails:
type: object
properties:
merchantName:
type: string
merchantCategoryCode:
type: string
merchantId:
type: string
TransactionBalance:
type: object
properties:
amount:
$ref: "#/components/schemas/Amount"
creditDebitIndicator:
$ref: "#/components/schemas/CreditDebitEnum"
balanceType:
type: string
required:
- amount
- creditDebitIndicator
- balanceType
ProprietoryBankTransactionCode:
type: object
properties:
code:
type: string
issuer:
type: string
required:
- code
BankTransactionCode:
type: object
description: |
properties:
code:
type: string
subCode:
type: string
family:
type: "string"
familyCode:
type: "string"
subFamily:
type: "string"
subFamilyCode:
type: "string"
required:
- code
CurrencyExchange:
type: object
properties:
sourceCurrency:
$ref: "#/components/schemas/TCurrency"
targetCurrency:
$ref: "#/components/schemas/TCurrency"
unitCurrency:
$ref: "#/components/schemas/TCurrency"
exchangeRate:
type: string
contractIdentification:
type: string
quotationDate:
type: string
format: date-time
instructedAmount:
$ref: "#/components/schemas/Amount"
required:
- sourceCurrency
- exchangeRate
OBActiveOrHistoricCurrencyAndAmount_6:
type: "object"
description: "Transaction charges to be paid by the charge bearer."
properties:
amount:
$ref: "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType"
currency:
$ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_1"
chargeIncluded:
description: |
If true then the value in the Amount has the ChargeAmount deducted from it
type: boolean
OBActiveOrHistoricCurrencyAndAmount_8:
type: "object"
required:
- "Amount"
- "Currency"
description: " The VAT associated with the ChargeAmount"
properties:
Amount:
$ref: "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType"
Currency:
$ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_1"
ActiveOrHistoricCurrencyCode_1:
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: "SAR"
OBActiveCurrencyAndAmount_SimpleType:
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,13}$|^\\d{1,13}\\.\\d{1,5}$"
BankingTransactionDetail_allOf_extendedData:
properties:
payer:
description: Label of the originating payer. Mandatory for inbound payment
type: string
payee:
description: Label of the target PayID. Mandatory for an outbound payment. The name assigned to the BSB/Account Number or PayID (by the owner of the PayID)
type: string
extensionUType:
description: Optional extended data specific to transactions originated via NPP
enum:
- x2p101Payload
type: string
x2p101Payload:
$ref: "#/components/schemas/BankingTransactionDetail_allOf_extendedData_x2p101Payload"
service:
description: "Identifier of the applicable overlay service. Valid values are: X2P1.01"
enum:
- X2P1.01
type: string
required:
- service
type: object
x-conditional:
- payer
- payee
- x2p101Payload
BankingTransactionDetail_allOf_extendedData_x2p101Payload:
properties:
extendedDescription:
description: An extended string description. Required if the extensionUType field is `x2p101Payload`
type: string
endToEndId:
description: An end to end ID for the payment created at initiation
type: string
purposeCode:
description: Purpose of the payment. Format is defined by NPP standards for the x2p1.01 overlay service
type: string
type: object
x-conditional:
- extendedDescription
#BG
reportExchangeRateList:
description: |
Array of exchange rates.
type: array
items:
$ref: "#/components/schemas/reportExchangeRate"
reportExchangeRate:
description: |
Exchange Rate.
type: object
required:
- sourceCurrency
- exchangeRate
- unitCurrency
- targetCurrency
- quotationDate
properties:
sourceCurrency:
$ref: "#/components/schemas/currencyCode"
exchangeRate:
type: string
unitCurrency:
$ref: "#/components/schemas/currencyCode"
targetCurrency:
$ref: "#/components/schemas/currencyCode"
quotationDate:
type: string
format: date
contractIdentification:
type: string
maxLength: 35
currencyCode:
description: |
ISO 4217 Alpha 3 currency code.
type: string
pattern: "[A-Z]{3}"
example: "EUR"
otherType:
description: |
In cases where the specifically defined criteria (IBAN, BBAN, MSISDN)
are not provided to identify an instance of the respective account type (e.g. a savings account),
the LFI shall include a proprietary ID of the respective account that uniquely identifies the account for this LFI.
type: object
required:
- identification
properties:
identification:
description: |
Proprietary identification of the account.
type: string
maxLength: 35
schemeNameCode:
description: |
An entry provided by an external ISO code list.
type: string
maxLength: 35
schemeNameProprietary:
description: |
A scheme name defined in a proprietary way.
type: string
maxLength: 35
issuer:
description: |
Issuer of the identification.
type: string
maxLength: 35
cashAccountType:
description: |
ExternalCashAccountType1Code from ISO 20022.
type: string
remittanceInformationUnstructured:
description: |
Unstructured remittance information.
type: string
maxLength: 140
example: "Ref Number Merchant"
remittanceInformationUnstructuredArray:
description: |
Array of unstructured remittance information.
type: array
items:
$ref: "#/components/schemas/remittanceInformationUnstructured"
example: ["Ref Number Merchant", "Some Other Text"]
remittanceInformationStructuredMax140:
description: |
Structured remittance information Max
type: string
maxLength: 140
remittanceInformationStructuredArray:
description: |
Array of structured remittance information.
type: array
items:
$ref: "#/components/schemas/remittanceInformationStructured"
remittanceInformationStructured:
description: |
Structured remittance information.
type: object
required:
- reference
properties:
reference:
type: string
maxLength: 35
referenceType:
type: string
maxLength: 35
referenceIssuer:
type: string
maxLength: 35
creditorId:
description: Identification of Creditors, e.g. a SEPA Creditor ID.
type: string
maxLength: 35
example: "Creditor Id 5678"
creditorName:
description: Creditor name.
type: string
maxLength: 70
example: "Creditor Name"
iban:
type: string
description: IBAN of an account.
pattern: "[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"
example: "FR7612345987650123456789014"
bban:
description: |
Basic Bank Account Number (BBAN) Identifier.
This data element can be used in the body of the consent request.
Message for retrieving account access consent from this account. This
data elements is used for payment accounts which have no IBAN.
ISO20022: Basic Bank Account Number (BBAN).
Identifier used nationally by financial institutions, i.e., in individual countries,
generally as part of a National Account Numbering Scheme(s),
which uniquely identifies the account of a customer.
type: string
pattern: "[a-zA-Z0-9]{1,30}"
example: "BARC12345612345678"
bicfi:
description: |
BICFI
type: string
pattern: "[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"
example: "AAAADEBBXXX"
pan:
description: |
Primary Account Number according to ISO/IEC 7812.
type: string
maxLength: 35
#According to ISO the following should be valid.
#maxLength: 19
#minLength: 8
#pattern: "[0-9]{8,19}"
example: "5409050000000000"
maskedPan:
description: |
Masked Primary Account Number.
type: string
maxLength: 35
example: "123456xxxxxx1234"
msisdn:
type: string
maxLength: 35
description: Mobile phone number.
example: "+49 170 1234567"
accountReference:
description: |
Reference to an account by either
* IBAN, of a payment accounts, or
* BBAN, for payment accounts if there is no IBAN, or
* the Primary Account Number (PAN) of a card, can be tokenised by the LFI due to PCI DSS requirements, or
* the Primary Account Number (PAN) of a card in a masked form, or
* an alias to access a payment account via a registered mobile phone number (MSISDN), or
* a proprietary ID of the respective account that uniquely identifies the account for this LFI.
type: object
properties:
iban:
$ref: "#/components/schemas/iban"
bban:
$ref: "#/components/schemas/bban"
pan:
$ref: "#/components/schemas/pan"
maskedPan:
$ref: "#/components/schemas/maskedPan"
msisdn:
$ref: "#/components/schemas/msisdn"
other:
$ref: "#/components/schemas/otherType"
currency:
$ref: "#/components/schemas/currencyCode"
cashAccountType:
$ref: "#/components/schemas/cashAccountType"
ultimateCreditor:
description: Ultimate creditor.
type: string
maxLength: 70
example: "Ultimate Creditor"
debtorName:
description: Debtor name.
type: string
maxLength: 70
example: "Debtor Name"
ultimateDebtor:
description: Ultimate debtor.
type: string
maxLength: 70
example: "Ultimate Debtor"
purposeCode:
description: |
ExternalPurpose1Code from ISO 20022.
Values from ISO 20022 External Code List ExternalCodeSets_1Q2018 June 2018.
type: string
EntryDetailsElement:
type: object
required:
- transactionAmount
properties:
endToEndId:
description: Unique end to end identity.
type: string
maxLength: 35
mandateId:
description: Identification of Mandates, e.g. a SEPA Mandate ID.
type: string
maxLength: 35
checkId:
description: Identification of a Cheque.
type: string
maxLength: 35
creditorId:
$ref: "#/components/schemas/creditorId"
transactionAmount:
$ref: "#/components/schemas/Amount"
currencyExchange:
$ref: "#/components/schemas/reportExchangeRateList"
creditorName:
$ref: "#/components/schemas/creditorName"
creditorAccount:
$ref: "#/components/schemas/accountReference"
creditorAgent:
$ref: "#/components/schemas/bicfi"
ultimateCreditor:
$ref: "#/components/schemas/ultimateCreditor"
debtorName:
$ref: "#/components/schemas/debtorName"
debtorAccount:
$ref: "#/components/schemas/accountReference"
debtorAgent:
$ref: "#/components/schemas/bicfi"
ultimateDebtor:
$ref: "#/components/schemas/ultimateDebtor"
remittanceInformation:
$ref: "#/components/schemas/remittanceInformation"
purposeCode:
$ref: "#/components/schemas/purposeCode"
entryDetails:
description: |
Might be used by the LFI to transport details about transactions within a batch.
type: array
items:
$ref: "#/components/schemas/EntryDetailsElement"
remittanceInformation:
type: object
properties:
remittanceInformationUnstructured:
$ref: "#/components/schemas/remittanceInformationUnstructured"
remittanceInformationUnstructuredArray:
$ref: "#/components/schemas/remittanceInformationUnstructuredArray"
remittanceInformationStructured:
description: |
Structured remittance information Max
type: string
maxLength: 140
remittanceInformationStructuredArray:
$ref: "#/components/schemas/remittanceInformationStructuredArray"
balanceType:
description: |
The following balance types are defined:
- "closingBooked":
Balance of the account at the end of the pre-agreed account reporting period.
It is the sum of the opening booked balance at the beginning of the period and all entries booked
to the account during the pre-agreed account reporting period.
For card-accounts, this is composed of
- invoiced, but not yet paid entries
- "expected":
Balance composed of booked entries and pending items known at the time of calculation,
which projects the end of day balance if everything is booked on the account and no other entry is posted.
For card accounts, this is composed of:
- invoiced, but not yet paid entries
- not yet invoiced but already booked entries and
- pending items (not yet booked)
For card-accounts:
"money to spend with the value of a pre-approved credit limit on the card account"
- "openingBooked":
Book balance of the account at the beginning of the account reporting period.
It always equals the closing book balance from the previous report.
- "interimAvailable":
Available balance calculated in the course of the account ?servicer?s business day,
at the time specified, and subject to further changes during the business day.
The interim balance is calculated on the basis of booked credit and debit items during the calculation
time/period specified.
For card-accounts, this is composed of:
- invoiced, but not yet paid entries
- not yet invoiced but already booked entries
- "interimBooked":
Balance calculated in the course of the account servicer's business day, at the time specified,
and subject to further changes during the business day.
The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period
specified.
- "forwardAvailable":
Forward available balance of money that is at the disposal of the account owner on the date specified.
- "nonInvoiced":
Only for card accounts, to be checked yet.
type: string
enum:
- "closingBooked"
- "expected"
- "openingBooked"
- "interimAvailable"
- "interimBooked"
- "forwardAvailable"
- "nonInvoiced"
additionalInformationStructured:
description: |
Is used if and only if the bookingStatus entry equals "information".
Every active standing order related to the dedicated payment account result into one entry.
type: object
required:
- standingOrderDetails
properties:
standingOrderDetails:
$ref: "#/components/schemas/standingOrderDetails"
startDate:
description: |
The first applicable day of execution starting from this date is the first payment.
type: string
format: date
endDate:
description: |
The last applicable day of execution.
If not given, it is an infinite standing order.
type: string
format: date
frequencyCode:
description: |
The following codes from the "EventFrequency7Code" of ISO 20022 are supported:
- "Daily"
- "Weekly"
- "EveryTwoWeeks"
- "Monthly"
- "EveryTwoMonths"
- "Quarterly"
- "SemiAnnual"
- "Annual"
- "MonthlyVariable"
type: string
enum:
- "Daily"
- "Weekly"
- "EveryTwoWeeks"
- "Monthly"
- "EveryTwoMonths"
- "Quarterly"
- "SemiAnnual"
- "Annual"
- "MonthlyVariable"
executionRule:
description: |
"following" or "preceding" supported as values.
This data attribute defines the behaviour when recurring payment dates falls on a weekend or bank holiday.
The payment is then executed either the "preceding" or "following" working day.
LFI might reject the request due to the communicated value, if rules in Online-Banking are not supporting
this execution rule.
type: string
enum:
- "following"
- "preceding"
monthsOfExecution:
description: |
The format is following the regular expression \d{1,2}.
The array is restricted to 11 entries.
The values contained in the array entries shall all be different and the maximum value of one entry is 12.
This attribute is contained if and only if the frequency equals "MonthlyVariable".
Example: An execution on January, April and October each year is addressed by ["1", "4", "10"].
type: array
maxItems: 11
items:
type: string
maxLength: 2
enum:
- "1"
- "2"
- "3"
- "4"
- "5"
- "6"
- "7"
- "8"
- "9"
- "10"
- "11"
- "12"
dayOfExecution:
description: |
Day of execution as string.
This string consists of up two characters.
Leading zeroes are not allowed.
31 is ultimo of the month.
type: string
maxLength: 2
enum:
- "1"
- "2"
- "3"
- "4"
- "5"
- "6"
- "7"
- "8"
- "9"
- "10"
- "11"
- "12"
- "13"
- "14"
- "15"
- "16"
- "17"
- "18"
- "19"
- "20"
- "21"
- "22"
- "23"
- "24"
- "25"
- "26"
- "27"
- "28"
- "29"
- "30"
- "31"
standingOrderDetails:
description: |
Details of underlying standing orders.
type: object
required:
- startDate
- frequency
properties:
startDate:
$ref: "#/components/schemas/startDate"
frequency:
$ref: "#/components/schemas/frequencyCode"
endDate:
$ref: "#/components/schemas/endDate"
executionRule:
$ref: "#/components/schemas/executionRule"
withinAMonthFlag:
description: |
This element is only used in case of frequency equals "Monthly".
If this element equals false it has no effect.
If this element equals true, then the execution rule is overruled if the day of execution would fall into a different month using the execution rule.
Example: executionRule equals "preceding", dayOfExecution equals "02" and the second of a month is a Sunday.
In this case, the transaction date would be on the last day of the month before.
This would be overruled if withinAMonthFlag equals true and the payment is processed on Monday the third of the Month.
Remark: This attribute is rarely supported in the market.
type: boolean
monthsOfExecution:
$ref: "#/components/schemas/monthsOfExecution"
multiplicator:
description: |
This is multiplying the given frequency resulting the exact frequency,
e.g. Frequency=weekly and multiplicator=3 means every 3 weeks.
Remark: This attribute is rarely supported in the market.
type: string
dayOfExecution:
$ref: "#/components/schemas/dayOfExecution"
limitAmount:
$ref: "#/components/schemas/Amount"
address:
type: object
required:
- country
properties:
streetName:
type: string
maxLength: 70
buildingNumber:
type: string
townName:
type: string
postCode:
type: string
country:
$ref: "#/components/schemas/countryCode"
example:
{
streetName: "rue blue",
buildingnNumber: "89",
townName: "Paris",
postCode: "75000",
country: "FR",
}
countryCode:
description: ISO 3166 ALPHA2 country code.
type: string
pattern: "[A-Z]{2}"
example: "SE"
cardAcceptorPhone:
description: |
Merchant phone number
It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any
combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
pattern according to ISO20022 \+[0-9]{1,3}-[0-9()+\-]{1,30}
type: string
pattern: '\+[0-9]{1,3}\-[0-9()+\-]{1,30}'
#
# Schemas related to Direct Debits
#
DirectDebitsResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/DirectDebit"
meta:
$ref: "#/components/schemas/Meta"
DirectDebit:
type: object
description: |
A descriptor for direct debit.
This is a composite object that may be expanded in the future to support
additional direct debit types for new API standards and account types.
oneOf:
- $ref: "#/components/schemas/GenericDirectDebit"
GenericDirectDebit:
type: object
properties:
accountId:
type: string
directDebitId:
type: string
mandateIdentification:
type: string
name:
type: string
directDebitStatusCode:
$ref: "#/components/schemas/DirectDebitStatusEnum"
previousPaymentDateTime:
type: string
format: date-time
previousPaymentAmount:
$ref: "#/components/schemas/Amount"
frequency:
description: Use a frequency value supported by the underlying API standard
type: string
required:
- accountId
- mandateIdentification
- name
BankingAuthorisedEntity:
properties:
description:
description: Description of the authorised entity derived from previously executed direct debits
type: string
financialInstitution:
description: Name of the financial institution through which the direct debit will be executed. Is required unless the payment is made via a credit card scheme
type: string
abn:
description: Australian Business Number for the authorised entity
type: string
acn:
description: Australian Company Number for the authorised entity
type: string
arbn:
description: Australian Registered Body Number for the authorised entity
type: string
type: object
x-conditional:
- financialInstitution
DirectDebitStatusEnum:
type: string
enum:
- Active
- Inactive
#
# Schemas related to Scheduled Payments
#
ScheduledPaymentsResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/ScheduledPayment"
meta:
$ref: "#/components/schemas/Meta"
ScheduledPayment:
type: object
description: |
A descriptor for scheduled payments.
This is a composite object that may be expanded in the future to support
additional scheduled payment types for new API standards and account types.
oneOf:
- $ref: "#/components/schemas/GenericScheduledPayment"
GenericScheduledPayment:
type: object
properties:
accountId:
type: string
scheduledPaymentId:
type: string
scheduledPaymentDateTime:
type: string
format: date-time
scheduledType:
$ref: "#/components/schemas/ScheduledPaymentScheduleType"
reference:
type: string
creditorReference:
type: string
debtorReference:
type: string
instructedAmount:
$ref: "#/components/schemas/Amount"
creditorAgent:
$ref: "#/components/schemas/Agent"
creditorAccount:
$ref: "#/components/schemas/AccountNumber"
required:
- accountId
- scheduledType
- instructedAmount
ScheduledPaymentScheduleType:
type: string
BankingScheduledPaymentFrom:
description: Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object
properties:
accountId:
description: ID of the account that is the source of funds for the payment
type: string
required:
- accountId
type: object
BankingScheduledPaymentSet:
description: The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry
properties:
to:
$ref: "#/components/schemas/BankingScheduledPaymentTo"
isAmountCalculated:
description: Flag indicating whether the amount of the payment is calculated based on the context of the event. For instance a payment to reduce the balance of a credit card to zero. If absent then false is assumed
type: boolean
amount:
description: The amount of the next payment if known. Mandatory unless the isAmountCalculated field is set to true. Must be zero or positive if present
type: string
currency:
description: The currency for the payment. AUD assumed if not present
type: string
required:
- to
type: object
x-conditional:
- amount
BankingScheduledPaymentTo:
description: Object containing details of the destination of the payment. Used to specify a variety of payment destination types
properties:
toUType:
description: The type of object provided that specifies the destination of the funds for the payment.
enum:
- accountId
- biller
- domestic
- international
- payeeId
type: string
accountId:
description: Present if toUType is set to accountId. Indicates that the payment is to another account that is accessible under the current consent
type: string
payeeId:
description: Present if toUType is set to payeeId. Indicates that the payment is to registered payee that can be accessed using the payee end point. If the Bank Payees scope has not been consented to then a payeeId should not be provided and the full payee details should be provided instead
type: string
nickname:
description: The short display name of the payee as provided by the customer unless toUType is set to payeeId. Where a customer has not provided a nickname, a display name derived by the bank for payee should be provided that is consistent with existing digital banking channels
type: string
payeeReference:
description: The reference for the transaction, if applicable, that will be provided by the originating institution for the specific payment. If not empty, it overrides the value provided at the BankingScheduledPayment level.
type: string
domestic:
$ref: "#/components/schemas/BankingDomesticPayee"
biller:
$ref: "#/components/schemas/BankingBillerPayee"
international:
$ref: "#/components/schemas/BankingInternationalPayee"
required:
- toUType
type: object
x-conditional:
- accountId
- payeeId
- domestic
- biller
- international
- nickname
- payeeReference
BankingBillerPayee:
properties:
billerCode:
description: BPAY Biller Code of the Biller
type: string
crn:
description: BPAY CRN of the Biller (if available).<br/>Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type.
type: string
billerName:
description: Name of the Biller
type: string
required:
- billerCode
- billerName
type: object
x-conditional:
- crn
BankingInternationalPayee:
properties:
beneficiaryDetails:
$ref: "#/components/schemas/BankingInternationalPayee_beneficiaryDetails"
bankDetails:
$ref: "#/components/schemas/BankingInternationalPayee_bankDetails"
required:
- bankDetails
- beneficiaryDetails
type: object
BankingDigitalWalletPayee:
properties:
name:
description: The name assigned to the digital wallet by the owner of the wallet, else the display name provided by the digital wallet provider
type: string
identifier:
description: The identifier of the digital wallet (dependent on type)
type: string
type:
description: The type of the digital wallet identifier
enum:
- EMAIL
- CONTACT_NAME
- TELEPHONE
type: string
provider:
description: The provider of the digital wallet
enum:
- PAYPAL_AU
- OTHER
type: string
required:
- identifier
- name
- provider
- type
type: object
BankingDomesticPayee:
properties:
payeeAccountUType:
description: "Type of account object included. Valid values are: **account** A standard Australian account defined by BSB/Account Number. **card** A credit or charge card to pay to (note that PANs are masked). **payId** A PayID recognised by NPP"
enum:
- account
- card
- payId
type: string
account:
$ref: "#/components/schemas/BankingDomesticPayeeAccount"
card:
$ref: "#/components/schemas/BankingDomesticPayeeCard"
payId:
$ref: "#/components/schemas/BankingDomesticPayeePayId"
required:
- payeeAccountUType
type: object
x-conditional:
- account
- card
-
BankingDomesticPayeeAccount:
properties:
accountName:
description: Name of the account to pay to
type: string
bsb:
description: BSB of the account to pay to
type: string
accountNumber:
description: Number of the account to pay to
type: string
required:
- accountNumber
- bsb
type: object
BankingDomesticPayeeCard:
properties:
cardNumber:
description: Name of the account to pay to
type: string
required:
- cardNumber
type: object
BankingDomesticPayeePayId:
properties:
name:
description: The name assigned to the PayID by the owner of the PayID
type: string
identifier:
description: The identifier of the PayID (dependent on type)
type: string
type:
description: The type of the PayID
enum:
- ABN
- EMAIL
- ORG_IDENTIFIER
- TELEPHONE
type: string
required:
- identifier
- type
type: object
BankingInternationalPayee_beneficiaryDetails:
properties:
name:
description: Name of the beneficiary
type: string
country:
description: Country where the beneficiary resides. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code
type: string
message:
description: Response message for the payment
type: string
required:
- country
type: object
BankingInternationalPayee_bankDetails:
properties:
country:
description: Country of the recipient institution. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code
type: string
accountNumber:
description: Account Targeted for payment
type: string
bankAddress:
$ref: "#/components/schemas/BankingInternationalPayee_bankDetails_bankAddress"
beneficiaryBankBIC:
description: Swift bank code. Aligns with standard [ISO 9362](https://www.iso.org/standard/60390.html)
type: string
fedWireNumber:
description: Number for Fedwire payment (Federal Reserve Wire Network)
type: string
sortCode:
description: Sort code used for account identification in some jurisdictions
type: string
chipNumber:
description: Number for the Clearing House Interbank Payments System
type: string
routingNumber:
description: International bank routing number
type: string
legalEntityIdentifier:
description: The legal entity identifier (LEI) for the beneficiary. Aligns with [ISO 17442](https://www.iso.org/standard/59771.html)
type: string
required:
- accountNumber
- country
type: object
BankingInternationalPayee_bankDetails_bankAddress:
properties:
name:
description: Name of the recipient Bank
type: string
address:
description: Address of the recipient Bank
type: string
required:
- address
- name
type: object
BankingScheduledPaymentRecurrence:
description: Object containing the detail of the schedule for the payment
properties:
nextPaymentDate:
description: The date of the next payment under the recurrence schedule
type: string
recurrenceUType:
description: The type of recurrence used to define the schedule
enum:
- eventBased
- intervalSchedule
- lastWeekDay
- onceOff
type: string
onceOff:
$ref: "#/components/schemas/BankingScheduledPaymentRecurrenceOnceOff"
intervalSchedule:
$ref: "#/components/schemas/BankingScheduledPaymentRecurrenceIntervalSchedule"
lastWeekDay:
$ref: "#/components/schemas/BankingScheduledPaymentRecurrenceLastWeekday"
eventBased:
$ref: "#/components/schemas/BankingScheduledPaymentRecurrenceEventBased"
required:
- recurrenceUType
type: object
x-conditional:
- onceOff
- intervalSchedule
- lastWeekDay
- eventBased
BankingScheduledPaymentRecurrenceOnceOff:
description: Indicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff
properties:
paymentDate:
description: The scheduled date for the once off payment
type: string
required:
- paymentDate
type: object
BankingScheduledPaymentRecurrenceIntervalSchedule:
description: Indicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule
properties:
finalPaymentDate:
description: The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely
type: string
paymentsRemaining:
description: Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value, If neither field is present the payments will continue indefinitely
example: 1
type: integer
nonBusinessDayTreatment:
default: "ON"
description: Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.<br/>**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.<br/>**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.<br/>**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.<br/>**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored
enum:
- AFTER
- BEFORE
- "ON"
- ONLY
type: string
intervals:
description: An array of interval objects defining the payment schedule. Each entry in the array is additive, in that it adds payments to the overall payment schedule. If multiple intervals result in a payment on the same day then only one payment will be made. Must have at least one entry
items:
$ref: "#/components/schemas/BankingScheduledPaymentInterval"
type: array
required:
- intervals
type: object
BankingScheduledPaymentRecurrenceLastWeekday:
description: Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay
properties:
finalPaymentDate:
description: The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely
type: string
paymentsRemaining:
description: Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely
example: 1
type: integer
interval:
description: The interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate
type: string
lastWeekDay:
description: The weekDay specified. The payment will occur on the last occurrence of this weekday in the interval.
enum:
- FRI
- MON
- SAT
- SUN
- THU
- TUE
- WED
type: string
nonBusinessDayTreatment:
default: "ON"
description: Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.<br/>**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.<br/>**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.<br/>**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.<br/>**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored
enum:
- AFTER
- BEFORE
- "ON"
- ONLY
type: string
required:
- interval
- lastWeekDay
type: object
BankingScheduledPaymentRecurrenceEventBased:
description: Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased
properties:
description:
description: Description of the event and conditions that will result in the payment. Expected to be formatted for display to a customer
type: string
required:
- description
type: object
BankingScheduledPaymentInterval:
properties:
interval:
description: An interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate
type: string
dayInInterval:
description: Uses an interval to define the ordinal day within the interval defined by the interval field on which the payment occurs. If the resulting duration is 0 days in length or larger than the number of days in the interval then the payment will occur on the last day of the interval. A duration of 1 day indicates the first day of the interval. If absent the assumed value is P1D. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. The first day of a week is considered to be Monday.
type: string
required:
- interval
type: object
#
# Schemas related to Standing Orders
#
StandingOrdersResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/StandingOrder"
meta:
$ref: "#/components/schemas/Meta"
StandingOrder:
type: object
properties:
accountId:
type: string
standingOrderId:
type: string
frequency:
type: string
reference:
type: string
firstPaymentDateTime:
type: string
format: date-time
nextPaymentDateTime:
type: string
format: date-time
lastPaymentDateTime:
type: string
format: date-time
finalPaymentDateTime:
type: string
format: date-time
numberOfPayments:
type: string
standingOrderStatusCode:
$ref: "#/components/schemas/StandingOrderStatusCodeEnum"
firstPaymentAmount:
$ref: "#/components/schemas/Amount"
nextPaymentAmount:
$ref: "#/components/schemas/Amount"
lastPaymentAmount:
$ref: "#/components/schemas/Amount"
finalPaymentAmount:
$ref: "#/components/schemas/Amount"
creditorAgent:
$ref: "#/components/schemas/Agent"
creditorAccount:
$ref: "#/components/schemas/AccountNumber"
supplementaryData:
type: object
standingOrderType:
$ref: "#/components/schemas/StandingOrderType"
paymentPurposeCode:
$ref: "#/components/schemas/OBPaymentPurposeCode"
creditorReference:
type: string
purpose:
$ref: "#/components/schemas/PurposeSO"
required:
- accountId
- frequency
StandingOrderStatusCodeEnum:
type: string
enum:
- Active
- Inactive
- KSAOB.Active
- KSAOB.Inactive
#
# Schemas related to Offers
#
OffersResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Offer"
meta:
$ref: "#/components/schemas/Meta"
Offer:
type: object
properties:
accountId:
type: string
amount:
$ref: "#/components/schemas/Amount"
description:
type: string
endDateTime:
type: string
format: date-time
fee:
$ref: "#/components/schemas/Amount"
offerid:
type: string
offerType:
type: string
rate:
type: string
startDateTime:
type: string
format: date-time
term:
type: string
url:
type: string
value:
type: string
required:
- accountId
#
# Schemas related to Products
#
ProductsResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Product"
meta:
$ref: "#/components/schemas/Meta"
Product:
type: object
description: |
A descriptor for an product.
This is a composite object that may be expanded in the future to support
additional account types for new API standards and product types.
oneOf:
- $ref: "#/components/schemas/ObieProduct"
ObieProduct:
type: object
description: |
A descriptor for an product.
This is a composite object that may be expanded in the future to support
additional account types for new API standards and product types.
properties:
Type:
type: string
enum:
- ObieProduct
ProductName:
description: The name of the Product used for marketing purposes from a customer perspective. I.e. what the customer would recognise.
type: string
minLength: 1
maxLength: 350
ProductId:
description: The unique ID that has been internally assigned by the financial institution to each of the current account banking products they market to their retail and/or small to medium enterprise (SME) customers.
type: string
minLength: 1
maxLength: 40
AccountId:
description: A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.
type: string
minLength: 1
maxLength: 40
SecondaryProductId:
description: Any secondary Identification which supports Product Identifier to uniquely identify the current account banking products.
type: string
minLength: 1
maxLength: 70
ProductType:
description: "Product type : Personal Current Account, Business Current Account"
type: string
enum:
- BusinessCurrentAccount
- CommercialCreditCard
- Other
- PersonalCurrentAccount
- SMELoan
MarketingStateId:
description: Unique and unambiguous identification of a Product Marketing State.
type: string
minLength: 1
maxLength: 35
OtherProductType:
type: object
BCA:
type: object
PCA:
type: object
additionalProperties: true
#
# Schemas related to Accounts
#
BankingProductCategory:
description: The category to which a product or account belongs. See [here](#product-categories) for more details
enum:
- BUSINESS_LOANS
- CRED_AND_CHRG_CARDS
- LEASES
- MARGIN_LOANS
- OVERDRAFTS
- PERS_LOANS
- REGULATED_TRUST_ACCOUNTS
- RESIDENTIAL_MORTGAGES
- TERM_DEPOSITS
- TRADE_FINANCE
- TRANS_AND_SAVINGS_ACCOUNTS
- TRAVEL_CARDS
type: string
BankingCreditCardAccount:
properties:
minPaymentAmount:
description: The minimum payment amount due for the next card payment
type: string
paymentDueAmount:
description: The amount due for the next card payment
type: string
paymentCurrency:
description: If absent assumes AUD
type: string
paymentDueDate:
description: Date that the next payment for the card is due
type: string
required:
- minPaymentAmount
- paymentDueAmount
- paymentDueDate
type: object
BankingTermDepositAccount:
properties:
lodgementDate:
description: The lodgement date of the original deposit
type: string
maturityDate:
description: Maturity date for the term deposit
type: string
maturityAmount:
description: Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated
type: string
maturityCurrency:
description: If absent assumes AUD
type: string
maturityInstructions:
description: Current instructions on action to be taken at maturity. This includes default actions that may be specified in the terms and conditions for the product e.g. roll-over to the same term and frequency of interest payments
enum:
- HOLD_ON_MATURITY
- PAID_OUT_AT_MATURITY
- ROLLED_OVER
type: string
required:
- lodgementDate
- maturityDate
- maturityInstructions
type: object
BankingLoanAccountV2:
properties:
originalStartDate:
description: Optional original start date for the loan
type: string
originalLoanAmount:
description: Optional original loan value
type: string
originalLoanCurrency:
description: If absent assumes AUD
type: string
loanEndDate:
description: Date that the loan is due to be repaid in full
type: string
nextInstalmentDate:
description: Next date that an instalment is required
type: string
minInstalmentAmount:
description: Minimum amount of next instalment
type: string
minInstalmentCurrency:
description: If absent assumes AUD
type: string
maxRedraw:
description: Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account
type: string
maxRedrawCurrency:
description: If absent assumes AUD
type: string
minRedraw:
description: Minimum redraw amount
type: string
minRedrawCurrency:
description: If absent assumes AUD
type: string
offsetAccountEnabled:
description: Set to true if one or more offset accounts are configured for this loan account
type: boolean
offsetAccountIds:
description: The accountIDs of the configured offset accounts attached to this loan. Only offset accounts that can be accessed under the current authorisation should be included. It is expected behaviour that offsetAccountEnabled is set to true but the offsetAccountIds field is absent or empty. This represents a situation where an offset account exists but details can not be accessed under the current authorisation
items:
type: string
type: array
repaymentType:
default: PRINCIPAL_AND_INTEREST
description: Options in place for repayments. If absent defaults to PRINCIPAL_AND_INTEREST
enum:
- INTEREST_ONLY
- PRINCIPAL_AND_INTEREST
type: string
repaymentFrequency:
description: The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)
type: string
type: object
BankingProductDepositRate:
properties:
depositRateType:
description: The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning
enum:
- BONUS
- BUNDLE_BONUS
- FIXED
- FLOATING
- INTRODUCTORY
- MARKET_LINKED
- VARIABLE
type: string
rate:
description: The rate to be applied
type: string
calculationFrequency:
description: The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)
type: string
applicationFrequency:
description: The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)
type: string
tiers:
description: Rate tiers applicable for this rate
items:
$ref: "#/components/schemas/BankingProductRateTierV3"
type: array
additionalValue:
description: Generic field containing additional information relevant to the [depositRateType](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [depositRateType](#tocSproductdepositratetypedoc)
type: string
additionalInfo:
description: Display text providing more information on the rate
type: string
additionalInfoUri:
description: Link to a web page with more information on this rate
type: string
required:
- depositRateType
- rate
type: object
x-conditional:
- additionalValue
BankingProductRateTierV3:
description: Defines the criteria and conditions for which a rate applies
properties:
name:
description: A display name for the tier
type: string
unitOfMeasure:
description: The unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. a **DOLLAR** amount. **PERCENT** (in the case of loan-to-value ratio or LVR). Tier term period representing a discrete number of **MONTH**'s or **DAY**'s (in the case of term deposit tiers)
enum:
- DAY
- DOLLAR
- MONTH
- PERCENT
type: string
minimumValue:
description: The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value
type: number
maximumValue:
description: "The number of tierUnitOfMeasure units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as tierValueMinimum. Where this is the same as the tierValueMinimum value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months). If absent the tier's range has no upper bound."
type: number
rateApplicationMethod:
description: The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')
enum:
- PER_TIER
- WHOLE_BALANCE
type: string
applicabilityConditions:
$ref: "#/components/schemas/BankingProductRateCondition"
additionalInfo:
description: Display text providing more information on the rate tier.
type: string
additionalInfoUri:
description: Link to a web page with more information on this rate tier
type: string
required:
- minimumValue
- name
- unitOfMeasure
type: object
BankingProductRateCondition:
description: Defines a condition for the applicability of a tiered rate
properties:
additionalInfo:
description: Display text providing more information on the condition
type: string
additionalInfoUri:
description: Link to a web page with more information on this condition
type: string
type: object
BankingProductLendingRateV2:
properties:
lendingRateType:
description: The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning
enum:
- BUNDLE_DISCOUNT_FIXED
- BUNDLE_DISCOUNT_VARIABLE
- CASH_ADVANCE
- DISCOUNT
- FIXED
- FLOATING
- INTRODUCTORY
- MARKET_LINKED
- PENALTY
- PURCHASE
- VARIABLE
type: string
rate:
description: The rate to be applied
type: string
comparisonRate:
description: A comparison rate equivalent for this rate
type: string
calculationFrequency:
description: The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)
type: string
applicationFrequency:
description: The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)
type: string
interestPaymentDue:
description: When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered
enum:
- IN_ADVANCE
- IN_ARREARS
type: string
repaymentType:
description: Options in place for repayments. If absent, the lending rate is applicable to all repayment types
enum:
- INTEREST_ONLY
- PRINCIPAL_AND_INTEREST
type: string
loanPurpose:
description: The reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes
enum:
- INVESTMENT
- OWNER_OCCUPIED
type: string
tiers:
description: Rate tiers applicable for this rate
items:
$ref: "#/components/schemas/BankingProductRateTierV3"
type: array
additionalValue:
description: Generic field containing additional information relevant to the [lendingRateType](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [lendingRateType](#tocSproductlendingratetypedoc)
type: string
additionalInfo:
description: Display text providing more information on the rate.
type: string
additionalInfoUri:
description: Link to a web page with more information on this rate
type: string
required:
- lendingRateType
- rate
type: object
x-conditional:
- additionalValue
BankingProductFeatureV2:
properties:
featureType:
description: The type of feature described
enum:
- ADDITIONAL_CARDS
- BALANCE_TRANSFERS
- BILL_PAYMENT
- BONUS_REWARDS
- CARD_ACCESS
- CASHBACK_OFFER
- COMPLEMENTARY_PRODUCT_DISCOUNTS
- DIGITAL_BANKING
- DIGITAL_WALLET
- DONATE_INTEREST
- EXTRA_REPAYMENTS
- FRAUD_PROTECTION
- FREE_TXNS
- FREE_TXNS_ALLOWANCE
- GUARANTOR
- INSURANCE
- INSTALMENT_PLAN
- INTEREST_FREE
- INTEREST_FREE_TRANSFERS
- LOYALTY_PROGRAM
- NOTIFICATIONS
- NPP_ENABLED
- NPP_PAYID
- OFFSET
- OTHER
- OVERDRAFT
- REDRAW
- RELATIONSHIP_MANAGEMENT
- UNLIMITED_TXNS
type: string
additionalValue:
description: Generic field containing additional information relevant to the [featureType](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [featureType.](#tocSproductfeaturetypedoc)
type: string
additionalInfo:
description: Display text providing more information on the feature. Mandatory if the [feature type](#tocSproductfeaturetypedoc) is set to OTHER
type: string
additionalInfoUri:
description: Link to a web page with more information on this feature
type: string
required:
- featureType
type: object
x-conditional:
- additionalValue
- additionalInfo
BankingProductFee:
properties:
name:
description: Name of the fee
type: string
feeType:
description: The type of fee
enum:
- DEPOSIT
- EVENT
- EXIT
- PAYMENT
- PERIODIC
- PURCHASE
- TRANSACTION
- UPFRONT
- VARIABLE
- WITHDRAWAL
type: string
amount:
description: The amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied
type: string
balanceRate:
description: A fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied.
type: string
transactionRate:
description: A fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied
type: string
accruedRate:
description: A fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied
type: string
accrualFrequency:
description: The indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)
type: string
currency:
description: The currency the fee will be charged in. Assumes AUD if absent
type: string
additionalValue:
description: Generic field containing additional information relevant to the [feeType](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [feeType](#tocSproductfeetypedoc)
type: string
additionalInfo:
description: Display text providing more information on the fee
type: string
additionalInfoUri:
description: Link to a web page with more information on this fee
type: string
discounts:
description: An optional list of discounts to this fee that may be available
items:
$ref: "#/components/schemas/BankingProductDiscount"
type: array
required:
- feeType
- name
type: object
x-conditional:
- additionalValue
- amount
- balanceRate
- transactionRate
-
BankingProductDiscount:
properties:
description:
description: Description of the discount
type: string
discountType:
description: The type of discount. See the next section for an overview of valid values and their meaning
enum:
- BALANCE
- DEPOSITS
- ELIGIBILITY_ONLY
- FEE_CAP
- PAYMENTS
type: string
amount:
description: Dollar value of the discount. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory.
type: string
balanceRate:
description: A discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
type: string
transactionRate:
description: A discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory
type: string
accruedRate:
description: A discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
type: string
feeRate:
description: A discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee
type: string
additionalValue:
description: Generic field containing additional information relevant to the [discountType](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [discountType](#tocSproductdiscounttypedoc)
type: string
additionalInfo:
description: Display text providing more information on the discount
type: string
additionalInfoUri:
description: Link to a web page with more information on this discount
type: string
eligibility:
description: Eligibility constraints that apply to this discount. Mandatory if ``discountType`` is ``ELIGIBILITY_ONLY``.
items:
$ref: "#/components/schemas/BankingProductDiscountEligibility"
type: array
required:
- description
- discountType
type: object
x-conditional:
- accruedRate
- additionalValue
- amount
- balanceRate
- eligibility
- feeRate
- transactionRate
BankingProductDiscountEligibility:
properties:
discountEligibilityType:
description: The type of the specific eligibility constraint for a discount
enum:
- BUSINESS
- EMPLOYMENT_STATUS
- INTRODUCTORY
- MAX_AGE
- MIN_AGE
- MIN_INCOME
- MIN_TURNOVER
- NATURAL_PERSON
- OTHER
- PENSION_RECIPIENT
- RESIDENCY_STATUS
- STAFF
- STUDENT
type: string
additionalValue:
description: Generic field containing additional information relevant to the [discountEligibilityType](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)
type: string
additionalInfo:
description: Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)
type: string
additionalInfoUri:
description: Link to a web page with more information on this eligibility constraint
type: string
required:
- discountEligibilityType
type: object
x-conditional:
- additionalInfo
- additionalValue
CommonSimpleAddress:
properties:
mailingName:
description: Name of the individual or business formatted for inclusion in an address used for physical mail
type: string
addressLine1:
description: First line of the standard address object
type: string
addressLine2:
description: Second line of the standard address object
type: string
addressLine3:
description: Third line of the standard address object
type: string
postcode:
description: Mandatory for Australian addresses
type: string
city:
description: Name of the city or locality
type: string
state:
description: Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT
type: string
country:
default: AUS
description: A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present.
type: string
required:
- addressLine1
- city
- state
type: object
x-conditional:
- postcode
CommonPAFAddress:
description: Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)
properties:
dpid:
description: Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier
type: string
thoroughfareNumber1:
description: Thoroughfare number for a property (first number in a property ranged address)
type: integer
thoroughfareNumber1Suffix:
description: Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated
type: string
thoroughfareNumber2:
description: Second thoroughfare number (only used if the property has a ranged address eg 23-25)
type: integer
thoroughfareNumber2Suffix:
description: Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated
type: string
flatUnitType:
description: Type of flat or unit for the address
type: string
flatUnitNumber:
description: Unit number (including suffix, if applicable)
type: string
floorLevelType:
description: Type of floor or level for the address
type: string
floorLevelNumber:
description: Floor or level number (including alpha characters)
type: string
lotNumber:
description: Allotment number for the address
type: string
buildingName1:
description: Building/Property name 1
type: string
buildingName2:
description: Building/Property name 2
type: string
streetName:
description: The name of the street
type: string
streetType:
description: The street type. Valid enumeration defined by Australia Post PAF code file
type: string
streetSuffix:
description: The street type suffix. Valid enumeration defined by Australia Post PAF code file
type: string
postalDeliveryType:
description: Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file
type: string
postalDeliveryNumber:
description: Postal delivery number if the address is a postal delivery type
type: integer
postalDeliveryNumberPrefix:
description: Postal delivery number prefix related to the postal delivery number
type: string
postalDeliveryNumberSuffix:
description: Postal delivery number suffix related to the postal delivery number
type: string
localityName:
description: Full name of locality
type: string
postcode:
description: Postcode for the locality
type: string
state:
description: State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT
type: string
required:
- localityName
- postcode
- state
type: object
# Schemas related to Statements
#
StatementResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Statement"
meta:
$ref: "#/components/schemas/Meta"
Statement:
type: object
properties:
accountId:
type: string
statementId:
type: string
statementReference:
type: string
statementType:
type: string
startDateTime:
type: string
format: date-time
endDateTime:
type: string
format: date-time
creationDateTime:
type: string
format: date-time
statementDescription:
type: array
items:
type: string
statementBenefit:
type: array
items:
$ref: "#/components/schemas/StatementBenefit"
statementFee:
type: array
items:
$ref: "#/components/schemas/StatementFeeIntereset"
statementInterest:
type: array
items:
$ref: "#/components/schemas/StatementFeeIntereset"
statementAmount:
type: array
items:
$ref: "#/components/schemas/StatementAmount"
statementDateTime:
type: array
items:
$ref: "#/components/schemas/StatementDateTime"
statementRate:
type: array
items:
$ref: "#/components/schemas/StatementRate"
statementValue:
type: array
items:
$ref: "#/components/schemas/StatementValue"
totalValue:
$ref: "#/components/schemas/Amount"
required:
- accountId
- creationDateTime
- statementType
- startDateTime
- endDateTime
StatementBenefit:
type: object
properties:
amount:
$ref: "#/components/schemas/Amount"
benefitType:
type: string
required:
- benefitType
- amount
StatementFeeIntereset:
type: object
properties:
amount:
$ref: "#/components/schemas/Amount"
creditDebitIndicator:
$ref: "#/components/schemas/CreditDebitEnum"
description:
type: string
frequency:
type: string
rate:
type: string
rateType:
type: string
type:
type: string
required:
- creditDebitIndicator
- type
- amount
StatementAmount:
type: object
properties:
amount:
$ref: "#/components/schemas/Amount"
localAmount:
$ref: "#/components/schemas/Amount"
creditDebitIndicator:
$ref: "#/components/schemas/CreditDebitEnum"
type:
type: string
required:
- creditDebitIndicator
- type
- amount
StatementDateTime:
type: object
properties:
dateTime:
type: string
format: date-time
type:
type: string
required:
- dateTime
- type
StatementValue:
type: object
properties:
type:
type: string
value:
type: string
required:
- value
- type
StatementRate:
type: object
properties:
type:
type: string
rate:
type: string
required:
- rate
- type
TransactionByStatementId:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/GenericTransaction"
meta:
$ref: "#/components/schemas/Meta"
#
# Common types
#
BeneficiariesResponse:
type: object
properties:
data:
type: array
items:
$ref: "#/components/schemas/Beneficiary"
meta:
$ref: "#/components/schemas/Meta"
BeneficiaryResponse:
type: object
properties:
data:
$ref: "#/components/schemas/Beneficiary"
meta:
$ref: "#/components/schemas/Meta"
Beneficiary:
type: object
properties:
accountId:
type: string
beneficiaryType:
type: string
description: |
beneficiaryId:
type: string
creditorAccount:
type: object
properties:
schemeName:
type: string
identification:
type: string
name:
type: string
required:
- schemeName
- identification
reference:
type: string
servicer:
type: object
properties:
schemeName:
type: string
identification:
type: string
name:
type: string
postalAddress:
$ref: "#/components/schemas/PostalAddress"
postalAddressList:
description: "This is only for SAMA"
items:
$ref: "#/components/schemas/OBPartyIdentityAddressClaim"
type: array
supplementaryData:
type: object
TCurrency:
type: string
pattern: "^[A-Z]{3,3}$"
AccountNumber:
type: object
properties:
name:
type: string
schemeName:
type: string
description: |
identification:
type: string
secondaryIdentification:
type: string
other:
$ref: "#/components/schemas/otherType"
currency:
$ref: "#/components/schemas/currencyCode"
cashAccountType:
$ref: "#/components/schemas/cashAccountType"
required:
- schemeName
- identification
AccountHolderName:
type: "string"
description: |
The Account Holder Name is the name or names of the Beneficiary account owner(s) represented at the account level, as displayed by the Creditor Agent's online channels and as provided by the Beneficiary to the PSU 1 when adding the Beneficiary in the Beneficiary list.
Note, the Account Holder Name is not the product name or the nickname of the account.
Only used for KSA SAMA standard
AccountHolderShortName:
type: "string"
description: |
The Beneficiary account holder nick name
Only used for KSA SAMA standard
CreditDebitEnum:
type: string
description: |
"Credit" if it is incoming transaction / adding money to account
"Debit" if it is outgoing transaction / paying someone else
enum:
- Credit
- Debit
- KSAOB.Credit
- KSAOB.Debit
TransactionDateTime:
title: "TransactionDateTime"
description: |
The Date Time of when the transaction occurred.
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
type: "string"
format: "date-time"
LocalTimeZone:
title: "LocalTimeZone"
description: |
The UTC offset of the local date and time of where the transaction occurred
E.g. UTC+03:00
type: "string"
format: "date-time"
Flags:
title: "Flags"
description: "The flag of a transaction"
type: "string"
enum:
- "KSAOB.Cashback"
- "KSAOB.Payroll"
- "KSAOB.DirectDebit"
- "KSAOB.StandingOrder"
- "KSAOB.Loan"
- "KSAOB.Dividend"
TerminalId:
description: "ID of the Terminal if the transaction was initiated from a retail POS"
type: "string"
minLength: 8
maxLength: 20
BillDetails:
description: "Bill Details"
type: "object"
properties:
BillerID:
description: "This should be 'BillerCode' as per SP-SADAD specifications. It is a unique biller identifier within SADAD that could be used by the end-user to refer to a specific SADAD biller (e.g. STC biller code is 001, water services biller code is 015, etc.)"
type: "number"
BillNumber:
description: "Unique bill identifier within the account."
type: "string"
BillPaymentType:
description: |
Indicates whether the bill could be a One-off payment, Recurring payment, Postpaid, Pre-paid, etc. Example values:
- "KSAOB.Post-Paid"
- "KSAOB.AdvancePaymentForRoaming"
- "KSAOB.Recharge"
- "KSAOB.Renewal"
- "KSAOB.RoamingDeposit"
- "KSAOB.One-Off"
- "KSAOB.RecurringPayment"
type: "string"
x-namespaced-enum:
- "KSAOB.Post-Paid"
- "KSAOB.AdvancePaymentForRoaming"
- "KSAOB.Recharge"
- "KSAOB.Renewal"
- "KSAOB.RoamingDeposit"
- "KSAOB.One-Off"
- "KSAOB.RecurringPayment"
BillerName:
description: Name of the BPAY biller for the transaction (if available)
type: string
PaymentMode:
title: "PaymentModes"
description: "The mode of payment. This is only used in SAMA"
type: "string"
enum:
- "KSAOB.Online"
- "KSAOB.Offline"
- "KSAOB.Batch"
SubTransactionType:
title: "SubTransactionType"
description: "The sub-type of a transaction. This is only used in SAMA"
type: "string"
enum:
- "KSAOB.Purchase"
- "KSAOB.Reversal"
- "KSAOB.Refund"
- "KSAOB.Withdrawal"
- "KSAOB.WithdrawalReversal"
- "KSAOB.Deposit"
- "KSAOB.DepositReversal"
- "KSAOB.MoneyTransfer"
- "KSAOB.NotApplicable"
BalanceCreditDebitEnum:
type: string
description: |
Indicates whether the balance is a credit or a debit balance.
Usage: A zero balance is considered to be a credit balance.
For SAMA KSA, use `KSAOB.Credit` and `KSAOB.Debit` instead of `Credit` and `Debit`
enum:
- Credit
- Debit
- KSAOB.Credit
- KSAOB.Debit
Amount:
type: object
description: |
properties:
amount:
type: string
pattern: '^\d{1,13}$|^\d{1,13}.\d{1,5}$'
currency:
$ref: "#/components/schemas/TCurrency"
chargeIncluded:
type: "boolean"
required:
- amount
- currency
Amount_2:
type: object
properties:
amount:
type: string
pattern: '^\d{1,13}$|^\d{1,13}.\d{1,5}$'
currency:
description: |
items:
$ref: "#/components/schemas/TCurrency"
type: string
chargeIncluded:
type: "boolean"
required:
- amount
CreditLimitAmount:
type: object
properties:
amount:
type: string
pattern: '^\d{1,13}$|^\d{1,13}.\d{1,5}$'
currency:
$ref: "#/components/schemas/TCurrency"
required:
- amount
- currency
StandingOrderType:
description: "The type of Standing Order."
type: "string"
enum:
- "KSAOB.BetweenMyAccounts"
- "KSAOB.SameBankTransfer"
- "KSAOB.LocalBankTransfer"
- "KSAOB.InternationalTransfer"
- "KSAOB.Charity"
PurposeSO:
description: |
The purpose of the Standing Order payment.
A free format string in the form of transaction categorisation.
Example: "Bills and expenses", "Government payment", "Personal Expenses".
type: "string"
minLength: 1
maxLength: 50
Meta:
type: object
properties:
totalPages:
type: number
description: |
The number of expected pages for the query.
totalRecords:
type: number
description: |
The total number of records in the full set.
PaginatedMeta:
type: object
properties:
paginated:
type: boolean
description: |
`true` if the response is paginated.
`false` if the response returns all matching data elements.
If not specified, a non-paginated response is assumed.
totalPages:
type: number
description: |
The number of expected pages for the query.
totalRecords:
type: number
description: |
The total number of records in the full set.
Error:
type: object
properties:
errorCode:
type: string
description: Error code identifying the problem occured
errorMessage:
type: string
description: Message describing what problem has occured
parameters:
aspspId:
name: o3-aspsp-id
in: header
schema:
type: string
required: true
description: Identifier for the LFI that the request is targetted to
callerOrgId:
name: o3-caller-org-id
in: header
schema:
type: string
description: An identifier for the organization calling the API
callerClientId:
name: o3-caller-client-id
in: header
schema:
type: string
description: An identifier for the OIDC clientId calling the API
callerSoftwareStatementId:
name: o3-caller-software-statement-id
in: header
schema:
type: string
description: An identifier for the software statement calling the API
apiUri:
name: o3-api-uri
in: header
schema:
type: string
required: true
description: The parameterised URL of the API being called by the caller
apiOperation:
name: o3-api-operation
in: header
schema:
type: string
required: true
description: The API operation carried out by the caller (e.g. GET, POST, PUT, DELETE, PATCH)
consentId:
name: o3-consent-id
in: header
schema:
type: string
description: The consentId for which this call is being made
callerInteractionId:
name: o3-caller-interaction-id
in: header
schema:
type: string
description: The interaction ID passed in by the caller, if any
ozoneInteractionId:
name: o3-ozone-interaction-id
in: header
schema:
type: string
required: true
description: An interaction ID generated by Ozone if the caller did not send in one. If the callerInteractionId is specified, this takes the same value.
psuIdentifier:
name: o3-psu-identifier
in: header
schema:
type: string
required: true
description: A Base64 encoded representation of the psuIdentifier JSON object.
pageNumber:
name: page
in: query
schema:
type: string
description: Page number to be returned
transaction-status:
name: status
in: query
description: |
If specified, the API should only return transactions that match the specified `status`.
If this parameter is not specified, then all transactions irrespective of the status should be returned.
### Optionality
This parameter is optional to support.
If not supported by the LFI and the parameter is provided, LFIs must return an error.
schema:
type: string
transaction-fromBookingDateTime:
name: fromBookingDateTime
in: query
description: |
If specified, the API should only return transactions which have a `bookingDateTime` that occours on or after the specified date-time.
schema:
type: string
format: date
transaction-toBookingDateTime:
name: toBookingDateTime
in: query
description: |
If specified, the API should only return transactions which have a `bookingDateTime` that occours on or before the specified date-time.
schema:
type: string
format: date
transaction-creditDebitIndicator:
name: creditDebitIndicator
in: query
description: |
If specified, the API should only return transactions that match the specified `creditDebitIndicator`.
If this parameter is not specified, then all transactions irrespective of the status should be returned.
This functionality is only required for Berlin Group & OBIE APIs.
This query parameter can be used in the following ways:
- If Credit or Debit has to be passed:
- `creditDebitIndicator=Credit` or `creditDebitIndicator=Debit`
- If both Credit and Debit have to be passed, it can be done in 2 ways:
- `creditDebitIndicator=Credit&creditDebitIndicator=Debit` or
- `creditDebitIndicator=Credit,Debit`
### Optionality
This parameter is required for Berlin Group & OBIE APIs.
If not supported by the LFI and the parameter is provided, LFIs must return an error.
schema:
$ref: "#/components/schemas/CreditDebitEnum"
pagination-page:
name: page
in: query
description: |
The page of results to be returned.
If the `page` parameter is not specified, the LFI may return either:
- a complete set of unpaginated data. The `paginated` flag is set to `false`.
- the first page of paginated data. The `paginated` flag is set to `true`. Optionally,
number of pages are indicated in the `totalPages` attribute.
### Optionality
This parameter is optional to support.
If not supported by the LFI and the parameter is provided, LFIs must return an error.
schema:
type: number
pagination-size:
name: pageSize
in: query
description: |
The number of results to be returned per page.
### Optionality
This parameter is optional to support.
If not supported by the LFI and the parameter is provided, LFIs must return an error.
schema:
type: number
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
|