{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-ios/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Apple Entitlement Setup | Finix iOS Reference","description":"Request the Tap to Pay on iPhone entitlement from Apple and configure your Xcode project before using the Finix Tap to Pay on iPhone SDK.","siteUrl":"https://docs.finix.com/","llmstxt":{"hide":false,"sections":[{"title":"Getting Started","includeFiles":["guides/getting-started/**/*.md"],"excludeFiles":[]},{"title":"Online Payments","includeFiles":["guides/online-payments/**/*.md"],"excludeFiles":["guides/online-payments/payment-features/fsa-hsa-non-healthcare-mcc.md"]},{"title":"In-Person Payments","includeFiles":["guides/in-person-payments/**/*.md"],"excludeFiles":[]},{"title":"Subscriptions","includeFiles":["guides/subscriptions/**/*.md"],"excludeFiles":[]},{"title":"After the Payment","includeFiles":["guides/after-the-payment/**/*.md"],"excludeFiles":[]},{"title":"Managing Operations","includeFiles":["guides/managing-operations/**/*.md"],"excludeFiles":[]},{"title":"Platform Payments","includeFiles":["guides/platform-payments/**/*.md"],"excludeFiles":[]},{"title":"Payouts","includeFiles":["guides/payouts/**/*.md"],"excludeFiles":[]},{"title":"Low-Code / No-Code","includeFiles":["low-code-no-code/**/*.md"],"excludeFiles":[]},{"title":"Developers","includeFiles":["additional-resources/developers/**/*.md"],"excludeFiles":[]},{"title":"Plugins","includeFiles":["additional-resources/plugins/**/*.md"],"excludeFiles":[]},{"title":"Industry Considerations","includeFiles":["guides/industry-considerations/**/*.md"],"excludeFiles":[]},{"title":"Regional Considerations","includeFiles":["guides/regional-considerations/**/*.md"],"excludeFiles":[]},{"title":"Release Notes","includeFiles":["release-notes/**/*.md"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"apple-entitlement-setup","__idx":0},"children":["Apple entitlement setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tap to Pay on iPhone is a restricted Apple capability. Before your app can use the SDK, even on a development device, Apple must grant your Apple Developer account the Tap to Pay on iPhone entitlement."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Before you start:"]}," you need an organization Apple Developer account, and the request must be submitted by the account's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Account Holder"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-two-entitlements","__idx":1},"children":["The two entitlements"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Apple grants the entitlement in two stages:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Stage"},"children":["Stage"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What it allows"},"children":["What it allows"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Typical turnaround"},"children":["Typical turnaround"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Development entitlement"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Build and test on your team's devices."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1-2 business days in most regions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Distribution entitlement"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["TestFlight"]}," and App Store distribution."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1-2 weeks, usually with one or two rounds of Apple feedback."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Request the development entitlement first, since you need it for any on-device work. Once your user experience meets Apple's requirements, request the distribution entitlement by replying to the original email thread from Apple and re-requesting the entitlement for distribution. ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ios/tap-to-pay/app-review"},"children":["Prepare for App Review"]}," covers those requirements."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"TestFlight requires the distribution entitlement"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The distribution entitlement is required even for TestFlight, so plan for the review lead time. The timelines above come from Apple and can vary."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"request-the-development-entitlement","__idx":2},"children":["Request the development entitlement"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Sign in at ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.apple.com/"},"children":["developer.apple.com"]}," as the Account Holder."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Complete Apple's ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.apple.com/contact/request/tap-to-pay-on-iphone/"},"children":["Tap to Pay on iPhone entitlement request form"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Name ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Finix"]}," as your payment service provider and list the countries or regions where you plan to deploy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When Apple approves the request, the entitlement appears in your account as a managed capability. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.apple.com/documentation/proximityreader/setting-up-the-entitlement-for-tap-to-pay-on-iphone"},"children":["Apple's setup guide"]}," for the full walkthrough."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configure-your-xcode-project","__idx":3},"children":["Configure your Xcode project"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once the entitlement is granted:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In your ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.apple.com/account/"},"children":["developer account"]},", add the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tap to Pay on iPhone"]}," capability to your App ID, then regenerate and download your provisioning profiles."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add the entitlement to your app's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".entitlements"]}," file:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","data-title":"YourApp.entitlements","header":{"title":"YourApp.entitlements","controls":{"copy":{}}},"source":"<key>com.apple.developer.proximity-reader.payment.acceptance</key>\n<true/>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":3},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add an NFC usage description to your app's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Info.plist"]},". iOS shows this string the first time the reader is used:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","data-title":"Info.plist","header":{"title":"Info.plist","controls":{"copy":{}}},"source":"<key>NFCReaderUsageDescription</key>\n<string>This app uses NFC to securely accept contactless payments via Tap to Pay on iPhone.</string>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verify-your-setup","__idx":4},"children":["Verify your setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Build to a physical iPhone and check device support at runtime. Gate every Tap to Pay on iPhone entry point in your UI on this check:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"swift","header":{"controls":{"copy":{}}},"source":"import FinixTapToPaySDK\n\nif FinixTapToPay.isSupported() {\n    // Show your Tap to Pay on iPhone entry points.\n} else {\n    // Hide Tap to Pay on iPhone and offer another payment method.\n}\n","lang":"swift"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isSupported()"]}," returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," on unsupported hardware and on the simulator. If it returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," but reader preparation later fails immediately, re-check that the entitlement is present in the built app's signature and that your provisioning profile includes the capability. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ios/tap-to-pay/support"},"children":["Troubleshooting and support"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Next:"]}," ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ios/tap-to-pay/credentials"},"children":["Credentials and environments"]},"."]}]},"headings":[{"value":"Apple entitlement setup","id":"apple-entitlement-setup","depth":1},{"value":"The two entitlements","id":"the-two-entitlements","depth":2},{"value":"Request the development entitlement","id":"request-the-development-entitlement","depth":2},{"value":"Configure your Xcode project","id":"configure-your-xcode-project","depth":2},{"value":"Verify your setup","id":"verify-your-setup","depth":2}],"frontmatter":{"seo":{"title":"Apple Entitlement Setup | Finix iOS Reference","description":"Request the Tap to Pay on iPhone entitlement from Apple and configure your Xcode project before using the Finix Tap to Pay on iPhone SDK."}},"lastModified":"2026-09-15T22:17:40.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ios/tap-to-pay/apple-entitlement","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}