Connecting your AppExchange product to Stripe – when the 2 systems don’t/won’t sync

Salesforce provides several tools to any partner organisation who wishes to publish an app on their ‘AppExchange’.

The main listing page is: https://appexchange.salesforce.com/

These range of tools help you, the Salesforce partner to

  • manage the listing, including its title, keywords, and associated images/screenshots
  • track who is interested in the app, and
  • handle payment processing of the app licence fee.

The list on the AppExchange you need a few different types of Salesforce environment.

  • A contributing developer organisation – this is the environment where you have developed your cool new app and have tested it ready to upload to the AppExchange
  • A business/partner organisation – this is the environment where you would store the Leads and eventual customers who buy your app. After integrating with a payment solution like Stripe it is also where you would store payment history.

The setup steps for publishing on the appexchange are really well documented on Salesforce and I’ll signpost to a few of the key user guides below if you are setting this up for the first time.

https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/appexchange_checkout_stripe_setup.htm

STRIPE

Stripe is a well known payment solution. You can connect your AppExchange listing to Stripe in order to collect credit card information from a customer and set up their subscription to your product automatically. This has the added benefit of allowing a customer to check out fully online, without requiring your intervention – this is a huge help with scaling.

Once the customer has purchased your app, Stripe controls the recurring billing request and then syncs that data back into your ORG via the Checkout Management App.

https://stripe.com

CHECKOUT MANAGEMENT APP

The Checkout Management App joins your partner ORG with your Stripe account and synchronises customer/payment data between Salesforce and Stripe.

https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/cma_setup.htm

Checkout Management App on AppExchange

https://appexchange.salesforce.com/listingDetail?listingId=a0N3A000000rMclUAE

 

Architecture

 

Stripe Syncing Issue

I was recently working with the team at ClosePlan, who are working on a great new app for ‘Team Selling’ within Salesforce.

The Problem

After configuring their checkout management app, and linking their partner org to their Stripe account everything looked good to go. However, whenever we edited a pricing plan in Stripe, it was not being updated the AppExchange listing.

Sometimes there is a small delay in the Stripe/AppExchange synchronisation but we would make an edit and wait up to 20 minutes and still the new information would not be showing.

TROUBLESHOOTING

The setup guide for AppExchange, Stripe, and Checkout Management app is really useful and using it we tested the web-hooks, usernames, passwords etc for the setup several times.

For those of you setting up your own app here is the overview page: https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/cma_overview.htm.

However, we were still not seeing updated pricing appearing on the AppExchange listing.

AppExchange pricing options

 

The Eventual Solution

After a lot of hair-pulling we eventually tracked this issue down.

The AppExchange listing front end turned out to be connected to an old Stripe account that was no longer in use by the customer. Strangely, you cannot disconnect the AppExchange from an account once linked. We had to raise a Salesforce Case for this to happen.

Once Salesforce had disconnected the Stripe account from the old listing we were able to link Stripe Account 2. That meant that both the Checkout Management App and AppExchange were connected into the same Stripe account.

More information about ClosePlan

Close Deals Faster. Forecast with Accuracy.

Prevent close dates from pushing and avoid late-stage surprises in the sales cycle by managing a more predictable and transparent sales process. With ClosePlan, the path to close is well-defined & teams collaborate to execute the events needed to win.

https://appexchange.salesforce.com/listingDetail?listingId=a0N3A00000Ecr5RUAR

Image from Pexels.com