# Apple entitlement setup

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.

**Before you start:** you need an organization Apple Developer account, and the request must be submitted by the account's **Account Holder**.

## The two entitlements

Apple grants the entitlement in two stages:

| Stage | What it allows | Typical turnaround |
|  --- | --- | --- |
| Development entitlement | Build and test on your team's devices. | 1-2 business days in most regions. |
| Distribution entitlement | **TestFlight** and App Store distribution. | 1-2 weeks, usually with one or two rounds of Apple feedback. |


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. [Prepare for App Review](/ios/tap-to-pay/app-review) covers those requirements.

TestFlight requires the distribution entitlement
The distribution entitlement is required even for TestFlight, so plan for the review lead time. The timelines above come from Apple and can vary.

## Request the development entitlement

1. Sign in at [developer.apple.com](https://developer.apple.com/) as the Account Holder.
2. Complete Apple's [Tap to Pay on iPhone entitlement request form](https://developer.apple.com/contact/request/tap-to-pay-on-iphone/).
3. Name **Finix** as your payment service provider and list the countries or regions where you plan to deploy.
4. When Apple approves the request, the entitlement appears in your account as a managed capability. See [Apple's setup guide](https://developer.apple.com/documentation/proximityreader/setting-up-the-entitlement-for-tap-to-pay-on-iphone) for the full walkthrough.


## Configure your Xcode project

Once the entitlement is granted:

1. In your [developer account](https://developer.apple.com/account/), add the **Tap to Pay on iPhone** capability to your App ID, then regenerate and download your provisioning profiles.
2. Add the entitlement to your app's `.entitlements` file:



```xml YourApp.entitlements
<key>com.apple.developer.proximity-reader.payment.acceptance</key>
<true/>
```

1. Add an NFC usage description to your app's `Info.plist`. iOS shows this string the first time the reader is used:



```xml Info.plist
<key>NFCReaderUsageDescription</key>
<string>This app uses NFC to securely accept contactless payments via Tap to Pay on iPhone.</string>
```

## Verify your setup

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:


```swift
import FinixTapToPaySDK

if FinixTapToPay.isSupported() {
    // Show your Tap to Pay on iPhone entry points.
} else {
    // Hide Tap to Pay on iPhone and offer another payment method.
}
```

`isSupported()` returns `false` on unsupported hardware and on the simulator. If it returns `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 [Troubleshooting and support](/ios/tap-to-pay/support).

**Next:** [Credentials and environments](/ios/tap-to-pay/credentials).