Integration test and verification

Before going live with your Brite integration it is important to test it thoroughly. In this section we will cover what to test, how to test and what to look for when performing the tests. 

Sandbox testing

When integrating the Brite client, we would recommend testing the following OS and browser combinations to cover the majority of user cases:

OSBrowser
WindowsChrome
WindowsFirefox
WindowsEdge
MacSafari
iOSSafari
iOSChrome
AndroidChrome

How to test

Use Sandbox to test your integration. You can test happy flow using which ever bank in the list for the country you are testing. 

Test data – Got to Test data for comprehensive data for testing in the Sandbox environment. 

Test bank – The “Test bank” can be chosen as a bank in all countries in the bank selector step in the client. This has some built-in testing scenarios described below. Note that this is not to be used for happy flow testing. In those cases, use any other bank as described above. 

Testing scenarios

The following scenarios are recommended to test before moving from the Sandbox environment to the Production environment.

Users
  • New users
    Make sure new users are registered correctly when using Brite Play.
  • Returning users
    Logic in place for handle returning user. Make sure that a returning users is logged into the correct account.
  • Get KYC (Brite Play)
    Fetch users KYC in the Brite Play flow by first calling kyc.create and then kyc.get.
Deposits
  • Successful deposit
    Verify that a transaction is successful by receiving callback for STATE_CREDIT or fetch latest state directly from the API.  Credit the users account. 
  • Failed/Aborted deposit
    Verify that an aborted/failed session and transaction is handled properly. Also make sure to have logic in place to handle a transactions which have failed or been aborted but then transitions to Credited. 
  • Merchant approval/rejection of a deposit session
    Make sure logic for calling session.approve and session.reject is resulting in the expected behavior. Also make sure to have logic in place for tracking rejection reason.
  • Ensure callbacks are successful
    Subscribing to desired callbacks and responding correctly with 200
  • Refunds
    Do a full and a partial refund and verify expected outcome. Also perform a refund exceeding the refundable amount. 
Withdrawals
  • Create bank account
    Create a new Brite bank account using bank_account.createin all countries you operate in. If you operate in Sweden or Denmark. Make sure you have logic in place to send valid BBAN.
  • Successful withdrawal
    Verify that a transaction is successful by receiving callback for STATE_CREDIT or fetch latest state directly from the API.
  • Failed/aborted withdrawal
    Verify that an aborted/failed session and transaction is handled properly.
  • Merchant approval/rejection of withdrawal
    Make sure internal logic for Approval/rejection is working as intended. Also make sure to have logic in place for tracking rejection reason.
  • Ensure callbacks are successful
    Subscribing to desired callbacks and responding correctly with 200 
Brite Client
  • Verify size of Client
    Verify that the client size is 600*400 and there are not scrollbars visible when client is rendered. For mobile the size should be 100% of the viewport. 
  • Client border
    If the Client is rendered in modal make sure borders are not duplicated
  • Client Close and Exit buttons.
    Make sure the user is redirected accordingly if the Client is closed or the user presses the exit button

Error simulation

It is possible to do negative tests in the Sandbox environment. In the Bank selection step, you can select the Test Bank and have some test scenarios to select and is enabled for all markets.

  • Fail after login
    Login fail and and the user is presented with: “The bank is experiencing technical issues. Please try again later.” Error_code: “generic_bank_error”
  • No funds
    Login fail and User is presented with: “None of your bank accounts have enough funds for this transaction. Please top up your accounts or select a different bank.”  Error_code:
    “psu_insufficient_funds_all_accounts”
  • Incomplete KYC
    Login is aborted due to incomplete KYC. user is presented with error message saying: “Incomplete information from identity service. Please contact your bank.”  Error_code: “incomplete_kyc_information_from_kyc_provider”
  • Risk engine abort
    Transaction is rejected due to risk engine decision. User is prompted with “Oops, something went wrong! The transaction was rejected”. Error_code: “risk_engine_rejection”.  Session is aborted and callback session STATE_ABORTED = 10 and transaction STATE_ABORTED = 2 is sent.
  • Fail transaction
    Transaction is failed.  User is promted with: “Oops, something went wrong! The transaction was rejected by the bank”. Error_code: “bank_rejected_transaction”.  Session is aborted and callback session STATE_ABORTED = 10 and transaction STATE_ABORTED = 2 is sent.
  • Underage customer
    Transaction is rejected due to risk engine decision because of the customer being a minor. User is prompted with “Oops, something went wrong! Unfortunately, your transaction cannot be processed at this time”. Error_code: “risk_engine_rejection”.  Session is aborted and callback session STATE_ABORTED = 10 and transaction STATE_ABORTED = 2 is sent.

Production testing

Before going live to all users, Brite will require that a couple of production test transactions, both deposits and withdrawals, are done and verified OK. Please ensure the end user balance is credited correctly. Please provide a screen recording of the testing, both deposit and withdrawal, with Brite. With that we can verify that the sizing of the client etcetera is optimized.

If applicable, we will be checking Brite’s positioning on the cashiers between the competitors as per contractual agreement.

Table of contents