Skip to main content
Question

User not charged after finishing a 3-day free monthly trial

  • May 5, 2026
  • 1 reply
  • 11 views

Forum|alt.badge.img

Hello,
I have 2 subscription options, a monthly and a yearly.
I'm running an iOS app with auto-renewable subscriptions managed through RevenueCat (SDK 5.67.1, StoreKit 2, default config — Purchases.configure(withAPIKey:) with no builder options). I have two products in the same subscription group: wingman_yearly and wingman_monthly, both with a 3-day free trial. Yearly trial conversions are debiting users normally and showing as posted charges in Apple's Purchase History. Monthly trial conversions are not — the in-app purchase modal returns success, RevenueCat marks the entitlement Active and emits a RENEWAL event with is_trial_conversion: trueperiod_type: NORMALexpiration_at_ms correctly set to +31 days, AUD 19.99 in price_in_purchased_currency, and no expirationIntent / is_in_billing_retry_period / cancellation_reason flags — but Apple's iOS Purchase History (Settings → Media & Purchases → View Account → Purchase History) shows the same transaction as Pending, and no debit has appeared on the user's card. Same pattern across multiple production users (confirmed App Store installs, not TestFlight; subscription visible in Settings → Subscriptions; environment: PRODUCTION in RevenueCat). Users insist they have funds available and no payment issues. The most recent affected user is in country AU paying AUD 19.99, and the RevenueCat RENEWAL event was emitted only hours before the user reported the issue. My current best guess is that this is normal Apple settlement lag (Apple authorises the renewal immediately and notifies RevenueCat, but the bank-side debit can take 24–72 hours — sometimes longer — to post, during which the transaction shows as Pending), and that the yearly-vs-monthly skew I'm seeing is an artefact of observation timing rather than a product-configuration bug. Has anyone else seen monthly trial conversions sit in "Pending" in Purchase History for several days before posting, while RevenueCat already shows the conversion as a clean RENEWAL with no billing-retry / failure flags? How long is normal before I should treat this as a real failure rather than settlement lag?

1 reply

joan-cardona
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • May 6, 2026

Hi ​@wingman-7830c1,

In StoreKit, a transaction enters the .pending state when the purchase has been initiated but hasn’t been fully authorized or completed yet.

This typically happens in cases like:

  • Strong Customer Authentication (SCA), where the user still needs to approve the payment
  • “Ask to Buy”, where a parent/guardian needs to approve
  • Payment methods that require extra time to process

While a transaction is in .pending, it’s not considered complete, and you shouldn’t unlock content yet. The state will eventually transition to .purchased if it succeeds, or fail/cancel otherwise.

From a RevenueCat perspective, a pending transaction doesn’t grant an entitlement until it moves out of that state and is fully verified.

 

Let me know if this aligns with what you see.