Using Subscription API with External Payment Systems (Stripe, IAP) - Seeking Guidance

Hello everyone,

I’m a beginner with HubSpot and trying to set it up to receive data from my website. I’ve successfully created a private app and used its access token to create CRM contacts, so I can track new sign-ups.

Now, my goal is to track subscriptions and payments. The documentation suggests using HubSpot’s native payment system, which is not what I want. My intention is to send data to HubSpot about payments while keeping my own payment systems (Stripe and Apple IAP). I do not want to use HubSpot’s native payment links or connect my Stripe account directly to HubSpot. I only want to create and update subscriptions using the Subscription API.

I’ve been experimenting and found that I can use the API to create, update, and delete subscriptions, even though the documentation for the API says, “This is a read-only API, so it cannot be used for creating new or managing existing subscriptions.” This has left me with a few questions:

  1. Can I continue to use these endpoints to create, edit, and delete subscriptions, or will they be removed soon to only allow GET requests?
  2. Is it okay to use a legacy private app for this? Will it become obsolete and unsupported in the future, or is there a non-legacy way to achieve this functionality (have the access token to can make request from server to hubspot)?
  3. Is it possible to use the Subscription API without configuring HubSpot’s native payment links or connecting a Stripe account?

Any guidance from the community would be greatly appreciated. Thanks!

Hi @LEddy22,
Thank you for posting to the Community and sharing your specific use-case!
I’d like to tag in some of our awesome Community Champions to see if they have any insight.
Hi @ChristinaKay @ChrisoKlepke @HubSpot_Corey I hope you all are having a wonderful day so far. Do any of you all have any ideas on @LEddy22’s questions regarding Subscriptions API :slightly_smiling_face:
Thank you!
Cassie, Community Manager

Hi @LEddy22 , makes sense you want to keep Stripe/IAP as source of truth and still see subscriptions in HubSpot.

A couple of key clarifications from the current docs: the Subscriptions API you found is officially read-only; HubSpot positions it to fetch commerce subscriptions that are already managed by Commerce Hub.

Creating, editing, or deleting via that API isn’t supported and could be shut off at any time, so I wouldn’t build on those verbs even if they “work” today (Accounts Dashboard | HubSpot )

Also, to even read those subscriptions, the account is expected to be configured for HubSpot Payments or Stripe payment processing on the Commerce side, which is why the docs say you must have one of those processors connected (Accounts Dashboard | HubSpot )

On auth, you’re fine using a private app access token from your server; “legacy” private apps are still supported and actively maintained, and all REST APIs can be called with either a private app token or a public app OAuth token. There’s no new deprecation to worry about here, API keys were sunset long ago, private apps are the path (Developer platform - HubSpot docs )

Given your constraint not to connect Stripe to Commerce Hub, the durable pattern in 2025 is to mirror subscriptions as CRM records you own: a custom object “Subscription” (or Deals with recurring fields), updated from your Stripe/IAP webhooks, then report on MRR/ARR from those CRM properties. Does your goal lean more to accurate ARR/MRR reporting inside HubSpot, or simply storing payment status/timestamps for context? That answer changes which properties and associations I’d set up between Contact/Company/Subscription.

Hope this helps.