Shopify Billing: How to Determine if a Subscription Has Been Charged?

Hello everyone,

I built a Shopify app using Shopify Billing and encountered an issue at this step.

I offer customers a 3-day free trial. If they remove the app during the trial period, their subscription will be canceled and downgrade their account to a free plan on my platform. However, after the 3-day trial, if they are successfully charged for the app but later uninstall it, the subscription status in the AppSubscription GraphQL query shows as “canceled.” This leads to their account being downgraded, even though they have already paid.

How can I determine whether a customer has been charged or not?

To summarize:

  • If the customer has already been charged, their account should not be downgraded.

So, I need to find a way to know if the subscription_id has been charged or not, and it seems like the GraphQL appInstallation - GraphQL AdminallSubscriptions is not helping because there is no way to determine whether the subscription has been charged since the status always become CANCELLED when customer uninstall the app even they paid for it already.

I also found this RecurringApplicationCharge - RESTactivated_on response. Can I use activated_on as a charged flag or not?

Any idea?

I think you need to subscribe app_subscriptions/update webhook.

Thank you for your response, but yeah the app_subscriptions/update webhook is not helpful. When the customer uninstalls the app, the webhook does not fire anything on the topic app_subscriptions/update.