/
Ozone Connect Test Cases

This space is deprecated and no longer supported. Please use the latest available version here.

Ozone Connect Test Cases

 

The following test cases have been implemented in the Testing Tool:

  • Response code validations.

  • Response schema validations.

  • Response data validations.

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

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

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

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

 

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

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

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

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

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

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

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

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 for AIS and PIS endpoints:

Scenario

Response

Expected outcome

Scenario

Response

Expected outcome

Fail if o3-psu-identifier header is missing

400 

Fail if o3-psu-identifier header is missing with status 400 and correct schema

Fail if o3-api-uri header is missing

400

Fail if o3-api-uri header is missing with status 400 and correct schema

Fail if o3-api-operation header is missing

400

Fail if o3-api-operation header is missing with status 400 and correct schema

Fail if o3-aspsp-id header is missing

400

Fail if o3-aspsp-id header is missing with status 400 and correct schema

Fail if o3-ozone-interaction-id header is missing

400

Fail if o3-ozone-interaction-id header is missing with status 400 and correct schema

Fail if o3-provider-id header is missing

400

Fail if o3-provider-id header is missing with status 400 and correct schema

Fail if o3-caller-org-id header is missing

400

Fail if o3-caller-org-id header is missing with status 400 and correct schema

Fail if o3-caller-client-id header is missing

400

Fail if o3-caller-client-id header is missing with status 400 and correct schema

Fail if o3-caller-software-statement-id header is missing

400

Fail if o3-caller-software-statement-id header is missing with status 400 and correct schema

Fail if o3-consent-id header is missing

400

Fail if o3-consent-id header is missing with status 400 and correct schema

Fail if o3-consent-id header is having invalid value

400

Fail if o3-consent-id header is having invalid value with status 400 and correct schema

Fail if o3-caller-software-statement-id header is having invalid value

400

Fail if o3-caller-software-statement-id header is having invalid value with status 400 and correct schema

Fail if o3-caller-client-id header is having invalid value

400

Fail if o3-caller-client-id header is having invalid value with status 400 and correct schema

Fail if o3-caller-org-id header is having invalid value

400

Fail if o3-caller-org-id header is having invalid value with status 400 and correct schema

Fail if o3-provider-id header is having invalid value

400

Fail if o3-provider-id header is having invalid value with status 400 and correct schema

Fail if o3-ozone-interaction-id header is having invalid value

400

Fail if o3-ozone-interaction-id header is having invalid value with status 400 and correct schema

Fail if o3-aspsp-id header is having invalid value

400

Fail if o3-aspsp-id header is having invalid value with status 400 and correct schema

Fail if o3-api-operation header is having invalid value

400

Fail if o3-api-operation header is having invalid value with status 400 and correct schema

Fail if o3-api-uri header is having invalid value

400

Fail if o3-api-uri header is having invalid value with status 400 and correct schema

Fail if o3-psu-identifier header is having invalid value

400

Fail if o3-psu-identifier header is having invalid value with status 400 and correct schema

Fails if o3-psu-identifier is not b64 encoded

400

Fails if o3-psu-identifier is not b64 encoded with status 400 and correct schema

Fails if o3-psu-identifier does not evaluate to a json structure

400

Fails if o3-psu-identifier does not evaluate to a json structure, with status 400 and correct schema

Fails if o3-psu-identifier does not contain userId

400

Fails if o3-psu-identifier does not contain userId, with status 400 and correct schema

Fails if o3-psu-identifier header is invalid - the decoded value is valid JSON, but userId is null, empty or undefined

400

Fails if o3-psu-identifier header is invalid - the decoded value is valid JSON, but userId is null, empty or undefined, with status 400 and correct schema

Fails if o3-psu-identifier header is invalid - the decoded value is valid JSON, but userId is not a string

400

Fails if o3-psu-identifier header is invalid - the decoded value is valid JSON, but userId is not a string, with status 400 and correct schema

2. Bank Service Test Cases

POST /payments & Get /payments

Scenario

Response

Expected outcome

Scenario

Response

Expected outcome

POST /payments

Domestic single payment Consumer to Consumer:Successful response from LFI when the request is valid

Note: Test cases for different account types like SME, Retail and Corporate have been added. The intention of these tests is to make sure that different users are able to make payments to different types of creditors as applicable.

201

Returns a 201 status code with paymentId in the response body for a domestic payment from consumer to consumer

Get payments

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 and data structure.

200 with payment details in the response

Returns a 200 with status 'Pending'

Get /payments

Inquire a 'Rejected' Single Immediate Domestic payment

Note: As a pre-requisite need to post a payment which triggers business rules to get rejected and inquire that in Get endpoint

200

Returns a 200 with status 'Rejected' and with reason object populated with details

Negative Test - Fail if paymentType field in the request body is missing

400

Error response

Negative Test - Fail if PersonalIdentifiableInformation field in the request body is missing.

400

Error response

Negative Test - Fail if PaymentPurposeCode field in the request body is missing

400

Error response

Negative Test - Fail if ConsentId field in the request body is missing

400

Error response

POST /payments

Domestic Future Dated payment:Successful response when the request is valid

Note: the tests are repeated for different users like SME, Corporate and Retail

201

Returns a 201 status code with paymentId in the response body for a domestic payment when executionDate in the payload is a future date

 

Get /payments/{paymentId}

Inquire a 'Pending' Future dated 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 and data structure.

200 with payment details in the response

Returns a 200 with status 'Pending'

The below status’s might not be feasible to validate , but GET /payment should supports these different status’s

Inquire a 'AcceptedSettlementInProcess' Single Immediate Domestic payment

200

Returns a 200 with status 'AcceptedSettlementInProcess'

Inquire a 'AcceptedSettlementCompleted' Single Immediate Domestic payment

200

Returns a 200 with status 'AcceptedSettlementCompleted'

Inquire a 'AcceptedWithoutPosting' Single Immediate Domestic payment

200

Returns a 200 with status 'AcceptedWithoutPosting'

Inquire a 'AcceptedWithoutPosting' Single Immediate Domestic payment

200

Returns a 200 with status 'AcceptedWithoutPosting' and data initially used to post the payment

GET payments/{report-file}

Scenario

Response

Expected outcome

Scenario

Response

Expected outcome

Succeeds if valid paymentId in path parameter returns file name

200

Return a 200 status with correct schema and file name in response

Invalid paymentId in path parameter

400

Invalid paymentId provided in the path parameter should return a 400 status code and correct schema

Fail if paymentId in path parameter is missing

400

The paymentId in the path parameter is missing, should return a 400 status code and correct schema

3. Insurance Test Cases

<TODO>

4. Health Check Test Cases

<TODO>

 

© Ozone Financial Technology Limited 2024-2025
Ozone Non Commercial Software EULA