Skip to content

[iOS] Support in-app activation for requiresActivation (Yellow Path) #45

Closed

Description

@wcastand

Hi, i was just wondering if the status requireActivation can be dealt with by just showing the AddButton and handling it as i always do or i need a specific function?

in the custom package i had for apple pay, we had a specific function to call or that use case.

      Function("requireActivation") { (lastDigits: String) -> String? in
          for pass in PKPassLibrary().passes(of: .secureElement) {
              if pass.secureElementPass?.primaryAccountNumberSuffix == lastDigits && pass.secureElementPass?.passActivationState == .requiresActivation {
                  return pass.secureElementPass?.passURL?.absoluteString ?? nil
              }
          }
          return nil
      }

it was giving the link to remove the pass in wallet app to start over from our app.
We disabled the possibility to activate by other means than from the app mostly to prevent scammer. So we need to handle the case where people start from the wallet app either by making them remove the pass and go through the app or a way to finish the onboarding process.

Activity

  1. wcastand commented on Oct 3, 2025

    @wcastand
    ContributorAuthor

    i think to support this we would need to implement
    https://developer.apple.com/documentation/passkit/pkpasslibrary/activate(_:activationdata:completion:)
    on the ios side, which is the equivalent of the yellow path for google pay

    i'd like to handle the In-App Verification steps basically
    https://applepaydemo.apple.com/in-app-provisioning

  2. wcastand commented on Oct 30, 2025

    @wcastand
    ContributorAuthor

    do we agree the library doesn't provide activate function right now?

  3. Skalakid commented on Jan 22, 2026

    @Skalakid
    Contributor

    Hi @wcastand, thanks for the detailed investigation and for linking the relevant Apple documentation. You are correct, the library does not currently expose the activate function or handle the requiresActivation state for In-App Verification (the "Yellow Path"). We don't support this specific flow at the moment but I appreciate you bringing it up. I will keep this issue open as a feature request and we will look into adding support for this in a future release.

  4. wcastand commented on Jan 22, 2026

    @wcastand
    ContributorAuthor

    Curious how do you handle people that start adding the card from the wallet app then?

  5. Skalakid commented on Jan 22, 2026

    @Skalakid
    Contributor

    If a user starts in the Wallet app and clicks 'Open App' to verify, they are deep-linked into our app. To handle this, our app needs to capture that link and call the activation method to finalize the process. Currently, we have this activation logic working for Android, but the iOS binding is missing. I will create the PR with the iOS implementation soon

  6. wcastand commented on Jan 22, 2026

    @wcastand
    ContributorAuthor

    Amazing thanks for the explanation, when i tried i couldn't get it even on android, i felt like i was missing data from our backend provider for the cards but couldn't make it work so far. maybe i'll take a look again once we get ios handling 🙏

    thanks for taking the time in any case

  7. changed the title [-]how to handle the status requireActivation[/-] [+][iOS] Support in-app activation for requiresActivation (Yellow Path)[/+] on Sep 29, 2026
  8. Brunonascdev commented on Oct 27, 2026

    @Brunonascdev
    Contributor

    #134 covers the original part of this issue: open the iPhone pass that is in requiresActivation, looked up by the last digits. presentAppleWalletPass(lastDigits) does that with PKPassLibrary.present and returns false when that pass is not installed.

    It does not activate the pass. The PKPassLibrary.activate flow discussed later is #96, so this issue should stay open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions