RevOps HQ
← BACK TO BLOG
••
HubSpot•Implementation

HubSpot Stripe Integration: Payment Processing, Data Sync, Subscription Migration and Design Decisions

HubSpot Stripe integration explained: payment processing versus the data sync app, what syncs in which direction, migration limits and billing decisions.

P

Paul Maxwell, PhD

AUTHOR

GET WEEKLY REVOPS INSIGHTS

No spam. Unsubscribe anytime.

Three different mechanisms are sold and searched for as a HubSpot Stripe integration, and each fails in its own documented way. Connecting a Stripe account to HubSpot as a payment processor brings none of the account's existing subscriptions into the CRM, because a processor connection imports nothing. Installing the Stripe data sync app puts subscriptions on a custom object, which exists only on Enterprise, and leaves HubSpot's subscription reports empty. Migrating subscriptions into HubSpot leaves every subscription with a metered line item in Stripe, so one customer can receive invoices from two systems in the same month.

This article sets out what each mechanism writes and what follows for billing and reporting. It starts with the three mechanisms and the data sync's object map, traces which recurring revenue report can see which subscription, and works a sample Stripe account through HubSpot's migration rules. Native limits, billing decisions and costs follow, then a setup procedure ending in verification, symptoms and the limits of the evidence.

Four terms carry the argument. HubSpot payments is HubSpot's own processing option for businesses in the United States, the United Kingdom and Canada (payments FAQ), and Stripe provides its underlying infrastructure (Use Stripe with HubSpot). Stripe payment processing connects a business's existing Stripe account so that HubSpot invoices, payment links, quotes and subscriptions collect money through it. The Stripe data sync app copies records from a Stripe account into HubSpot and sets up no payment processing. Subscription migration moves active Stripe subscriptions onto HubSpot's own subscription records, after which HubSpot bills them. What separates them is which system bills each subscription, since that system holds the record every report depends on.

Three Stripe and HubSpot Integration Mechanisms and the Records Each Writes

Stripe payment processing writes HubSpot records and sends the money through Stripe, and payment data for each transaction, such as gross amount and fees, syncs to the Stripe account (connect Stripe). In the other direction, invoices and subscriptions created in HubSpot are not created in Stripe, and existing Stripe customers, subscriptions and webhooks remain unchanged.

Migration moves billing itself: HubSpot creates a subscription record, invoice records and any missing contacts for each eligible Stripe subscription, then pauses the original in Stripe rather than deleting it (migrate Stripe subscriptions). The mechanisms combine: HubSpot's setup page lets a business passing Stripe payment data to its accounting system keep the Stripe app beside Stripe payment processing. The table sets the three side by side, and the column that decides reporting is the one naming the system that bills afterwards.

The three native Stripe mechanisms, what each writes in each system and which system bills afterwards, as documented in September 2026
MechanismStripe payment processingWrites in HubSpotInvoices, payments and subscriptions created in HubSpotWrites in StripePayment data per transaction, such as gross amount and fees; no invoices or subscriptionsBills afterwardsHubSpot, collecting through StripeBinding limitOne Stripe account per HubSpot account; 0.75 percent platform fee
MechanismStripe data sync appWrites in HubSpotContacts, products and invoices; subscriptions and payment transactions on custom objectsWrites in StripeCustomers, when the customer sync runs both waysBills afterwardsStripeBinding limitSubscriptions and payment transactions need Enterprise
MechanismSubscription migrationWrites in HubSpotA subscription, its invoices and any missing contact for each migrated subscriptionWrites in StripePauses each migrated subscription; its invoices are voided on the payment dateBills afterwardsHubSpotBinding limitActive flat-rate subscriptions from one Stripe account

Stripe Data Sync: Objects, Sync Direction and Destination Records

In the sync's object map, the destination column decides which HubSpot tools can use each record.

What the Stripe data sync app carries, in which direction, and the HubSpot record that receives it, as documented in September 2026
Stripe sourceCustomersDirectionBoth waysHubSpot destinationContacts, matched on email address
Stripe sourceProductsDirectionStripe to HubSpotHubSpot destinationProducts
Stripe sourceInvoicesDirectionStripe to HubSpotHubSpot destinationInvoices, associated automatically to contacts only
Stripe sourceSubscriptionsDirectionStripe to HubSpotHubSpot destinationA custom object, available only on Enterprise
Stripe sourcePayment transactionsDirectionStripe to HubSpotHubSpot destinationA custom object, available only on Enterprise
Stripe sourceStripe dataDirectionStripe to HubSpotHubSpot destinationData Studio
What the Stripe data sync app carries into HubSpot, and where each record landsSix rows, each a Stripe source on the left and its HubSpot destination on the right. Customers sync both ways with HubSpot contacts, matched on email address. Products sync one way to HubSpot products. Invoices sync one way to HubSpot invoices and are associated automatically to contacts only. These three land on HubSpot's own objects. Subscriptions and payment transactions each sync one way to a custom object, not to HubSpot's own subscription or payment object, and custom objects are available only on Enterprise. Stripe data syncs one way to Data Studio. The sync sets up no payment processing.STRIPE DATA SYNC: SOURCE, DIRECTION AND DESTINATIONStripe accountHubSpotCustomersboth waysContactsmatched on email addressProductsone wayProductsproduct libraryInvoicesone wayInvoicesauto-associated to contacts onlySubscriptionsone wayCustom objectnot HubSpot's subscription objectPayment transactionsone wayCustom objectnot HubSpot's payment objectStripe dataone wayData Studiodataset for analysisHubSpot's ownobjectsCustom objects:Enterprise onlyThe sync moves records only. Payment processing needs Stripe or HubSpot payments connected as a processor.
The Stripe data sync app carries six Stripe sources into HubSpot, writes back only to customers, and puts subscriptions and payment transactions on custom objects

The mapping is HubSpot's (Stripe overview), and the Enterprise requirement follows because custom objects are an Enterprise feature on every hub (custom objects). A portal below Enterprise can sync customers, products and invoices, and has no documented destination for a Stripe subscription.

Data sync's documented rules decide how clean the result is (data sync). Contacts match on email by default; the first record the other app returns for an identifier syncs and the next counts as a duplicate; and a customer without a valid email is skipped unless the Only sync contacts with an email address checkbox is cleared. Stripe makes email optional on a customer (Stripe customers API), so an account billing several customers to one accounts-payable mailbox arrives in HubSpot as fewer contacts than it has customers. HubSpot states that data sync can, in most cases, associate invoices automatically only to contacts, and that company associations are made by hand (data sync). Custom field mappings need a paid Data Hub subscription, and after the initial sync records sync within 10 minutes of a change. Under the same general rules, a two-way sync also writes existing HubSpot records to the other app unless a filter limits them. An unfiltered two-way customer sync therefore offers every HubSpot contact with a valid email to Stripe, and a filter added later does not stop records already synced, because filters limit only which records sync initially.

Subscription and Invoice Records in HubSpot Reporting

The object map produces the finding this article rests on: a Stripe subscription reaches HubSpot's subscription reporting only when HubSpot bills it. The share of an existing Stripe account's recurring revenue those reports can show is therefore capped by the migration rules, not by any sync setting, unless subscriptions are recreated in HubSpot by hand; on the sample account below the cap is 69.0 percent. The revenue analytics suite, on Professional and Enterprise, holds ready-made reports on invoices, subscriptions, payments and contracts, including new and churned subscription values as MRR and ARR. Those reports are built on HubSpot's own subscription and payment records, and HubSpot's custom object guidance warns that pre-built reports are connected to particular objects; a synced Stripe subscription is a custom object record. The MRR waterfall and booked MRR reports read contracts, which need Revenue Hub outside a beta (report on revenue).

A subscription reaches HubSpot's subscription reports only when HubSpot bills itThree columns: who bills the subscription, the record it lives on, and the report that reads that record. A subscription created in HubSpot and a Stripe subscription migrated to HubSpot are both billed by HubSpot and both live on a HubSpot subscription record, which the revenue analytics suite's subscription reports read. A subscription kept in Stripe is billed by Stripe, lives on a Stripe subscription, and is read by Stripe Billing analytics. The Stripe data sync copies it to a custom object in HubSpot, on Enterprise only, which supports custom reports only. No connector joins a Stripe-billed subscription to HubSpot's subscription reports, and none joins a HubSpot-billed subscription to Stripe Billing analytics.THE BILLING SYSTEM DECIDES WHICH MRR REPORT SEES A SUBSCRIPTIONWHO BILLS ITRECORD IT LIVES ONREPORT THAT READS ITCreated in HubSpotbilled by HubSpotMigrated from Stripebilled by HubSpot, paused in StripeKept in Stripebilled by StripeHubSpot subscriptionrecordRevenue analytics suite:subscription reportsProfessional and EnterpriseStripe subscriptionStripe BillingStripe Billing analyticsMRR per subscriberStripe data sync, one wayCustom object copyEnterprise onlyCustom reports onlybuilt on the custom objectNo native path joins a Stripe-billed subscription to HubSpot's subscription reports, or the reverse.
A subscription reaches HubSpot's subscription reports only when HubSpot bills it; a Stripe-billed one reaches Stripe's analytics, and its synced copy supports only custom reports

The blind spot runs both ways. Stripe Billing's analytics report MRR per subscriber from the subscriptions Stripe bills (Stripe billing analytics), and a subscription created in HubSpot never exists in Stripe, so a business billing from both has no single native MRR figure. A report on the custom object, built in the custom report builder, is the reporting route for a portal that keeps Stripe as its biller. Invoices behave differently: the data sync writes Stripe invoices to HubSpot's own invoice object, the object the suite's invoice reports read, and the pages read here do not say whether those reports include synced invoices or only the invoices HubSpot issued.

Stripe Subscription Migration: Eligibility Rules on a Sample Account

HubSpot migrates active flat-rate subscriptions from one Stripe account per HubSpot account (migrate Stripe subscriptions). It excludes subscriptions with line-item taxes, metered or usage-based billing, complex discounting, discounts on recurring line items, automatic tax, a trial, no completed first billing date, or creation by a third-party application. Its disqualification codes add further conditions, among them a missing or invalid customer email, an unsupported payment method or billing frequency, and more than one currency. It defers any subscription billing within 72 hours, and more than 1,000 subscriptions need a migration request form. The review screen sorts subscriptions into Eligible, Eligible if modified and Ineligible tabs, and choosing All eligible strips the Stripe tax rates and discounts from the modified group.

Nothing is deleted in Stripe: migrated subscriptions are paused, and Stripe keeps creating invoices for them that are voided on the payment date. In Stripe's terms, a subscription with collection paused remains active and keeps generating invoices (pause payment collection), and resuming it in Stripe is HubSpot's documented route back.

The figures below are sample data, built so the arithmetic can be checked and describing no client: an account with 420 active Stripe subscriptions and $126,000 of monthly recurring revenue, stated net of discounts.

Sample Stripe account (sample data): subscription segments and the tab each lands in on HubSpot's migration review
SegmentFlat rate, no tax rate or discountSubscriptions and MRR250, $62,500Migration review resultEligible
SegmentFlat rate with a Stripe tax rate or couponSubscriptions and MRR60, $18,000Migration review resultEligible if modified; tax rate or discount removed
SegmentFlat rate, next billing within 72 hoursSubscriptions and MRR15, $6,500Migration review resultIneligible until the window passes
SegmentAny metered line itemSubscriptions and MRR70, $39,000Migration review resultIneligible for as long as the item remains
SegmentIn a free trialSubscriptions and MRR25, $0Migration review resultIneligible until the first successful payment

Choosing Eligible only moves 250 subscriptions and $62,500, which is 49.6 percent of MRR, and a second pass after 72 hours adds the 15 deferred ones for 265 subscriptions and $69,000, or 54.8 percent. Choosing All eligible adds the 60 modified subscriptions, for 325 subscriptions and $87,000, or 69.0 percent. The remaining $39,000, 31.0 percent of MRR, stays billed by Stripe.

The modified group arrives without the tax rates and discounts Stripe applied, and HubSpot's resolution for a coupon is to re-add the discount after migration (disqualification codes). Until that is done, a subscription that lost a coupon bills at its undiscounted price, one that lost a tax rate bills without tax, and HubSpot's MRR for the group exceeds $18,000 by the value of the removed coupons. Tax is re-added from the tax rate library or through automated sales tax, and automated sales tax needs a Revenue Hub Professional or Enterprise account and at least one Revenue Hub seat (create subscriptions). In the metered segment, if 18 of the 70 customers also hold a migrated flat-rate subscription, each of the 18 receives a HubSpot invoice and a Stripe invoice every month.

Limits of the Native Stripe Integration: Usage-Based Billing and Multiple Stripe Accounts

Usage-based pricing is the first limit: Stripe Billing supports it through basic usage-based billing and through Metronome, which is now part of Stripe (Stripe usage-based billing). HubSpot's subscription documentation describes line items with a billing frequency, quantity, discounts and taxes. Its product library adds tiered pricing, in volume-based, graduated and stair-step forms, which needs a Revenue Hub subscription and seat and charges different rates for different quantities (create and manage products). A tier prices the quantity entered on a line item, and none of the pages read here describes reporting metered usage into a HubSpot subscription each period. Usage-priced subscriptions therefore stay in Stripe, and on Enterprise the data sync can copy them to a custom object.

Multiple Stripe accounts are the second limit, because Stripe requires separate accounts for businesses that operate independently, and each account carries one business's tax ID and legal entity (Stripe multiple accounts). HubSpot connects one Stripe account per HubSpot account for payment processing, requires every brand in HubSpot Brands to use it, and migrates from one Stripe account only. A group with two legal entities in one portal can therefore process through HubSpot for one of them. HubSpot's general data sync documentation says a second account of the same app can be connected to one HubSpot account, with Microsoft Dynamics as its example, and does not say whether the Stripe data sync app is among the apps that allow it (data sync).

Three narrower limits apply to processing, all on HubSpot's Stripe connection page. Stripe payment processing cannot be connected to sandbox, developer test or partner demo accounts. It is unavailable in thirteen countries, among them Brazil, India, South Africa and the United Arab Emirates. Connecting a different Stripe account, or switching from HubSpot payments, cancels every subscription managed in HubSpot, and each has to be recreated.

Billing Decisions and Costs for a Stripe and HubSpot Integration

The first decision is which system bills each segment of subscriptions. HubSpot is the stronger biller where pricing is flat, one legal entity sells, and sales and customer success work from deals, contacts and workflows. Stripe is the stronger biller on two specific axes: usage-based pricing, for which HubSpot documents tiers on a set quantity but no metered billing, and multiple legal entities, which Stripe separates by account while HubSpot connects one. The firm writing this is a HubSpot Solutions Partner that also builds custom commerce integrations, which is an interest in favour of billing in HubSpot and of work beyond the native mechanisms, and the two axes are stated for that reason.

The second decision is the processor, and on the sample account the fee routes differ by less than one percent of the MRR at stake. HubSpot's payments FAQ sets the platform fee for Stripe payment processing at 0.75 percent, plus processing fees agreed with Stripe. HubSpot payments in the United States charges 2.9 percent per card transaction, with a platform fee of 0 percent for the first year for eligible customers and 0.5 percent after it. Stripe Billing, priced per use with no recurring fee, costs 0.7 percent of Billing volume (Stripe Billing pricing).

Take the $87,000 the sample account could migrate, charged as 325 card payments a month on United States cards. Kept in Stripe, the Billing fee is $609.00 and card fees at Stripe's list rate of 2.9 percent plus 30 cents are $2,620.50, for $3,229.50. Billed in HubSpot through the same Stripe account, the platform fee is $652.50 beside the same card fees, for $3,273.00. That figure rests on two assumptions: that the processing fee agreed with Stripe is its list rate, and that Stripe's Billing fee does not apply to subscriptions HubSpot documents as never created in Stripe, which neither vendor states directly. Through HubSpot payments the month costs $2,523.00 in the promotional year and $2,958.00 after it, so the widest gap is $750, under 0.9 percent of the migrated MRR.

The larger costs are not fees. A mixed design costs a monthly reconciliation of two invoice streams and two MRR figures. Migration costs the work of re-adding the modified group's tax rates and coupons in HubSpot, and a second pass for deferred subscriptions. Keeping Stripe as biller costs HubSpot's native subscription reports and, below Enterprise, any subscription record in HubSpot at all. The case for billing in HubSpot is strongest for a single-entity business on flat pricing whose teams live in the CRM, and weakest where usage pricing or several entities put a large share of revenue out of its reach.

Stripe HubSpot Integration Setup Guide for 2026: Procedure and Verification

  1. Export Stripe's active subscriptions and classify each against the migration rules, recording count and MRR per segment. These totals are the reconciliation targets.
  2. Decide the biller for each segment and the processor, and confirm the country is supported and the HubSpot account is a production account.
  3. With Super Admin or Manage payments and subscriptions permissions, open Revenue > Payments, click Set up payments, select Integrate with a Stripe payment processing account, choose the country, accept the Stripe Payment Processing Terms, sign in to Stripe, select the business and click Connect, then review the details and click Agree and submit.
  4. Add each billing currency to the account currencies, then configure payment methods and the buyer checkout.
  5. For segments HubSpot will bill, open Revenue > Subscriptions, click Review subscriptions, read the three tabs, click Start migration setup, choose Eligible only or All eligible, and click Migrate [number] subscriptions. Settle customer notification first, since cancelling a subscription in HubSpot emails the customer.
  6. For segments Stripe keeps, install the Stripe data sync app from its App Marketplace listing. In Settings > Integrations > Connected Apps, click the app, start its sync setup, pair Stripe customers with HubSpot contacts and choose the direction. On the Configure page, set the data conflict resolution default; on the Limit page, decide the Only sync contacts with an email address checkbox and add the filter before the first sync.
  7. Verify against the step 1 totals. HubSpot's subscription count equals the number migrated and, once removed discounts are re-added, their MRR equals the segment totals, $87,000 in the sample. Each migrated subscription shows payment collection paused in Stripe, and after the next billing date each has a HubSpot payment while Stripe's invoice for that period is void. On the app's CRM syncs tab, the Object view lists failing and excluded records, every one of which traces to a filter, a missing email or a repeated email, and Stripe's customer count has grown only by contacts the filter admits. Any difference those rules do not explain is a setup defect.

Stripe HubSpot Integration Failures: Symptoms and Their Causes

Stripe subscriptions are missing after Stripe was connected. Payment processing imports nothing, so existing subscriptions reach HubSpot only through migration or the data sync.

The sync offers no destination for subscriptions on a Professional portal, because their destination is a custom object, and the fix is a tier decision or a migration.

Subscription reports show no MRR on a portal whose subscriptions sync correctly. The ready-made reports read HubSpot's subscription records, and the synced copies sit on a custom object; a custom report on that object carries the figure.

HubSpot holds fewer contacts than Stripe holds customers. Matching on email merged customers who share an address, and customers without an email were skipped; where the gap equals those two groups, the sync behaved as documented, and the repeats belong under duplicate management.

Company records show no invoices, because data sync associates invoices to contacts and company associations are made by hand.

Customers stop being charged after a processor change. Disconnecting HubSpot payments or a Stripe account cancels every subscription managed in HubSpot, and HubSpot documents that cancelling a subscription emails the customer, so subscriptions are exported and customer notifications settled before any change of processor.

Customers who held a Stripe coupon are charged more after migration. All eligible removed the discount along with any tax rate, and the fix is re-adding each discount and tax rate on the HubSpot subscription before its first HubSpot billing date.

Void Stripe invoices appear every month for migrated customers. Stripe keeps generating them while collection is paused. Where the data sync also runs, neither vendor documents whether those void invoices reach HubSpot's invoice object, so invoice counts need a test before any report relies on them.

Boundaries of This Article

This article covers HubSpot payments and the three native Stripe mechanisms defined at the top. Third-party connectors and custom builds on either API are out of scope; their design questions are set out in HubSpot integration architecture. Revenue recognition sits beside billing, as the Sage Intacct revenue recognition article explains, and the chain from accepted quote to payment is covered under quote to cash. Product facts, fees and country lists are as documented in September 2026, when HubSpot's documentation named Revenue Hub where it once named Commerce Hub.

The evidence has four limits. The data sync app's marketplace listing renders in the browser and its field-level mappings were not read, so this article states the object map and not the field map. The reporting finding and the two-way contact behaviour rest on HubSpot's documentation of reports and of data sync in general, not on a test portal. HubSpot publishes its disqualification codes but not which of them place a subscription in the Eligible if modified tab, so the sample table follows the reading that tax rates and discounts do. The sample account is invented to make the arithmetic checkable, and no frequency of any symptom above has been measured or is claimed.

Frequently Asked Questions

Is there a native HubSpot integration with Stripe? Three: Stripe payment processing, the Stripe data sync app and subscription migration. HubSpot payments also runs on Stripe's infrastructure, but it is a separate processor and cannot be connected alongside a Stripe account.

Does a Stripe integration with HubSpot sync subscriptions? The data sync copies them to a custom object, which needs Enterprise, while migration turns flat-rate Stripe subscriptions into HubSpot subscription records.

Can a Stripe and HubSpot integration use more than one Stripe account? For payment processing and migration, no: one Stripe account connects to one HubSpot account, and every brand shares it. HubSpot's data sync documentation allows a second account of the same app in general and does not name Stripe, so the data sync app's position needs a test.

What does a Stripe HubSpot integration failure look like in RevOps reporting? Two MRR figures that never agree, because each system reports the subscriptions it bills, and invoice totals by company that fall short, because synced invoices associate only to contacts.

What are the CS Stripe billing HubSpot integration issues to check first? Customers billed by both systems, cancellation emails sent when a subscription is cancelled in HubSpot, and void Stripe invoices for migrated customers, which Stripe creates by design.

In Summary

HubSpot and Stripe connect through three mechanisms that write different records. Stripe payment processing collects HubSpot-created invoices and subscriptions through Stripe and creates nothing in Stripe's billing records. The data sync app copies Stripe records into HubSpot, with subscriptions and payment transactions on Enterprise-only custom objects. Migration moves active flat-rate subscriptions into HubSpot billing, leaving usage-based subscriptions and any second Stripe account behind.

Each system's recurring revenue report sees only the subscriptions it bills. On the sample account, the widest migration brought 69.0 percent of MRR into HubSpot's reporting and left the metered 31.0 percent in Stripe, while the fee routes sat within $750 a month of one another. The choice that governs the rest is which system bills each segment of subscriptions, made before any connector is installed, with the segment left behind given an owner, a monthly reconciliation and a custom report.

HubSpot services

Onboarding, implementation, integration, migration, administration and training, each scoped and priced before the work begins

WEEKLY PROGRAM

RevOps Office Hours

A recurring weekly RevOps operating program. Live support plus hands-on HubSpot implementation work.

$1,500/mo
Monthly Operating Program
  • →1 live Office Hours session per week
  • →4 hours of hands-on implementation work per month
  • →Hours allocated against priorities agreed at the start of each period
  • →Recurring monthly cadence