Apple Pay Compliance (Design & Intermediary Rules)

  • The Issue: Apple rejected the standard Shopify web checkout in our Reactive Native App solution where we embed the Shopify Responsive site for two reasons:

    1. Intermediary Labeling: The payment sheet does not identify us as the intermediary (e.g., “Pay [Merchant] via [Our App]”), which is required for platform apps.

    2. Button Design: The web-rendered Apple Pay button does not match the pixel-perfect Apple requirements, and Apple strictly forbids attempting to “mimic” system button designs.

  • The Question: Is it actually possible to style the Web Apple Pay button and the Payment Sheet text to meet these strict Human Interface Guidelines (HIG)?

Morning Jason,

I would like to start by collecting some more information to understand the situation.

Can you confirm how you are rendering the Shopify Checkout, are you using one of our Checkout Kit libraries or using a Webview directly?

We currently support the following Checkout Kit libraries for rendering Checkout in native applications:

If you are finding rejections when using any of these libraries I suggest opening an issue in the appropriate repository so we can triage and track the issue there.

Regarding your questions:

  1. I am interested in the type of app you are launching for Apple to consider you a “Platform” app? Are you hosting products from multiple sellers? We don’t have any support in styling for this type of host app experience at present so I’m curious as to whether this is the case. If it is not then I feel like the reviewer is picking up on a non-issue.
  2. In our Checkout Web experience the buttons are provided via the Apple Pay JS SDK. This may be a mistake on the reviewer, but that is a support flow and isn’t ‘mimicking’ the system buttons. As far as I’m aware we haven’t had any other reports of similar rejections, I would suggest explaining that back to them.

To look into this further I think it would be helpful to see some screenshots of the checkout you are experiencing and possibly share the app if its public yet so we can look for anomalies and see exactly what the reviewers have seen.

I don’t know of any similar rejection reports from users recently so I suspect this is a one off at the moment and your best course is to explain as such to the Apple reviewers

Hi Kieran,

I am a developer working with Jason on this application, so I am jumping in to provide the technical details and the specific feedback we received from Apple.

To answer your initial questions:

  1. Tech Stack: We are not using the Shopify Checkout Kit libraries. We are using a standard React Native WebView to render the responsive Shopify website directly. We have a React Native layer for custom navigation, but we embed the Shopify site for the entire e-commerce flow.

  2. App Type: We are not a marketplace or platform app. We are a single-merchant brand selling our own products. We are not hosting multiple sellers.

Since the app was rejected, it is not public, so we cannot share a link. Below are the specific rejection points:

1. Intermediary Labeling

Since we are just wrapping the standard web checkout for a single merchant, we are unsure why they view us as an intermediary rather than the merchant. They are demanding specific labeling on the Payment Sheet.

Guideline 4.9 - Design - Apple Pay

The app acts as an intermediary between users and a third-party business, but the name of the business receiving the payment is not specified on the payment sheet. The Apple Pay payment sheet should list the app as an intermediary and the business receiving the payment. For example: “PAY END_MERCHANT_NAME (VIA YOUR_APP_NAME).”

2. Button Design

You mentioned that the buttons are provided via the Apple Pay JS SDK and that this shouldn’t be considered “mimicking.” However, the reviewer explicitly flagged the button design as unapproved.

Guideline 4.9 - Design - Apple Pay

You use the Apple Pay mark as a button, rather than one of the approved Apple Pay button designs.

3. Temporary Authorization

We are unclear on this point. We are using the standard Shopify web checkout flow and are not intentionally setting up “temporary authorizations” for future purchases. It seems they are interpreting the standard checkout session as a blanket authorization.

Guideline 4.9 - Design - Apple Pay

The app allows the user to temporarily authorize future Apple Pay purchases to be made in the app. It is not appropriate to use temporary authorization for a product or service as a blanket authorization for all future purchases.

Next Steps To resolve this issue, please revise the app to ensure that the user authorizes each Apple Pay transaction.

Thanks for looking into this and helping us get this resolved.

Best,

Patrik