Embedded Payments SDK - Certification Tests

Introduction

Partners are required to pass a Certification process of which the main part is the Technical Review. We ask partners to go through this process with us so that we can check that the SDK has been implemented as expected. This help ensure that merchants and customers are provided with the best user experience possible.

Download

Technical Review Test Cases

Useful Testing Tools in Sandbox

  • American Express Payment Test App American Express Payment Test - Apps on Google Play - If you have a second Android device you can use this app to perform Embedded Payments Transactions to test Sandbox payments
  • Seems XP Card 03 can trigger a declined transaction from the American Express Payment Test App for now American Express Payment Test - Apps on Google Play
  • XP Card 01 can trigger signature flow for transaction value > $200

App Functionality (POS App)

Authorisation Flow (POS Portal - POS Server)

Test_ID Test Case Testing Steps Required
AF-1 User must login to authenticate for POS Portal • User required to authenticate before using POS Portal
• When Authenticated, user has access to POS Portal
• When not Authenticated, user has restricted access to POS Portal
• Partner could send video/screen shot evidence of the above
Yes
AF-2 Has option to authorise POS • There is an option to Authorise POS for Embedded Payments found through the UI
• Confirm flow exists
• Mentions that user will be redirected to Tyro to complete authorisation
• Partner could send video/screen shot evidence of the above
Yes
AF-3 Integrates with Tyro Integration Portal • Check that once the Authorise POS for Embedded Payments flow has been kicked off by opening the Tyro Integration Portal in a new tab
• Check the url contains the POS ID and POS Reference as a query param. The POS ID will be their Client Id. e.g. https://integrate.stg.tyro.com/tap-to-pay?posId=client_id&posReference=pos_reference
• Partner could send video evidence of the above
Yes
AF-4 Authorising POS and Merchant ID on Tyro Integration Portal updates list of enabled Embedded Payments Locations • Displays the correct list of MIDs that are owned by the current Merchant and allow user selection
• Displays the correct list of authorised locations for Embedded Payments
• Check what was enabled on the Tyro Integration Portal reflects this list
• Partner could send video evidence of the above
Yes
AF-5 Admin merchant can manage their Embedded Payments trading locations (Sandbox) • Partner to send screen shots or video that show the following:
• How authorised locations are being shown
• That there is ability to manage these locations
• Partner could send video evidence of the above
Yes
AF-6 Admin merchant can choose to use a MID and manage their Embedded Payments trading locations • After completing the process on Tyro Merchant Portal, user navigates back to POS Portal
• Merchant can choose a MID to use from a list of MIDs that is owned by the user
• Merchant can see locations they are enabled for the chosen MID for Embedded Payments on POS Portal
• Their Locations are listed
  • Shows list of authorised locations
  • Management options present for each location e.g. user access
  • Can Update Authorisation for each location
  • Redirect back to Tyro Integration Portal to complete
  • Deauthorised Locations not shown in authorised locations list
•Partner could send video evidence of the above
Yes
AF-7 Admin merchant can manage their Embedded Payments users and devices (Sandbox) • Partner to send screen shots or video that show the following:
  • How Admin users can manage devices
  • How Admin users can create Readers and 1 per device
  • How Admin users can disable users
  • Partner could send video evidence of the above
Yes
AF-8 Admin merchant can manage their Embedded Payments users and devices Can manage Devices
  • Can create Reader
  • Single Reader per device
  • Can deauthorise Merchant ID
  • Partner could send video evidence of the above
Yes
AF-9 Only one Reader is used per Device • Check to see that this is happening through the device management process
• Partner could send video evidence of the above
Yes
AF-10 Deauthorise POS and Merchant ID on Tyro Integration Portal updates list of enabled Embedded Payments Locations • Displays the correct list of MIDs that are owned by the current Merchant
• Displays the correct list of enabled locations for Embedded Payment
• Check what was disabled on the Tyro Integration Portal reflects this list
• Partner could send video evidence of the above
Yes

POS App

Test_ID Test Case Testing Steps Required
PA-1 User must authenticate in App to use Embedded Payments • User required to authenticate before using POS App
• When Authenticated, user has access to POS App
• When not Authenticated, user has restricted access to POS App
• Tyro to test
Yes
PA-2 App Should not be able to purchase with a 0 amount • No ability to start Embedded Payments transaction (purchase) with a 0 dollar amount
• Tyro to test
Yes
PA-3 App Should not be able to refund a 0 amount • No ability to start Embedded Payments transaction (refund) with a 0 dollar amount
• Tyro to test
Yes
PA-4 App should set the Order id as the transaction reference • Tyro to check logs/postman that the orderID is being set as the transaction reference
• Tyro to check logs/postman that the reference being sent is unique
• Confirm between Partner and Tyro that these are matching up
• Partner to confirm they are giving us a unique reference
• Partner could send video evidence of the above
Yes
PA-5 App should display the amount customer paid including surcharges applied Prequisite: Surcharging enabled for test MID on Tyro's side
• Tyro to check final amount paid after processing a transaction includes surcharge
Yes
PA-6 App should record the total amount plus the final surcharge if one was added Prequisite: Surcharging enabled for test MID on Tyro's side
• Partner to provide evidence they are recording the total amount paid including surcharges applied
Yes
PA-7 App should refund total amount plus any surcharges applied Prequisite: Surcharging enabled for test MID on Tyro's side
• Tyro to check when performing a refund for a transaction with a surcharge applied, that total amount includes the surcharge amount
Yes
PA-8 Surcharge Added to POS tax invoice Prequisite: Surcharging enabled for test MID on Tyro's side
• Partner to provide evidence that surcharge has been added to the tax invoice
Yes

POS Server

Test_ID Test Case Testing Steps Required
PS-1 Client ID and Client Secret stored securely on POS Server • Partner to confirm they are storing these details on their server Yes
PS-2 POS saves sales receipts for 540 days • Partner to confirm they are are storing sales receipts for at least 540 days. This is so that if a chargeback is filed, the merchant is able to provide proof of what was purchased at the time. Yes

Common Cases

Embedded Payments API

Test_ID Test Case Testing Steps Required
TA-1 App can fetch a Embedded Payments Transaction by transaction ID - Confirm visually via App UI
- Tyro to check that calls are returning 200
No
TA-2 App can list Embedded Payments Transactions by reference - Confirm visually via App UI
- Tyro to check that calls are returning 200
No

Android SDK Cases

Test_ID Test Case Testing Steps Required
TS-1 Initialise App • Embedded Payments launches successfully
No Errors such as:
• Attestation error
• Invalid connection secret error
• Tyro to test
Yes
TS-2 App is setting POS Info correctly • Partner to send screen shots of code that shows the values being set for PosInfo and used accordingly
• posName matches expected Partner’s POS Name
• posVendor matches what is expected of POS Vendor
• posVersion matches a versioning format e.g. x.xx.xx or x.x
• siteReference has some location reference
• Tyro to check this matches what is expected for this POS
Yes
TS-3 Process Payment - Success (Sandbox) Payment can be processed
  • Can tap card to pay
  • Success (App to display)
• Tyro to check logs
• Tyro to test
Yes
TS-4 Process Payment - Success (Prd) Payment can be processed
  • Can tap card to pay
  • Success (App to display)
• Tyro to check logs
• Tyro to test
Yes
TS-5 Process Payment - Failed (Sandbox) •Processing payment with $666.xx
  • Failed status (App to display)
• Tyro to check logs
• Tyro to test
Yes
TS-6 App has option to provide customer with a Receipt • Check after a transaction processes that there is an option to provide the customer with a receipt either digital or physical Yes
TS-7 App Can provide Digital or Physical Receipt • Check after a transaction processes that there is an option to provide the customer with a receipt either digital or physical
• Ensure receipt is using Tyro’s customerReceipt content returned in the transaction result
• Tyro to test
If Digital Receipt:
• After transaction:
  • Digital receipt option shown that takes an email
  • Sending Digital receipt results in the given email receiving the Digital receipt
If Physical Receipt:
• After transaction:
  • Physical receipt option shown that can print a receipt
  • Printing Physical receipt results in the receipt being printed
• Partner could send video evidence of the above
Yes
TS-8 Refund Payment (Sandbox) - Success • Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
TS-9 Refund Payment (Prd) - Success • Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
TS-10 Refund Payment - Failed (Sandbox) • Refund option exists
• Processing refund results in
  • Failure status (App to display)
• Tyro can check logs
• Tyro to test
Yes

Android SDK Onboarding Check

Test_ID Test Case Testing Steps Required
TO-1 Provided App id and Public certificate to Tyro • Partner to tick this off before going Live Yes

iOS SDK Cases

Test_ID Test Case Testing Steps Required
SF-1 Initialise App •Embedded Payments launches successfully
No Errors such as:
• Attestation error
• Invalid connection secret error
• Tyro to test
Yes
SF-2 App is setting POS Information correctly • Partner to send screen shots of code that shows the values being set for PosInfo and used accordingly
• posName matches expected Partner’s POS Name
• posVendor matches what is expected of POS Vendor
• posVersion matches a versioning format e.g. x.xx.xx or x.x
• siteReference has some location reference
• Tyro to check this matches what is expected for this POS
Yes
SF-3 Incompatible Embedded Payments device throws error • Use an iPhone that does not support Embedded Payments (< iOS 17.0, < iPhone XS)
  • Should see error when trying to start Embedded Payments
  • Handled by App UI
• Tyro to test
Yes
SF-4 Process Payment (Sandbox) - Success • Process Embedded Payments transaction with some amount > 0
• App informs user transaction was successful
• Tyro to check logs
• Tyro to test
Yes
SF-5 Process Payment (Prd) - Success • Process Embedded Payments transaction with some amount > 0
• App informs user transaction was successful
• Tyro to check logs
• Tyro to test
Yes
SF-6 Process Payment - Failed (Sandbox) • Process Embedded Payments transaction with some amount > 0
• App informs user transaction failed
• Tyro to check logs
• Tyro to test
Yes
SF-7 App has option to provide customer with a Receipt • Check after a transaction processes that there is an option to provide the customer with a receipt either digital or physical Yes
SF-8 App Can provide Digital or Physical Receipt • Check after a transaction processes that there is an option to provide the customer with a receipt either digital or physical
• Ensure receipt is using Tyro’s customerReceipt content returned in the transaction result
• Tyro to test
If Digital Receipt:
• After transaction:
  • Digital receipt option shown that takes an email
  • Sending Digital receipt results in the given email receiving the Digital receipt
If Physical Receipt:
• After transaction:
  • Physical receipt option shown that can print a receipt
  • Printing Physical receipt results in the receipt being printed
• Partner could send video evidence of the above
Yes
SF-9 Refund Payment (Sandbox) - Success • Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
SF-10 Refund Payment (Prd) - Success • Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
SF-11 Refund Payment - Failed (Sandbox) • Refund option exists
• Processing refund results in
  • Failure status (App to display)
• Tyro can check logs
• Tyro to test
Yes

Other iOS SDK Cases

Test_ID Test Case Testing Steps Required
OI-1 In-app merchant education provided • App has education materials present
• Education Material may be in the form:
• In-app merchant education video
• In-app payment acceptance tutorials
• Online training guides
• In-person, online, or in-app training
• Help center guidelines
• Partner could send video or screen shot evidence of the above
Yes
OI-2 Apple terms and conditions accepted using Apple ID • Tyro to tick if App appears to launch Embedded Payments Yes
OI-3 Reader reconnects upon app resume • From a suspended state:
  • App reconnects/resumes Embedded Payments
  • Tyro can see logs connection created/verified?
• Tyro to test
Yes
OI-4 Reader updates are handled Reader Updates happen:
• In the background
• Progress/Completion status verifiable
• Other? Describe
• Partner could send video or screen shot evidence of the above
Yes
OI-5 Apple Entitlement • Partner to confirm they have entitlements from Apple Yes

Error Handling Check List

Test_ID Test Case Testing Steps Required
EH-1 Partner is aware of below errors and acknowledges they are handling them • Partner to tick this off before going Live
• Tyro to tick this off after testing in Sandbox and no unexpected errors
• Tyro to tick this off after testing in Production and no unexpected errors
Yes

SDK Errors

You should be aware of the below errors and handle them accordingly.

InvalidTransactionParamException

  • amountInCents must be positive and non zero
  • amountInCents length cannot exceed 8 digits
  • reference must not be blank

INVALID_CONNECTION

  • Connection Secret is invalid

SDK_VERSION_MISSING

SDK_UPGRADE_REQUIRED

  • Current App version is < supported version

API Errors

You should be aware of the below errors but your integration should not trigger these.

Create Embedded Payments Connection

  • 400 - When the provided payload is not valid.
  • 403 - When you don't have the right permissions to create a Connection for the provided Reader ID
  • 404 - When the provided readerId does not exist in our system

Create a Reader

  • 400 - When the provided payload is not valid
  • 403 - When you don't have the right permissions to create a Reader for the provided location or Merchant ID

List Readers

  • 403 - When you don't have the right permissions to retrieve the Readers for the provided location or Merchant ID

Get a Reader

  • 403 - When you don't have the right permissions to retrieve a Reader for the provided location or Merchant ID

Fetch a Embedded Payments Transaction

  • 403 - When you don't have the right permissions to access the transactions

List Embedded Payments Transactions

  • 403 - When you don't have the right permissions to access the transactions

List Embedded Payments Locations

  • 403 - When you don't have the right permissions to fetch the locations
  • 404 - When the provided merchantId does not exist in our system

List Embedded Payments Merchants

  • 403 - When you don't have the right permissions to fetch the merchants

Fetch a Embedded Payments Merchant

  • 400 - When the provided merchantId is not valid
  • 403 - When you don't have the right permissions to fetch the merchant
  • 404 - When the provided merchantId does not exist in our system

End

Copyright © Tyro Payments 2019-2024. All right reserved.