StoreKit purchase cancelled after app backgrounding during bank authentication (3D Secure)

Hello,

We are experiencing an issue with StoreKit purchases on iOS.

Some users are required by their bank to complete an additional authentication step (3D Secure / banking app validation) during an in-app purchase subscription flow.

The purchase starts correctly and StoreKit displays the purchase sheet. When the user temporarily leaves the app to validate the payment in their banking application and then returns, StoreKit eventually reports the purchase as cancelled.

No transaction is delivered to StoreKit observers, no entitlement becomes active, and restoring purchases does not find any completed transaction.

Steps to reproduce:

  1. Open the app.

  2. Start an auto-renewable subscription purchase using StoreKit.

  3. Authenticate with Apple ID if requested.

  4. When the bank authentication screen appears, leave the app and open the banking application.

  5. Approve the payment in the banking application.

  6. Return to the original app.

Observed result:

StoreKit reports the purchase as cancelled and no transaction is received.

Expected result:

The transaction should continue processing after bank authentication and eventually complete successfully.

Environment:

  • Xcode 26.3 (17C529)

  • macOS Tahoe 26.3

  • iOS 26.2.1

  • Physical iPhone device

Question:

Is this expected StoreKit behavior when a user leaves the app for external banking authentication, or is there a recommended StoreKit integration pattern that should allow the purchase flow to continue successfully?

Thank you.

No transaction is delivered to StoreKit observers, no entitlement becomes active, and restoring purchases does not find any completed transaction.

Are you implementing StoreKit 1 or StoreKit2?

StoreKit reports the purchase as cancelled and no transaction is received.

That is the expected behavior. See Testing an interrupted purchase.

Approve the payment in the banking application.

Can the user confirm whether they weren't charged?

Hi,

We are using StoreKit 2 through RevenueCat (react-native-purchases 9.15.2).

The user was not charged.

However, we now have additional information from RevenueCat's engineering team.

RevenueCat investigated the transaction and confirmed:

  • the initial purchase never reached RevenueCat,

  • Apple returned a receipt,

  • the receipt did not contain any subscription record,

  • the subscription never appeared under Settings > Apple ID > Subscriptions,

  • therefore no entitlement could be granted.

RevenueCat's conclusion is that Apple appears to be cancelling the subscription before it is created.

Apple Transaction ID:

705593352482713602

Could you help determine why this transaction is cancelled after successful bank authentication and why no subscription record is created?

Thank you.

The user was not charged.

Again that is the expected workflow in your workflow. You can test it by following steps described in Testing an interrupted purchase. No purchase took place and the user must come back to your app and initiate a purchase again.

I understand that an interrupted purchase should not create a transaction until the user completes the flow.

However, in this case the user did complete the bank authentication step and returned to the app.

What is confusing us is that RevenueCat was able to observe an Apple receipt associated with transaction ID 705593352482713602, but the receipt contained no subscription record and no subscription was ever created.

Can you clarify whether Apple generated this transaction ID and receipt as part of a normal interrupted purchase flow, or whether this indicates that the purchase progressed further and was later cancelled by Apple's systems?

We are trying to understand why a transaction ID exists while no subscription record was ever created.

Thank you.

StoreKit purchase cancelled after app backgrounding during bank authentication (3D Secure)
 
 
Q