LedgerUp Resources
How to Sync Salesforce CPQ with Stripe Billing: Quote Lines to Prices, Subscriptions, and Schedules
A Salesforce CPQ quote is a set of quote lines with quantities, discounts, terms, and sometimes MDQ segments. Stripe Billing wants products, prices, a subscription or a subscription schedule, and an invoice with the right terms. This guide maps every CPQ object to its Stripe counterpart, walks one three-year quote through the mapping, and shows where Stripe's CPQ connector, Zapier, Workato, and LedgerUp each stop.
In This Article
Salesforce CPQ produces the commercial truth of a deal: products, quantities, net prices, discounts, subscription terms, start dates, and, for multi-year deals, the price of each year. Stripe Billing produces the invoice. Nothing moves between them on its own. The work of syncing CPQ with Stripe is turning quote lines into Stripe prices and subscription items, turning a multi-year quote into a subscription schedule with phases, and keeping the signed order form as the tiebreaker when the quote and the paper disagree.
This guide is for finance and RevOps teams running Salesforce CPQ (the SBQQ managed package) upstream of Stripe Billing. It uses one quote throughout: three years, a 10% annual uplift, premium support priced as a percentage of license, an included API allowance with overage, net 45, and a PO number. Updated September 2026.
Quick answer
Map CPQ products to Stripe products, price book entries and contracted prices to Stripe prices, quote lines to subscription items with quantities, MDQ segments to subscription schedule phases, the quote's start date and term to the schedule's start and phase lengths, payment terms to the invoice's days-until-due, and the account to a Stripe customer keyed by the Salesforce Account ID in metadata. Then decide who does that work: Stripe's own CPQ connector or Platform app (admin-built flows, catalog must match), Zapier or Make (one price per step, loops for lines), Workato or Apex (integration team, rules as code), or LedgerUp (reads the quote lines and the signed order form together, builds the Stripe objects, and writes status back).
The object map: CPQ to Stripe
| Salesforce CPQ | Stripe Billing | Rule |
|---|---|---|
| Account | Customer | Match on a stored Stripe customer ID or the Salesforce Account ID in customer metadata. Never match on company name. |
| Product (Product2) | Product | One Stripe product per sellable CPQ product. Bundle parents that carry no price do not need a Stripe product. |
| Price book entry, contracted price, net price on the line | Price | List prices become catalog prices. Negotiated net prices become customer-specific prices tagged with the quote ID, or a coupon on a list price. Pick one convention and keep it. |
| Quote line (SBQQ__QuoteLine__c): quantity, discount, billing frequency | Subscription item with quantity, or an invoice item for one-time lines | Recurring lines become subscription items. One-time lines (implementation, training) become invoice items on the first invoice. |
| Subscription term and start date (SBQQ__SubscriptionTerm__c, SBQQ__StartDate__c) | Subscription schedule start date and phase lengths | A 36-month term with annual billing is a schedule with three 12-month phases, or one phase that iterates three times if nothing changes year to year. |
| MDQ segments (one segment per year) | Subscription schedule phases with a different price per phase | Each segment's price and quantity becomes that phase's item. This is the only clean way to model a ramp in Stripe. |
| Percent-of-total lines (support at 20% of license) | A computed price per phase | Stripe has no percent-of-another-line price. Compute the amount per phase and create a price for it. |
| Consumption schedules and usage lines | Meter plus a metered price on the subscription | Included allowance, overage rate, and tiers live on the contract; usage arrives through meter events each period. |
| Payment terms on the quote | Invoice collection method send_invoice with days_until_due | Net 45 is days_until_due of 45 on the subscription's invoice settings. |
| PO number on the quote or order | Invoice custom field | Set it as a default custom field on the customer or on each invoice. Stripe prints it; nothing in Stripe requires it. |
| CPQ subscription and contract records (SBQQ__Subscription__c) | Stripe subscription ID written back | Store the Stripe subscription and schedule IDs on the CPQ subscription so amendments and renewals find the right object. |
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 DemoOne three-year quote, mapped
The quote: Platform license at $100,000 in year one, $110,000 in year two, $121,000 in year three (three MDQ segments). Premium support at 20% of license each year. 50,000 included API calls a month with overage at $0.002 per call. Implementation fee of $15,000, one time. Annual invoicing in advance, net 45, PO required.
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.
- Customer. Find the Stripe customer whose metadata carries this Salesforce Account ID. Create one if it does not exist, with the billing email from the quote's primary contact and the PO number as a default invoice custom field.
- Products. Platform license, Premium support, API calls, Implementation. Four Stripe products.
- Prices. Three yearly prices for the license ($100,000, $110,000, $121,000), three computed yearly prices for support ($20,000, $22,000, $24,200), one metered price for API calls at $0.002 attached to a meter that sums events per period, one one-time price for implementation.
- Schedule. A subscription schedule starting on the quote's start date with three phases of 12 months. Phase one carries the year-one license price, the year-one support price, and the metered API price; phases two and three swap in their year's prices. Collection method send_invoice, days_until_due 45.
- First invoice. The implementation fee is added as an invoice item so it lands on the first invoice with the year-one license and support. The 50,000 included calls are enforced by the layer that rates usage, not by Stripe, which bills every metered unit it receives unless the allowance is modeled as a tier or a credit.
- Write-back. Stripe customer, subscription, and schedule IDs written to the account and the CPQ subscription record.
The five places the mapping breaks
1. Ramps that are not MDQ
Many teams write the uplift in the order form ("10% annual increase") and quote a single line. The quote line says $100,000; the paper says three different numbers. Whatever reads only the quote line builds a flat subscription and underbills years two and three. The fix is either MDQ segments on every ramped deal or a layer that reads the order form alongside the quote.
2. Bundles and option lines
A bundle parent with zero price and five option lines produces six quote lines. Only the priced lines should become subscription items. Any sync that maps every quote line one-to-one creates zero-amount items that confuse invoices and reports.
3. Percent-of-total and discount cascades
Support at 20% of license changes when the license price changes in phase two. Partner discounts, additional discounts, and contracted prices stack in CPQ's calculation order. The Stripe price has to be the final net amount per phase, computed once, not a list price with three coupons that drift.
4. Amendment quotes
CPQ's Amend flow produces a quote with delta lines: plus ten seats, minus one add-on, sometimes negative quantities. Those deltas have to become subscription updates with proration on the live Stripe subscription, not a second subscription. The amendments guide covers the Stripe mechanics.
5. Catalog drift
Sales adds a product in CPQ on Tuesday; nobody creates the matching Stripe product. The first quote that uses it fails to sync, or worse, syncs with the wrong price. Every method below needs an answer for "the Stripe price does not exist yet." Creating it on the fly, tagged with the quote line ID, is the usual one.
Four ways to run it
| Method | How quote lines reach Stripe | MDQ ramps | Reads the order form | Amendment quotes | Who maintains it |
|---|---|---|---|---|---|
| Stripe Billing Connector for Salesforce CPQ, or Stripe for Salesforce Platform | Product and price mapping plus flow templates; an accepted quote or closed opportunity creates the subscription | If the flow builds a schedule | No | Separate flow | Salesforce admin |
| Zapier or Make | Loop over quote lines, look up a price per product, create items one by one | No (no schedules in the standard actions) | No | Second workflow | Ops owner |
| Workato, MuleSoft, or Apex | Recipe or trigger with the full mapping as rules | Yes, as rules | No | Yes, as rules | Integration engineer |
| LedgerUp | Ari reads the quote lines and the signed order form, reconciles them, proposes the Stripe objects in Slack, and creates them on approval | Yes, from MDQ or from the paper | Yes | Yes, with proration | Finance or RevOps |
A note on Stripe's CPQ connector: it is listed on AppExchange, but when we checked in September 2026 Stripe's documentation page for it was not reachable. Confirm its support status with Stripe before building a process on it. Stripe for Salesforce Platform, the broader app, is documented and maintained and covers the opportunity-to-subscription case when catalogs match. The full landscape is in the best Salesforce to Stripe integration tools.
Salesforce CPQ's end-of-sale, and what it changes
In March 2025 Salesforce stopped selling Salesforce CPQ to new customers. Existing orgs keep using it, renewing it, and adding licenses, and support continues; new development goes to Revenue Cloud, with Revenue Cloud Advanced positioned as the successor for CPQ power users. For a CPQ-to-Stripe sync this means two things. First, the SBQQ object model above is stable: it is not getting new features, and it is not going away for current customers. Second, teams evaluating Revenue Cloud as the path forward should read LedgerUp vs Salesforce Revenue Cloud before assuming quoting and billing have to move together. Quoting can move to Revenue Cloud while Stripe stays the billing system; the mapping in this guide is the same shape with different source objects.
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