In-Store Channel Test Cases
...
Summary | Description | Acceptance Criteria | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Merchant Configuration | ||||||||||||||
Validate API credentials - Client ID | Merchant's API credentials are present and valid in the Flexiti Developer Portal | Merchant is able to successfully authenticate with Flexiti API using these credentials | ||||||||||||
Validate API credentials - Client Secret | Merchant's API credentials are present and valid in the Flexiti Developer Portal | Merchant is able to successfully authenticate with Flexiti API using these credentials | ||||||||||||
Validate API Base URL is referencing correct Flexiti environment | Merchant's environment should reference Flexiti’s environments |
| ||||||||||||
Merchant Authentication and Login | ||||||||||||||
Unsuccessfully Authenticate with Flexiti's POS API - invalid client | Test Case: Access the API with
| POST /oauth/token - 400 - invalid_client | ||||||||||||
Unsuccessfully call an endpoint - Invalid token | Test Case: Call the /token endpoint to generate a token and then call a different after the "expires_in" value expires. | Any endpoint - 401 - unauthorized | ||||||||||||
Unsuccessfully call an endpoint - wrong scope | Test Case: Attempt to call the following endpoints with an token that has a “customer” scope:
|
| ||||||||||||
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 | ||||||||||||
Successfully Authenticate with Flexiti's POS API | Test Case: Use the correct “client_secret” and “client_id” to access the Flexiti API. | POST /oauth/token - 200 | ||||||||||||
Customer Application Flows | ||||||||||||||
Unsuccessful Drivers License Scan | Test Case: Send the following request to POST /client-id/{client_id}/customers/driverslicense
| POST /client-id/{client_id}/customers/driverslicense - 409 - Driver License's not supported | ||||||||||||
Successful Drivers License Scan | Test Case: Send the following request to POST /client-id/{client_id}/customers/driverslicense
| POST /client-id/{client_id}/customers/driverslicense - 200 | ||||||||||||
New user initiates and then cancels Flexiti application flow | Test Case: To be handled by Merchant’s implementation design, the customer should be able to cancel the transaction process at any time up to the transaction call. | Merchant design driven | ||||||||||||
New user initiates and fails application flow - missing required parameters | Test Case:
| POST /client-id/{client_id}/apply - 409 - "
| ||||||||||||
New user initiates and fails application flow - invalid inputs | Test Case:
| POST /client-id/{client_id}/apply - 409 - "
| ||||||||||||
New user initiates and fails application flow - existing customer | Test Case: To be performed with Flexiti Assistance.
| POST /client-id/{client_id}/apply - 409 - "customer_already_exists" | ||||||||||||
New user initiates and fails application flow - terms and conditions required | Test Case: Any application where | POST /client-id/{client_id}/apply - 409 - "tos_agreement_required"
| ||||||||||||
New user initiates and fails application flow - SIN number format | Test Case: Any application where | POST /client-id/{client_id}/apply - 409 - "wrong_inputs"
| ||||||||||||
New user initiates and fails application flow - Third Party time out | Test Case: Any application with | POST /client-id/{client_id}/apply - 409 - application_create_error | ||||||||||||
New Flexiti user initiates and completes application flow - approval | Test Case: Any application with | POST /client-id/{client_id}/apply - 200 - Approved response | ||||||||||||
New Flexiti user initiates and completes application flow - pending | Test Case: Any application with | POST /client-id/{client_id}/apply - 200 - Pending response | ||||||||||||
New Flexiti user initiates and completes application flow - decline | Test Case: Any application with | POST /client-id/{client_id}/apply - 200 - Declined response | ||||||||||||
Customer Management | ||||||||||||||
Customer not found on Lookup | Test Case:
| GET /client-id/{client_id}/customers/lookup - 404 - not_found
| ||||||||||||
Customer found not able to transact | Test Case: Merchant generated from test data in sandbox account
| GET /client-id/{client_id}/customers/lookup - 409 - user_not_able_to_purchase | ||||||||||||
Customer account needs activation | Test Case: Merchant generated from test data in sandbox account
| GET /client-id/{client_id}/customers/lookup - 409 - user_not_active | ||||||||||||
Successful customer lookup | Test Case: Merchant generated from test data in sandbox account
| GET /client-id/{client_id}/customers/lookup - 200 | ||||||||||||
Unsuccessful customer search - missing first name | Test Case:
| GET /client-id/{client_id}/customers/search - 409 - wrong_inputs
| ||||||||||||
Unsuccessful customer search - missing last name | Test Case:
| GET /client-id/{client_id}/customers/search - 409 - wrong_inputs
| ||||||||||||
Unsuccessful customer search - missing DOB | Test Case:
| GET /client-id/{client_id}/customers/search - 409 - wrong_inputs
| ||||||||||||
Unsuccessful customer search - invalid DOB format | Test Case: | GET /client-id/{client_id}/customers/search - 409 - wrong_inputs | ||||||||||||
Successful customer search | Test Case: Merchant generated from test data in sandbox account
| GET /client-id/{client_id}/customers/search - 200 | ||||||||||||
Available Plans and Terms | ||||||||||||||
Customer's Plans and Terms not displayed - customer not found | Test Case:
| POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest - 404 - "not_found" | ||||||||||||
Customer's Plans and Terms displayed (QC Customer Account) | Test Case: Merchant generated from test data in sandbox account
| POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest - 200 | ||||||||||||
Customer's Plans and Terms displayed (ROC Customer Account) | Test Case: Merchant generated from test data in sandbox account
| POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest - 200 | ||||||||||||
Customer Verification | ||||||||||||||
Customer initiates and then fails verification - SMS account not found | Test Case:
| POST /client-id/{client_id}/account/{account_number}/verify - 404 - not_found | Customer initiates and then fails verification - email not found | Test Case:
| POST
| Customer initiates and then fails verification - email invalid | Test Case:
| Test Case:
| ||||||
Customer initiates and then fails verification - secret answer mismatch | Test Case: Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client_id}/account/{account_number}/verify - 409 - secret_answer_mismatch | Customer successfully receives verification code by email |
| POST /client-id/{client_id}/account/{account_number}/verify - 200 | Customer successfully receives verification code by SMS | Test Case: Merchant generated from test data in sandbox account | POST 409 - secret_answer_mismatch
| Merchant successfully receives verification code with Security Question and Answer
| |||||
Customer successfully receives verification code by email | Test Case: Merchant generated from test data in sandbox account. PIN will be delivered to email address in Developer Portal account Validation tab.
| POST /client-id/{client_id}/account/{account_number}/verify - 200 | ||||||||||||
Flexiti Transactions (Deposit, In-store Payment, Trade-in) | ||||||||||||||
Customer initiates and then cancels Flexiti transaction flow | Test Case: To be handled by Merchant’s implementation design, the customer should be able to cancel the transaction process at any time up to the transaction call. | Customer successfully cancels the transaction flow prior to the Customer successfully receives verification code by SMS | Test Case: Merchant generated from test data in sandbox account. PIN will be delivered to phone number in Developer Portal account Validation tab.
| POST /client-id/{client_id}/transactions request | Customer initiates and then fails Flexiti transaction - wrong verification code | Test Case: Merchant generated from test data in sandbox account Code Block | /account/{account_number}/verify - 200 | |||||||
Merchant successfully receives verification code with Security Question and Answer | Test Case:
| POST /client-id/{client_id}/transactions - 409 - wrong_verification_code/account/{account_number}/verify - 200 | ||||||||||||
Flexiti Transactions (Deposit, In-store Payment, Trade-in) | ||||||||||||||
Customer initiates and then fails cancels Flexiti transaction - missing verification codeflow | Test Case:Merchant generated from test data in sandbox account To be handled by Merchant’s implementation design, the customer should be able to cancel the transaction process at any time up to the transaction call. | Customer successfully cancels the transaction flow prior to the POST /client-id/{client_id}/transactions - 409 - verification_code_requiredrequest | ||||||||||||
Customer initiates and then fails Flexiti transaction - wrong verification code | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client_id}/transactions - 409 - wrong_verification_code | ||||||||||||
Customer initiates and then fails Flexiti transaction - missing verification code | Test Case:
| POST /client-id/{client_id}/transactions - 409 - verification_code_required
| ||||||||||||
Customer initiates and then fails Flexiti transaction - VCC (FlexitiCard) not found | Test Case:
| POST /client-id/{client_id}/transactions - 404 - not_found
| ||||||||||||
Customer initiates and then fails Flexiti transaction - VCC (FlexitiCard) Customer ID not found | Test Case:
| POST /client-id/{client_id}/transactions - 404 - not_found | Customer initiates and then fails Flexiti transaction - Customer ID not found | Test Case:
| POST
| |||||||||
Customer initiates and then fails Flexiti transaction - Account Number not found | Test Case:
| POST /client-id/{client_id}/transactions - 404 - not_found
| ||||||||||||
Customer initiates and then fails Flexiti transaction - user not active | Test Case:
| POST /client-id/{client_id}/transactions - 409 - user_not_active | ||||||||||||
Customer initiates and then fails Flexiti transaction - user not able to purchase | Test Case:
| POST /client-id/{client_id}/transactions - 409 - user_not_able_to_purchase | ||||||||||||
Customer initiates and then fails Flexiti transaction - invalid transaction type | Test Case: Merchant generated from test data in sandbox account | POST /client-id/{client_id}/transactions - 409 - invalid_transaction_type | ||||||||||||
Customer initiates and then fails Flexiti transaction - Payment exceeds customer’s Open to Buy | Test Case:
| POST /client-id/{client_id}/transactions - 409 - not_enough_credit | ||||||||||||
Customer initiates and then fails Flexiti transaction - Payment exceeds limit | Test Case: Attempt to make a payment of $10,500
| POST /client-id/{client_id}/transactions - 409 - limit_payment_amount_24 | ||||||||||||
Customer successfully performs a deposit | Test Case:
| POST /client-id/{client_id}/transactions - 200 | ||||||||||||
Customer successfully performs an in-store payment | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client_id}/transactions - 200 | ||||||||||||
Customer successfully performs a trade-in | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client_id}/transactions - 200 | ||||||||||||
Flexiti Authorization | ||||||||||||||
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 | ||||||||||||
Customer initiates and then fails Flexiti authorization - wrong verification code | Test Case: Merchant generated from test data in sandbox account | POST /client-id/{client-id}/authorization - 409 - wrong_verification_code | ||||||||||||
Customer initiates and then fails Flexiti authorization - missing verification code | Test Case: Merchant generated from test data in sandbox account | POST /client-id/{client-id}/authorization - 409 - verification_code_required | ||||||||||||
Customer initiates and then fails Flexiti authorization - Account Number not found | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 404 - not_found | ||||||||||||
Customer initiates and then fails Flexiti authorization - user not active | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 409 - user_not_able_to_purchase | ||||||||||||
Customer initiates and then fails Flexiti authorization - user not able to purchase | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 409 - user_not_able_to_purchase | ||||||||||||
Customer initiates and then fails Flexiti authorization - not enough credit | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 409 - credit_exceeded | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
Customer initiates and then fails Flexiti authorization - plan not available to customer | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 409 - plan_term_not_available | ||||||||||||
Customer successfully performs a regular purchase authorization (QC Account) | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 200 | ||||||||||||
Customer successfully performs a promotional purchase authorization (QC Account) | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 200 | ||||||||||||
Customer successfully performs a regular purchase authorization (ROC account) | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 200 | ||||||||||||
Customer successfully performs a promotional purchase authorization (ROC Account) | Test Case: Merchant generated from test data in sandbox account
| POST /client-id/{client-id}/authorization - 200 | ||||||||||||
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 | ||||||||||||
Merchant Order Management | ||||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
Unsuccessfully capture an authorization - wrong authorization ID | Test Case: | POST /client-id/{clientId}/authorization/{authorizationId}/capture - 404 - not_found | ||||||||||||
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 | ||||||||||||
Fully Capture an authorization | Test Case: Merchant generated from test data in sandbox account | POST /client-id/{clientId}/authorization/{authorizationId}/capture - 200 | ||||||||||||
Partially Capture an authorization | Test Case: Merchant generated from test data in sandbox account | POST /client-id/{clientId}/authorization/{authorizationId}/capture - 200 | ||||||||||||
Unsuccessfully refund a captured regular purchase - customer account not found | Test Case: | POST /client-id/{client_id}/accounts/{account_number}/refund - 404 - not_found | ||||||||||||
Unsuccessfully refund a captured regular purchase - refund exceeds limit | Test Case: | POST /client-id/{client_id}/accounts/{account_number}/refund - 409 - refunds_limit_exceeded_amount | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
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 | ||||||||||||
View a list of Authorizations available for capture | Test Case: Merchant generated from test data in sandbox account | GET /client-id/{clientId}/authorizations - 200 | ||||||||||||
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 | ||||||||||||
View an authorization | Test Case: Merchant generated from test data in sandbox account | GET /client-id/{clientId}/authorization/{authorizationId} - 200 | ||||||||||||
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 | ||||||||||||
View a list of captures | Test Case: Merchant generated from test data in sandbox account | GET /client-id/{clientId}/captures - 200 |
...