This article includes instructions for setting up the Stripe integration on a Forms for Salesforce plan. The steps covered below must be followed to meet Stripe’s security and compliance requirements. Depending on your current plan, the steps may be different:
- For Forms for Salesforce Pro & Starter plan, all steps below are needed
- For Forms for Salesforce NativeCloud, or Native Standard/Essentials/Professional plans, you can skip the first four steps and start at Step 5
Step 1: Run the Forms for Salesforce native setup wizard
- Salesforce Setup = Quick Find for VisualForce Page = Look for NativeCloudWizard and run it
- Follow the steps to link a site, either by creating one or linking an existing one.
Step 2: Go to Forms for Salesforce Admin Settings and enable “Classic with Native Payment” beta flag
- Settings and Permissions = Toggle it on
Note: Accounts on a native plan have this feature enabled by default. If you don’t see this option, it’s likely because your account is already on a native plan. You can safely skip steps 2 and 3.
Step 3: Go to the form with the payment field, or the new form they’re looking to create. In the Form Setting, you will see the “Enable Native Payments” checkbox → enable this checkbox.
Step 4: Create a new Remote Site Settings on your organization to allow communication between your Salesforce instance and Stripe.
- Go to your Salesforce Setup
- Search for “Remote Site Settings” in the Quick Find search box
- Click on “New Remote Site”
- Give the site a name (we recommend “Stripe API”) and set the URL to “https://api.stripe.com/”
Step 5: At the Formstack Trust Center, request access to Formstack’s PCI DSS audit which will include our SAQ-D attestation which you should then provide to Stripe for your account in the below step.
Note: This should be sufficient for Stripe but they may ask you to fill out a SAQ-A form for your account.
Step 6: Contact Stripe to authorize your account for this integration.
This is the official Stripe documentation: https://support.stripe.com/questions/enabling-access-to-raw-card-data-apis
Following these steps, you will need to contact the Stripe support team and ask for access.
Once enabled on the Stripe side, the Forms for Salesforce-Stripe integration can be used.
FAQ
Why can’t my payment amount field be automatically populated or set as read-only when using Stripe?
To help prevent fraudulent activity, the field used as the payment subtotal must be entered manually by the user. This field cannot be populated through form rules or automations, and it cannot be set to read-only. If your form’s To Pay Amount field is currently being filled in automatically or locked, the Stripe payment field will not function correctly. To resolve this issue:
- Remove any rules tied to the To Pay Amount field.
- Turn off the Read-Only setting in the field settings so users can manually enter the amount.
We understand this limitation can be frustrating, but this safeguard ensures that users’ cards are never charged amounts they haven’t explicitly entered.
I get an error when trying to process a payment. What’s the next best step for troubleshooting?
If you’re seeing an error when attempting to process a payment, try enabling Failure Email Notifications in the Email Confirmation section of your payment field settings. Then, test the payment again. Enabling this option will trigger an email with more details about why the error occurred, which can help identify the issue.
If you’re still unable to determine the root cause after reviewing the error email:
• For Forms for Salesforce, please open a case with our Formstack Support Team.
• For Stripe-related issues, contact the Stripe Support Team for further assistance.