Launching on the App Store
Everything you need to do with Apple — separate from your Koard integration — before your app can go live to merchants.
What you'll learn
In this guide, you'll learn:
- The 7-step launch journey and where most teams get stuck
- How to pick your distribution path before you write a line of code
- The two entitlements you need (and why TestFlight requires the second one)
- In-app experience requirements Apple inspects during review
- The
prepare()call and why it must happen at launch, not at checkout - The three video walkthroughs Apple requires — and how to record them
- What to include in your App Store Connect submission notes
- The most common rejection reasons and how to avoid every one
This is separate from your Koard integration. Even after your Koard integration is technically complete, you cannot launch your app to merchants without Apple's approval. That approval is a separate, multi-step process you run directly with Apple. Most customers who reach this stage without a plan lose 2–6 weeks to back-and-forth with Apple Review.
Track your progress in Launch Readiness inside the Koard MMS — it mirrors this guide step by step.
Why this matters
Four of the most common rejection reasons we see from Apple Review:
- Submission videos don't show how a merchant accepts Apple's Terms & Conditions or links the merchant account.
- No in-app merchant education — the developer planned to train merchants 1:1 in person. Apple requires in-app education on top of whatever else you do.
- The
prepare()call isn't implemented, which means the first tap-to-pay attempt in front of a real customer takes 30–40 seconds. - Button copy mixes "Tap to Pay" with "Tap to Pay on iPhone" — Apple is strict about the full product name.
None of that is a Koard problem. All of it is an Apple-side gate, and it routinely costs developers weeks they didn't plan to spend. This guide and the in-MMS checklist exist so you find these things in week one of design — not in week one of submission.
The launch journey
Each step is a distinct gate. You cannot skip any of them.
Request the Development Entitlement
Free and near-instant. Lets you build and test on developer-registered devices against the PSP sandbox.
Build to spec
Use this guide and the Koard MMS checklist to build the required UX — awareness moment, merchant education, T&C flow, and checkout experience. Don't skip any section.
Record the three walkthrough videos
Apple requires a New User, Existing User, and Checkout walkthrough. These cannot be screen-recorded — use a second device to film the screen.
Request the Publishing Entitlement
Reply to the email Apple sent you when they granted the Dev entitlement. Apple reviews your app against the v1.5.1 checklist. Allow approximately 5 business days.
TestFlight requires this entitlement. You cannot distribute via TestFlight until Publishing is granted. There is no shortcut.
Submit to App Store Connect
Separate review by the App Store team on top of the entitlement review. Include your test account credentials, video links, wireframes, and entitlement declaration in the submission notes.
Pilot
Apple recommends testing with a small group of representative merchants before GA. Use TestFlight or ship behind a feature flag you control.
General Availability
Flip your backend flag or publish your App Store listing with Tap to Pay enabled. Update your product page messaging only after the flag is live.
Pick your distribution path first
Apple has different requirements depending on how your app reaches merchants. Decide before you design any screens — the distribution path determines which checklist items are required for you.
| Path | Who it's for | Onboarding | Awareness in app | Merchant education |
|---|---|---|---|---|
| Public App Store | SMBs, anyone discovering your app via search | Required to be in-app, < 15 min | Required (full-screen modal, push, email) | Required |
| Unlisted App | Specific BYO-device audience reached via URL | External OK | Recommended | Highly recommended |
| Custom App | One named enterprise customer, branded version | External OK | Recommended | Highly recommended |
| Enterprise (ADEP) | MDM-deployed to managed devices | External (no Apple ID on device) | Optional | Highly recommended |
Public App Store triggers the full in-app onboarding requirement. Customers who pick this path because "we want it discoverable" often don't realize it requires a complete in-app merchant sign-up flow that works in under 15 minutes.
Most underused: Custom App and Unlisted App, which carry lighter requirements for enterprise deployments. Apps that ship via MDM to managed devices are typically a fit for Unlisted.
If you're not sure, the Koard solutions team can talk it through — but pick before you start designing screens.
Two entitlements, not one
| Entitlement | What it lets you do | How to get it | When |
|---|---|---|---|
| Development | Build, run on developer-registered devices, test against the PSP sandbox | Request at Apple's developer portal | Day one |
| Publishing | TestFlight, App Store, internal enterprise distribution | Reply to the email Apple sent you with the Dev entitlement. Apple reviews your app against the v1.5.1 checklist. | Once your build meets requirements |
TestFlight requires the Publishing Entitlement. If you planned to ship a small pilot via TestFlight first, that already requires you to pass Apple's full review. There is no shortcut.
The in-app experience Apple requires
Apple inspects four moments in your user flow. Each has its own checklist covered in the sections below. Together they form the bulk of the v1.5.1 review.
Digital onboarding (Public distribution only)
A new user who just downloaded your app must be able to apply to become an authorised merchant inside the app, on an iPhone, and — for the majority of approvable users — accept their first payment within 15 minutes.
Practical interpretation:
- An external "contact sales" form does not count as digital onboarding.
- A
WKWebViewwrapper around your existing onboarding portal does count. - If your KYC requires manual review, the path must still start in-app and use push/email/SMS to bring the user back.
Awareness & enrollment
At least one awareness moment — Apple's strong preference is a full-screen modal — must communicate to eligible users that Tap to Pay on iPhone exists in your app. New merchants see it during onboarding. Existing merchants see it on first login after the feature ships.
Required elements:
- A launch email (Apple has a template).
- A push notification (Apple has a template).
- A way to enroll outside the checkout flow (in Settings or similar).
- A way to enroll from the checkout flow if the user taps "Tap to Pay" without being enrolled.
- Only admin-class users can accept the T&C. Non-admins must see a "contact your admin" message.
Don't forget existing users. The awareness moment is required for both new merchants during onboarding and existing merchants on their first login after the feature ships. Apple rejects apps that only show it to new users.
Merchant education
This is the most frequently missed requirement. You must provide in-app education demonstrating how to accept payment with Tap to Pay on iPhone. External training — 1:1 sessions, newsletters, training videos sent by email — does not satisfy this requirement on its own.
The Koard SDK handles this for you. The Koard SDK wraps Apple's ProximityReaderDiscovery API and surfaces Apple-designed education screens directly in your app. Wiring up the Koard SDK's merchant-education entry point satisfies Apple's checklist item 4.1* in full — Apple's own language: "If you use ProximityReaderDiscovery this will fulfill all of the merchant education requirements." No need to design your own screens.
Two things you still need to handle yourself:
- Make education reachable later. The post-enrollment moment is covered by the SDK, but Apple also requires that users can find the education screens from Settings or Help (checklist item 4.2). Add a "Tap to Pay on iPhone" row in Settings that re-invokes the SDK's education flow.
- Cover region-specific requirements if applicable. If you deploy in a PIN-required region, your education must demonstrate PIN entry and its accessibility features (4.6). If you deploy in a Fallback-required region, demonstrate the fallback payment method (4.7).
If you're targeting iOS earlier than 18, you must build your own education screens using Apple's Marketing Guide and Toolkit assets covering, at minimum:
- How to accept a contactless card (landscape position, top of iPhone)
- How to accept Apple Pay and other digital wallets
- PIN entry + accessibility (region-dependent)
- Fallback payment method (region-dependent)
Transaction experience
The "Tap to Pay on iPhone" button at checkout must:
- Be in a prominent, no-scroll location.
- Use exact copy:
"Tap to Pay on iPhone"(or"Tap to Pay"only if the button is too small;"Charge"only if Tap to Pay is your sole acceptance method). - Never be greyed out or hidden based on enrollment status — if the user isn't enrolled, tapping starts enrollment.
- Use the
wave.3.right.circleorwave.3.right.circle.fillSF Symbol if using an icon.
After a successful tap: show a processing screen, then a clear approved/declined/timed-out result, and a digital receipt option (SMS, email, QR, or iOS Share).
Button copy is strictly enforced. Apple is literal — "Tap to Pay" and "Tap to Pay on iPhone" are not interchangeable. Use the full name unless space genuinely does not allow it.
The prepare() call — don't skip this
Koard's SDK exposes this as koard.tapToPay.prepare(). It warms up the reader. The first call after install takes 30–40 seconds. Subsequent calls take 5–6 seconds, once every 24 hours.
Where to call it: at app launch and every time the app comes to the foreground.
Where not to call it: at checkout. If you do, the first time your merchant tries to take a payment in front of a real customer, they will stand there for 40 seconds. Apple flags this in reviews.
It's checklist item 1.4. Implement it on day one. Apple's reviewers flag this often.
// AppDelegate.swift
func applicationDidBecomeActive(_ application: UIApplication) {
Task {
try? await koard.tapToPay.prepare()
}
}
Terms & Conditions: two paths
There are exactly two ways a merchant can accept Apple's Tap to Pay T&C. Pick one based on your distribution path.
User-led (default)
In-app, the merchant signs into their Apple Account, taps "Accept", and the device kicks off terminal-profile building. This is the path for Public, Unlisted, and Custom App distribution where merchants have their own Apple ID on the device.
Never cache the T&C status locally. Always read T&C acceptance state from Apple via the Koard SDK. A local flag can fall out of sync with Apple's records and cause unexpected T&C prompts at the worst possible moment.
Enterprise (Apple Business Connect)
For MDM-managed devices without an Apple ID, an organisation admin accepts terms on behalf of the merchant via Apple Business Connect. Koard provides the token your admin uses to do this — talk to your Koard solutions contact to set it up before you deploy devices. If the merchant hasn't linked in ABC, the user will see the T&C prompt on the device anyway.
This is the path most MDM-deployed enterprise apps take. It's documented in Apple's v1.5.1 checklist item 3.8.2.
The three required videos
Apple requires three video walkthroughs as part of the Publishing Entitlement review.
You must record with a second device. The Tap to Pay on iPhone reader screen cannot be screen-recorded. Use a separate iPhone to film the device under test.
New User Flow
Show each of the following in order — Apple rejects videos that skip or cut any step:
- Account creation
- KYC (if applicable)
- Merchant approval
- Tap to Pay awareness moment
- T&C acceptance
- Merchant education
- Terminal profile configuration progress indicator
- Completed indicator
- One full transaction
Existing User Flow
Show each of the following in order:
- Sign in to existing account
- Tap to Pay button visible before T&C is accepted
- Awareness moment for existing users
- T&C acceptance
- Merchant education
- Progress indicator
- One full transaction
- PIN entry (if applicable for your region)
- Fallback payment method (if applicable for your region)
Checkout Flow
Show each of the following in order:
- Add items to cart (or enter amount)
- Payment options screen
- Tap to Pay button
- Initiate and complete a Tap to Pay transaction
- PIN entry (if applicable)
- Fallback (if applicable)
Common rejection: the videos exist but skip a step ("we cut to after T&C acceptance"). Re-record showing every step in sequence. If you need to unlink your Apple Account to re-record T&C acceptance, Apple has documentation on resetting the T&C state.
Submitting to App Store Connect
For Public, Unlisted, or Custom App distribution, passing the Publishing Entitlement review is not the end. Your app then goes through standard App Store Review plus a Tap to Pay-specific review.
In your App Store Connect submission notes, include:
- A declaration that you are using the Tap to Pay on iPhone entitlement.
- A description of your use case (e.g. "a point-of-sale app for SMB merchants").
- A test account that works. Apple says "a vast majority of rejections are due to test accounts not working properly." Validate on a fresh device before submitting.
- A link to your video walkthrough and high-fidelity wireframes of your checkout experience.
- If your app is geo-fenced or uses a feature flag for Tap to Pay — declare that explicitly.
- If Tap to Pay is your only acceptance method, set
UIRequiredDeviceCapabilitiesto includeiphone-ipad-minimum-performance-a12so incompatible devices cannot download the app.
Enterprise apps: do not mention MDM. If you're MDM-distributing in the enterprise, do not mention MDM in your App Store Connect app details. It flags a different (incorrect) entitlement review. Route enterprise distribution via ADEP.
Respond on the same thread. Apple will often respond to a missing piece as a "rejection" with a note in the body saying it's actually a request for information. Reply on the same message thread — don't open a new one.
Common pitfalls
| # | Pitfall | Catch it before submission by… |
|---|---|---|
| 1 | Submission videos skip T&C / merchant-linking | Using the Videos checklist in MMS Launch Readiness — it lists every Apple-required step per video |
| 2 | No in-app merchant education ("we train in person") | Wiring up the Koard SDK's merchant-education entry point (wraps ProximityReaderDiscovery, iOS 18+) — satisfies 4.x in one call |
| 3 | prepare() not implemented or called at checkout |
Implementing on day one at app launch and applicationWillEnterForeground |
| 4 | Test account credentials don't work on Apple's review device | Validating on a fresh iPhone before submitting |
| 5 | Tap to Pay button uses wrong copy or greys out when not enrolled | Apple is literal — use "Tap to Pay on iPhone"; never grey the button |
| 6 | Mentioned MDM in App Store Connect notes for an enterprise app | Strip the MDM mention; route enterprise via ADEP, not the App Store |
| 7 | Awareness moment present but only for new users | Add an existing-user awareness moment too (full-screen modal on first login post-launch) |
| 8 | T&C local cache out of sync with Apple | Always read T&C status from Apple via the Koard SDK — never trust a local flag |
| 9 | Geo-fencing not declared in App Store Connect notes | Add a line: "App is geo-fenced to US, CA. Test account works in these regions." |
| 10 | Marketing channels skipped (launch email, push, hero banner) | Items 6.1, 6.2, 6.3 — required for Public distribution |
After approval: pilot, then GA
Apple strongly recommends piloting with a small group of representative merchants before flipping to general availability. Two options:
- TestFlight — invite-only, requires the Publishing Entitlement.
- Feature flag — ship the binary to GA with Tap to Pay hidden behind a backend flag you control. This is the path Apple recommends for existing apps, because most users will already have the updated version when you flip the flag. If you go this route, declare it in your App Store Connect submission, and do not update your App Store product page with Tap to Pay messaging until you flip the flag.
Apple ships a pilot questionnaire in the Getting Started PDF (Appendix). Use it.
Quick reference links
- Apple Tap to Pay on iPhone developer site
- Request the entitlement
- Human Interface Guidelines — Tap to Pay on iPhone
- Apple Marketing Guidelines
- ProximityReaderDiscovery API (iOS 18+)
- App Store Review Guidelines
Where to get help
- In-MMS checklist —
Launch Readinessin your Koard dashboard mirrors this guide section by section. - Apple entitlement questions — reply on your existing
applepayentitlements@apple.comthread, citing your Case ID. - PSP-side questions (T&C from Apple vs local, ABC tokens for enterprise,
prepare()semantics) — your Koard solutions contact.
See also
- Setting Up the Entitlement for Tap to Pay on iPhone - Request and configure the Apple development entitlement
- Adding Support for Tap to Pay on iPhone - Configure Xcode and run your first test transaction
- Getting Ready for Production - Set up Xcode schemes and API keys for your production build
- Apple Best Practices and Guidelines - UX patterns, ProximityReader usage, and security practices
- Running Payments - SDK reference for payment flows
This guide reflects Apple's published requirements as of March 2025 (App Review Checklist v1.5.1) and September 2023 (Getting Started v1.2). Apple updates these documents periodically. If you see a discrepancy, the Apple source wins — please flag it to us.

