· 15 min read

Stripe Salesforce Integration: Payments, Invoices and Subscriptions in Your CRM

A Stripe Salesforce integration lets sales turn a quote or order into a Stripe invoice or subscription and see payment status on the account, without card data entering the CRM. For most Sales, Service and Revenue Cloud orgs, Stripe’s own Stripe app for Salesforce Platform is the starting point. Use Salesforce Pay Now for simple payment links, and a custom API build when your billing rules don’t fit.
A CRM window, a credit card and a recurring invoice connected by arrows, illustrating a Stripe Salesforce integration
Connecting Stripe and Salesforce?Tell us how quotes become invoices and subscriptions today. We’ll map the payment flow, build the integration and support it after launch.
Map my Stripe sync

What a Stripe Salesforce integration should do

Sales closes deals in Salesforce. Stripe charges cards, sends invoices and renews subscriptions. Without a connection, reps can’t see who paid, finance retypes deal amounts into Stripe, and support refunds customers without anyone in sales knowing.

A good integration closes that loop in three moves:

  1. Order to Stripe. An accepted quote or activated order creates a Stripe customer, then a one-time invoice, a payment link or a subscription.
  2. Customer pays in Stripe. Card or bank details go straight to a Stripe-hosted page or Stripe Elements, never through Salesforce.
  3. Status comes back. Stripe webhook events update Salesforce: invoice paid or overdue, subscription renewed or canceled, refund issued, payment failed.

Everything else is optional. Teams that try to mirror every Stripe object in Salesforce burn API calls and storage and still end up asking finance what really happened.

Order to cash between Salesforce and Stripe Salesforce Account Quote / Order Opportunity Invoice, payment and subscription status, read-only Integration layer Stripe app, iPaaS or custom verifies events, logs errors Stripe Customer Invoice / Payment Link Subscription Charge, refund, payout order invoice events status Customer pays on a Stripe-hosted page Never in Salesforce: full card numbers, CVC, bank account numbers, Stripe secret keys in plain fields
Orders go one way, events come back. Card data goes from the customer straight to Stripe.

Your integration options compared

As of October 2026, there are five realistic routes. Which one fits depends on which Salesforce cloud you run and where your billing logic should live.

OptionWhat it coversDirectionCost levelEffortLimits
Stripe app for Salesforce Platform (by Stripe)Stripe API actions in Flow and Apex, Stripe webhook events as records, Stripe Billing data (customers, invoices, subscriptions, charges) as custom objectsTwo-way: actions to Stripe, events and billing sync backLow license cost; Stripe fees per transactionWeeks: install, map, build flows, testA toolkit, not a finished process: someone has to design and own the flows
Salesforce Pay Now (Salesforce Payments)Payment links attached to Salesforce records; Salesforce Payments processes through StripeLink out, payment status backIncluded with some Salesforce bundles; processing fees applyDaysBuilt for one-off payments, not for running subscriptions in Stripe Billing
Commerce Cloud apps and adaptersCheckout payments in a storefront: Stripe’s B2C Commerce app, or a payment gateway adapter on B2B and D2C CommerceCheckout to gateway, status back to ordersMediumWeeks, as part of the storefront buildOnly for commerce checkouts, not for sales-led invoicing
iPaaS or no-code (Zapier, Make, Workato, MuleSoft)Whatever you build: often “Stripe payment → update Salesforce record”Usually one-way flows, chainedLow (no-code) to high (enterprise iPaaS)Hours to weeksWebhook ordering, duplicates and retries are your problem; fragile at volume
Custom build on the Stripe API and webhooksExactly what you define, including other systems such as ERP and product databasesTwo-way, real timeMedium to high: build plus maintenanceWeeks to a few monthsYou own security, monitoring, retries and API version upgrades

A third-party payment app from AppExchange (now AgentExchange) is a sixth option, mostly for teams that want one Salesforce app across several gateways. Check the listing, the supported gateways and reviews before you buy.

Which Stripe Salesforce integration fits you?

Stripe’s official Salesforce apps, in plain words

As of October 2026, Stripe’s documentation lists three Salesforce products. Names have changed over the years (older pages and some app screens still say “Stripe Connector” or “Stripe Universal Connector for Salesforce”), so here is what each one does today.

Stripe app for Salesforce Platform

This is the main one. It is a managed package on AppExchange, listed as “Stripe for Salesforce Platform” by Stripe, Inc. According to Stripe, it works best on core clouds such as Sales, Revenue, Service, Commerce and Experience Cloud. It gives you:

  • Stripe API actions in Flow Builder and Apex, so a flow can create a customer, an invoice or a subscription.
  • Stripe events in Salesforce. The app creates a webhook endpoint in Stripe and stores each event as a Stripe Event record you can trigger flows from.
  • Stripe Billing sync. Customers, invoices and line items, subscriptions, subscription schedules, prices, products, charges, coupons and payment methods land in Salesforce custom objects, in real time through webhooks or on a schedule (one or the other per Stripe account).
  • Default mappings such as Account to Customer, Price Book Entry to Price, and Order or Contract to Subscription or Subscription Schedule, which you can change.

Two optional extensions sit on top. The Stripe Billing Flows Extension creates and amends Stripe subscription schedules when Salesforce orders are activated; Stripe says it works with Revenue Cloud or Sales Cloud, with or without CPQ. The Salesforce Billing Extension lets Salesforce Billing and Payment Center take card and ACH Direct Debit payments through Stripe, including tokenization, charges and refunds.

Stripe app for Salesforce B2C Commerce Cloud

A storefront integration for B2C Commerce. According to Stripe, it supports the Payment Element, automatic and manual capture, refunds, saved payment methods and bank transfers, and lets several storefronts share or separate Stripe configurations.

What about Salesforce CPQ?

Stripe once offered standalone connectors for Salesforce CPQ and Salesforce Billing. As of October 2026 they no longer appear in Stripe’s list of Salesforce apps, Stripe recommends the Platform app for CRM integrations, and quote-to-subscription now runs through the Platform app and its Billing Flows Extension. On the Salesforce side, Salesforce describes CPQ as end of sale, not end of life: existing customers can keep using it, renew and get support, and Revenue Cloud Advanced is named as its successor. If you are choosing a quoting tool now, design the Stripe flow around orders, not CPQ-specific objects, so it survives a later move.

Salesforce Payments, Pay Now and other gateways

Pay Now is Salesforce’s own payment-link feature. Salesforce says it is included with Starter Suite, Pro Suite and Salesforce Foundations, that links can be attached to any Salesforce object, and that it isn’t available to customers in India, Brazil and Japan. According to Salesforce’s Trailhead, Salesforce Payments partners with Stripe: Stripe acts as gateway and merchant account, and you set up a Salesforce Payments merchant account plus a business bank account. That is a separate setup from connecting your own Stripe account through Stripe’s app, so decide which account finance will reconcile before reps start sending links.

Salesforce Payments also supports merchant-initiated payments (card or ACH details taken by phone, email or in writing on the customer’s behalf), documented for B2B and D2C Commerce stores. Since March 2026, Bring Your Own Payments with Adyen lets Adyen merchants connect their existing Adyen account to Salesforce Payments, including Pay Now, and keep their current rates and terms.

For Authorize.net, Braintree and other gateways, there are two general routes. Commerce and Salesforce’s payment features accept custom gateways through payment gateway adapters, Apex classes in the commercepayments namespace documented in Salesforce’s Apex Reference Guide. Outside Commerce, look for the gateway’s own or a partner’s AppExchange app, or build the same pattern this guide describes: hosted payment page, webhook events back, IDs stored in Salesforce.

Keep card data out of Salesforce

This is the one rule you can’t bend. According to Stripe’s security guide, a business that handles raw card data may need to meet more than 300 PCI DSS security controls. Stripe’s low-risk integrations, such as Stripe-hosted payment pages and Stripe’s embedded payment forms, send card details straight to Stripe without passing through your systems, which keeps card data out of your Salesforce org and reduces your PCI obligations.

  • Never add a “card number” field to a Salesforce object, a case form or an Experience Cloud page. Reps should not type card numbers into anything but a Stripe-hosted form.
  • Store only what Stripe says is safe: card brand, last four digits, expiry date and the Stripe IDs it returns.
  • Use a restricted API key with only the permissions your flows need, and keep it in the app’s secure setup or Named Credentials, never in a custom field or Apex code.
  • Verify webhook signatures on every endpoint you build. Stripe’s documentation says unverified endpoints can be tricked into acting on fake events.

This is general guidance, not a compliance assessment. Confirm your PCI self-assessment type with your acquirer or a qualified assessor.

Object and field mapping

Pick one system of record per object. Edits happen there; the other side gets a read-only copy.

SalesforceStripeDirectionSystem of record
Account (plus billing contact)CustomerSalesforce → Stripe on first orderSalesforce for name and owner; Stripe for payment methods and balance
Product2 and Price Book EntryProduct and PriceUsually Salesforce → StripePick one catalog owner; never let both sides edit prices
Quote (accepted) or Order (activated)Invoice, Payment Link or SubscriptionSalesforce → Stripe, onceStripe after creation
Contract or Order (recurring)Subscription or Subscription ScheduleSalesforce → Stripe for create and amendStripe for renewals, proration and dunning
Stripe Invoice custom objectInvoice status, amount due, amount paid, hosted invoice URLStripe → SalesforceStripe
Stripe Charge or payment custom objectCharge, Payment Intent, RefundStripe → SalesforceStripe
Account field “Stripe Customer ID”Customer ID (cus_…)Written back after createThe link itself; never edited by hand

Store the Stripe customer ID on the account and the Salesforce account ID in the Stripe customer’s metadata. Every later sync then matches on IDs, not on names or emails.

How to set up the Stripe app, step by step

These steps follow the most common path: the Stripe app for Salesforce Platform with Stripe Billing. The order is the same for custom builds.

  1. Agree on the money flow with financeDecide what triggers billing (accepted quote, activated order, signed contract), whether customers get a Stripe invoice, a payment link or a subscription, and who handles refunds and disputes. Write it on one page.
  2. Prepare StripeClean up duplicate customers, decide the product and price catalog owner, and create a restricted API key for Salesforce with only the permissions your flows need. Do all first tests in a Stripe sandbox.
  3. Prepare a Salesforce sandbox and an integration userStripe’s installation guide asks you to enable Lightning Web Security in Session Settings. Run the integration under a dedicated user: supported editions include a limited number of free API-only Salesforce Integration user licenses, according to Salesforce. Give it a permission set limited to the objects the sync touches.
  4. Install the appInstall Stripe for Salesforce Platform from AppExchange into the sandbox. Stripe recommends “Install for Admins Only” and approving third-party access so data can move between Salesforce and Stripe.
  5. Run the setup wizardOpen the app from the App Launcher, authorize the org, add your Stripe account with the publishable key and the restricted key, choose the Stripe API version the wizard offers and install the API extension. Older versions used OAuth; Stripe says that is no longer offered from version 1.17.
  6. Choose your sync and eventsTurn on Stripe Billing sync (real time or scheduled), or subscribe only to the events you need, such as invoice.paid, invoice.payment_failed, customer.subscription.updated and charge.refunded. Set the cleanup option so event and sync log records don’t pile up in storage.
  7. Build the order-to-Stripe flowStart from Stripe’s template flows or the Billing Flows Extension: find or create the Stripe customer, create the invoice or subscription, write the Stripe IDs back to Salesforce. Add a fault path that logs errors and alerts a shared channel.
  8. Show status where reps lookPut invoice status, amount due, next renewal and the hosted invoice link on the account and opportunity layouts, read-only.
  9. Test the awkward casesUse Stripe test cards and test clocks: a new customer, an existing one, a failed payment, a partial refund, a mid-term upgrade, a cancellation, a dispute and a duplicate webhook. Have finance check each result in Stripe.
  10. Go live in stepsRepeat the install in production with live keys, bill only new orders from a cut-off date, and watch the sync logs daily for two weeks.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Payment links in quotes and invoices

You have two kinds of links. Stripe’s hosted invoice page and Stripe Payment Links come from your Stripe account, and the app can bring the invoice URL into Salesforce for the quote email or the account page. Salesforce Pay Now links run through Salesforce Payments. Pick one per use case, or finance will reconcile payments from two places.

Subscriptions

Let Stripe Billing run the subscription once it exists: renewals, proration, retries for failed payments. Salesforce sends creates and amendments from orders or contracts and receives the current state back. Never edit the same subscription in both systems, or the next sync overwrites one side.

Refunds and disputes

Issue refunds in one place. Either reps trigger them from a Salesforce flow that calls Stripe, or finance issues them in the Stripe Dashboard and the charge.refunded event updates Salesforce. Disputes should always be handled in Stripe, with only the status shown in Salesforce.

Reconciliation

Salesforce is not your ledger. Finance reconciles Stripe payouts against the bank and the accounting system; Salesforce only needs invoice and payment status for sales and support. If you also connect accounting, keep the chain clear: Stripe to accounting for money, Stripe to Salesforce for status. Our Salesforce QuickBooks integration guide covers the accounting side, and the Salesforce NetSuite integration guide covers ERP.

Pitfalls and how to fix them

ProblemWhy it happensFix
Events processed in the wrong orderStripe’s documentation says it doesn’t guarantee event delivery order, so invoice.paid can arrive before the subscription event.Never rely on order. When an event references an object you don’t have yet, fetch it from the Stripe API.
Duplicate updatesStripe may deliver the same event more than once and retries failed deliveries for up to three days in live mode.Store processed event IDs and skip repeats. Make every flow safe to run twice.
Duplicate charges or invoicesA flow retries after a timeout and creates a second invoice.Send an idempotency key with every create request, for example built from the Salesforce order ID.
Duplicate Stripe customersThe flow creates a customer per order instead of looking up the account.Match on the Stripe customer ID stored on the account; create only when it’s empty.
Sync loopsA Salesforce update triggers a Stripe update, whose event updates Salesforce again.Sync each field in one direction. Skip changes made by the integration user.
Refund made twice or not shownSupport refunds in Stripe while a rep refunds from Salesforce.One refund path, and the refund event always updates Salesforce.
Storage and API usage creepEvery webhook becomes a Salesforce record, and full billing sync copies every object.Subscribe only to events you use, turn on event cleanup, and use scheduled sync for bulky objects.
Rate limits during backfillStripe’s documented global limit is 100 requests per second in live mode and 25 in a sandbox, with lower limits on some endpoints.Backfill in batches with back-off on 429 errors; sync only changes afterwards.
Integration breaks after an upgradeNew Stripe API versions change object shapes; Stripe notes that upgrading the app’s API extension means updating flow and Apex nodes that use the old version.Upgrade in a sandbox first and re-run your test cases.

When a custom integration makes sense

Stripe’s app covers most Salesforce orgs. A custom service on the Stripe API pays off when:

  • Billing follows rules the app’s flows can’t express cleanly: usage-based pricing, ramps, several Stripe accounts or entities.
  • Payment events must also reach a product database, an ERP or a customer portal, not just Salesforce.
  • Volume is high enough that storing every event in Salesforce is expensive.
  • You need full control over security reviews, logs and testing.

A typical build includes a webhook receiver that verifies signatures and queues events, idempotent create calls to Stripe, a matching service for customers, writes to Salesforce through its REST or Bulk API under the integration user, a retry queue and an error dashboard. See payment gateway integration cost for the payment side and API development for how such services are built.

$10–40kTypical custom two-way CRM payment sync; complex multi-entity billing can cost more
15–25%Of the build per year for maintenance and API upgrades
100/sStripe’s global API rate limit in live mode, per Stripe’s documentation
3 daysHow long Stripe retries failed webhook deliveries in live mode

For cost ranges by integration type, see our API integration cost guide.

Go-live checklist

Stripe Salesforce go-live readiness

FAQ

Does Stripe integrate with Salesforce?
Yes. Stripe publishes its own app, the Stripe app for Salesforce Platform, on AppExchange. It adds Stripe API actions to Salesforce Flow and Apex, receives Stripe webhook events as Salesforce records and can sync Stripe Billing data (customers, invoices, subscriptions, charges) into Salesforce custom objects. Stripe also has separate apps for Salesforce B2C Commerce and for Salesforce Billing.
Is the Stripe app for Salesforce free?
As of October 2026, the AppExchange (now AgentExchange) listing for Stripe for Salesforce Platform shows only a nominal one-time price ($1 per company at the time of writing). Normal Stripe processing and Stripe Billing fees still apply to every payment and invoice. The real cost is the setup work: mapping objects, building flows and testing in a sandbox.
What is the difference between Salesforce Pay Now and the Stripe app?
Pay Now is a Salesforce feature that creates payment links you can attach to Salesforce records and send to customers. According to Salesforce’s Trailhead, Salesforce Payments partners with Stripe for processing and uses a Salesforce Payments merchant account; since 2026 Salesforce also lets Adyen merchants connect their existing Adyen account. The Stripe app for Salesforce Platform connects your own Stripe account and exposes the Stripe API, events and Stripe Billing data inside Salesforce. Pay Now suits one-off payments; the Stripe app suits subscriptions and invoicing run in Stripe.
Can I store credit card numbers in Salesforce?
You should not. Storing or transmitting full card numbers puts systems in PCI DSS scope, which Stripe’s security guide says can mean more than 300 security controls. Collect cards on Stripe-hosted pages, payment links or Stripe Elements, and keep only what Stripe returns, such as card brand, last four digits, expiry and Stripe IDs, which Stripe says are outside PCI scope.
Can Stripe subscriptions sync to Salesforce CPQ?
Yes, through the Stripe app for Salesforce Platform and its Stripe Billing Flows Extension, which creates Stripe subscription schedules when Salesforce orders are activated and, according to Stripe, works with Revenue Cloud or Sales Cloud, with or without CPQ. Note that Salesforce now describes Salesforce CPQ as end of sale (existing customers keep support) and names Revenue Cloud Advanced as its successor, so plan new quoting projects with that in mind.
How much does a Stripe Salesforce integration cost?
Configuring Stripe’s app with standard flows is usually a few weeks of admin and developer work. A custom two-way integration on the Stripe API typically falls in the $10,000–40,000 range, and complex multi-entity billing can cost more, plus 15–25% of the build per year for maintenance. Our API integration cost guide breaks down the ranges.

Next steps

Connecting more than Stripe? The Salesforce integration guide covers the patterns that repeat across every system. Selling online too? See the Shopify Salesforce integration guide.

Where Gilzor fits: when your billing rules need more than standard flows, Gilzor’s engineers in Poland and Cyprus can map the payment flow between Salesforce and Stripe, build the integration and support it after launch. See our Salesforce integration services.

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Andrew Laminsky
Written byAndrew Laminsky

CTO of Gilzor. Responsible for architecture and the engineering standards our teams work by.

LinkedIn →

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights