Stripe app for Salesforce Platform Configuration
Learn about configuring Stripe app for Salesforce Platform
The Stripe app for Salesforce Platform can be configured in multiple ways depending on your integration requirements. You can build your own custom integration using Flows and Apex with Stripe actions and events, or implement a billing integration with existing out-of-the-box capabilities. These capabilities include the Salesforce data model with Stripe custom objects and dedicated synchronization to map Stripe billing data to Salesforce on create and update operations. Additionally, you can reuse or extend the subscription management template flows to build your automation workflows.
Manage your account
The Account Management tab is where you connect and manage your Stripe accounts in Salesforce. After adding an account, you have two paths:
- Either subscribe to Stripe events from
All Webhook Eventsto build flows or custom logic with Apex for real-time integrations with Stripe. - Or proceed with setting up
Stripe Billing syncby clicking into your account and navigating to the More tab. From there, you’ll also find the option to control how Stripe billing data flows into Salesforce.

API Extension
Starting with version 2. and above, the library supports API Version 2025-04-30, upgrading from the previous version 2022-11-30.
If you’re installing the app for the first time in your instance, 2025-04-30 is automatically selected. If you’re upgrading from a previous version, you can review the latest versions of the extensions under the Extensions section of the app wizard, and install the newest API extension.
Impact
Because these are two separate API extensions, you need to manually update the action and apex nodes where the older API versions are referenced in your integration.
This is how the API version extension impacts the setup:
Note
The 2025-04-30 version adds performDMLSaveAfterCallouts to address limitations with multiple API callouts. This flag controls whether the flow commits database saves (for example, creating Sync_ records, upserting Stripe Billing objects) after all callouts are complete, preventing data loss or inconsistency when making multiple API calls in a single Salesforce flow.
| Salesforce Platform App Version | API Extension Version | Expected Impact |
|---|---|---|
Up to version 1. | 2022-11-30 | No impact |
Version 2. onwards | 2022-11-30 | Limited to single API callout-based Salesforce flows |
Version 2. onwards | 2025-04-30 | No impact |
Billing Data Model
The Stripe Billing Data feature introduces a comprehensive Salesforce data model for Stripe’s billing objects. It lets merchants store and manage key subscription, invoice, payment, and product data directly within Salesforce. This includes custom object representations of the following Stripe objects:
| Charges | Coupons | Customers |
| Discounts | Invoices and Invoice Line Items | Payment Methods |
| Prices | Products | Subscriptions and Subscription Items |
| Subscription Phase | Subscription Phase Items | Subscription Schedules |
Beyond the data model, these custom objects are currently mapped to the following Salesforce objects by default. You can extend or modify these mappings based on your specific use case:
The following Salesforces objects map to Stripe objects:
PricebookEntrytoPriceAccounttoCustomerContracttoSubscription ScheduleContracttoSubscriptionOrdertoSubscription ScheduleOrdertoSubscription
Stripe Billing Sync
If you don’t want to build a custom integration using flows and Apex, use Stripe Billing Sync to automatically sync data from Stripe to Salesforce. It transfers the data and maps it to custom objects using the default Salesforce object mappings. There are two ways to sync, and at the account level you can enable only one at a time.
Real-time sync uses Stripe webhooks to update Salesforce with Stripe billing data immediately when objects are created, updated, or modified. To enable it:
- Navigate to Account Management.
- Select your Stripe account.
- Go to Stripe Billing Sync.
- Choose Real Time from the Sync Type dropdown.
- Toggle the feature on.
- Select whether to sync all objects by default or choose specific objects to monitor.

To make additional changes, click the Update Sync option to either unsubscribe from existing events or subscribe to new ones.

Use Scheduled Recurring Sync to keep data up to date in Salesforce without exceeding API limits—unlike real-time, webhook-based syncing. It’s a global configuration that applies to all Stripe accounts linked to your Salesforce org.
To enable it:
- In the app wizard, open the Stripe Billing app.
- Configure Sync Frequency and Sync Start Time.
- Save the global configuration.
- Open the desired Stripe account and enable Scheduled Recurring.
- After you enable it, you see Next Run Time under Sync Type.
Caution
Always manage scheduled recurring sync in the app wizard under Stripe Billing. Don’t configure or change values in Setup > Environments > Jobs > Scheduled Jobs. The global configuration doesn’t let you choose specific objects—it syncs all objects or none.
In addition to the global Scheduled Recurring Sync configuration, configure Metadata Mappings and Custom Field Mappings to map Stripe metadata and custom field values to Salesforce objects. You must manually add the custom fields in your Salesforce org to see them under the Stripe Object you’re using.
- In the Metadata Mappings section, click Add Object.
- Choose the required Stripe Object, then map the Salesforce Field to the Stripe Metadata key.
- For Custom Field Mappings, this option is currently available for Stripe Invoice only.
Stripe Billing Data
The Stripe Billing Data in Salesforce provides a centralized place to view and manage your Stripe billing data. This primarily includes synced objects and Salesforce page layouts for Stripe objects based on the predefined object model. To get to this app use the app launcher and navigate to Stripe Billing Data.

Transaction Tracking
This feature prevents duplicate processing by flagging Salesforce-initiated Stripe transactions, ensuring that any resulting Stripe events are ignored during synchronization. You can view these transactions by navigating to Stripe API Transactions from the app launcher. There, you’ll see the idempotency key associated with the Stripe Account generating the events.
Note
When creating new flows or activating existing packaged flows, be sure to include the idempotency key so that duplicate transactions are prevented
Work with Sandboxes and environment clones
When creating a Salesforce sandbox or copying production data, ensure the Stripe for Salesforce Platform omits select data from the clone. Don’t copy connections and configurations from production or other environments. Use sandbox templates that don’t include any stripeGC objects.
Configure the Stripe for Salesforce Platform independently on each Salesforce Org and run the setup process on each Salesforce Org.

Remove data copied to a clone
When you copy data from the StripeGC objects to a new Salesforce Org, remove the data by running an Anonymous Apex script to delete it:
delete [SELECT Id FROM stripeGC__Setup_Data__c]; delete [SELECT Id FROM stripeGC__Stripe_Account__c]; delete [SELECT Id FROM stripeGC__Stripe_Event__c]; delete [SELECT Id FROM stripeGC__Stripe_Webhook_Endpoint__c]; delete [SELECT Id FROM stripeGC__Sync_Log__c];
Recursion detection
Stripe’s Salesforce Platform has checks to prevent actions from getting stuck in a loop. A logical loop might happen when a set of resources constantly detects and responds to updates from another set. For example, suppose you have one flow that listens to Stripe’s customer. events and updates a Salesforce Account. Meanwhile, you have another flow that detects updates to the Salesforce Account and updates a Stripe customer. This setup leads to a recurring loop, which would continue indefinitely.
Recursion detection configuration
You can include and exclude specific events from recursion detection. If you’re an admin, you can modify these events in your settings by configuring recursion detection.
The Recursion Detection Configuration can be accessed by following these steps:
- Navigate to Setup > Custom Code > Custom Metadata Types.
- Under Recursion Detection Configuration, click Manage Records.
- Next to Default, click Edit.
Within this configuration, an admin can add either Included Events or Excluded Events.
Configure record retention
To configure record and log cleanup, open Record Retention in the Salesforce app wizard. Use this section to configure settings that automatically remove Stripe Event and Sync Log records from your Salesforce org.
