When you create products and prices in Salesforce, they don’t sync to Stripe immediately. Instead, the products and prices sync to Stripe when they’re used in an activated order. You don’t need to manually create this information in Stripe.
Salesforce is the primary source for product and pricing information. This means all pricing, product descriptions, SKUs, and more sync from Salesforce to Stripe. Any updates you make to this information in Stripe won’t update the related products and prices in Salesforce. In addition, any updated product or pricing information in Salesforce that you use for a new activated order overwrites any changes you make in Stripe.
Field mappings for products
The Stripe Billing Connector for Salesforce CPQ creates a product in Stripe even if there isn’t relevant data in Salesforce. All product fields are optional.
Field mappings for prices
The connector supports the following price types in Stripe.
- Licensed prices – If the Billing Type (
SBQQ_BillingType_c) field in Salesforce is either none or advanced, the connector creates a licensed price in Stripe.
- Metered or usage prices – If the Billing Type (
SBQQ_BillingType_c) field in Salesforce is arrears, the connector creates a metered or usage price.
- Decimal prices – If the decimal value of your price has more precision than 12 decimal places, the connector rounds your price to 12 decimals.
- One-time and recurring prices – If the Subscription Pricing (
SBQQ_SubscriptionPricing_c) field has a value, the connector treats it as a recurring price. Metered prices must be recurring, but you can have tiered one-time prices.
|Salesforce field (PriceBookEntry object)||Stripe price||Notes||Required|
|Product||Product||Maps the Stripe |
|Unit price||Unit amount decimal||Represents the amount billed to the customer at the frequency specified in the Billing Frequency field.|
|Billing frequency||Recurring, interval count||Required for recurring prices only. Supported values include monthly, quarterly, semi annual, and annual. These values map to the integer-equivalent.|
|Billing type||Recurring, usage type||Required for recurring prices only. An arrears value maps to metered. An advanced value maps to licensed.|
|CPQ global term unit setting||Recurring, interval||Required for recurring prices only. This is chosen during setup and isn’t a field-level mapping.|
|Currency||Currency||This is chosen during setup and isn’t a price-level configuration.|
Tiered pricing using consumption schedules
You can configure tiered pricing in Stripe by setting up a Salesforce Consumption Schedule–and associated rates–for products in Salesforce. Stripe uses the consumption schedule to associate tiered pricing with the line items billed using metered or licensed billing. You can use only one consumption schedule per order line.
Stripe Billing requires an unbounded tier to exist, which means a consumption rate with no value for the upper bound. The connector doesn’t use the processing order on a consumption rate, or the billing term and billing term unit on the consumption schedule associated with the order product. The connector uses the billing frequency and subscription term on the order line instead.
For tiered pricing, the connector maps data from the following Salesforce objects:
OrderLine– If the
OrderLinedata differs from the corresponding
PriceBookEntry, the connector uses the
OrderLinedata and creates a new
Priceobject in Stripe.
PricebookEntry– The connector uses this value if the pricing data matches the
OrderLineand the consumption schedule and rate data aren’t customized on a per-customer basis.
Consumption Schedule– Although Salesforce allows you to associate multiple consumption schedules with a product, the connector supports only one consumption schedule per order line.
Consumption Rate– The connector uses the rate associated with a consumption schedule to define each tier entry in the Stripe price. You can have multiple rates for a consumption schedule.
If you customize the consumption schedule and consumption rate data on a per-customer basis, Stripe creates a new
Price object to represent the customized pricing. The new price appears in the Stripe ID field on the
Order Line object in Salesforce.
To define a mapping for tiered pricing, add the following
PriceBookEntry to your prices field mapping. These fields are required.
|Salesforce field (PriceBookEntry object)||Stripe price||Notes|
|Billing scheme||Set to tiered when an order line in Salesforce has a consumption schedule associated with it.|
|Salesforce consumption schedule||Stripe price||Notes|
|Type||Tiers mode||A slab type uses graduated. A range type uses volume.|
Each consumption rate that’s associated with a consumption schedule results in an additional tiers entry on the Stripe
Price object. These fields are required.
|Salesforce consumption rate||Stripe price||Notes|
|Upper bound||Tiers, Up to||Stripe doesn’t have a lower bound and assumes the lower bound value of the first tier is zero. If this value is empty in Salesforce, Stripe uses the inf value to indicate there isn’t a limit for the upper bound.|
|Pricing method||A per unit value instructs the connector to use the |
|Price||Tiers, Flat amount decimal or Unit amount decimal||The pricing type used depends on the Pricing Method field.|
Manually sync products and prices
When testing in a Salesforce sandbox environment, you can manually sync your entire product catalog for inspection in your Stripe test account. The manual sync respects any product and price filters you set.
Use the following buttons in the Settings section of the connector:
Sync all products – Syncs all products (but not prices) to your Stripe test account, regardless of when they were last updated. This operation occurs in the background and can take a couple minutes to complete. If you delete any products in Salesforce, they aren’t deleted or archived in Stripe.
Sync all pricebooks – Syncs all products and prices to your Stripe test account, regardless of when they were last updated. This operation occurs in the background. If you delete any products or prices in Salesforce, they aren’t deleted or archived in Stripe. After you create a price and set a recurring billing schedule in Stripe, you can’t update these parameters and sync them from Salesforce. Attempting to do so results in sync errors.
If you already synced products or prices to your Stripe account and want a new sync, you can do either of the following before syncing your product catalog again:
- Wipe your Stripe test account.
- Bulk delete the contents of the Stripe ID field on both the
Pricebookobjects in your Salesforce account.
Customize product pricing on orders
In the Salesforce CPQ, you can optionally customize the unit price of a product on a quote. If you customize the price, this causes the information to differ from the price that’s linked to the product on the activated order. In this case, the connector creates a unique price in Stripe to represent the customized price. The Stripe price ID appears on the Stripe ID field for the order.
When you create a data mapping with a customized price for an order, the price appears on the
Order Line level and not the Salesforce
Pricebook Entry level. Pricing is considered customized if any of the related fields (for example, recurring fields, amount, or currency) differ between the price book entry price and the order line price.