Skip to main content
This guide walks you through creating the Stripe webhooks that connect your own Stripe account to your Salesforce org. A few terms used below:
  • Stripe is the payment processor that charges cards and bank accounts.
  • Salesforce is the platform fusionCore runs inside.
  • A webhook is a URL that Stripe calls to push events back to your org — for example, when a payment succeeds or a refund updates. Without it, fusionCore never hears back from Stripe and payment records stay out of date.
  • A signing secret is a value Stripe generates for each webhook. fusionCore uses it to confirm that an incoming webhook really came from Stripe.
You set up two webhooks: one for live payments and one for test payments. When you finish, you send the signing secret for each webhook to the fusionSpan team, who use it to complete your Payment Provider Account configuration in fusionCore.

Prerequisites

  • Access to your organization’s Stripe account.
  • Your Salesforce org’s site URL, in the form [yourURL].my.salesforce-sites.com. The fusionSpan team can provide this if you do not have it.

Set Up Live Webhooks for Your Salesforce Org

1

Log into Stripe

Log into your Stripe account on the Stripe website. Confirm that you are in the correct account using the account name shown at the top left.
2

Open Developers → Webhooks

Click Developers, then click Webhooks.
The Stripe dashboard with Developers open and Webhooks in the submenu

Developers menu in Stripe

3

Create the event destination

Click Create an event destination.
The Stripe Webhooks page with the Create an event destination button

Create an event destination in Stripe

4

Build the endpoint URL

Your Salesforce site URL is in the form [yourURL].my.salesforce-sites.com.Append it with /services/apexrest/FCORE_PSTRIPE/Stripe.The final endpoint URL resembles https://example-org.my.salesforce-sites.com/services/apexrest/FCORE_PSTRIPE/Stripe.
Enter the URL exactly, with no extra slashes or spaces. A malformed URL means Stripe events never reach your org.
Paste the final URL into the endpoint URL field.
The Stripe event destination form with the endpoint URL field

Endpoint URL field in Stripe

5

Select the events to listen for

Click Select events (above the Add endpoint button) and add the following events:
  • charge.refund.updated
  • payment_intent.canceled
  • payment_intent.payment_failed
  • payment_intent.processing
  • payment_intent.requires_action
  • payment_intent.succeeded
  • customer.created
  • customer.updated
  • setup_intent.canceled
  • setup_intent.requires_action
  • setup_intent.setup_failed
  • setup_intent.succeeded
  • payment_method.updated
  • payment_method.automatically_updated
  • payment_method.detached
The Stripe event selection list with the fusionCore webhook events being added

Selecting the events to listen for in Stripe

6

Add the endpoint

Click Add endpoint at the bottom left.
The Stripe Add endpoint button at the bottom left of the event destination form

Adding the webhook endpoint in Stripe

7

Copy the signing secret

Open the webhook you just created and copy its signing secret. You hand this to the fusionSpan team in the next steps so they can finish setup.
The Stripe webhook detail page showing where to reveal and copy the signing secret

Locating the webhook signing secret in Stripe

Set Up Test Webhooks for Your Salesforce Org

The test webhook is identical to the live webhook, except you create it in Stripe’s test mode.
1

Log into Stripe

Log into your Stripe account and confirm that you are in the correct account using the account name at the top left.
2

Switch to test mode

Switch test mode on at the top left: click your Account, then Switch to sandbox, then Test mode.
The Stripe account menu showing Switch to sandbox and Test mode options

Switching to test mode in Stripe

3

Repeat the live webhook steps

With test mode on, follow the same steps you used to create the live webhook above. The only difference is that you create this one in test mode.Copy the test webhook’s signing secret as well — it is separate from the live signing secret.

Limitations and Common Pitfalls

Use your connected account, not the fusionSpan platform account. Set the webhook up on the Stripe account that will receive the payments. If the webhook is created on the fusionSpan/fusionCore platform account instead, the Credit Card/ACH payment modal hangs on a loading state and payments will not work.
  • The endpoint URL must be exact. Stripe sees a successful HTTP response even when fusionCore ignores an event, so a wrong URL, a stray slash, or a missing event subscription fails silently — Stripe will not retry and you will not see an obvious error. Double-check the URL and the event list before clicking Add endpoint.
  • Subscribe to all 15 listed events and no others. fusionCore only processes the events above. Subscribing to other event types adds noise and can produce processing errors, so keep the subscription to exactly this list.
  • Live and test webhooks have separate signing secrets. Each Stripe environment generates its own secret. Keep them distinct and never reuse a webhook endpoint or signing secret between live and test.
  • Stripe may show an extra event. In test mode, Stripe sometimes auto-adds payment_method.card_automatically_updated, so you may see 16 events instead of 15. This is expected and does not need to be removed.

Next Steps

Once both webhooks are set up, notify the fusionSpan team that setup is complete and securely transfer the signing secret for each webhook (live and test). The fusionSpan team uses these secrets to finish configuring your Payment Provider Accounts in fusionCore.
Send signing secrets through a secure channel. Treat them like passwords — do not email them in plain text or post them in chat.