...
The tests below are a subset of a broader range of tests. New tests will be introduced gradually as the Ozone Testing Tool is updated and new versions of CBUAE Open Finance Standards are released.
1. Bank Data Test Cases
...
GET /accounts
Scenario | Response |
---|
Expected outcome |
---|
Valid accountIds are included as a query parameter, each with distinct SubTypes like CurrentAccount, Savings, and CreditCard for |
a retail |
user in Active status |
200 | Returns a 200 if all headers are valid and returns a record for each specified accountId including CurrentAccount, Savings, and CreditCard for a retail user with status 'Active' |
and validate correct accountType and accountSubType fields are populated for each accountId | ||
Valid accountId which is in NotActive status | 200 | Returns a 200 if all headers are valid and the status of the account is NotActive |
Valid accountId which is in Dormant status | 200 | Returns a 200 if all headers are valid and the status of the account is Dormant |
Valid accountId which is in Unclaimed status | 200 | Returns a 200 if all headers are valid and the status of the account is Unclaimed |
Valid accountId which is in Deceased status | 200 | Returns a 200 if all headers are valid and the status of the account is Deceased |
Valid accountId which is in Suspended status | 200 | Returns a 200 if all headers are valid and the status of the account is Suspended |
Valid accountId which is in Closed status | 200 | Returns a 200 if all headers are valid and the status of the account is Closed |
Combination of valid and invalid ( correct format but there is no data) accountIds | 200 | Returns a 200 if all headers are valid and returns a record for each valid accountId when both valid and invalid accountIds are specified |
No accounts found | 200 |
Returns a 200 if all headers are valid no account information is found for the specified accountId | |
Missing accountIds query parameter | 400 |
fails with 400 if accountIds query param is missing |
Header validations:
Requirement
Scenario
Response
Expected outcome
GET /accounts
Mix of accountIds in correct and bad format | 200 | Returns a 200 if all headers are valid and Returns a record for each valid accountId when mix of properly formatted and badly formatted accountIds are specified |
Non-comma-separated accountIds | 200 | Returns a 200 with empty array. |
GET /accounts/{accountId}
Scenario | Response | Expected outcome |
---|---|---|
Valid accountId has been provided: CurrentAccount for retail user in Active status | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter which should be present in the response body and the schema aligns with a CurrentAccount for Retail user in Active status |
Valid accountId has been provided: CurrentAccount for SME user in Closed status | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a CurrentAccount for SME user in closed status |
Valid accountId has been provided: CurrentAccount for Corporate user in Dormant status | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a CurrentAccount for Corporate user in Dormant status |
Valid accountId has been provided :Savings for retail user in Suspended status | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a Savings account for retail user in Suspended status |
Valid accountId has been provided :Savings for SME user in NotActive status | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a Savings account for SME user in NotActive status |
Valid accountId has been provided :Savings for Corporate user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a Savings account for Corporate user |
Valid accountId has been provided: CreditCard for retail user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a CreditCard account for retail user |
Valid accountId has been provided: CreditCard for SME user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a CreditCard account for SME user |
Valid accountId has been provided: CreditCard for Corporate user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a CreditCard account for Corporate user |
A valid accountId has been provided: PrePaidCard for retail user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a PrePaidCard account for retail user |
A valid accountId has been provided: PrePaidCard for SME user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a PrePaidCard account for SME user |
A valid accountId has been provided: PrePaidCard for Corporate user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a PrePaidCard account for Corporate user |
Valid accountId has been provided: EMoney for retail user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a EMoney account for retail user |
Valid accountId has been provided: EMoney for SME user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a EMoney account for SME user |
Valid accountId has been provided: EMoney for Corporate user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a EMoney account for Corporate user |
Valid accountId has been provided: ChargeCard for SME user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a ChargeCard account for SME user |
Valid accountId has been provided: ChargeCard for Corporate user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a ChargeCard account for Corporate user |
Valid accountId has been provided: ChargeCard for Retail user | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a ChargeCard account for Retail user |
Valid accountId has been provided: Other for Retail | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a Other account for Retail user |
Valid accountId has been provided: Other for Corporate | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a Other account for Corporate user |
Valid accountId has been provided: Other for SME | 200 | Returns a 200 status code when a valid current accountId is provided in the path parameter, and the schema aligns with a Other account for SME user |
GET /accounts/{accountId}/balances
Scenario | Response | Expected outcome |
---|---|---|
Valid accountId provided in the path parameter which has positive balance and credit line included Note: Repeat the test for all eligible account types within the defined scope. | 200 | Returns a status code of 200 if all headers are valid and also retrieves the balances of the specified accountId , where the creditDebitIndicator value is 'credit', and the CreditLines are populated with relevant details. |
Valid accountId provided in the path parameter which has negative balance and credit line not included | 200 | Returns a status code of 200 if all headers are valid and also retrieves the balances of the specified accountId, where the creditDebitIndicator value is 'debit', and the CreditLines object is not present. Note: Add additional validations to check the schema of the amount especially for whole number to have the decimal formatting as required. |
Valid accountId provided in the path parameter which has zero balance | 200 | Returns a 200 if all headers are valid and Returns balances of specified accountId with creditDebitIndicator value as ‘credit’ Note: A zero balance is considered to be a credit balance. |
Valid accountId provided in the path parameter which holds international currency | 200 | Returns a 200 if all headers are valid and Returns balance in international currency of 3 character alphabetic code |
Valid accountId provided in the path parameter which has more than one balanceType and balanceType query param is not supplied | 200 | Returns a status code of 200 if all headers are valid and provides the balances associated with the specified accountId, including all available balance types for that account. |
Returns empty response when balanceType passed in the query param doesn’t fetch any response | 200 | Returns a 200 with empty array |
Return balances when a specific ‘{balanceType}’ is passed in the request | 200 | Returns a 200 if all headers are valid and Returns only balance with type '{balanceType}' |
Returns 400 response when balanceType is not valid | 400 | fails with 400 if balanceType is invalid |
Invalid accountId | 400 | fails with 400 if accountId format is invalid |
Missing accountId path parameter | 401 | fails with 401 if accountId path param is missing |
GET /accounts/{accountId}/beneficiaries
Scenario | Response | Expected outcome |
---|---|---|
A valid accountId is provided in the path parameter, which contains payees categorised as 'Activated' and 'NotActivated' under the BeneficiaryType. | 200 | Returns a 200 if all headers are valid and Returns beneficiaries of specified accountId |
A valid accountId is provided in the path parameter, which contains payees having AddressType as Business, Correspondence, DeliveryTo,MailTo,POBox,Postal,Residential,Statement | 200 | Returns a 200 with multiple payees in the response which has addressTypes as Business, Correspondence, DeliveryTo,MailTo,POBox,Postal,Residential,Statement |
Valid accountId provided in the path parameter which has a empty payees | 200 | Returns a 200 with empty array if all headers are valid accountId Returns no payees |
Missing accountId path parameter | 400 | fails with 400 if accountId is missing |
Invalid accountId | 400 | fails with 400 if accountId format is invalid |
GET /accounts/{accountId}/transactions
Scenario | Response | Expected outcome |
---|---|---|
Valid accountId provided in the path parameter which has a list of transactions | 200 | Returns a 200 if all headers are valid and Returns transactions of specified accountId |
Filter the transactions based on fromBookingDateTime query param | 200 | Returns a 200 with list of transactions from fromBookingDateTime until latest available transaction |
Filter the transactions based on toBookingDateTime query param | 200 | Returns a 200 with list of transactions from the earliest available transaction till toBookingDateTime |
Filter the transactions based on fromBookingDateTime and toBookingDateTime query params | 200 | Returns a 200 with list of transactions within fromBookingDateTime and toBookingDateTime query params |
Valid accountId provided in the path parameter which has empty transactions | 200 | Returns a 200 with empty array if all headers are valid accountId Returns no transactions |
Return error response when toBookingDateTime is before fromBookingDateTime | 400 | Returns 400 when toBookingDateTime is before fromBookingDateTime |
Return error when fromBookingDateTime is invalid | 400 | Returns 400 when fromBookingDateTime is invalid |
Return error when toBookingDateTime is invalid | 400 | Returns 400 when toBookingDateTime is invalid |
Invalid accountId | 400 | fails with 400 if accountId format is invalid |
GET /customer
id | Scenario | Response | Expected outcome |
---|---|---|---|
CUS-010-040 | Valid o3-psu-identifier provided in the header which belongs to a retail user | 200 | Returns a 200 status code with details of a retail user in the response as per the schema
|
Valid o3-psu-identifier provided in the header which belongs to a corporate user | 200 | Returns a 200 status code with details of a corporate user in the response as per the schema | |
Valid o3-psu-identifier provided in the header which belongs to a SME user | 200 | Returns a 200 status code with details of a SME user in the response as per the schema | |
CUS-010-190 | Valid o3-psu-identifier provided in the header which has no customer associated | 200 | Returns a 200 status code with empty data object |
GET /accounts/{accountId}/customer
Scenario | Response | Expected outcome |
---|---|---|
A valid accountId is provided in the path parameter | 200 | Returns a 200 status code when all headers are valid and provides the associated customer details linked to the accountId provided in the request Note: Make sure in the schema validations, fields required for the chosen customer type are returned by LFI correctly |
Valid accountId provided in the path parameter which has no associated parties | 200 | Returns a 200 status code with empty data array |
GET /accounts/{accountId}/direct-debits
Scenario | Response | Expected outcome |
---|---|---|
Valid accountId provided in the path parameter which has direct-debits in Active and Inactive status | 200 | Returns a 200 if all headers are valid and Returns direct-debits of specified accountId in descending/ascending order of which date? |
Valid accountId provided in the path parameter which has direct-debits of frequencies Annual, Daily,Fortnightly, HalfYearly,Monthly,NotKnown,Quartely, Weekly | 200 | Returns a 200 if all headers are valid and Returns direct-debits of specified account which has direct-debits of frequencies Annual, Daily,Fortnightly, HalfYearly,Monthly,NotKnown,Quartely, Weekly |
Valid accountId provided in the path parameter which has a empty direct debits | 200 | Returns a 200 with empty array if all headers are valid and accountId Returns no direct-debits |
Missing accountId path parameter | 400 | fails with 400 if accountId is missing |
Invalid accountId | 400 | fails with 400 if accountId format is invalid |
GET /accounts/{accountId}/scheduled-payments
Scenario | Response | Expected outcome |
---|---|---|
Valid accountId provided in the path parameter which has scheduled-payments in “Arrival” and “Execution” states | 200 | Returns a 200 if all headers are valid and Returns scheduled-payments of specified accountId in descending/ascending order of which date? |
Valid accountId provided in the path parameter which has creditorAccount schemeName as IBAN and AccountNumber | 200 | Returns a 200 if all headers are valid and Returns scheduled-payments of specified accountId with correct creditoraccountIdentification |
Valid accountId provided in the path parameter which has a empty Schedule Payments | 200 | Returns a 200 with empty array if all headers are valid and accountId Returns no scheduled-payments |
Missing accountId path parameter | 400 | fails with 400 if accountId is missing |
Invalid accountId | 400 | fails with 400 if accountId format is invalid |
GET /accounts/{accountId}/standing-orders
Scenario | Response | Expected outcome |
---|---|---|
Valid accountId provided in the path parameter which has standing-orders in Active and Inactive status | 200 | Returns a 200 if all headers are valid and Returns standing-orders of specified accountId in descending/ascending order of which date? |
Valid accountId provided in the path parameter which has standing-orders of type BetweenMyAccounts, SameBankTransfer, LocalBankTransfer, InternationalTransfer, Charity | 200 | Returns a 200 if all headers are valid and Returns standing-orders of specified accountId which has different SOs like BetweenMyAccounts, SameBankTransfer, LocalBankTransfer, InternationalTransfer, Charity |
Valid accountId provided in the path parameter which has a empty standing-orders | 200 | Returns a 200 with empty array if all headers are valid and accountId Returns no standing-orders |
Missing accountId path parameter | 401 | fails with 401 if accountIdis missing |
Invalid accountId | 400 | fails with 400 if accountId format is invalid |
Common header validations:
Scenario | Response | Expected outcome | |
---|---|---|---|
Missing o3-psu-identifier header | 400 | fails with 400 if o3-psu-identifier is not specified | |
GET /accounts | Invalid o3-psu-identifier header - not a b64 encoded value | 400 | fails with 400 if o3-psu-identifier header is invalid - not a base 64 encoded valueGET /accounts |
Invalid o3-psu-identifier header - value is base 64 encoded, but the decoded value is not valid JSON | 400 | fails with 400 if o3-psu-identifier header is invalid - not a valid json | |
GET /accounts | Invalid o3-psu-identifier header - the decoded value is valid JSON, but it lacks the userId parameter | 400 | fails with 400 if o3-psu-identifier header is invalid - the decoded value is valid JSON, but it lacks the userId parameterGET /accounts |
Missing o3-ozone-interaction-id header | 400 | fails with 400 if o3-ozone-interaction-id header is not specifiedGET /accounts | |
Missing o3-api-operation header | 400 | fails with 400 if o3-api-operation header is not specifiedGET /accounts | |
Missing o3-aspsp-id header (o3-provider-id) | 400 | fails with 400 if o3-aspsp-id header param is not specified | |
GET /accounts | Invalid o3-aspsp-id header (o3-provider-id) | 400 | fails with 400 if o3-provider-id header is invalid |
1.2 GET /accounts/{accountId}/transactions
Scenario
Response
Expected outcome
Valid accountId provided in the path parameter which has a list of transactions
Returns a 200 if all headers are valid and returns transactions of specified accountId
2. Bank Service Test Cases
...
GET
...
payments/{paymentId}
Scenario | Response | Expected outcome |
---|---|---|
Inquire a 'Pending' Single Immediate domestic payment Note: When conducting the tests as described above, the main goal is to verify that all payments in different statuses can be accessed with the accurate schema. | 200 with payment details in the response | Returns a 200 with correct schema and in the response the payment status is 'Pending', and the paymentId matches the paymentId in the path parameter. |
3. Insurance Test Cases
<TODO>
4. Health Check Test Cases
<TODO>