Plexy
Pay API
Gate APISDKDashboard
Pay API
Gate APISDKDashboard
  1. Wallets
  • Overview
  • Authorization
  • Webhooks
  • API Errors
  • Test Scenarios
  • Ecommerce Plugins
  • API
    • Payments
      • Overview
      • Transaction Errors
      • Payment Links
        • Create Payment Link
        • List Payment Links
        • Retrieve Payment Link by Order Reference
        • Cancel Payment Link
        • Retrieve Payment Link
        • Update Payment Link Expiration
        • Retrieve Payment Links Statistics
      • Reccurent Payments
        • Create Merchant-Initiated Payment
      • Direct Payments
        • Get Keys
        • Create Host-to-Host Payment
      • Transaction Management
        • Find Transaction's History by ID
        • Find Transaction by Payment Link ID
        • Find Transaction by ID
        • Find Transaction by Order reference
      • Payment Management
        • Cancel Payment
        • Capture Payment
        • Process Refund
      • Split Requests
        • Create
        • List
        • Update
        • Get By Id
        • Delete
    • Payouts
      • Retrieve Payout Transactions
      • Process Payout
      • Save Card for Payouts
    • Customers
      • Get Customer's Card Tokens
      • List Customers
      • Create Customer
      • Get Customer by ID
      • Get Customer's Transactions
    • Merchants
      • Payment Beneficiary
        • Create
        • Update
        • Gey By Id
        • List
        • Transfer from beneficiary balance to merchant balance
        • Create manual settlement for beneficiary
      • Retrieve Merchant's Details
    • Wallet
      • Authorize
      • Сapture
      • Refund
      • Cancel
    • Payment Methods
      • Google Pay™ Integration
    • Invoice
      • List Bank Invoices
      • Create Bank Invoice
      • Get Bank Invoice
    • Distributions
      • Create distribution
      • List distributions
      • Get distribution by ID
      • Get distributions balance
  • Client SDK
    • Server flow
      • Session server flow
    • Web
      • Web Drop-in
      • Web iFrame
    • Flutter
      • Flutter Drop-in
    • Wallets
      • Apple Pay Web SDK Integration
      • Apple Pay Moible Integration
      • Google Pay Integration
  • Schemas
    • Schemas
      • response.TransactionList
      • entity.SplitRequest
      • entity.PaymentBeneficiary
      • request.CreatePaymentBeneficiary
      • entity.SettlementPaymentOrder
      • entity.PayoutRequest
      • entity.PayoutRequestRowData
      • entity.UserProfile Copy
      • entity.Store
      • request.AssignStoreToUser
      • request.RemoveStoreFromUser
      • entity.AccountExternalSystem
      • response.AssignStoreToUser
      • request.CreateStore
      • response.Store
      • response.UserList
      • request.WalletAuthorizeRequest
      • entity.ShortWalletTransaction
      • response.WalletAuthorizeResponse
      • request.WalletCapture
      • response.RemoveStoreFromUser
      • command.HandleThreeDResult
      • domain.Report
      • entity.CardSaveSessionCustomer
      • entity.Permission
      • entity.UserProfile
      • entity.UserRole
      • git_plexypay_com_ecom_back_api_internal_domain_view.Page-domain_Report
      • git_plexypay_com_ecom_back_api_internal_domain_view.Page-entity_UserProfile
      • models.CSVApiRequest
      • models.CreateBussinessDetails
      • models.KeyResponse
      • models.OnboardingRequest
      • models.Transaction
      • paymentcore.Address
      • paymentcore.CustomerDetails
      • request.AuthorizePayment
      • request.BrowserDetails
      • request.CardData
      • request.ChangeUserRole
      • request.ContinueThreeDS
      • request.CreateCardSaveSession
      • request.CreateInviteSession
      • request.CreatePaymentLink
      • request.CreatePaymentLinkMetadata
      • request.HandlePayout
      • request.MerchantInitiatedPayment
      • request.PasswordRequest
      • request.Recurring
      • request.RefundPayment
      • request.SaveCard
      • request.SaveOneCustomer
      • request.TwoStepAuthorizePayment
      • request.UpdateMerchantSettingsRequest
      • request.UpdatePaymentLink
      • response.AcquirerResponseThreeDSecure
      • response.AuthorizeAndCapturePayment
      • response.AuthorizePayment
      • response.CancelPaymentResponse
      • response.CapturePaymentResponse
      • response.ContinueThreeDS
      • response.Currency
      • response.Customer
      • response.CustomerTransaction
      • response.CustomerTransactions
      • response.Customers
      • response.Merchant
      • response.MerchantInitiatedPayment
      • response.MerchantSettings
      • response.PaymentLink
      • response.PaymentLinkInfo
      • response.PaymentLinkMetadata
      • response.PaymentLinksInfo
      • response.PaymentLinksStatistics
      • response.PaymentLinksStatisticsItem
      • response.Payout
      • response.Permission
      • response.RefundPaymentResponse
      • response.Report
      • response.SavedCard
      • response.Session
      • response.Settlement
      • response.SettlementTransaction
      • response.Store
      • response.Stores
      • response.Transaction
      • response.TransactionDetails
      • response.TransactionEvents
      • response.TransactionHistoryEvent
      • response.TransactionHistoryEventData
      • response.TransactionResponse
      • response.TransactionWebhookDetails
      • response.Transactions
      • response.UpdateMerchantSettingsResponse
      • response.UserProfile
      • value.PaymentMethod
    • receipt
    • Error
    • response.BankInvoice
    • DistributionStatus
    • DecimalAmount
    • errors.Source
    • Currency
    • ProductType
    • errors.Message
    • DistributionRecipient
    • ProductCategory
    • request.CreateBankInvoice
    • DistributionCreateRequest
    • Product
    • git_plexypay_com_ecom_back_api_internal_platform_errors.Code
    • DistributionBase
    • response.Error
    • Order
    • DistributionCreatedResponse
    • AgentBalance
    • response.BankInvoiceList
    • DistributionDetailResponse
    • AgentDeposit
    • errors.Type
    • DistributionListItem
    • TopupRequest
    • DistributionListResponse
    • CreateOrderRequest
    • DistributionBalanceResponse
  1. Wallets

Apple Pay Moible Integration

Apple Pay Payment Processing Certificate Setup#

This guide explains how to create an Apple Pay Payment Processing Certificate for processing Apple Pay payments through Plexy.
WARNING
Do not generate your own private key or CSR for this integration.
Plexy generates and stores the private key because Plexy decrypts Apple Pay payment tokens.

Before You Start#

You need:
RequirementDescription
Apple Developer AccountYour company must have access to Apple Developer Portal.
Apple Merchant IDExample: merchant.com.company.app.
Plexy Dashboard accessYou need access to the Apple Pay setup section.
iOS appYour app must support Apple Pay.

Setup Flow#

1. Merchant creates or selects an Apple Merchant ID.
2. Plexy generates a private key and CSR.
3. Merchant downloads the CSR from Plexy Dashboard.
4. Merchant uploads the CSR to Apple Developer Portal.
5. Apple issues the Payment Processing Certificate.
6. Merchant downloads the .cer file from Apple.
7. Merchant uploads the .cer file to Plexy Dashboard.
8. Plexy validates the certificate and activates Apple Pay.

Key Concepts#

TermMeaning
CSRCertificate Signing Request. A file generated by Plexy and uploaded by the merchant to Apple.
Private keySecret key generated and stored by Plexy. It is not shared with the merchant.
Payment Processing CertificateCertificate issued by Apple for the merchant's Apple Merchant ID.
Apple Merchant IDApple identifier used by the merchant app to accept Apple Pay payments.
INFO
The CSR does not contain the private key. It contains the public key and certificate request data.
INFO
Apple uses the Payment Processing Certificate to encrypt Apple Pay payment data. Plexy uses the corresponding private key to decrypt the payment token.

Step 1. Create or Select Apple Merchant ID#

Open Apple Developer Portal:
Certificates, Identifiers & Profiles
→ Identifiers
→ Merchant IDs
Create a new Merchant ID or select an existing one.
Example:
merchant.com.company.app
WARNING
Use the same Merchant ID in Apple Developer Portal, your iOS app, and Plexy Dashboard.

Step 2. Generate CSR in Plexy Dashboard#

Open Plexy Dashboard and go to:
Apple Pay
→ Payment Processing Certificate
→ Generate CSR
Download the generated CSR file.
Example file name:
apple_pay_payment_processing.csr
WARNING
Do not create the CSR yourself. Use only the CSR generated by Plexy.

Step 3. Upload CSR to Apple Developer Portal#

In Apple Developer Portal, open your Merchant ID:
Certificates, Identifiers & Profiles
→ Identifiers
→ Merchant IDs
→ Select your Merchant ID
Find the section:
Payment Processing Certificates
Click:
Create Certificate
Upload the CSR file downloaded from Plexy Dashboard.

Step 4. Download Certificate from Apple#

After Apple processes the CSR, download the issued certificate.
The file usually has the .cer extension.
Example:
apple_pay_payment_processing.cer
This is your Apple Pay Payment Processing Certificate.

Step 5. Upload Certificate to Plexy#

Return to Plexy Dashboard:
Apple Pay
→ Payment Processing Certificate
→ Upload Certificate
Upload the .cer file downloaded from Apple Developer Portal.
Plexy will validate that:
the certificate matches the private key generated by Plexy;
the certificate is a Payment Processing Certificate;
the certificate is valid and not expired;
the certificate belongs to the expected Apple Merchant ID.
Apple Pay is ready when Plexy Dashboard shows the certificate as active.

What to Upload#

FileUpload to Apple?Upload to Plexy?
.csr from PlexyYesNo
.cer from AppleNoYes
Private keyNoNo
.p12 / .pfxNoNo
Merchant Identity CertificateNoNo
WARNING
For this setup, upload only the Apple-issued .cer Payment Processing Certificate to Plexy.

What Not to Upload#

Do not upload these files to Plexy for this setup:
Apple Merchant Identity Certificate
Apple Development Certificate
Apple Distribution Certificate
APNs Certificate
TLS / SSL Certificate
Private key
.p12 / .pfx file

iOS App Configuration#

Your iOS app must use the same Merchant ID that was used to create the Payment Processing Certificate.
Example:
Also make sure Apple Pay capability is enabled in Xcode and includes the correct Merchant ID.

FAQ#

Can we upload a .p12 file instead of .cer?#

No.
Upload only the .cer file issued by Apple after submitting the Plexy-generated CSR.

What happens if the Merchant ID in the app is different?#

Plexy may not be able to decrypt or process the Apple Pay token.
Use the same Merchant ID in:
Apple Developer Portal
iOS app
Plexy Dashboard

Common Errors#

ErrorCauseHow to fix
Plexy cannot validate certificateWrong certificate uploadedUpload the Payment Processing Certificate issued from the Plexy CSR
Plexy cannot decrypt tokenCSR was not generated by PlexyGenerate a new CSR in Plexy and create a new certificate in Apple
Apple Pay token rejectedToken was modifiedSend the original token without changes
Merchant ID mismatchApp uses another Merchant IDUse the same Merchant ID everywhere
Wrong certificate typeMerchant Identity Certificate uploadedUpload Payment Processing Certificate
Modified at 2026-06-18 12:42:50
Previous
Apple Pay Web SDK Integration
Next
Google Pay Integration
Built with