Skip to content
Last updated

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_IDTest CaseTesting StepsRequired
AF-1User 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-2Has 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-3Integrates 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-4Authorising 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-5Admin 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-6Admin 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-7Admin 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-8Admin merchant can manage their Embedded Payments users and devicesCan manage Devices
  • Can create Reader
  • Single Reader per device
  • Can deauthorise Merchant ID
  • Partner could send video evidence of the above
Yes
AF-9Only 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-10Deauthorise 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_IDTest CaseTesting StepsRequired
PA-1User 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-2App 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-3App 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-4App 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-5App should display the amount customer paid including surcharges appliedPrequisite: Surcharging enabled for test MID on Tyro's side
• Tyro to check final amount paid after processing a transaction includes surcharge
Yes
PA-6App should record the total amount plus the final surcharge if one was addedPrequisite: 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-7App should refund total amount plus any surcharges appliedPrequisite: 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-8Surcharge Added to POS tax invoicePrequisite: 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_IDTest CaseTesting StepsRequired
PS-1Client ID and Client Secret stored securely on POS Server• Partner to confirm they are storing these details on their serverYes
PS-2POS 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_IDTest CaseTesting StepsRequired
TA-1App can fetch a Embedded Payments Transaction by transaction ID- Confirm visually via App UI
- Tyro to check that calls are returning 200
No
TA-2App can list Embedded Payments Transactions by reference- Confirm visually via App UI
- Tyro to check that calls are returning 200
No
TA-3App can list Embedded Payments Transactions by locationId- Confirm visually via App UI
- Tyro to check that calls are returning 200
No

Android SDK Cases

Test_IDTest CaseTesting StepsRequired
TS-1Initialise App• Embedded Payments launches successfully
No Errors such as:
• Attestation error
• Invalid connection secret error
• Tyro to test
Yes
TS-2App 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-3Process 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-4Process 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-5Process Payment - Failed (Sandbox)•Processing payment with $666.xx
  • Failed status (App to display)
• Tyro to check logs
• Tyro to test
Yes
TS-6App 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 physicalYes
TS-7App 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-8Refund Payment (Sandbox) - Success• Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
TS-9Refund Payment (Prd) - Success• Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
TS-10Refund 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_IDTest CaseTesting StepsRequired
TO-1Provided App id and Public certificate to Tyro• Partner to tick this off before going LiveYes

iOS SDK Cases

Test_IDTest CaseTesting StepsRequired
SF-1Initialise App•Embedded Payments launches successfully
No Errors such as:
• Attestation error
• Invalid connection secret error
• Tyro to test
Yes
SF-2App 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-3Incompatible 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-4Process 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-5Process 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-6Process 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-7App 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 physicalYes
SF-8App 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-9Refund Payment (Sandbox) - Success• Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
SF-10Refund Payment (Prd) - Success• Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
Yes
SF-11Refund 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_IDTest CaseTesting StepsRequired
OI-1In-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-2Apple terms and conditions accepted using Apple ID• Tyro to tick if App appears to launch Embedded PaymentsYes
OI-3Reader 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-4Reader updates are handledReader Updates happen:
• In the background
• Progress/Completion status verifiable
• Other? Describe
• Partner could send video or screen shot evidence of the above
Yes
OI-5Apple Entitlement• Partner to confirm they have entitlements from AppleYes

Error Handling Check List

Test_IDTest CaseTesting StepsRequired
EH-1Partner 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
  • 404 - When the provided merchant or location ID does not exist in our system

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