Loading...
Loading...
Use when accepting ANY real-world payment — Apple Pay, Wallet passes, Tap to Pay, Orders in Wallet. NOT in-app purchase / digital content (use axiom-integration). Covers entitlements, certs, signing, App Review payment rules.
npx skill4agent add charleswiltgen/axiom axiom-paymentscom.apple.developer.proximity-reader.payment.acceptance.well-known/apple-developer-merchantid-domain-association.txt| Issue | Correct Skill | Why NOT axiom-payments |
|---|---|---|
| In-app purchase, subscriptions for digital content | axiom-integration | StoreKit 2 / digital goods boundary; see |
| Generic NFC tag reads (Core NFC, non-Wallet) | axiom-integration | Different framework; PassKit NFC is Wallet-specific |
| Code signing / provisioning fundamentals | axiom-security | Code signing is generic; payment certs are added to that flow |
| App Store rejection workflow & appeals | axiom-shipping | Rejection workflow lives there; payment-specific rejection patterns route from there into here |
| HIG cross-cutting design guidance | axiom-design | Apple Pay / Wallet HIG specifics live here, but design overview lives in axiom-design |
| Consumer banking surface (FinanceKit) | Out of scope | This suite uses FinanceKitUI only for Orders. Account aggregation / transaction queries are not covered. |
| PKSecureElementPass, transit cards, car keys | Out of scope | Issuer-controlled, not relevant to merchant developers |
| Symptom / Task | Reference |
|---|---|
| Should this be Apple Pay or IAP? | See |
| Selling physical goods, services, or donations | See |
| App was rejected for using IAP for physical goods | See |
| Native Apple Pay (iOS / iPadOS / macOS / Catalyst / visionOS / watchOS) | See |
| PassKit / PKPaymentRequest API surface | See |
| Apple Pay on the web (Apple Pay JS or Payment Request API) | See |
| Web ApplePaySession / Payment Request API surface | See |
| Domain verification, merchant identity cert, third-party browser support | See |
| Tap to Pay on iPhone (ProximityReader) | See |
| ProximityReader / PaymentCardReader API surface | See |
| Tap to Pay entitlement stuck in "Submitted" | See |
| Wallet passes (boarding, event ticket, coupon, loyalty, store card) | See |
| pass.json schema, semantic tags, barcodes, NFC payloads | See |
| Pass signing, manifest hashing, PKCS #7 | See |
| Pass updates not arriving (web service / APNs) | See |
| Orders in Wallet, signed order packages, fulfillment status | See |
| Issuer / bank card provisioning extensions | See |
| "No payment sheet appears" / merchant validation 503 / pass won't import | See |
| Sandbox testing failures, prod-vs-sandbox cert mismatch | See |
| Apple Pay button vs Apple Pay Mark confusion | See |
| App Review rejection for Apple Pay / Wallet / Tap to Pay | See |
digraph payments {
"Payments question?" [shape=diamond];
"Apple Pay or IAP?" [shape=diamond];
"Where is the surface?" [shape=diamond];
"What kind of pass?" [shape=diamond];
"Something not working?" [shape=diamond];
"skills/apple-pay-vs-iap.md" [shape=box];
"skills/apple-pay.md" [shape=box];
"skills/apple-pay-web.md" [shape=box];
"skills/tap-to-pay.md" [shape=box];
"skills/wallet-passes.md" [shape=box];
"skills/wallet-orders.md" [shape=box];
"skills/wallet-extensions-ref.md" [shape=box];
"skills/payments-diag.md" [shape=box];
"axiom-integration\n/in-app-purchases.md" [shape=box];
"Payments question?" -> "Apple Pay or IAP?";
"Apple Pay or IAP?" -> "skills/apple-pay-vs-iap.md" [label="boundary unclear"];
"Apple Pay or IAP?" -> "axiom-integration\n/in-app-purchases.md" [label="digital content /\nsubscription for digital"];
"Apple Pay or IAP?" -> "Where is the surface?" [label="real-world payment"];
"Where is the surface?" -> "skills/apple-pay.md" [label="native app"];
"Where is the surface?" -> "skills/apple-pay-web.md" [label="website"];
"Where is the surface?" -> "skills/tap-to-pay.md" [label="contactless on iPhone"];
"Where is the surface?" -> "What kind of pass?" [label="pass / order"];
"Where is the surface?" -> "skills/wallet-extensions-ref.md" [label="card provisioning\n(issuer / bank)"];
"What kind of pass?" -> "skills/wallet-passes.md" [label="boarding / ticket /\ncoupon / loyalty"];
"What kind of pass?" -> "skills/wallet-orders.md" [label="post-purchase\norder tracking"];
"Payments question?" -> "Something not working?";
"Something not working?" -> "skills/payments-diag.md" [label="yes"];
}axiom-integration/skills/in-app-purchases.mdskills/apple-pay-vs-iap.mdskills/apple-pay.mdskills/apple-pay-ref.mdskills/apple-pay-web.mdskills/apple-pay-web-ref.mdskills/tap-to-pay.mdskills/tap-to-pay-ref.mdskills/wallet-passes.mdskills/wallet-passes-ref.mdskills/wallet-orders.mdskills/wallet-extensions-ref.mdskills/payments-diag.mdskills/apple-pay-vs-iap.mdskills/in-app-purchases.mdskills/apple-pay-vs-iap.mdskills/payments-diag.mdskills/payments-diag.mdskills/app-store-diag.md.p12skills/keychain-ref.mdskills/tap-to-pay.mdskills/code-signing.mdskills/hig.mdskills/apple-pay.mdskills/apple-pay-ref.md| Thought | Reality |
|---|---|
| "We sell physical stuff but we'll use IAP — easier integration" | Guaranteed App Review rejection (Section 3.1.1 / 3.1.3(e)). Use Apple Pay for physical goods, services, donations. |
| "Our app is digital content, we'll use Apple Pay because IAP fees are higher" | Guaranteed App Review rejection. Digital content + subscriptions for digital content must use IAP. |
| "I'll just embed our PSP's raw card form on the web — it's faster" | Acceptable Use Guidelines violate parity rule. If you accept any other payment method on the web, you must offer Apple Pay at least as prominently. |
| "Tap to Pay just needs a capability checkbox like other features" | Tap to Pay uses a managed entitlement requested via a separate form. The Xcode capability flow doesn't apply. Two-step request (dev → distribution); rejection or "Submitted" stalls add 1–4 weeks per loop. |
| "We'll roll our own pass signing — it's just zip + sign" | PKCS #7 detached signature, manifest hashing, WWDR Intermediate cert, S/MIME signing-time, PEM/DER format gotchas — most signing failures originate from rolled-from-scratch implementations. Use a server library. |
| "The Apple Pay Mark is just a button graphic" | The Mark is "Apple Pay accepted" signage — never tappable. The Button is API-provided and initiates payment. Using the Mark as a button is an HIG violation and a known conversion killer. |
| "Production cards will work the same as sandbox cards" | Sandbox transactions decline pre-fulfillment by design. Production transactions need production keys + activated certs. Test on real devices with real cards before launch. |
| "Apple Pay merchant ID expires every year" | Merchant IDs never expire. Payment Processing Certificates expire after 25 months. These are different things. |
| "I can call merchant validation from the browser" | The browser must never call |
| "FinanceKit will let our app see the user's bank transactions" | Out of scope for this suite. FinanceKit consumer banking surface is not covered. We use FinanceKitUI only for the order-add helpers. |
axiom-integration/skills/in-app-purchases.mdaxiom-integration/skills/storekit-ref.mdskills/apple-pay-vs-iap.mdMobileDocumentReaderskills/tap-to-pay-ref.mdskills/apple-pay-vs-iap.mdskills/apple-pay.mdskills/apple-pay-ref.mdskills/apple-pay-web.mdskills/payments-diag.mdskills/tap-to-pay.mdskills/tap-to-pay.mdskills/payments-diag.mdskills/wallet-passes.mdskills/payments-diag.mdskills/wallet-orders.mdskills/apple-pay-vs-iap.mdskills/payments-diag.mdskills/apple-pay-vs-iap.mdskills/wallet-extensions-ref.md