> For the complete documentation index, see [llms.txt](https://docs.iheartjane.com/partner-success/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iheartjane.com/partner-success/ecommerce-premium/apple-sso-for-premium.md).

# Apple SSO for Premium

### **Setting up Sign in with Apple for your Jane Premium menu**

Sign in with Apple lets your shoppers create accounts and log in on your menu using their Apple ID. Like Google sign-in, it runs under **your own brand**: shoppers see your company’s name on Apple’s consent screen, not Jane’s. To make that work, you create the Apple-side configuration in your own Apple Developer account and give Jane one identifier when you’re done.

**What you’ll send Jane at the end: a single string — your Services ID (e.g. `com.yourdispensary.menu`).** No keys, certificates, or secrets are ever shared with Jane.

### **Before you start**

* **An Apple Developer Program membership** ($99/year). If you don’t have one, enroll at \[[developer.apple.com/programs/enroll](https://developer.apple.com/programs/enroll/)]\(<https://developer.apple.com/programs/enroll/>) — enroll **as an organization**, which requires a D-U-N-S number and can take a few days to verify, so build in lead time.
* **Admin or Account Holder access** to the account’s \[[Certificates, Identifiers & Profiles](https://developer.apple.com/account/resources/identifiers/list)]\(<https://developer.apple.com/account/resources/identifiers/list>).
* **Your menu URL** — the address your Jane menu lives at, e.g. `https://www.yourdispensary.com/menu`. Your Jane contact can confirm the exact value; the return URL below must be built from it character-for-character.

### **Step 1 — Create an App ID (one-time)**

Apple requires every web sign-in configuration to hang off a “primary” App ID. You don’t need an actual iOS app — just the identifier.

1. In **Certificates, Identifiers & Profiles → Identifiers**, click **+**.

<figure><img src="/files/PTt8PAynaGYj418I29DN" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/QE5vRLUMWwGcj7c7AYOy" alt="" width="563"><figcaption></figcaption></figure>

2. Choose **App IDs → Continue → App → Continue**.
3. Description: something like `YourDispensary Sign in with Apple`. Bundle ID (explicit): reverse-domain style, e.g. `com.yourdispensary.app`.&#x20;

{% hint style="info" %}
Use your own reverse domain dispensary URL under Bundle ID not Jane's below&#x20;
{% endhint %}

<figure><img src="/files/zOqCKHEusiBWumd03vCn" alt="" width="563"><figcaption></figcaption></figure>

4. In the Capabilities list, check **Sign in with Apple** (leave it as “Enable as a primary App ID”).

<figure><img src="/files/TvUuwMx9X18llm6OpMJj" alt="" width="563"><figcaption></figcaption></figure>

5. **Continue** **→ Register**.

### **Step 2 — Create a Services ID (this becomes your client ID)**

1. Back in **Identifiers**, click **+** again and choose **Services IDs**.

<figure><img src="/files/E3P2FlTObfd59ISXqA4r" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/7l7vHx1LmYC6oXxdgQxS" alt="" width="563"><figcaption></figcaption></figure>

2. Description: this is **what shoppers see on Apple’s sign-in screen** — use your customer-facing brand name, e.g. `YourDispensary`.
3. Identifier: reverse-domain style, e.g. `com.yourdispensary.menu`. **This exact string is what you’ll send to Jane.**

<figure><img src="/files/r6NffiX6RgEz4s9aBf36" alt=""><figcaption></figcaption></figure>

4. **Continue** **→ Register**, then click the new Services ID to configure it.

### **Step 3 — Enable Sign in with Apple on the Services ID**

1. Check **Sign in with Apple**, then click **Configure**.
2. **Primary App ID**: select the App ID from Step 1.

<figure><img src="/files/GZCBrmasmrLhQ6A92DCN" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/GzM4lbbXQH2hr0sszohy" alt="" width="563"><figcaption></figcaption></figure>

3. Under **Website URLs**:

* **Domains and Subdomains**: the domain your menu is served from, e.g. `www.yourdispensary.com`. (No verification file upload is required.)

{% hint style="info" %}
Make sure to add domain URLS for **both** www and without [www](http://www). You will also want to make sure to add any subdomains you have!&#x20;
{% endhint %}

* **Return URLs**: your menu URL plus the fixed path `/api/auth/id-tokens/apple`. For the example above:Apple enforces an **exact match** on this URL — same scheme, host, and path, no trailing slash added or removed. It must be `https` and cannot be an IP address or localhost.

  ```
  <https://www.yourdispensary.com/menu/api/auth/id-tokens/apple>
  ```

<figure><img src="/files/ePUiCVoza54ENyQvXrfu" alt="" width="563"><figcaption></figcaption></figure>

4. **Next** **→ Done** → **Continue** → **Save**.

### **Step 4 — Send Jane your Services ID**

Send your Jane contact the Services ID identifier from Step 2 (e.g. `com.yourdispensary.menu`). Jane sets it on your menu configuration — no deploy needed on your side.

### **Step 5 — Verify**

Once Jane confirms it’s configured:

1. Open your menu and open the sign-in modal — a **Sign in with Apple** button appears alongside your other sign-in options.
2. Click it: an Apple popup opens showing your brand name from Step 2. Sign in with any Apple ID.
3. You land back on the menu, signed in. First-time users get a new account; shoppers who already have an account under the same email are linked automatically.

If the popup shows a 403 or “invalid request” error instead of the sign-in screen, the Services ID or Return URL doesn’t match — re-check Step 3 (the exact-match rule is the most common culprit; changes can take a few minutes to propagate on Apple’s side).

### **Good to know**

* **“Hide My Email”**: Apple lets shoppers sign up with a private relay address (`…@privaterelay.appleid.com`). Sign-in and ordering work normally, but emails (like order confirmations) only reach relay addresses if the sending domains are registered as **email sources** under *your* Apple Developer account (Certificates, Identifiers & Profiles → Services → Sign in with Apple for Email Communication). Jane will provide the list of sending domains to register.
* **Renewals**: keep the Apple Developer membership active — if it lapses, Apple sign-in stops working for your shoppers.
* **Multiple domains**: if your menu is reachable at more than one domain, each domain and its corresponding return URL must be added in Step 3 (organizations can register up to 100 website URLs per Services ID).
