Order/paid webhook SourceName property changed for subscription

I maintain an integration with a Shopify storefront that uses the Recharge app to manage subscription products. Historically, when a subscription payment was processed, the Order/Paid webhook included a SourceName value of "subscription_contract".

However, starting on October 1, 2025, I observed that the SourceName value for these subscription orders changed from "subscription_contract" to "subscription_contract_checkout_one". This change was not announced in the Shopify Developer Changelog or webhook documentation, and I have not found any related notes from Recharge either.

Could you please clarify:

  1. Was this change introduced by Shopify as part of a recent platform update?

  2. Is "subscription_contract_checkout_one" now the expected value for subscription orders processed via Shopify Checkout Integration?

  3. Is there any documentation available that outlines this change?

  4. Are there any merchant or app-level settings that could influence the SourceName value?

Understanding this change is important for maintaining compatibility in our webhook processing logic. Any insight or guidance would be greatly appreciated.

1 Like

Seeing this as well. I’d really like a Shopify rep to confirm this. I’m chatting with a rep to confirm. I’ll update here with an answer.

Has anyone gotten an update/answer regarding this? This just happened to our Shopify instance yesterday.

Thanks

We’re seeing the same issue (started on Tues 21st Oct) - I can’t see a changelog for this either.

Hey all, thanks for calling this out. I have let our team know about how the change in the value has affected you.

For context, the sourceName field is defined as a String type, not an enum, which means its values aren’t strictly documented or versioned. This is why you won’t find these types of changes in the changelog.

To identify subscription orders, I would recommend checking for the sellingPlan field on order line items instead:

{
  order(id: "gid://shopify/Order/123") {
    lineItems(first: 10) {
      edges {
        node {
          sellingPlan {
            id
            name
          }
        }
      }
    }
  }
}
1 Like

Hi Kyle, Thanks for responding. I am curious though what value there is in the sourceName field at all then if its value is not documented and subject to change with no notification or documentation.

We have used the previous “subscription_contract” value for years. While we certainly could modify our code to look at the selling plan, it would have been nice to know we might need to before the previous mechanism was changed.

That said, what is the intent of the souceName field, and can you explain why it was changed?

Hey @Alan_Fors, the sourceName field indicates the channel or mechanism through which an order was created to help understand the origin context (online store, draft order, POS, subscription, API integration, etc.).

The reason for the change is related to recent improvements in how subscriptions work with checkout and processing.

I completely understand the frustration of a long standing constant change without notice and I’ve passed this feedback along to the team about improving communication around these types of changes, even for non-versioned fields.