LogoLogo
Explore with DeepWikiJoin Slack CommunityContact Us
  • About Hyperswitch
    • Exploration Guide
    • Overview
    • Payments Suite
    • Payments Modules
      • Cost Observability
      • Revenue Recovery
      • Vault
        • Server to Server Vault tokenization
        • Vault SDK Integration
        • Hyperswitch Vault: Pass Through Proxy Payments
      • Intelligent Routing
      • Reconciliation
        • Getting Started with Recon
      • Alternate Payment Method Widgets
        • Hyperwidget Integration Guide
    • Roadmap - Q2 2025
      • Previous Roadmap - Q1 2025
      • Previous Roadmap - Q4 2024
      • Previous Roadmap - Q3 2024
      • Previous Roadmap - Q2 2024
      • Previous roadmap - Q1 2024
      • Previous roadmap - Q4 2023
  • Use-Cases
    • For SaaS Businesses
    • For B2B SaaS Businesses
    • For E-Commerce Businesses
    • For Marketplace/Platforms
  • Explore Hyperswitch
    • Payment Orchestration
      • Accept Payments
        • Connectors
          • Activate Connector on Hyperswitch
          • Try a Payment
          • Available Connectors
            • ACI
            • Adyen
            • Airwallex
            • Authorizedotnet
            • Bambora
            • Bank of America
            • Billwerk
            • Bluesnap
            • Braintree
            • Checkout
            • Coinbase
            • Cybersource
              • Apple Pay
              • Google Pay
            • dLocal
            • Fiserv
            • GlobalPayments
            • GoCardless
            • Klarna
            • Mollie
            • MultiSafepay
            • Nuvei
            • OpenNode
            • Paypal
            • PayU
            • Prophetpay
            • Rapyd
            • Shift4
            • Stripe
            • TrustPay
            • Volt
            • Worldline
            • Worldpay
            • Zen
            • Netcetera
              • Authenticating Payments via Netcetera Through HyperSwitch SDK
        • Setup Payment Methods
          • Cards
          • Wallets
            • Apple Pay
              • Web Domain
              • iOS Application
            • Google Pay
            • PayPal
          • Pay Later
          • Banks
            • Bank Debits
            • Bank Redirects
            • Bank Transfers
            • Open Banking
          • Crypto
          • Test Credentials
        • Payment Links
          • Configurations
          • Create Payment Links
          • Secure Payment Links
          • Setup Custom Domain
        • Save a Payment Method
        • Manual Capture
        • Incremental Authorization
        • Tokenization & Card Vault
          • Network Tokenisation
        • Supported Payment Workflows
        • Co-badged Cards
        • Webhooks
      • Process Payouts
        • Getting Started with Payouts
        • Using Saved Payment Methods
        • Smart Router for Payouts
        • Smart Retries in Payout
        • Payout Links
      • Smart Routing
        • Rule Based Routing
        • Volume Based Routing
        • Default Fallback Routing
      • Smart Retries
        • 3DS Step-up Retries
      • 3DS / Strong Customer Authentication
        • Setting up 3DS Decision Manager
        • Native 3DS Authentication
        • External Authentication for 3DS
      • Fraud & Risk Management
        • Activating FRM in Hyperswitch
        • Fraud Blocklist
      • Subscriptions
        • PG Agnostic Card Forwarding
        • Zero Amount Authorization
      • Split Payments
        • Stripe Split Payments
        • Adyen Split Payments
        • Xendit Split Payments
    • Checkout Experience
      • Customizable and Native Integrations
        • Web
          • Node And React
          • Customization
          • Error Codes
          • Node and HTML
          • Vanilla JS and REST API Integration
        • Android
          • Kotlin with Node Backend
          • Customization
          • Features
        • iOS
          • Swift with Node Backend
          • Customization
          • Features
        • React Native
          • React Native with Node Backend
          • Card Widget
          • Customization
        • Flutter
          • Flutter with Node Backend
          • Customization
        • Headless SDK
        • Server Setup
      • Click To Pay
        • Visa Click to Pay: V1 to V2 Migration
      • Payment Methods Management
    • Payment Operations
      • Managing Accounts and Profiles
        • ⚙️Control Centre Account setup
        • Hyperswitch Account Structure
      • Manage Your Team
      • Analytics & operations
        • Exporting payments data
      • Disputes / Chargebacks
      • Surcharge
        • Surcharge Setup guide
      • Multi-Tenancy
      • Data migration
        • Import data to Hyperswitch
        • Export data from Hyperswitch
    • Security and Compliance
      • PCI Compliance
      • Data Security
      • GDPR compliance
      • Identity and Access Management
    • E-commerce Platform Plugins by Hyperswitch
      • 🔌WooCommerce Plugin
        • Setup
        • Roadmap
        • Compatibility
        • FAQs
      • Saleor App
        • Setup
      • Automatic Tax calculation for Express Checkout wallets
  • Hyperswitch open source
    • Overview
      • Run Hyperswitch Locally Using Docker
        • Run Additional Services
      • Development Environment Setup
        • Backend
          • Configure and Run the Application
          • Try out APIs
        • SDK (Frontend)
        • Control Center
    • Deploy on AWS
      • Deploy on AWS using CloudFormation
      • Component-wise Deployment
        • Deploy app server
        • Deploy Control Center
        • Deploy web client
          • Production ready deployment
          • Integrate web client on your web app
          • Playground deployment for prototyping (optional)
        • Deploy Card Vault
          • Production ready deployment on AWS
          • Cloud setup guide
    • Deploy on Kubernetes
      • Deploy on GCP Using Helm Charts
      • Deploy on Azure Using Helm Charts
    • Account setup
      • Using Hyperswitch Control Center
      • Test a payment
      • Using postman
    • Troubleshooting
  • Testing Payments
  • Check list for Production
    • Going live
      • For SaaS Setup
      • For On-Prem Setup
        • Monitoring
        • PCI compliance
          • Get started
          • Completing the SAQ
        • Data Security
        • Updates
  • Learn more
    • API Reference
    • Connectors Supported
    • SDK Reference
      • React
      • JS
      • Custom Events
    • Hyperswitch architecture
      • Router
      • Storage
      • A Payments Switch with virtually zero overhead
    • Payment flows
    • Blog
  • Community Guidelines
Powered by GitBook

Compliance

  • Vulnerability Disclosure
  • PCI DSS 4.0
  • ISO 27001:2022

Community

  • Slack
  • Discord
  • GitHub Discussion
On this page
  • Prerequisites
  • Creating an Apple MerchantID
  • Validating Merchant Domain
  • Creating Apple MerchantID Certificate and Private Key
  • Configuring Apple Pay on Hyperswitch
  • Creating Apple Pay Payment Processing Certificate
  • Integrate with Xcode

Was this helpful?

  1. Explore Hyperswitch
  2. Payment Orchestration
  3. Accept Payments
  4. Setup Payment Methods
  5. Wallets
  6. Apple Pay

iOS Application

Enable Apple pay on your iOS app

Last updated 4 months ago

Was this helpful?

Prerequisites

Before beginning to integrate Apple Pay with Hyperswitch, below prerequisites need to be fulfilled. Please feel free to reach out to Hyperswitch support if you are stuck at any stage when integrating and testing Apple Pay.

  1. Apple Pay requires an Apple Developer Account. You can for one here.

  2. You must have a valid SSL certificate on your domain (meaning it begins with https)

Apple Pay requires additional steps, and requires macOS 10.12.1+ or iOS 10.1+. Follow the steps given below to setting up Apple Pay -

Creating an Apple MerchantID

You can create an Apple MerchantID referencing the video or following the steps mentioned below

  • Log in to your

  • Go to the , select Merchant IDs and click Continue

  • Add a useful description (like merchant id for test environment)

  • Enter a unique descriptive identifier (like merchant.com.testdomain.sandbox) and click Continue

  • Verify the description and identifier and click on Register

Validating Merchant Domain

You can validate the merchant domain by following the steps mentioned below -

  • Under the Merchant Domains section, click on Add Domain

  • Enter your merchant_domain as domain and click on Save

  • Click on Download and a .txt file will be downloaded

  • Host this file on merchant_domain/.well-known/apple-developer-merchantid-domain-association.txt

  • Once you host the .txt file in the path mentioned above, click on Verify

  • Make sure the status is verified as shown in the following image

Creating Apple MerchantID Certificate and Private Key

You can create an Apple MerchantID certificate and private key by following the steps mentioned below -

Note: It is recommended that you keep all the generated files in the same workspace for the sake of simplicity

  • Open a terminal and create .csr and .key file using the following command -

openssl req -out uploadMe.csr -new -newkey rsa:2048 -nodes -keyout certificate_sandbox.key
  • Enter your details asked in the prompt. You will get a .csr and .key file

  • Under the Apple Pay Merchant Identity Certificate section (make sure you are not in the Apple Pay Payment Processing Certificate section), click on Create Certificate

  • Upload the .csr file you just created by running the command (it would be called uploadMe.csr if you copy-pasted the command) and click on Continue

  • You will get a .cer file on clicking on Download (it will probably be named merchant_id.cer)

  • You will need to convert this .cer file into a .pem file using the following command -

openssl x509 -inform der -in merchant_id.cer -out certificate_sandbox.pem

Configuring Apple Pay on Hyperswitch

You can configure Apple Pay on Hyperswitch by following the steps mentioned below -

  • In the Connectors tab, select your processor

  • While selecting Payment Methods, click on Apple Pay in the Wallet section

  • Select the iOS Certificate option

  • In Apple Merchant Identifier, add your identifier which you added while creating Apple MerchantID

  • In Merchant Certificate, base64 encode the entire content of your .pem file (it will be certificate_sandbox.pem, if you used the exact command mentioned above), and enter the encoded data in the form field. Use the below command to base64 encode it.

base64 -i certificate_sandbox.pem
  • In Merchant Private Key, base64 encode the entire content of your .key file (it will be certificate_sandbox.key, if you used the exact command mentioned above), and enter the encoded data in the Merchant PrivateKey form field. Use the below command to base64 encode it.

base64 -i certificate_sandbox.key
  • Display Name should be your merchant name that you want to present to the customers when the make ApplePay payment on your platform.

  • In Domain, enter web in the form field.

  • In Domain Name, add the verified domain name you configured in Merchant Domains in Apple Developer Account.

Creating Apple Pay Payment Processing Certificate

  • You will need to get a .csr file from your processor's dashboard, (like Adyen, Cybersource)

  • Under the Apple Pay Payment Processing Certificate section, click on Create Certificate

  • After answering whether the Merchant ID will be processed exclusively in China mainland, click on Continue

  • Upload the .csr you received from your processor and click Continue

  • Click on the prompted Download button and you will get a .cer file, Upload this .cer file you received while creating Apple MerchantID Certificate on the processor's dashboard.

This final step is specific to the processor being used and is not necessary in Sandbox Test environment for some processors, such as Authorize.Net.

You can create an Apple Payment Processing Certificate and Payment Processing Key by following the steps mentioned below

  • Note: It is recommended that you keep all the generated files in the same folder for the sake of simplicity

  • Open a terminal and create .key file using the following command

openssl ecparam -name prime256v1 -genkey -noout -out ppc_private.key
  • You can create .csr file using the following command and enter your details asked in the prompt. You will get a .csr file.

openssl req -out ppc_uploadMe.csr -new -key ppc_private.key
  • Under the Apple Pay Payment Processing Certificate, click on Create Certificate

  • Upload the .csr file you just created (it would be called uploadMe.csr if you copy-pasted the command) and click on Continue.

  • You will get a .cer file on clicking Download (it will probably be named apple_pay.cer).

  • In Payment Processing Certificate, base64 encode the entire content of your .cer file and paste it.

base64 -i apple_pay.cer
  • In Payment Processing Key, copy the content from ppc_private.key file and paste it.

Please note since this flow involves decryption at Hyperswitch, you may need to write to your payment processor to get this feature enabled for your account. Stripe is one among them.

You can use the following text in the email
  • Attach our PCI DSS AoC certificate and copy our Support team (hyperswitch@juspay.in).

  • A detailed business description: <One sentence about your business>. The business operates across xx countries and has customers across the world.

  • Feature Request: We are using Hyperswitch, a Level 1 PCI DSS 3.2.1 compliant Payments Orchestrator, to manage payments on our website. In addition to Stripe, since we are using other processors as well to process payments across multiple geographies, we wanted to use Hyperswitch’s Payment Processing certificate to decrypt Apple pay tokens and send the decrypted Apple pay tokens to Stripe. So, please enable processing decrypted Apple pay token feature on our Stripe account. We’ve attached Hyperswitch’s PCI DSS AoC for reference.

Integrate with Xcode

Add the Apple Pay capability to your app. In Xcode, open your project settings, click the Signing & Capabilities tab, and add the Apple Pay capability. You might be prompted to log in to your developer account at this point. Select the merchant ID you created earlier, and your app is ready to accept Apple Pay.

Log in to your , go to Identifiers and select the Merchant ID you created previously

Log in to your , go to Identifiers and select the Merchant ID you created previously

Login to

Log in to your , go to Identifiers and select the Merchant ID you created previously

Log in to your , go to Identifiers and select the Merchant ID / Payment Platform Integrator ID you created previously

Stripe Account id: <Enter your account id: you can find it >

Sign Up
Apple Developer account
add MerchantIDs section
Apple Developer account
Apple Developer account
Hyperswitch dashboard
Apple Developer account
Apple Developer account
here
Enable the Apple Pay capability in Xcode