Payment_Type__c) that tells fusionCore how money can move for a Business Unit (Business_Unit__c, a branded operating division of your organization). An online Payment Type connects that method to Stripe through a Payment Provider Account (Payment_Provider_Account__c) so card and ACH payments can be processed.
Stripe Payment Types support Card and ACH payment methods, can be shown in Portal, and can be saved by members as reusable wallet items (a stored card or bank account).
Prerequisites
- You have the FC Commerce Manage Config Data permission set, which gives you full create and edit access to
Payment_Type__c. - A Payment Provider Account (
Payment_Provider_Account__c) already exists for the Stripe integration you want to use. - The Business Unit you are configuring already exists.
Set Up an Online (Stripe) Payment Type
Open the Business Unit and start a new Payment Type

New on the Payment Types related list
Choose the Payment record type
FC_Payment) is a payment option offered at checkout. The Wallet Item record type (FC_Wallet_Item) represents a saved payment method; you do not create those directly here.
Select the Payment record type
Fill in the core fields
- Payment Type Name — a descriptive name, for example
Society of Innovators Credit CardorSociety of Innovators ACH. - Payment Provider Account (
Payment_Provider_Account__c) — the Stripe provider account this Payment Type uses. This is required for Stripe. - Business Unit (
Business_Unit__c) — the operating division this Payment Type belongs to. - Payment Method (
Payment_Method__c) — for Stripe this isCardorACH. - Deposit Account (
Deposit_Account__c) — the GL account (GL_Account__c) that receives the funds. The lookup only shows GL accounts that belong to the same Business Unit. - Display Payment Type (
Display_Payment_Type__c) — where the Payment Type appears. The full list of values isPortal and Staff,Portal,Staff, andDisabled. OnlyStaffandPortal and Staffappear in the staff pay and refund screens. - Refund Behavior (
Refund_Behavior__c) — how the Payment Type handles refunds. The full list of values isCannot Refund,Refund only if original payment, andValid for All Refunds. For Stripe, useRefund only if original payment. - Staff Order (
Staff_Order__c) — the sort position of this Payment Type in the staff payment-method dropdown.
Supported_Currencies__c) only in a multi-currency org. Leaving it blank supports all currencies. In a multi-currency org, a non-empty list that omits the order’s currency silently hides the Payment Type from the pay screen.
Core fields on a Stripe Payment Type
Set the System Information components
- Payment Component (
Payment_Component__c):FCORE_PSTRIPE/stripePaymentProvider - Refund Component (
Refund_Component__c):FCORE_PAY/orderRefundPaymentProvider - Wallet Item Component (
Wallet_Item_Component__c):FCORE_PSTRIPE/stripePaymentMethod

System Information components for a Stripe Payment Type

Stripe Payment Type record after the components are set
Save
Taking and Refunding a Stripe Payment
Once your Stripe Payment Type is set up, you can take card and ACH payments and issue refunds directly inside Salesforce, so you do not have to switch to an external payment console or re-key data by hand. This section walks you through paying an Order with Stripe and refunding a payment after the fact. When a Stripe payment succeeds, fusionCore creates aFinancial_Event__c record with Financial Event Lines (the accounting record of the money received), plus a parallel Payment_Provider_Event__c record with its own lines (the record of what Stripe did). The same pairing happens for refunds.
Prerequisites
- Complete the Stripe setup steps in Stripe before you take any payments. A missing or incorrect Stripe webhook causes payments to error or fail.
- Confirm a Stripe Payment Type exists for the Business Unit you are paying against (see the setup steps above).
- To take payments as a staff user, you need the
FC_Commerce_Order_PayandFC_Stripe_Accesspermission sets. To issue refunds, you also needFC_Commerce_Refund.
Paying with Stripe
Open the Orders list

App Launcher search for Order
Select an Order

Orders list view
Start the payment
-
To pay as a staff user, click Pay Order.

Pay Order quick action on the Order record
-
To pay as a portal member, click the Portal Checkout URL link.

Portal Checkout URL link on the Order record
Choose a Stripe payment method

Checkout interface with payment method options

Entering payment details

Checkout interface ready to submit
Submit the payment
- As a staff user, enter the amount to pay. To pay an Order partially, set the amount to pay on each Order Line, then click Pay.
- As a portal member, click Checkout.
Confirm the result
Financial_Event__c record with Financial Event Lines, plus a parallel Payment_Provider_Event__c record with its own lines.Refunds with Stripe
Open the Financial Event
Start the refund
Enter the refund details
- Enter a Refund Amount.
- Next to Choose Method, select the payment method for the refund:
- Original payment method (Card or ACH, depending on how the original payment was tendered) — no further input is required.
- Check or Cash — enter a Reference Number and a Date.
- Account Credit — confirm the Account, Contact, Date, Credit GL Account, and Customer Type.
Process the refund
Refund_Behavior__c) set to Refund only if original payment. A Stripe Payment Type cannot use Valid for All Refunds.Payment_Provider_Event__c. A refund can also partially fail, in which case the provider event is marked failed with an error message rather than throwing an error on screen.Limitations and Common Pitfalls
These rules are enforced when you save the record. Because they run in Apex, they do not appear under Setup > Validation Rules; instead, save fails with an on-screen error.CardandACHrequire a Payment Provider Account. Saving a Stripe Payment Type with methodCardorACHfails unless Payment Provider Account is set.- Do not combine
Valid for All Refundswith a provider account. A Stripe Payment Type with a Payment Provider Account cannot useRefund_Behavior__c = Valid for All Refunds; save is blocked. UseRefund only if original paymentinstead — provider-backed refunds flow back through the original payment. - Auto-succeed checkboxes are incompatible with a provider account. When a Payment Provider Account is set, you cannot enable Auto-Update Payment FE To Succeeded (
Auto_Update_Payment_FE_To_Succeeded__c) or Auto-Update Refund FE To Succeeded (Auto_Update_Refund_FE_To_Succeeded__c). Those shortcuts are only for offline methods like cash or check; Stripe events get their real status from the provider. - Saving a card or bank account as a wallet item is restricted. To allow a method to be saved as a wallet item (
Allow_As_Wallet_Item__c), the method must beCardorACH, and a Payment Provider Account must be set. - You cannot edit a Payment Type that already has live wallet items. If any member has saved a wallet item against this Payment Type, you cannot change its payment method, Payment Provider Account, or the wallet-item setting. Migrate or remove the wallet items first.
- One wallet-item Payment Type per Business Unit and provider account. A given combination of Business Unit and Payment Provider Account can have only one wallet-item Payment Type.
- Wallet Item records require Business Unit and Payment Provider Account. On the
FC_Wallet_Itemrecord type, both Business Unit and Payment Provider Account are mandatory. - Installments need a wallet-eligible Stripe method. Installment payments require an active Payment Provider Account and a wallet-eligible method (
CardorACH). A method that is not provider-backed and wallet-eligible — such as Cash or Check — does not appear for installments, even if it works for one-time orders. AlipayandWeChat Payneed “Direct Stripe” enabled. These methods are only available on Stripe Payment Types when theEnableDirectStripeInstancefeature parameter is on. Connected-account (non-direct) Stripe orgs cannot use them.- Sandbox and production accounts do not mix. A sandbox is a non-production copy of your org used for testing. A live Stripe Payment Provider Account does not appear in a sandbox, and a test account does not appear in production. The Payment Type is hidden unless the provider account’s environment matches. If your Stripe method is missing, confirm you are using an account that matches the environment.
- A payment method can silently disappear in a multi-currency org. If the Payment Type lists Supported Currencies (
Supported_Currencies__c) and that list omits the Order’s currency, the method is hidden from the pay screen. Leave the list empty to support all currencies. (Currency filtering only applies in multi-currency orgs.) - Wallet Item payments need all three Stripe components configured. If the saved-method (Wallet Item) component is not set on the Card or ACH Payment Type, saved payment methods will not work at checkout.
- The deposit GL account cannot be deleted while referenced. You cannot delete a
GL_Account__cthat any Payment Type uses as its Deposit Account; reassign first. - Refunds are constrained by the original payment. At refund time, fusionCore offers only the original Payment Type (when its behavior is
Refund only if original payment) or Business-Unit Payment Types set toValid for All Refunds, filtered toStaff/Portal and Staffdisplay and supported currency.Cannot Refundtypes never appear. - Stripe refunds are asynchronous. A refund is submitted to Stripe by a background job and may complete after a short delay; its final outcome appears once the job and webhook reconcile, not instantly in the UI.

