Every merchant using a card reader today deals with the same small annoyances: a dead battery exactly when a customer is waiting, a Bluetooth pairing screen that picks the worst moment to act up, and an extra piece of kit to charge, carry, and maintain. None of it is a big problem on its own, but it adds up to friction at the exact point a sale should be simple.
We built Tap to Pay on iPhone support so the merchants using your app can accept a contactless card, Apple Pay, or another wallet directly on a compatible iPhone (XS or later, iOS 18+), without needing a separate payment device. It's a native SDK on top of the Payroc connection you already have, the same terminal setup you configure for card-present sales handles a tap the same way, so refunds, tips, tax, and reporting all run through the one connection instead of a second system alongside it.
It's available now to any integrator with an existing Payroc terminal integration, with the following conditions:
- Tap to Pay on iPhone runs only on an iPhone XS or later, running iOS 18+.
- Apple requires a merchant to keep at least one other payment method available alongside it.
How does Tap to Pay on iPhone work?
A merchant taps to start a sale in your app, holds up the same iPhone, and the customer taps their card, phone, or watch against it. What happens next depends on the outcome:
- Approved: the response comes back in the same interaction, no second device, no separate confirmation step.
- Declined: the customer can try another card or method immediately, the same as any other card-present decline.
- Connection drops mid-tap: a case worth planning for. The sale is left unresolved rather than retried automatically. Set up your app to Retrieve previous transactions to confirm whether it actually went through.
One thing worth calling out, the tap prompt times out after 40 seconds, so a customer who's slow to find their card has to start again.
What else can you do with Tap to Pay on iPhone?
- Referenced refunds. A refund ties back to the original sale instead of posting as a standalone credit. See Run a refund.
- Look up or filter past transactions. Retrieve a single transaction or a filtered list by date range or status, the same mechanism that reconciles a sale after a dropped connection. See Retrieve transactions.
- Tips and tax, predefined or custom. Pull from options set on the terminal, or enter a custom amount at the point of sale. See Add a tip and Add a tax.
- Line items with their own price and tax. Your app still has to total them into the final sale amount, that part isn't automatic. See Add a line item.
- Surcharging with customer confirmation. If enabled, the sale pauses after authorization until the customer confirms the fee. See Handle surcharges.
- Cancel a sale, up to a point. A sale can be cancelled outright, but only before the gateway starts authorizing it, after that it's a refund instead. See Cancel a sale.
- No new PCI burden: the tap is validated through Apple's own secure hardware, and the resulting transaction runs through the same PCI-scoped Payroc gateway as any other card-present sale.
- Two working sample apps. A Swift and an Objective-C sample app show the full flow before you wire it into your own. See Run the sample apps.
Why merchants will trust it
Apple never stores card numbers or PINs on its own servers, and the phone's screen and camera are switched off for the moment of the tap. On our side, nothing about how the transaction is secured changes just because a phone did the reading instead of a dedicated reader, it's the same PCI-scoped gateway that we use for payment processing.
Get started
Start with Set up the SDK and Configure the processing terminal, then Run a sale to get a first transaction through. You'll need an Apple Developer account enrolled in their program with the Tap to Pay on iPhone entitlement approved, and a dedicated Apple Pay sandbox account to test the full flow before it touches a live merchant. The full Tap to Pay on iPhone documentation covers the setup end to end, including handling errors if you hit one along the way.