Online Channel Test Cases
...
Case | Summary | Description | Acceptance Criteria | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | Merchant Configuration | ||||||||||||||||
A-1 | Validate API credentials - Client ID | Merchant's API credentials (Client ID and Client Secret) are present and valid in the Flexiti Developer Portal | Merchant is able to successfully authenticate with Flexiti API using these credentials | ||||||||||||||
A-2 | Validate API credentials - Client Secret | Merchant's API credentials (Client ID and Client Secret) are present and valid in the Flexiti Developer Portal | Merchant is able to successfully authenticate with Flexiti API using these credentials | ||||||||||||||
A-3 | Validate API Base URL is referencing correct Flexiti environment | Merchant's environment should reference the correct Flexiti environments |
| ||||||||||||||
B | Merchant Authentication and Login | ||||||||||||||||
B-1 | Unsuccessfully Authenticate with Flexiti's POS API - invalid client | Test Case: Access the API with
| POST /oauth/token - 400 - invalid_client | ||||||||||||||
B-2 | Unsuccessfully call an endpoint - Invalid token | Test Case: Call the /token endpoint to generate a token and then call a different endpoint after the "expires_in" value expires. | Any endpoint - 401 - unauthorized | ||||||||||||||
B-3 | Unsuccessfully call an endpoint - wrong scope | Test Case: Attempt to call the following endpoints with an token that has a “customer” scope:
|
| ||||||||||||||
B-4 | Any API call - Session time out | Test Case:
| GET {{pos_url}}/flexiti/pos-api/v2.5/client-id/{{client_id}}/customers/lookup?account_number=0001 - 504 - GATEWAY_TIMEOUT | ||||||||||||||
B-5 | Successfully Authenticate with Flexiti's POS API | Test Case: Use the correct “client_secret” and “client_id” from the Developer Portal to access the Flexiti API. | POST /oauth/token - 200 | ||||||||||||||
C | Customer Apply & Apply/Buy Flows | ||||||||||||||||
C-1 - Apply & Apply/init Endpoint (Widget)Buy - Widget - /init endpoint | |||||||||||||||||
C-1.1 | Customer already has an account that needs to be to activated | Test Case:
| POST /client-id/{{client_id}}/widget/init - 200
| ||||||||||||||
C-1.2 | Customer submits a new application and Flexiti identifies the customer has an existing account. | Test Case:
| POST /client-id/{{client_id}}/widget/init - 200
| ||||||||||||||
C-1.3 | Customer submits a new application (widget) | Test Case: Use a new application payload but pass the key below as the middle name:
| POST /client-id/{{client_id}}/widget/init - 200
Send the application payload through the POST /client-id/{client_id}/apply endpoint | ||||||||||||||
C-1.4 | Customer submits a new application that will be declined due to a derogatory status’s on an existing account.New Flexiti user initiates and completes application flow - pending | Test Case: Use a new application payload but pass the key below as the middle name:
| POST /client-id/{{client_id}}/widget/init - 200
Send the application payload through the POST /client-id/{client_id}/apply endpoint | ||||||||||||||
C-1.5 | New Flexiti user initiates and completes application flow - decline | Test Case: Use a new application payload but pass the key below as the middle name:
| POST /client-id/{{client_id}}/widget/init - 200
Send the application payload through the POST /client-id/{client_id}/apply endpoint | ||||||||||||||
C-1.6 | Customer submits a new application that will be declined due to a derogatory status’s on an existing account. | Test Case:
| POST /client-id/{{client_id}}/widget/init - 200
Send the application payload through the POST /client-id/{client_id}/apply endpoint | C-1.5 |
Code Block |
---|
"middle_name": "D-ENST_TEXTMAGIC", |
POST /client-id/{{client_id}}/widget/init - 409 -application_create_error
Code Block |
---|
action: "retry"
type: "flx-success"
verified: false |
C-1.5
Customer initiates and then fails verification
Test Case: Create Application with new information and enter 1111 as the pin 4 times.
POST /client-id/{{client_id}}/widget/init - 200
Code Block |
---|
action: "apply"
type: "flx-success"
verified: false |
Send the application payload through the POST /client-id/{client_id}/apply endpoint
C-2 - /Apply Endpoint
C-2.1
Application submission fails - invalid inputs
Test Case:
Code Block |
---|
{ "amount_requested": 5000, "phone_number": "5551231231", "language": "en-CA", "salutation": "mr", "first_name": "Garry", "middle_name": "", "last_name": "Blue", "dob": "1980-01-01", "postal_code": "M6S2R5" } }, "flow": "apply", "email": "test@example.com", "phone_number": 5551231231, "address_1": "123 Any Street", "address_2city": "Toronto", "Apt C "province": "ON", "city": "Montreal", "province": "QC", "postal_code": "A1A0H1", "monthly_housing_expenses": 1000, "input_type": "manual", "personal_income": "abc", "household_income": 223123, "housing_type": "Rent", "email": "email@address.com", "occupation_id": "FE", "occupation_title": "Baker", "employer_name": "Tasty Bakery", "employer_phone": "1231231231", "sin": "", "security_qid": "8", "security_answer": "Horse", "piw": "Cloud", "tos_agreement": true } |
POST /client-id/{client_id}/apply - 409 - "wrong_inputs
"
Code Block |
---|
{
"url": "/flexiti/pos-api/v2.5/client-id/{client-id}/apply",
"message": "Some inputs are wrong!",
"error": "wrong_inputs",
"field_errors": [
{
"param": "personal_income",
"msg": "invalid",
"value": "abc"
}
]
} |
C-2.2
Application submission fails - Terms and Conditions required
Test Case: Any application where "tos_agreement": false
POST /client-id/{client_id}/apply - 409 - "tos_agreement_required"
Code Block |
---|
{
"url": "/flexiti/pos-api/v2.5/client-id/{client-id}/apply",
"message": "It has been following errors:",
"error": "tos_agreement_required"
} |
D-9
New Flexiti user initiates and completes application flow - approval
Test Case: Any application with "middle_name": "A-RR_L",
POST /client-id/{client_id}/apply - 200 - Approved response
D-10
New Flexiti user initiates and completes application flow - pending
Test Case: Any application with "middle_name": "P-CREDIT",
POST /client-id/{client_id}/apply - 200 - Pending response
D-11
New Flexiti user initiates and completes application flow - decline
"middle_name": "D-MISSING_INFO",
POST /client-id/{client_id}/apply - 200 - Declined response
D-7
New user initiates and fails application flow - SIN number format
"sin": 12312
tos_agreement": true
} |
POST /client-id/{{client_id}}/widget/init - 200
Code Block |
---|
action: "apply"
type: "flx-success"
verified: false |
Send the application payload through the POST /client-id/{client_id}/apply endpoint
C-1.7
Customer attempts an application but there is an IT related error.
To be performed with Flexiti Assistance.
Test Case: Use a new application payload but pass the key below as the middle name:
Code Block |
---|
"middle_name": "D-ENST_TEXTMAGIC", |
POST /client-id/{{client_id}}/widget/init - 409 -application_create_error
Code Block |
---|
action: "retry"
type: "flx-success"
verified: false |
C-1.8
Customer initiates and then fails verification
Test Case: Create Application with new information and enter 1111 as the pin 4 times.
POST /client-id/{{client_id}}/widget/init - 200
Code Block |
---|
action: "apply"
type: "flx-success"
verified: false |
Send the application payload through the POST /client-id/{client_id}/apply endpoint
C-2 - Apply & Apply/Buy - Application - /apply endpoint
C-2.1
Application submission fails - invalid inputs
Test Case:
Code Block |
---|
{
"amount_requested": 5000,
"phone_number": "5551231231",
"language": "en-CA",
"salutation": "mr",
"first_name": "Garry",
"middle_name": "",
"last_name": "Blue",
"dob": "1980-01-01",
"address_1": "123 Any Street",
"address_2": "Apt C",
"city": "Montreal",
"province": "QC",
"postal_code": "A1A0H1",
"monthly_housing_expenses": 1000,
"input_type": "manual",
"personal_income": "abc",
"household_income": 223123,
"housing_type": "Rent",
"email": "email@address.com",
"occupation_id": "FE",
"occupation_title": "Baker",
"employer_name": "Tasty Bakery",
"employer_phone": "1231231231",
"sin": "",
"security_qid": "8",
"security_answer": "Horse",
"piw": "Cloud",
"tos_agreement": true
} |
POST /client-id/{client_id}/apply - 409 - "wrong_inputs
"
Code Block |
---|
{ "url": "/flexiti/pos-api/v2.5/client-id/{client-id}/apply", "message": "Some inputs are wrong!", "error": "wrong_inputs", "field_errors": [ { "param": "sinpersonal_income", "msg": "invalid", "value": 12312 "abc" } ] } |
DC-8
2.2
Application submission fails - Terms and Conditions required
Test Case: Any application with "middle_namewhere "tos_agreement": false
POST /client-id/{client_id}/apply - 409 - "tos_agreement_required"
Code Block |
---|
{ "url": " |
/flexiti/pos-api/v2.5/client-id/{client |
-id}/apply |
application_create_error
D-9",
"message": "It has been following errors:",
"error": "tos_agreement_required"
} |
C-2.3
New Flexiti user initiates and completes application flow - approval
Test Case: Any application with "middle_name": "A-RR_L",
POST /client-id/{client_id}/apply - 200 - Approved response
DC-102.4
New Flexiti user initiates and completes application flow - pending
Test Case: Any application with "middle_name": "P-CREDIT",
POST /client-id/{client_id}/apply - 200 - Pending response
DC-112.5
New Flexiti user initiates and completes application flow - decline
Test Case: Any application with"middle_name": "D-MISSING_INFO",
POST /client-id/{client_id}/apply - 200 - Declined response
C-3 - /Authorization Endpoint
- Apply/Buy - Plan Section - /calculate-interest endpoint
C-4 - Apply/Buy - Purchase - /authorization endpoint
D
Customer Buy Flow
D-1 - Buy - Widget - /init endpoint
D-1
Customer initiates and then fails verification - account not found
Test Case:
Account #: 1234 / FlexitiCard #: 9999999999999999
flow: purchase
POST /client-id/{{client_id}}/widget/init - 404 - not_found
Code Block |
---|
{ "url": "/flexiti/pos-api/v2.5/client-id/{client_id}/account/123/verify", "message": "It has been following errors:", "error": "not_found" } |
D-2 - Buy- Plan Section - /calculate-interest endpoint
D-2
Customer initiates and then cancels Flexiti Authorization
To be handled by Merchant’s implementation design, the customer should be able to cancel the transaction process at any time up to the authorization call.
Customer successfully cancels the transaction flow prior to the POST /client-id/{client-id}/authorization request
D-3 - Buy - Purchase - /authorization endpoint
G-2
Customer initiates and then fails verification - account not found
Test Case:
Account #: 1234 / FlexitiCard #: 9999999999999999
flow: purchase
POST /client-id/{{client_id}}/widget/init - 404 - not_found
Code Block |
---|
{ "url": "/flexiti/pos-api/v2.5/client-id/{client_id}/account/123/verify", "message": "It has been following errors:", "error": "not_found" } |
G-3
Customer initiates and then fails Flexiti authorization - missing verification code
Test Case: Merchant generated from test data in sandbox account
verification_code: 9999
POST /client-id/{client-id}/authorization - 409 - verification_code_required
G-4
Customer initiates and then fails Flexiti authorization - Account Number not found
Test Case: Merchant generated from test data in sandbox account
Account #: 1234
POST /client-id/{client-id}/authorization - 404 - not_found
G-5
Customer initiates and then fails Flexiti authorization - user not able to purchase
Test Case: Merchant generated from test data in sandbox account
Account #:
116991633
/ FlexitiCard #: 2374980012865132
POST /client-id/{client-id}/authorization - 409 - user_not_able_to_purchase
G-6
Customer initiates and then fails Flexiti authorization - not enough credit
Test Case: Merchant generated from test data in sandbox account
Account #: provided on request
POST /client-id/{client-id}/authorization - 409 - credit_exceeded
G-7
Customer initiates and then fails Flexiti authorization - invalid plan ID
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{client-id}/authorization - 409 - plan_term_not_set
G-8
Customer initiates and then fails Flexiti authorization - invalid term
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{client-id}/authorization - 409 - plan_term_not_set
G-9
Customer initiates and then fails Flexiti authorization - plan not available to customer
Test Case: Merchant generated from test data in sandbox account
Account #: provided on request
POST /client-id/{client-id}/authorization - 409 - plan_term_not_available
G-10
Customer successfully performs a regular purchase authorization (QC Account)
Test Case: Merchant generated from test data in sandbox account
Account #: provided on request
POST /client-id/{client-id}/authorization - 200
G-11
Customer successfully performs a promotional purchase authorization (QC Account)
Test Case: Merchant generated from test data in sandbox account
Account #: provided on request
POST /client-id/{client-id}/authorization - 200
G-12
Customer successfully performs a regular purchase authorization (ROC account)
Test Case: Merchant generated from test data in sandbox account
Account #: provided on request
POST /client-id/{client-id}/authorization - 200
G-13
Customer successfully performs a promotional purchase authorization (ROC Account)
Test Case: Merchant generated from test data in sandbox account
Account #: provided on request
POST /client-id/{client-id}/authorization - 200
G-14
Response in "account_avs" with customer address matching values
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{client-id}/authorization - 200
H
Merchant Order Management
H-1
Unsuccessfully release an authorization - wrong transaction ID
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/release - not_found
H-2
Unsuccessfully release an authorization - total requested more than authorization
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/release - auth_amount_exceeded
H-3
Unsuccessfully release an authorization - authorization ended
Test Case: Merchant generated from test data in sandbox account with Flexiti assistance.
POST /client-id/{clientId}/authorization/{authorizationId}/release - authorization_ended
H-4
Unsuccessfully release an authorization - employee does not have permission
Test Case: Merchant generated from test data in sandbox account with Flexiti assistance
POST /client-id/{clientId}/authorization/{authorizationId}/release - not_permitted
H-5
Perform a full release of an Authorization
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/release - 200
H-6
Perform a partial release of an Authorization
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/release - 200
H-7
Unsuccessfully capture an authorization - customer not able to purchase
Test Case: Merchant generated from test data in sandbox account with Flexiti assistance.
POST /client-id/{clientId}/authorization/{authorizationId}/capture - 409 - not_permitted
H-8
Unsuccessfully capture an authorization - authorization not capturable
Test Case: Merchant generated from test data in sandbox account with Flexiti assistance.
POST /client-id/{clientId}/authorization/{authorizationId}/capture - 409 - not_permitted
H-9
Unsuccessfully capture an authorization - wrong authorization ID
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture - 404 - not_found
H-10
Unsuccessfully capture an authorization - amount greater than authorization
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture - 409 - auth_amount_exceeded
H-11
Fully Capture an authorization
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture - 200
H-12
Partially Capture an authorization
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture - 200
H-13
Unsuccessfully refund a captured regular purchase - customer account not found
Test Case:
Account #: 1234
POST /client-id/{client_id}/accounts/{account_number}/refund - 404 - not_found
H-14
Unsuccessfully refund a captured regular purchase - refund exceeds limit
Test Case: Merchant generated from test data in sandbox account with Flexiti assistance.
POST /client-id/{client_id}/accounts/{account_number}/refund - 409 - refunds_limit_exceeded_amount
H-15
Perform a full refund of a captured regular purchase
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{client_id}/accounts/{account_number}/refund - 200
H-16
Perform a Partial Refund of a captured regular purchase
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{client_id}/accounts/{account_number}/refund - 200
H-17
Unsuccessfully return a captured promotional purchase - wrong authorization ID
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return
H-18
Unsuccessfully return a captured promotional purchase - return exceeds limit
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return
H-19
Perform a full Return on a captured promotional purchase
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return - 200
H-20
Perform a Partial return of a captured promotional purchase
Test Case: Merchant generated from test data in sandbox account
POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return - 200
H-21
Unsuccessfully view list of Authorizations available for capture - wrong dates
Test Case: Merchant generated from test data in sandbox account
GET /client-id/{clientId}/authorizations - 409 - date_from_bigger_than_date_to
H-22
View a list of Authorizations available for capture
Test Case: Merchant generated from test data in sandbox account
GET /client-id/{clientId}/authorizations - 200
H-23
Unsuccessfully view an authorization - authorization not found
Test Case: Merchant generated from test data in sandbox account
GET /client-id/{clientId}/authorization/{authorizationId} - 409 - not_found
H-24
View an authorization
Test Case: Merchant generated from test data in sandbox account
GET /client-id/{clientId}/authorization/{authorizationId} - 200
H-25
Unsuccessfully View a list of captures - wrong dates
Test Case: Merchant generated from test data in sandbox account
GET /client-id/{clientId}/captures - 409 - date_from_bigger_than_date_to
I-26
View a list of captures
Test Case: Merchant generated from test data in sandbox account
GET /client-id/{clientId}/captures - 200
...