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

In this article
- A Stripe Salesforce integration should do three things: turn a signed quote or activated order into a Stripe invoice or subscription, bring payment, invoice and subscription status back to the account, and do it without card numbers ever touching Salesforce.
- Stripe’s own Stripe app for Salesforce Platform is the default route for Sales, Service and Revenue Cloud orgs: Flow actions, webhook events and a Stripe Billing data model inside Salesforce. Salesforce Pay Now covers simple payment links, and Commerce storefronts use Stripe’s B2C Commerce app or a payment gateway adapter.
- Go custom on the Stripe API and webhooks when billing logic is unusual, volume is high or several systems share the same payment events. Use an iPaaS when Stripe is one stop in a longer chain.
- Decide ownership first: Salesforce owns accounts, quotes and orders; Stripe owns customers’ payment methods, invoices, charges and refunds. Most failures come from out-of-order webhooks, duplicate customers and refunds made in the wrong system.
Jump to
- What a Stripe Salesforce integration should do
- Your integration options compared
- Stripe’s official Salesforce apps, in plain words
- Salesforce Payments, Pay Now and other gateways
- Keep card data out of Salesforce
- Object and field mapping
- How to set up the Stripe app, step by step
- Payment links, invoices, subscriptions and refunds
- Pitfalls and how to fix them
- When a custom integration makes sense
- Go-live checklist
- Next steps
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:
- Order to Stripe. An accepted quote or activated order creates a Stripe customer, then a one-time invoice, a payment link or a subscription.
- Customer pays in Stripe. Card or bank details go straight to a Stripe-hosted page or Stripe Elements, never through Salesforce.
- 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.
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.
| Option | What it covers | Direction | Cost level | Effort | Limits |
|---|---|---|---|---|---|
| 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 objects | Two-way: actions to Stripe, events and billing sync back | Low license cost; Stripe fees per transaction | Weeks: install, map, build flows, test | A 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 Stripe | Link out, payment status back | Included with some Salesforce bundles; processing fees apply | Days | Built for one-off payments, not for running subscriptions in Stripe Billing |
| Commerce Cloud apps and adapters | Checkout payments in a storefront: Stripe’s B2C Commerce app, or a payment gateway adapter on B2B and D2C Commerce | Checkout to gateway, status back to orders | Medium | Weeks, as part of the storefront build | Only 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, chained | Low (no-code) to high (enterprise iPaaS) | Hours to weeks | Webhook ordering, duplicates and retries are your problem; fragile at volume |
| Custom build on the Stripe API and webhooks | Exactly what you define, including other systems such as ERP and product databases | Two-way, real time | Medium to high: build plus maintenance | Weeks to a few months | You 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.
| Salesforce | Stripe | Direction | System of record |
|---|---|---|---|
| Account (plus billing contact) | Customer | Salesforce → Stripe on first order | Salesforce for name and owner; Stripe for payment methods and balance |
| Product2 and Price Book Entry | Product and Price | Usually Salesforce → Stripe | Pick one catalog owner; never let both sides edit prices |
| Quote (accepted) or Order (activated) | Invoice, Payment Link or Subscription | Salesforce → Stripe, once | Stripe after creation |
| Contract or Order (recurring) | Subscription or Subscription Schedule | Salesforce → Stripe for create and amend | Stripe for renewals, proration and dunning |
| Stripe Invoice custom object | Invoice status, amount due, amount paid, hosted invoice URL | Stripe → Salesforce | Stripe |
| Stripe Charge or payment custom object | Charge, Payment Intent, Refund | Stripe → Salesforce | Stripe |
| Account field “Stripe Customer ID” | Customer ID (cus_…) | Written back after create | The 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.updatedandcharge.refunded. Set the cleanup option so event and sync log records don’t pile up in storage. - 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.
- Show status where reps lookPut invoice status, amount due, next renewal and the hosted invoice link on the account and opportunity layouts, read-only.
- 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.
- 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




Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.
Payment links, invoices, subscriptions and refunds
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
| Problem | Why it happens | Fix |
|---|---|---|
| Events processed in the wrong order | Stripe’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 updates | Stripe 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 invoices | A 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 customers | The 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 loops | A 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 shown | Support refunds in Stripe while a rep refunds from Salesforce. | One refund path, and the refund event always updates Salesforce. |
| Storage and API usage creep | Every 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 backfill | Stripe’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 upgrade | New 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.
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?
Is the Stripe app for Salesforce free?
What is the difference between Salesforce Pay Now and the Stripe app?
Can I store credit card numbers in Salesforce?
Can Stripe subscriptions sync to Salesforce CPQ?
How much does a Stripe Salesforce integration cost?
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.

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?
Services
Web DevelopmentCustom websites and web apps — front-end, back-end, launch and support.→By company type
Selected projects






The team behind them





