Back to all resources

LedgerUp Resources

How to Automatically Create a Stripe Subscription When a Salesforce Opportunity Closes (4 Ways, Ranked)

Salesforce closes the deal. Stripe needs the subscription and the invoice. Nothing connects them on its own. The four real ways to bridge Closed Won to Stripe, ranked by setup time and by how much of the contract each one can actually handle: Stripe's own Salesforce app, Zapier or Make, Workato or custom Apex, and LedgerUp.

Bailey Spell, Founder & CEO, LedgerUp··11 min read

Salesforce is where the deal closes. Stripe is where the subscription lives and the invoice gets paid. Neither product creates the other's records on its own. An opportunity moving to Closed Won does nothing in Stripe until something reads that stage change, finds or creates the Stripe customer, builds the subscription with the right price, quantity, start date, and terms, and issues the first invoice. Then the payment status has to find its way back to the account so sales does not ask finance "did they pay?"

There are four real ways to build that bridge. This guide ranks them by setup time and by how much of a negotiated B2B contract each one can handle without a person re-keying terms. It is written for finance and RevOps teams that run Salesforce (with or without CPQ) upstream of Stripe Billing, and it uses the same test contract throughout: a $120,000 annual deal with a 10% year-two uplift, 100,000 included API calls a month with overage at $0.002, net 45 terms, and a PO number that has to appear on the invoice.

Updated September 2026: reflects the current Stripe for Salesforce Platform flow templates, Zapier's and Make's current published plans, and Stripe subscription schedules for ramps.

Quick answer: which method fits your deals

Method Best for Setup Breaks when
1. Stripe for Salesforce PlatformYour Stripe catalog already matches your Salesforce products and an admin owns Flow BuilderDays: install, sync, map products, build the flowThe deal is not exactly what is on the opportunity: signed-PDF terms, ramps, minimums, amendments
2. Zapier or MakeOne price per deal, low volume, no contract terms to readAn afternoonMulti-line quotes, proration, start dates, ramps, failed runs nobody sees
3. Workato, MuleSoft, or custom ApexOrgs with an integration team and a platform they already ownWeeks to monthsBilling logic ends up in recipes or code that engineers maintain; the contract is still read by a person
4. LedgerUpNegotiated contracts: CPQ lines plus a signed PDF, ramps, usage, milestones, amendments, PO and portal requirements1 to 2 days of setup, live within a weekYou need a CPQ, or you want to leave Stripe Billing

If every deal is a single price with no negotiated terms, start with Stripe's own app or Zapier. If your order forms carry terms that are not fields on the opportunity, the first two methods will work for the easy deals and hand the rest back to finance. That is the case for LedgerUp, and it is the case most B2B teams with a sales-led motion end up in.

Method 1: Stripe for Salesforce Platform (Stripe's own app)

What it is. Stripe's managed package on AppExchange. It syncs Stripe Billing objects (customers, products, prices, subscriptions, invoices) into Salesforce as custom objects, ships flow templates for opportunity-to-subscription and order-to-subscription, and exposes an integration builder for Flow Builder and Apex. It is event-driven and bidirectional, so a subscription changed in Stripe updates in Salesforce and vice versa. Stripe also publishes a Billing Connector for Salesforce CPQ (quote lines to Stripe subscriptions) and a Stripe Connector for Salesforce Billing (Stripe as a payment gateway when Salesforce owns the invoice). This method covers the Platform app, which is the one most teams keeping Stripe Billing should evaluate.

Setup steps

  1. Install Stripe for Salesforce Platform from AppExchange and connect your Stripe account in test mode first.
  2. Run the billing data sync so Stripe products, prices, customers, and subscriptions appear as Salesforce objects.
  3. Map Salesforce products (or CPQ products) to Stripe prices. If the two catalogs were built by different teams, this is the step that stalls the project.
  4. Open the opportunity-to-subscription flow template in Flow Builder. Set the entry condition to Stage equals Closed Won.
  5. Add the customer lookup, matched on the account, and the subscription-creation action with the mapped price and quantity.
  6. Test with a closed-won opportunity in Stripe test mode, then activate. Add separate flows for cancellations and plan changes if you need them.

Where it breaks on the test contract

The flow knows the opportunity. It does not know the order form. Net 45, the 10% year-two uplift, and the 100,000 included calls exist only in the signed PDF, so the flow creates a $120,000 subscription on default terms unless an admin modeled each term as a field and built a branch for it. The uplift needs a subscription schedule with two phases, which is a separate action to build. The included allowance and overage need a metered price and someone deciding, each month, whether usage exceeded the contract. The PO number needs an invoice custom field the flow sets. Payment status does come back, as synced invoice objects, which is genuinely useful; turning "past due" into a task, a Slack message, or an aging figure on the account is more Flow work. There is no collections and no ERP reconciliation.

Pricing. The app itself carries no license fee from Stripe; you pay standard Stripe processing and Stripe Billing fees. Best for: teams whose Stripe catalog already mirrors their Salesforce products and who have a Salesforce admin to build and maintain the flows.

Book a LedgerUp Demo

See how Ari connects contracts, billing, collections, approvals, and accounting records while finance stays in control of exceptions.

Book a LedgerUp Demo

Method 2: Zapier or Make

What it is. A trigger on the Salesforce opportunity, a filter on the stage, and Stripe actions with mapped fields. Zapier is the fastest to set up; Make gives you routers and iterators for line items and costs less at volume. Both are integration layers: they move fields, they do not read contracts.

LedgerUp Insight: The workflow described above is one that LedgerUp automates end-to-end. Ari handles the repeatable steps, keeps the source records connected, and routes exceptions to finance for review.

Setup steps (Zapier; Make is the same shape as a scenario)

  1. Trigger: Salesforce "Updated Field on Record" on Opportunity, watching Stage. Add a filter for Stage equals Closed Won.
  2. Action: Stripe "Find Customer" by the account's billing email, with "create if not found" enabled.
  3. Action: Stripe "Create Subscription" with the customer ID and a Stripe price ID. Use a lookup table keyed on the Salesforce product name if you sell more than one plan.
  4. Optional: Stripe "Create Invoice" and "Finalize Invoice" for one-time or milestone deals instead of a subscription.
  5. Action: Salesforce "Update Record" to write the Stripe customer and subscription IDs onto the opportunity.
  6. Second Zap: trigger on Stripe "Payment Failed" or "New Invoice Paid" and update the opportunity or create a task.

Where it breaks on the test contract

One price per action. A three-line CPQ quote needs Paths or a Looping step per line, and quantities and discounts have to be mapped one by one. The year-two uplift cannot be created as a subscription schedule from the standard Stripe actions, so someone edits the subscription on the anniversary. Net 45 and the PO number are fields you remember to map or do not. Usage is out of scope. When a run fails on a missing email, it fails quietly into Zap history. Volume also matters: each action in each run counts against the plan's task limit, so a five-action Zap on 200 deals a month is 1,000 tasks before the payment-status Zap runs.

Pricing (published, September 2026). Zapier: Free with 100 tasks a month; Professional from $19.99 a month billed annually ($29.99 monthly) with 750 tasks; Team from $69 a month billed annually; Enterprise custom. Make: Free plan; Core from $12 a month; Pro from $21 a month; Teams from $38 a month; Enterprise custom. Best for: one price per deal, low volume, and no negotiated terms.

Method 3: Workato, MuleSoft, or custom Apex

What it is. An enterprise integration platform (Workato recipes, MuleSoft Anypoint flows) or Apex triggers calling the Stripe API directly. This is the right answer when an integration team already owns the platform and wants Salesforce-to-Stripe on the same rails as everything else.

Setup steps

  1. Define the object map: Opportunity, OpportunityLineItem or CPQ quote lines, Account, and Contact to Stripe Customer, Price, Subscription or Subscription Schedule, and Invoice.
  2. Build the forward recipe or trigger on Closed Won with idempotency keys so a retried run does not create a second subscription.
  3. Handle catalog drift: what happens when a quote line has no Stripe price. Most teams create the price on the fly and tag it with the opportunity ID.
  4. Build the reverse path on Stripe webhooks (invoice.paid, invoice.payment_failed, customer.subscription.updated) writing status to the account and opportunity.
  5. Add error routing, alerting, and a replay mechanism. Then document it, because the person who built it will change roles.

Where it breaks on the test contract

It does not break; it gets expensive. Every term in the order form becomes a rule in a recipe or a line of Apex: the uplift, the included allowance, the net 45 default, the PO field. The contract PDF is still read by a human who fills the fields the recipe reads. Changes to pricing models are engineering tickets. Expect weeks to months to build and a standing maintenance cost. Pricing. Workato and MuleSoft are quoted, not published. Custom Apex costs whatever your engineers' time costs. Best for: organizations with an integration team and an existing platform that must own every cross-system flow.

Method 4: LedgerUp, contract-aware billing automation

What it is. LedgerUp keeps Salesforce as the system of record for the deal and Stripe as the billing system, and its agent Ari does the contract-aware work between them. It is not an integration layer and it does not replace Stripe Billing. Ari reads the opportunity, the CPQ line items, and the signed contract, builds the right Stripe objects, keeps them current as the contract changes, runs collections, and writes payment status back to Salesforce.

Setup steps

  1. Connect Salesforce over OAuth, Stripe by API key, and Slack. Typical setup is 1 to 2 days.
  2. Tell Ari which stage triggers billing and where signed contracts live: attached PDFs on the opportunity, DocuSign, or PandaDoc.
  3. On Closed Won, Ari reads the opportunity, the quote lines, and the contract, and posts a proposal in Slack: matched customer, subscription or schedule, phases and prices, first invoice date, payment terms, PO number.
  4. Approve in Slack, or set clean deals to auto-approve. Ari creates the objects in Stripe. Mismatches between the CPQ lines and the PDF are flagged before anything is created.
  5. Ari writes the Stripe IDs, invoice status, and payment status to the account and opportunity, follows up on overdue invoices, submits portal invoices, and reconciles Stripe payouts to NetSuite, QuickBooks, or Sage Intacct.
  6. An expansion or co-term closed as a new opportunity updates the live subscription with proration.

The test contract, handled

The $120,000 annual deal becomes a two-phase subscription schedule with the 10% uplift in phase two. The 100,000 included calls and $0.002 overage become a metered price billed against the contract allowance each month, with the annual true-up held until the minimum is checked. Net 45 is set on the invoice and the PO number is printed on it. When the customer pays, the account shows paid; when a charge fails, the account owner gets a Slack message and a Salesforce task. Pricing. Starter is published at $500 a month; Growth and Enterprise are quoted. Best for: negotiated B2B contracts with ramps, usage, milestones, amendments, and PO or portal requirements, on a team that wants to keep Salesforce and Stripe and be live in days.

Where each method breaks: ramps, CPQ lines, amendments, payment status

Ramps and multi-year terms

Stripe models a ramp as a subscription schedule with phases. Field-mapping tools create subscriptions, not schedules, so the uplift becomes a calendar reminder. Stripe's app can create schedules if the admin builds that action. LedgerUp builds the phases from the contract text.

CPQ quote lines

A quote with a platform fee, two add-ons, and a discount is four lines that need four Stripe prices at the right quantities. Stripe's app handles this when products are mapped. Zapier needs loops. Workato needs a rule per line type. LedgerUp reads the lines and reconciles them against the signed PDF, which is where the discount that sales promised but never entered gets caught.

Amendments and co-terms

An expansion in month seven has to prorate the remainder of the term and align the new item's end date with the master agreement. None of the first three methods do this without a second build. Amendments are one of the fifteen billing exceptions Ari handles as part of the standard workflow.

Payment status write-back

Stripe's app syncs invoice objects into Salesforce, so status is visible if someone builds the report. Zapier needs a second Zap per Stripe event. Workato needs the reverse recipe. LedgerUp writes paid, open, past due, and failed to the account and opportunity, creates the follow-up task, and pings the owner in Slack.

Comparison table: all four methods side by side

Method Setup CPQ multi-line Ramps (schedules) Reads signed contract Usage billing Amendments Payment status back Collections and ERP reconciliation Published pricing
Stripe for Salesforce PlatformDaysYes, with product mappingIf built in FlowNoObjects sync; no contract logicSeparate flowSynced invoice objectsNoNo app fee; Stripe fees
Zapier or MakeHoursLoops or pathsNoNoNoSecond ZapSecond Zap per eventNoZapier from $19.99/mo; Make from $12/mo
Workato, MuleSoft, ApexWeeks to monthsYes, as rulesYes, as rulesNoYes, as rulesYes, as rulesReverse recipeBuild itQuoted
LedgerUp1 to 2 daysYes, reconciled to the PDFYesYesYes, against contract thresholdsYes, proratedAccount and opportunity, task, SlackYesStarter $500/mo
If you are choosing between Stripe's app and LedgerUp, the deciding question is where your billing terms live. If every term is a field on the opportunity, Stripe's app plus an admin is enough. If the terms live in the order form, you need something that reads it. Many teams run both: Stripe's app for visibility in Salesforce and LedgerUp for the billing work. The full landscape, including Breadwinner, Stacksync, n8n, Chargebee, and Maxio, is in the best Salesforce to Stripe integration tools guide.

Frequently asked questions

Book a LedgerUp Demo

See how LedgerUp connects your CRM, billing, and ERP systems to eliminate manual work and accelerate revenue.

Get Started with LedgerUp

Stop babysitting billing ops.

Let Ari run contract-to-cash for your team.

Book a demo →
Stripe Subscriptions from Salesforce Opportunities: 4 Ways Ranked (2026)