Stripe Configurations
Step 1: Setup Payment Gateway Connection
Before creating a connection, please request the API Version and the Secret Key from the client. The API Version and the Secret Key can be found on the Developer page (the Overview and API Keys tabs) after the client logs in to their Stripe account.
If you’re setting up for test mode, please ensure the client turns on the Test Mode in Stripe before retrieving the secret key.
Stripe has different secret keys for the live and the test mode.
API Version – Log into Stripe → Go to the Developer's page → Overview tab → Find the latest API Version.
Secret Key – Log into Stripe → Go to the Developer's page → API Keys tab → Find Secret key.
Publishable Key - Log into Stripe → Go to the Developer’s page → API Keys tab → Find the Publishable key.
If you are testing Stripe integration, please make sure Test Mode is enabled in Stripe to retrieve the test secret key.
Test Mode – Check off this field if you are testing Stripe integration.
When you are ready to go live:
Log back into Stripe. Turn off the Test Mode to retrieve the live secret key.
Uncheck the Test Mode in GoldFinch, and enter the live secret key.
After you go live:
You can still turn on the Test Mode in both GoldFinch and Stripe to test Stripe transactions.
Stripe uses the test secret key and live secret key to differentiate transactions.
You can see Stripe test transactions or live transactions in your Stripe account by turning on or off the Test Mode.
Active – Check off this field to use this connection.
Create multiple Payment Gateway Connections if you have multiple Stripe accounts
After you create the connection, you must assign the payment gateway connection to users for them to use the connection.
Go to the related list and click on New to add a Payment Gateway User.
Step 2: Setup Payment Console Settings
“Deploy Metadata from Non-Certified Package Versions via Apex” must be checked under the Apex Settings in the client’s instance. Otherwise, Payment Console Settings will throw an error when you try to save.
Default Country – By default, the system should pull in each account’s specific billing address. If the account’s billing address is blank, the system will auto-populate the country with Default Country when creating payment methods/payment transactions.
Default Currency – Currency used for payment transactions.
Payment Request Site - See Step 5 for creating a payment site.
Payment Site Title - Displays on the Payment Link Site.
Tab (Sales Invoice, Sales Order, etc.) - Click “Add Entity” from the dropdown menu to enable a payment terminal for an entity. The system will insert a tab horizontally.
Entity – This is the SObject that you want to enable the payment terminal.
Account Field – Choose an account lookup field from the entity. Payment methods, payment requests, and payment transactions will be linked to the account.
Amount Field – This is the amount that the system will pull to the payment transaction. In most cases, this field should be the remaining balance that the customer will pay.
Currency Field – The system will use this currency for credit card transactions. When Stripe receives the foreign currency amount, it will automatically convert it to the base currency you set up in the Stripe account.
Filters – Used to limit the settings to qualified source records. It takes standard Salesforce query expression.
Example #1 – filter by “GFERP__Document_Status__c != ‘Open’” to only allow credit card transactions for posted sales invoices/credit memos.
Example #2 - filter by “GFERP__Credit_Memo__c = TRUE” to only allow credit card transactions for sales invoices.
If you want to send Payment Request only after the invoice is posted, use Remaining Amount for the Amount field.
Credit Memo Document – when this is turned on, available transaction buttons will be Refund only. The system will ask users to pick an original payment transaction to start the refund process, automatically populate the Credit Memo Reference field on the payment terminal transaction screen, and link the refund transaction to the source credit memo document/record.
Save – Enable payment method creation and update.
Request - Enable payment request. When this is enabled, the payment request setup fields will show.
Authorize – Enable authorization.
Charge – Enable charge.
Void – Enable void to void authorizations.
Refund – Enable refund to refund charges.
Email Template - Payment request email template.
Use {PAYMENT_LINK} to include the payment link in the email.
Use {EXPIRATION_DATE} to include the link expiration date in the email.
Email Attachment (VisualForce Page) - The system will use this page to generate a PDF and attach it to the email if specified. The VisualForce Page must take “id” as a parameter, and renderAs must be pdf. This is the URL that the system uses: “/apex/[VisualForcePage]?id=xxxxxxxx”.
Attachment Filename - This field is required if Email Attachment is specified. This is the pdf filename shown in the email. You can enter a static name, or a dynamic name using {} to include fields from the SObject, for example, “Sales Invoice {Name}“ will render a filename like “Sales Invoice SI-000001.pdf”.
Sender - Defines the “From email address”.
Sender Email (Org-Wide Address) - This field looks up the org-wide email addresses and is required if the Sender is Organization-Wide Address.
Recipient Field - A contact field from the source document. This is the “To email address” that the system uses to generate the payment request email.
Link Expiration Days - Specifies when the payment request link will expire.
Allowed Action - This is the default value system used to generate payment requests and can be overridden by users during the payment request creation process. The options are Authorize or Pay.
Authorize allows customers to authorize a payment.
Pay allows customers to pay.
Allow Partial Payment - This is the default value system used to generate payment requests and can be overridden by users during the payment request creation process. If checked, the customer is allowed to make a partial payment.
Allow Save Payment Info - This is the default value system used to generate payment requests and can be overridden by users during the payment request creation process. This allows customers to save their payment info for future usage. The system will create a payment method attached to the account.
Follow Setting up Email Security Mechanisms to avoid payment request emails going to a junk folder.
Step 3: Create Payment Terminal Button
Go to Setup → Object Manager → Find the SObject you want to configure.
Go to Buttons, Links, and Actions. Create a new Flow Action using the flow “Payment Terminal”. Add the action to the record page.
Step 4: Payment Terminal Additional Setup
Setup Trusted Domain
Go to Session Settings → Trusted Domains, and add a domain for the organization's lightning URL.
Step 5: Setup Customer Payment Portal
Create a new site and set the Active Site Home Page to “PaymentLink”.
Go to Public Access Settings → Apex Class Accesses → add GFCON.PaymentLInkExternalController.
Step 6: Deploy Meta Data from Non-Certified Package Versions via Apex
Go to Apex Settings → Enable Deploy Meta Data from Non-Certified Package Versions via Apex.
Step 7: Permission Sets
By default, only administrators can configure Stripe integration.
Assign the GFERP Electronic Payments permission set to users who need to process Stripe transactions.