Skip to main content

Overview

A Payment Provider is a third-party service that processes online payments — credit and debit cards, ACH bank transfers, and digital wallets — for transactions such as memberships, event registrations, donations, and product purchases. In fusionCore, you connect to a payment provider through a Payment Provider Account record (FCORE_PAY__Payment_Provider_Account__c). This record is the configuration that links your Salesforce org to one external payment account (for example, one Stripe account). Once it exists, is validated, and is linked to your Payment Types, fusionCore can route online payments through it.
The fusionCore team connects and implements the payment provider (Stripe) in your Salesforce org. You usually create the Payment Provider Account record and link it to Payment Types; the underlying API keys and webhook are configured during Stripe setup.

Stripe

The full Stripe setup lives in its own section — connecting the account, enabling payment methods, configuring webhooks, and testing. Follow it alongside the steps below when you set up a new provider.

How Your Organization Would Use Payment Providers

  • Membership renewals — collect dues and recurring payments online.
  • Event registrations — process payments for conferences, workshops, and webinars.
  • Donations — accept one-time or recurring gifts.
  • E-commerce sales — take payments for product sales through a portal.

Before You Start

  • The Stripe connection must be in place. Stripe registers itself as the provider named Stripe, and the real API keys live in Custom Metadata — not on the Payment Provider Account record. The fusionCore team sets this up. See Stripe connected-account and webhook setup.
  • To validate a Payment Provider Account, you need the FC Commerce - Validate Payment Provider Account permission set (FCORE_PAY__FC_Commerce_Validate_Payment_Provider_Account). Ask your admin to assign it.

Create a Payment Provider Account Record

1

Open Payment Provider Accounts

In the App Launcher, type Payment Provider Accounts and click Payment Provider Accounts.
2

Start a new record

In the list view, click New.
The New button on the Payment Provider Accounts list view

New Payment Provider Account

3

Name the record

Set the Payment Provider Account Name. This is the name of the Salesforce record itself, for example Society of Innovators Stripe.
4

Set the Payment Provider Name

Set the Payment Provider Name to exactly Stripe. Stripe is the only provider fusionCore supports today, and the value must match the installed provider’s name exactly.
5

Save

Click Save.
The Request Signature Secret (Stripe webhook signing secret) and External Id (the Stripe account id) are filled in during Stripe setup. See Stripe connected-account and webhook setup.

Fields on the Record

The Payment Provider Account holds more than just a name. The fusionCore team typically sets these during Stripe setup, but it helps to know what they do:
  • Payment Provider Name (FCORE_PAY__Payment_Provider_Name__c) — the provider this account connects to. Must be Stripe.
  • External Id (FCORE_PAY__External_Id__c) — the Stripe-side account id. Must be unique across all Payment Provider Accounts.
  • Request Signature Secret (FCORE_PAY__Request_Signature_Secret__c) — the Stripe webhook signing secret, stored encrypted and masked.
  • Is Active (FCORE_PAY__Is_Active__c) — turns the account on. A new account is inactive until you check this box.
  • Validation Status (FCORE_PAY__Validation_Status__c) — Pending, Failed, or Succeeded. Set by the Validate action below. This is separate from Is Active.
  • Validation Message (FCORE_PAY__Validation_Message__c) — explains a failed validation.
The API keys for Stripe are not stored on this record. They live in Custom Metadata that the fusionCore team deploys. The only secret on the record is the Request Signature Secret (the webhook signing secret).

Validate the Account

Validation confirms fusionCore can talk to Stripe with the configured keys and webhook.
1

Open the record

Open the Payment Provider Account you want to validate.
2

Run Validate

Click the Validate action. The status changes to Pending while fusionCore creates a test customer in Stripe.
3

Wait for the result

The screen polls for up to 30 seconds. When Stripe’s webhook confirms the test customer, the status flips to Succeeded. If something is wrong, it sets Failed and shows a Validation Message.
Validation is asynchronous. The Succeeded status is written by an inbound Stripe webhook, not by the Validate action itself. If the webhook has not arrived within 30 seconds, the status is set to Failed even when the account is actually fine. This requires the org’s Stripe inbound webhook endpoint to be configured and reachable — part of the fusionCore team’s Stripe setup.
A validated Payment Provider Account does nothing on its own. To route online payments through it, link it from one or more Payment Types using the Payment Provider Account field (FCORE_PAY__Payment_Type__c.FCORE_PAY__Payment_Provider_Account__c). See Setting up Stripe payment types.

Limitations and Common Pitfalls

  • A new account is inactive. Is Active (FCORE_PAY__Is_Active__c) defaults to off. Check it when the account is ready. Is Active and Validation Status are separate — an account can validate as Succeeded and still be inactive.
  • External Id must be unique. Saving two Payment Provider Accounts with the same External Id is blocked. Duplicate External Ids also break payment processing at runtime, not just saving, so never reuse one.
  • The provider must be installed before you can name the account. If the Stripe provider is not installed, you cannot save a Payment Provider Name, and a name that does not match an installed provider is rejected. The name must match exactly — Stripe.
  • API keys are not on the record. If the Stripe key Custom Metadata is missing or blank, validation fails with a message about a missing secret or public key. The fusionCore team manages these keys.
  • Validation can time out even when the account is good. Because validation waits on Stripe’s webhook, a slow or misconfigured webhook produces a Failed status with a “taking too long” message. Re-run Validate once the webhook is confirmed reachable.