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