Skip to main content
Question

Non-Consumable Lifetime refund entitlements still active

  • 29 August 2024
  • 1 reply
  • 16 views

Hi!

I’ve been trying to add RevenueCat to my App, I’ve managed to successfully setup subscriptions, and test them using the StoreKit Configuration file. Works like a charm.

I’m now working on adding a Lifetime non-consumable in app purchase. Purchasing works well. But I can’t make the refund works.

Here is my flow:
- Start the app
- Buy the Lifetime IAP
- Wait a bit
- Issue a refund via the Xcode StoreKit test panel.

The refund seems to be process correctly, I see this in the dashboard for the user:


Unfortunately the Entitlements for the user is still active.

<EntitlementInfo: "
identifier=Pro,
isActive=true,
willRenew=false,
periodType=PeriodType(rawValue: 0),
latestPurchaseDate=Optional(2024-08-29 12:36:23 +0000),
originalPurchaseDate=Optional(2024-08-29 12:36:23 +0000),
expirationDate=nil,
store=Store(rawValue: 0),
productIdentifier=#####.#######,
productPlanIdentifier=null,
isSandbox=true,
unsubscribeDetectedAt=nil,
billingIssueDetectedAt=nil,
ownershipType=PurchaseOwnershipType(rawValue: 0),
verification=VerificationResult.notRequested
>

This data is refreshed each time the app comes in foreground. (become active).

And I don’t know what to do to make it change, having user being refunded but still being able to use the App is you can guess it an issue.

Is there any other way to get the information that the user refunded the purchase?
 

Also, after the refund the Dashboard still shows this:

Which seems inaccurate since it was refunded, or I’m missing something?

1 reply

Userlevel 2
Badge +5

Hi @Basile,

This is expected in sandbox environment but it’ll work in production. 

The reason is that while you can cancel and refund subscriptions through Xcode's Manage Transactions... window, these types of events are not stored in the receipt and will not appear on the RevenueCat dashboard.

However, the RevenueCat SDK is still able to detect there are no active subscriptions and the appropriate entitlements will be removed when the app is restarted again.

 

For the best performance in production, It's recommended to set up Platform Server Notifications.

Let me know if this works!

Reply