Apple Pay + NMI (SeamlessChex) — Merchant Integration Guide
Prerequisites
- Active NMI merchant account (under SeamlessChex).
- Apple Developer Program membership for the merchant’s Apple Developer account.
- Apple Merchant ID (created in Apple Developer).
- Apple Pay Payment Processing Certificate created using a CSR supplied by your gateway (NMI). The certificate is ECC 256 (prime256v1) and must be renewed about every 25 months.
-
For web only: ability to host a file at /.well-known/ on your domain.
Step 1: Enable Apple Pay in NMI
- Merchant Portal → Settings → Apple Pay
- Enter Apple Merchant ID.
- Generate CSR.
- In Apple Developer, create Payment Processing Certificate using that CSR; download the .cer.
- Upload the .cer back in NMI (note: renew ~every 25 months)
-
Web only — Domain verification
- Download the verification file from NMI Apple Pay settings.
- Host at: https://YOURDOMAIN/.well-known/apple-developer-merchantid-domain-association.
- Add your domain(s) in NMI Apple Pay settings.
Step 2: Integrate
A) Web (recommended) — Collect.js
- Add Collect.js to checkout with your tokenization key and Apple Pay attributes.
- On approval, Collect.js returns payment_token.
- Server: POST to NMI Payment API (/api/transact.php) with your sale fields (e.g., amount) + payment_token. That’s it—no raw card data.
B) iOS App — PassKit
- Enable Apple Pay capability, attach your Merchant ID.
- Use PassKit to present the sheet and capture PKPaymentToken.paymentData.
- Server: POST to NMI Payment API with your sale fields + Apple Pay token (no custom decryption).
Step 3: Test → Go Live
- Use Apple Pay sandbox testers and run end-to-end.
- Confirm: certificate installed & valid, domain verified (web), transactions succeed via Payment API.
Common pitfalls (and fixes)
-
“Apple Pay button doesn’t show on my site.”
Verify the domain file is hosted at the exact /.well-known/ path and the domain is listed under Apple Pay in the NMI portal.
-
“Certificate errors” or sudden failures after a year or two.
Payment Processing Certificates expire roughly every 25 months. Calendar a renewal 30 days in advance.
-
“Which key type for the certificate?”
Use ECC 256 (prime256v1) for the Payment Processing Certificate.
-
“What do I actually post to NMI?”
-
Web (Collect.js): post payment_token to the Payment API.
- iOS app: post the Apple Pay token (paymentData) to the Payment API as enabled on your account; we’ll ensure the correct fields are turned on.
-
Web (Collect.js): post payment_token to the Payment API.
Reference links (for developers)
-
NMI — Digital Wallet (Apple Pay) Setup: domain verification, Collect.js attributes, and payment_token.
-
NMI — Payment API (Direct Post): endpoint and method.
-
NMI — Add Apple Pay to a Merchant (domains via API).
-
Apple — Configure Apple Pay (capability + Merchant ID + cert).
-
Apple — CSR and ECC details.
-
Apple — Setting up Apple Pay / PKPaymentToken.
-
Apple — Sandbox testing.
- NMI — Apple Pay (Direct Connect) certificate lifecycle (useful for expiry planning; same cert rules apply).
Comments
0 comments
Please sign in to leave a comment.