Set up Tap to Pay on iPhone
Choose the right SDK flavour, configure Apple entitlements and prepare an iPhone build before requesting a payment.
Choose the Full SDK
For release 4.1.1 onward, Tap to Pay requires the Full SDK in SDK/full, iOS 18.5 or later, and Xcode 16.4 or later. Lite supports iOS 17.4 but excludes Tap to Pay. Do not use the older general device minimum as the Tap to Pay minimum.
Prepare Apple signing
Use an organization Apple Developer account. The Account Holder requests development entitlements and identifies NMI as the PSP. Sign the development device into an Apple sandbox account. Add App Attest, NFC Tag Reading and Tap to Pay capabilities, then regenerate the provisioning profile. Setting Value or purpose App Attest Environment development for the development entitlement com.apple.developer.proximity-reader.payment.acceptance Boolean YES PRODUCT_TEAM_IDENTIFIER Your Apple team identifier in Info.plist NFC and location usage descriptions Explain requested access in Info.plist
Link the package
Link libChipDNAMobileAPI.a and the supplied SQLCipher library. Add CloudCommerce.xcframework with Embed and Sign. Use the release bundle for the remaining Apple framework dependencies. Request location access before configuration. Tap to Pay requires network access and is not an offline fallback.
Wait for readiness
The first connection registers the install with the gateway. A reinstall can create a new POS registration. Register configuration callbacks before connecting: configurationUpdate reports progress, connectAndConfigureFinished reports readiness or errors, and deviceUpdate reports connection changes. Do not enable Pay solely because the initial method call returned.
Select the payment interaction
Configure TapToMobilePOI for Tap to Pay. When both phone and external reader are configured, explicitly select TransactionPOI for the phone because the physical device is preferred by default. Tap to Pay uses an online auto-confirmed sale. Refund or AccountVerification as startTransaction types, delayed processing, keyed entry and AutoConfirm FALSE are unsupported. Enabled tipping uses TipAmount, not on-device tipping modes. The generic SDK transaction flow discusses manual confirmation. The Tap to Pay-specific Start Transaction page defines the auto-confirmed exception; do not issue a second confirmation for an already committed sale.
Keep the application identifier stable
The overview calls for one alphanumeric identifier shared across platforms and says it cannot change after registration. The iOS archive includes Objective-C and Swift sample projects. Use those release-matched projects to confirm integration details; the generic flow’s Uncommitted/Committed states do not override the phone’s auto-confirmed-sale restrictions.