Skip to content
Last updated

Certification

Partners are required to pass an internal Tyro certification process so that we can check that the Tap to Pay app pairing or Tap to Pay SDK has been implemented as expected. This helps ensure that merchants and customers are provided with the best user experience possible.

If you are implementing the Tap to Pay SDK, your app embedding the SDK will also need to undergo a separate MPoC PCI certification process. Tyro can provide further details and assist you with this process.

Before you start, see Testing for sandbox environments, test cards and the sandbox testing tools.

Test cases

Applicability is listed per integration path. NA means the test doesn't apply to that path.

Test IDCategoryTest caseTesting stepsApp — POS app pairingApp — WebPOS pairingSDKPartner verifies in sandbox
AF-1Authorisation flowUser 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
YesYesYesNo — verified by Tyro in production
AF-2Authorisation flowHas 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
YesYesYesNo — verified by Tyro in production
AF-3Authorisation flowIntegrates 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
YesYesYesNo — verified by Tyro in production
AF-4Authorisation flowAuthorising POS and Merchant ID on Tyro Integration Portal updates list of enabled Tap to Pay 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 Tap to Pay
• Check what was enabled on the Tyro Integration Portal reflects this list
• Partner could send video evidence of the above
NA — handled within the Tap to Pay appNA — handled within the Tap to Pay appYesNo — verified by Tyro in production
AF-5Authorisation flowAdmin merchant can manage their Embedded Payments trading locations• 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
NA — handled within the Tap to Pay appNA — handled within the Tap to Pay appYesNo — verified by Tyro in production
AF-6Authorisation flowAdmin 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
NA — handled within the Tap to Pay appNA — handled within the Tap to Pay appYesNo — verified by Tyro in production
AF-7Authorisation flowAdmin 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
NA — handled within the Tap to Pay appNA — handled within the Tap to Pay appYesNo — verified by Tyro in production
AF-8Authorisation flowAdmin 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
NA — handled within the Tap to Pay appNA — handled within the Tap to Pay appYesNo — verified by Tyro in production
AF-9Authorisation flowOnly 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
NA — handled within the Tap to Pay appNA — handled within the Tap to Pay appYesNo — verified by Tyro in production
AF-10Authorisation flowDeauthorise 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
NA — handled within the Tap to Pay appNA — handled within the Tap to Pay appYesNo — verified by Tyro in production
PA-1POS appUser must authenticate in App to use Tap to Pay• 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
YesYesYesYes
PA-1APOS appPairing• Launch the Tap to Pay app from your POS for pairing
• Make sure you can login and finish the pairing flow
• The app closes on pressing finish
• Opening the Tap to Pay app now shows the app's home screen
YesYesNAYes
PA-2POS appApp 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
YesYesYesYes
PA-3POS appApp 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
NA — refund capability not supported in current app releaseNA — refund capability not supported in current app releaseYesYes
PA-4POS appApp 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
YesYesYesYes
PA-5POS appApp should display the amount customer paid including surcharges appliedPrerequisite: Surcharging enabled for test MID on Tyro's side
• Tyro to check final amount paid after processing a transaction includes surcharge
NA from 1 October 2026NA from 1 October 2026NA from 1 October 2026Yes
PA-6POS appApp should record the total amount plus the final surcharge if one was addedPrerequisite: Surcharging enabled for test MID on Tyro's side
• Partner to provide evidence they are recording the total amount paid including surcharges applied
NA from 1 October 2026NA from 1 October 2026NA from 1 October 2026Yes
PA-7POS appApp should refund total amount plus any surcharges appliedPrerequisite: 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
NA from 1 October 2026NA from 1 October 2026NA from 1 October 2026Yes
PA-8POS appSurcharge added to POS tax invoicePrerequisite: Surcharging enabled for test MID on Tyro's side
• Partner to provide evidence that surcharge has been added to the tax invoice
NA from 1 October 2026NA from 1 October 2026NA from 1 October 2026Yes
PS-1POS serverClient ID and Client Secret stored securely on POS Server• Partner to confirm they are storing these details on their serverYesYesYesYes
PS-2POS serverPOS saves sales receipts for 540 days• Partner to confirm they 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.YesYesYesYes
TA-1Tap to Pay APIApp can fetch a Tap to Pay Transaction by transaction ID• Confirm visually via App UI
• Tyro to check that calls are returning 200
OptionalOptionalOptionalNo — verified by Tyro in production
TA-2Tap to Pay APIApp can list Tap to Pay Transactions by reference• Confirm visually via App UI
• Tyro to check that calls are returning 200
OptionalOptionalOptionalNo — verified by Tyro in production
TA-3Tap to Pay APIApp can list Tap to Pay Transactions by locationId• Confirm visually via App UI
• Tyro to check that calls are returning 200
OptionalOptionalOptionalNo — verified by Tyro in production
TS-1TransactionsInitialise App• Embedded Payments launches successfully
No Errors such as:
• Attestation error
• Invalid connection secret error
• Tyro to test
NANAYesNo — verified by Tyro in production
TS-2TransactionsApp 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
YesYesYesYes
TS-3TransactionsProcess payment — success• Payment can be processed
  • Can tap card to pay
  • Success (App to display)
• Tyro to check logs
• Tyro to test
YesYesYesYes. WebPOS can test this in production only, because webhook events are not supported in sandbox.
TS-5TransactionsProcess payment — failed• Processing payment with $666.xx
  • Failed status (App to display)
• Tyro to check logs
• Tyro to test
YesYesYesYes. WebPOS can test this in production only, because webhook events are not supported in sandbox.
TS-6TransactionsApp 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 physicalYesYesYesYes
TS-7TransactionsApp 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
YesYesYesNo
TS-8TransactionsRefund payment — success• Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
NA — refund capability not supported in current app releaseNA — refund capability not supported in current app releaseYesYes
TS-10TransactionsRefund payment — failed• Refund option exists
• Processing refund results in
  • Failure status (App to display)
• Tyro can check logs
• Tyro to test
NA — refund capability not supported in current app releaseNA — refund capability not supported in current app releaseYesYes
TO-1Android SDK onboardingProvided App id and Public certificate to Tyro• Partner to tick this off before going LiveNANAYes — SDK only—
SF-1iOS SDKInitialise App• Embedded Payments launches successfully
No Errors such as:
• Attestation error
• Invalid connection secret error
• Tyro to test
NANAYes—
SF-2iOS SDKApp 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
NANAYes—
SF-3iOS SDKIncompatible Embedded Payments device throws error• Use an iPhone that does not support Embedded Payments (< iOS 18.6, < iPhone XS)
  • Should see error when trying to start Embedded Payments
  • Handled by App UI
• Tyro to test
NANAYes—
SF-4iOS SDKProcess payment (sandbox) — success• Process Embedded Payments transaction with some amount > 0
• App informs user transaction was successful
• Tyro to check logs
• Tyro to test
NANAYes—
SF-5iOS SDKProcess payment (production) — success• Process Embedded Payments transaction with some amount > 0
• App informs user transaction was successful
• Tyro to check logs
• Tyro to test
NANAYes—
SF-6iOS SDKProcess payment — failed (sandbox)• Process Embedded Payments transaction with some amount > 0
• App informs user transaction failed
• Tyro to check logs
• Tyro to test
NANAYes—
SF-7iOS SDKApp 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 physicalNANAYes—
SF-8iOS SDKApp 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
NANAYes—
SF-9iOS SDKRefund payment (sandbox) — success• Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
NANAYes—
SF-10iOS SDKRefund payment (production) — success• Refund option exists
• Processing refund results in
  • Success status (App to display)
• Tyro can check logs
• Tyro to test
NANAYes—
SF-11iOS SDKRefund payment — failed (sandbox)• Refund option exists
• Processing refund results in
  • Failure status (App to display)
• Tyro can check logs
• Tyro to test
NANAYes—
OI-1Other iOS SDKIn-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
NANAYes—
OI-2Other iOS SDKApple terms and conditions accepted using Apple ID• Tyro to tick if App appears to launch Embedded PaymentsNANAYes—
OI-3Other iOS SDKReader reconnects upon app resume• From a suspended state:
  • App reconnects/resumes Embedded Payments
  • Tyro can see logs connection created/verified?
• Tyro to test
NANAYes—
OI-4Other iOS SDKReader 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
NANAYes—
OI-5Other iOS SDKApple Entitlement• Partner to confirm they have entitlements from AppleNANAYes—
EH-1Error handlingPartner is aware of the errors below 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
YesYesYes—
ABOUT THE SDK-ONLY ROWS

TO-1, SF-1 to SF-11, OI-1 to OI-5 and EH-1 are stated in the source as "Required: Yes" without a per-path or sandbox-verification breakdown. Their path columns reflect that they are SDK-path tests (iOS SDK, or Android SDK onboarding); the sandbox column is left blank rather than inferred.

Test IDs are reproduced exactly as issued, so TS-4 and TS-9 are intentionally absent.

Errors you must handle

EH-1 above requires you to acknowledge that you handle the following errors.

Tap to Pay app errors (POS app pairing and WebPOS)

InvalidTransactionParamException

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

SDK errors

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

Download

Technical Review Test Cases

PDF MAY BE OUT OF DATE

This PDF predates the test matrix above (it was produced for the SDK-only certification process). Where the two disagree, the table above is current.