Test Plan - In-store Channel

In-Store Channel Test Cases

All test cases outlined are in our Merchant Integration environment

Case

Summary

Description

Acceptance Criteria

Case

Summary

Description

Acceptance Criteria

A

Merchant Configuration

A-1

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

A-2

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

A-3

Validate API Base URL is referencing correct Flexiti environmentĀ 

Merchant's environment should reference Flexitiā€™s environments

B

Merchant Authentication and Login

B-1

Unsuccessfully Authenticate with Flexiti's POS API - invalid client

Test Case: Access the API with

'client_id=xxxxxx'

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:

  • GET /client-id/{client_id}/customers/search

  • GET /client-id/{client_id}/customers/lookup

  • POST /client-id/{clientId}/authorization/{authorizationId}/release

  • POST /client-id/{clientId}/authorization/{authorizationId}/capture

  • POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return

  • POST /client-id/{client_id}/accounts/{account_number}/refund

  • GET /client-id/{clientId}/authorizations

  • GET /client-id/{clientId}/authorization/{authorizationId}

  • GET /client-id/{clientId}/captures

  • GET /client-id/{client_id}/customers/search - 403 - forbidden

  • GET /client-id/{client_id}/customers/lookup - 403 - forbidden

  • POST /client-id/{clientId}/authorization/{authorizationId}/release - 403 - forbidden

  • POST /client-id/{clientId}/authorization/{authorizationId}/capture - 403 - forbidden

  • POST /client-id/{clientId}/authorization/{authorizationId}/capture/{captureId}/return - 403 - forbidden

  • POST /client-id/{client_id}/accounts/{account_number}/refund - 403 - forbidden

  • GET /client-id/{clientId}/authorizations - 403 - forbidden

  • GET /client-id/{clientId}/authorization/{authorizationId} - 403 - forbidden

  • GET /client-id/{clientId}/captures - 403 - forbidden

B-4

Any API call - Session time out

Test Case:Ā 

{{pos_url}}/flexiti/pos-api/v2.5/client-id/{{client_id}}/customers/lookup?account_number=0001

Ā 

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 Application Flows

C-1

Unsuccessful Drivers License ScanĀ 

Ā Test Case: Send the following request to POST /client-id/{client_id}/customers/driverslicense

{"code": "@\n\u001e\rxxx\n604428040101 DL00310219DLDCAunavI\nDCBNONE\nDCDNONE\nDBA20200515\nDCSNUMBER1\nDACENSTREAM \nDAD\nDBD20140516\nDBB19740515\nDBCZ\nDAYBLU\nDAU163 cm\nDAG55 UNIVERSITY AVE\nDAITORONTO\nDAJON\nDAKM5J 2H7\nDAQD61014070660905\nDCFPEJK368N4\nDCGCAN\nDDEU\nDDFU\nDDGU\r" }

POST /client-id/{client_id}/customers/driverslicense - 409 - Driver License's not supported

C-2

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

C-3

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

C-4

New user initiates and fails application flow - missing required parameters

Ā Test Case:

POST /client-id/{client_id}/apply - 409 - "wrong_inputs"

Ā 

C-5

New user initiates and fails application flow - invalid inputs

Ā Test Case:

POST /client-id/{client_id}/apply - 409 - "wrong_inputs"

Ā 

C-6

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"

C-7

New user initiates and fails application flow - terms and conditions required

Ā Test Case: Any application where "tos_agreement":Ā false

POST /client-id/{client_id}/apply - 409 -Ā  "tos_agreement_required"

C-8

New user initiates and fails application flow - SIN number format

Ā Test Case: Any application where Ā "sin":Ā 12312

POST /client-id/{client_id}/apply - 409 - "wrong_inputs"

Ā 

C-9

New user initiates and fails application flow - Third Party time out

Ā Test Case: Any application with "middle_name":Ā "D-EMAIL_DBL_TIMEOUT",

POST /client-id/{client_id}/apply - 409 - application_create_errorĀ 

C-10

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

C-11

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

C-12

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-13

New Non-Prime Flexiti user application flow

Ā Test Case: Any application with "middle_name":Ā "A-RR_XX"

POST /client-id/{client_id}/apply - Response depends on whether non-prime is enabled for the merchant

D

Customer Management

D-1

Customer not found on Lookup

Test Case:

GET /client-id/{client_id}/customers/lookup - 404 - not_found

D-2

Customer found not able to transact

Test Case: Merchant generated from test data in sandbox account

  • FlexitiCard #: 6374980111304687

GET /client-id/{client_id}/customers/lookup - 409 - user_not_able_to_purchase

D-3

Customer account needs activation

Test Case: Merchant generated from test data in sandbox account

  • FlexitiCard#: 6006102005837476

GET /client-id/{client_id}/customers/lookup - 409 - user_not_active

D-4

Successful customer lookup

Test Case:

  • Account #: 2374980012865116

GET /client-id/{client_id}/customers/lookup - 200

D-5

Unsuccessful customer search - missing first name

Test Case:

GET /client-id/{client_id}/customers/search - 409 - wrong_inputs

D-6

Unsuccessful customer search - missing last name

Test Case:

GET /client-id/{client_id}/customers/search - 409 - wrong_inputs

D-7

Unsuccessful customer search - missing DOB

Test Case:

GET /client-id/{client_id}/customers/search - 409 - wrong_inputs

D-8

Unsuccessful customer search - invalid DOB format

Test Case:

GET /client-id/{client_id}/customers/search - 409 - wrong_inputs

D-9

Successful customer search

Test Case:

GET /client-id/{client_id}/customers/search - 200

E

Plan Selection

E-1

Customer's Plans and Terms not displayed - customer not found

Test Case:

  • Account #: 1234

POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest - 404 - "not_found"

E-2

Customer's Plans and Terms displayed (QC Customer Account)

Test Case: Merchant generated from test data in sandbox account

  • Account #: 116991631 / FlexitiCard #: 2374980012865116

POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest - 200

E-3

Customer's Plans and Terms displayed (ROC Customer Account)

Test Case: Merchant generated from test data in sandbox account

  • Account #: 116991632 / FlexitiCard #: 2374980012865124

POST /pos-api/client-id/{client_id}/accounts/{account_number}/calculate-interest - 200

F

Customer Verification

F-1

Customer initiates and then fails verification - account not found

Test Case:

  • Account #: 1234 / FlexitiCard #: 9999999999999999

POST /client-id/{client_id}/account/{account_number}/verify - 404 - not_found

F-2

Customer initiates and then fails verification - secret answer mismatch

Test Case:

  • Account #: 116991631

POST /client-id/{client_id}/account/{account_number}/verify - 409 - secret_answer_mismatch

F-3

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.

  • Account #: 116991631 / FlexitiCard #: 2374980012865116

POST /client-id/{client_id}/account/{account_number}/verify - 200

F-4

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.

  • Account #: 116991631 / FlexitiCard #: 2374980012865116

POST /client-id/{client_id}/account/{account_number}/verify - 200

F-5

Merchant successfully receives verification code with Security Question and Answer

Test Case:

  • Account #: 116991631 / FlexitiCard #: 2374980012865116

POST /client-id/{client_id}/account/{account_number}/verify - 200

G

Flexiti Transactions (Deposit, In-store Payment, Trade-in)

G-1

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 POST /client-id/{client_id}/transactions request

G-2

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

G-3

Customer initiates and then fails Flexiti transaction - missing verification code

Test Case:

POST /client-id/{client_id}/transactions - 409 - verification_code_required

G-4

Customer initiates and then fails Flexiti transaction - VCC (FlexitiCard) not found

Test Case:

  • FlexitiCard #: 9999999999999999

POST /client-id/{client_id}/transactions - 404 - not_found

G-4

Customer initiates and then fails Flexiti transaction - Customer ID not found

Test Case:

  • Customer ID: 1111111111111111

POST /client-id/{client_id}/transactions - 404 - not_found

G-6

Customer initiates and then fails Flexiti transaction - Account Number not found

Test Case:

  • Account #: 1111111111111111

POST /client-id/{client_id}/transactions - 404 - not_found

G-7

Customer initiates and then fails Flexiti transaction - Payment exceeds customerā€™s Open to Buy

Test Case: Merchant generated from test data in sandbox account

  • Account #: provided on request

POST /client-id/{client_id}/transactions - 409 - not_enough_credit

G-8

Customer initiates and then fails Flexiti transaction - Payment exceeds limit

Test Case: Attempt to make a payment of $15,500

  • Account #: 116991631 / FlexitiCard #: 2374980012865116

POST /client-id/{client_id}/transactions - 409 - limit_payment_amount_24

G-9

Customer successfully performs a depositĀ 

Ā Test Case: Merchant generated from test data in sandbox account

  • Account #: provided on request

POST /client-id/{client_id}/transactions - 200

G-10

Customer successfully performs an in-store paymentĀ 

Test Case: Merchant generated from test data in sandbox account

  • Account #: provided on request

POST /client-id/{client_id}/transactions - 200

G-11

Customer successfully performs a trade-inĀ 

Test Case: Merchant generated from test data in sandbox account

  • Account #: provided on request

POST /client-id/{client_id}/transactions - 200

H

Flexiti Authorization

H-1

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

H-2

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

H-3

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

H-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

H-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

H-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

H-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

H-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

H-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

H-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

H-11

Customer successfully performs a promotional purchase authorization (QC Account)

  • Using a QC-eligible plan (i.e. EMP no interest 3 months - plan_id 5 if active)

Test Case: Merchant generated from test data in sandbox account

  • Account #: provided on request

POST /client-id/{client-id}/authorization - 200

H-12

Customer successfully performs a promotional purchase authorization (QC Account)

  • Using a QC-non-eligible plan (i.e. S.A.C 3 months - plan_id 6 if active)

Test Case: Merchant generated from test data in sandbox account

  • Account #: provided on request

Ā 

H-13

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

H-14

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

H-15

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

I

Merchant OrderĀ  Management

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-11

Fully Capture an authorization

Test Case: Merchant generated from test data in sandbox account

POST /client-id/{clientId}/authorization/{authorizationId}/capture - 200

I-12

Partially Capture an authorization

Test Case: Merchant generated from test data in sandbox account

POST /client-id/{clientId}/authorization/{authorizationId}/capture - 200

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-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

I-24

View an authorization

Test Case: Merchant generated from test data in sandbox account

GET /client-id/{clientId}/authorization/{authorizationId} - 200

I-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

Ā