Payment Methods
  • 30 Jan 2024
  • 12 Minutes to read
  • Dark
    Light

Payment Methods

  • Dark
    Light

Article Summary

Introduction

The purpose of the Payment Method object is to store the method by which you charge your customers. Payment Method types are segmented by Record Type and can be related to Accounts, Contacts, and/or other objects.

Blackthorn Payments is built with PCI compliance in mind, we never store sensitive Payment Method details. Click here for information on PCI compliance.

Obtain Payment Methods

To capture card or bank account information from a customer, there are multiple, PCI compliant, options using Blackthorn Payments.

Phone

If you are not recording your phone calls (if you are, this goes against the tenants of PCI compliance)...

  • Payment Method Object
    Manually enter the Payment Method through the card or ACH Record Type. A real-time API call sends the record to Stripe/Authorize.net to tokenize the Payment Method information. A card can be verified within seconds, where for Stripe ACH Payment Methods, it takes 4-5 days to be verified.

  • Virtual Terminal
    Manually enter the Payment Method through a popup, embedded Visualforce Page, or LWC component. The Virtual Terminal supports credit card, debit card, and ACH Payment Method types.

Web

  • PayLink feature.
  • Public Web Page as part of your website utilizing our REST API.
  • Salesforce Community
    Within a Salesforce Community, you can display the native objects to enter Payment Method information with the default user interface, or to create a custom Community user interface, you can use our Apex API.

In-Person

  • Create your own custom page as part of a web app. Use our REST or Apex API on your mobile device.
  • Use the Virtual Terminal in Salesforce.

Initial Setup

Setup Wizard

When you click Grant Access in the Payments Setup Wizard, a Payment Method with Record Type = "Card" is created. If you select "Yes" for ACH payments, a Payment Method with Record Type = "ACH" is also created. These Record Types live on the Payment Method object and relate to two different page layouts to collect the necessary card or bank account information.

If you need to add ACH payments, navigate back to the Blackthorn | Payments Setup Wizard tab, click on the "Record Types" step, select "Yes" for ACH payments, then click Make magic happen.

Card Payment Method

H_01_09_Card Payment Method


  1. Navigate to the Payment Method object.

Lightning: Click on the App Launcher > Under "All Items" > Click on Payment Methods.

Classic: Click on "All Tabs" ("+" icon in the top right) > Click on Payment Methods.

  1. Click New.
  2. Select "Card" for the Record Type.
  3. Required card details to enter
    • Holder's Name
    • Number
    • Expiration Month
    • Expiration Year
    • CVV
    • Postal Code
If you don't select a Payment Gateway record, the default gateway will be selected.

The fields on the right-hand side of the Payment Method detail section will be automatically populated from Stripe.

  • Email (Optional)
    Email is not a required field, however, we highly recommend requiring it as we use email for Payment Gateway Customer matching logic in Salesforce.

For example, if you already have an existing Stripe/Authorize.net Payment Gateway Customer in Salesforce with a Payment Method and a new Payment Method with the same email is added, it directly relates to the existing Payment Gateway Customer record.

  • Related To Fields
    If you add additional objects to the "Relationships" step in the Setup Wizard, meaning you want additional objects as the Transaction parent, those related objects will show up in this section as a "Lookup Field" along with the Account and Contact lookup fields. We recommend entering an Account and Contact for all Payment Method records.

  • Street (Optional)
    The Street field can be used for additional verification for the Payment Method.

  • The Payment Gateway Data section on the Payment Method record is data created for error logging and storing the tokenized card details on the Payment Method.

When a Payment Method with Payment Method Status = "Valid" is created, the Card ID, Customer ID, and Fingerprint fields are populated.

Fingerprint is not available with Authorize.net gateway.

When using External Accounts as part of Stripe Connect, there will be no Customer ID populated on the Payment Method.
  1. Click Save.
What happens after clicking save?

The card information is sent to Stripe/Authorize.net. The sensitive card information is removed from the Salesforce record and the gateway sends back a token for the Payment Method. This keeps us PCI compliant. No card information is ever saved in Salesforce.

Card Status

When saving the Payment Method record, the Payment Method Status will update to either "Valid" or "Invalid."

  • When Payment Method Status = "Valid", the record can be used to process immediate or scheduled Transactions.

  • When Payment Method Status = "Invalid", the record cannot be used.

There are two error fields on the page layout, Error Message and Error Type that will provide information on why the Payment Method's Payment Method Status is "Invalid".

Blocking AMEX Transactions

Need a way to block American Express Card charges? Read more here.

ACH Payment Method

For Stripe

H_01_09_ACH Payment Method Stripe

Micro-Deposit Verification
Before attempting to create an ACH Payment Method, it may be helpful to confirm that a Salesforce Contact record exists for the bank account holder. This will help ensure that Transaction data will be recorded for the intended person. Many organizations request a voided check to ensure the accuracy of the data to be entered.

Stripe Fingerprint
The Fingerprint is automatically added to an ACH Payment Method once it has been saved and validated. This ID is used to uniquely identify bank accounts.

Users can opt out of using the fingerprint matching logic by using one of our Custom Settings:

  1. Navigate to Custom Settings in Setup.
  2. Click Blackthorn Pay - Trigger Settings.
  3. Click Manage.
  4. Click Edit.
  5. Find "Disable Fingerprint Matching (ACH)" and mark it as "TRUE".

Following the above steps will bypass the Stripe fingerprint matching logic and defer to Blackthorn's legacy ACH matching logic which uses an ACH key and Customer ID.

Add ACH Payment Methods with Non-USD Currencies

To add ACH Payment Methods with non-USD Currency ISO values to Stripe accounts, you need to update the ACH Record Type on the Payment Method object.

  1. Go to Setup.

  2. Click the Object Manager tab.

  3. Go to the Payment Method object.
    Update PM Currency_PM Object

  4. Click the Record Types tab in the left navigation bar.
    Update PM Currency_Record Type

  5. Click ACH.
    Update PM Currency_Click ACH

  6. Click Edit next to Currency ISO.
    Update PM Currency_Edit

  7. In the Picklist Values’ Available Values Column, select the currency ISO code you want to use.

  8. Click Add.
    Update PM Currency_Add ACH

  9. Click Save.

Create an ACH Payment Method

  1. Navigate to the Payment Method object.

Lightning: Click on the App Launcher > Under "All Items" > Click on Payment Methods.

Classic: Click on "All Tabs" ("+" icon in the top right) > Click on Payment Methods.

  1. Click New.

  2. Set Record Type= "ACH".

  3. Required ACH details to enter:

    • Holder's Name
    • Account Number
    • Routing Number
    • Account Holder Type
      The fields on the right-hand side of the Payment Method detail section will be automatically populated from Stripe.
  4. Bank account verification fields: Micro-Deposit One and Micro-Deposit Two Your customer will receive two verification amounts in their bank account. They will need to provide you with those two amounts to make their Payment Method "Verified". Only enter the amounts (such as 35 and 42, there is no need for 0.xx or a decimal).

    • Email (Optional)
      The Email field is not a required field; however, we highly recommend requiring it as we use email for Payment Gateway Customer matching logic in Salesforce.For example, if you already have an existing Payment Gateway Customer in Salesforce with a Payment Method and a new Payment Method with the same email is added, it directly relates to the existing Payment Gateway Customer record.

    • Related To Fields
      If you add additional objects to the "Relationships" step in the Setup Wizard, meaning you want additional objects as the Transaction parent, those related objects would show up in this section as a "Lookup Field" along with the Account and Contact lookup fields.We recommend entering a contact and/or account for all Payment Method records.

    • Optional Fields

      • Street can be used for additional verification for the Payment Method and is only required if you enable it in your Stripe Dashboard.
      • The Payment Gateway Data section is data created by Stripe. When a "Valid" Payment Method is created the Card ID, Customer ID, and Fingerprint fields are populated.When using External Accounts as part of Stripe Connect, Customer ID will not be populated on the Payment Method.
  5. Click Save.

What happens when you click save?

The bank information is sent to Stripe. The sensitive bank account information is removed from the Salesforce record and Stripe sends back a token for the Payment Method. This keeps us PCI compliant. No bank account information is ever saved in Salesforce.

ACH Status
The Payment Method Status will update to "Pending" when the bank information has been entered and the record has been saved. If there is anything wrong with the Account Number or Routing Number you will receive an error message.

When you enter the micro-deposit numbers (this may take a few days to capture) and save the record, the Payment Method Status updates to "Verified". At this point, you are able to capture Transactions. Keep in mind that Transactions generally take 4-5 days to show up as a "Pending" amount in your Stripe account or External Account if Stripe Connect is enabled.

If the micro-deposit numbers are incorrect, the Payment Method Status will update to "Verification Failed". Once the correct micro-deposits are entered, the Payment Method Status will update to "Verified".

If a Transfer sent to this bank account fails, the Payment Method Status updates to "Errored" and will not continue to send Transfers until the bank details are updated.

There are two error fields on the page layout, Error Type and Error Message that will provide information about why the Payment Method is "Invalid".

For Authorize.net

  1. Navigate to the Payment Method object.

Lightning: Click on the App Launcher > Under "All Items" > Click on Payment Methods.

Classic: Click on "All Tabs" ("+" icon in the top right) > Click on Payment Methods.

  1. Click New.
  2. Set Record Type= "ACH".
  3. Required ACH details to enter:
    • Holder's Name
    • Account Number
    • Routing Number
    • Account Holder Type
  4. Set the ECheck Type (CCD, PPD, WEB).
    Visit Authorize.net to know the more about echecks.
  5. Set the Bank Account Type (Optional).
  6. Set the Bank Name (Optional).

For ACH test Payment Methods, a valid Routing Number is required.

You can set the Customer Lookup field if you don't want to create a new customer.

  1. Click Save.
What happens when you click save?

The bank information is sent to Authorize.net. The sensitive bank account information is removed from the Salesforce record and Authorize.net sends back a token for the Payment Method. This keeps us PCI compliant. No bank account information is ever saved in Salesforce.

  • Email (Optional)
    Email is not a required field, however, we highly recommend requiring it as we use email for Payment Gateway Customer matching logic in Salesforce.

    For example, if you already have an existing Payment Gateway Customer in Salesforce with a Payment Method and a new Payment Method with the same email is added, it directly relates to the existing Payment Gateway Customer record.

  • Related To Fields
    If you add additional objects to the "Relationships" step in the Setup Wizard, meaning you want additional objects as the Transaction parent, those related objects would show up in this section as a "Lookup Field" along with the Account and Contact lookup fields.

    We recommend entering a Account and/or Contact for all Payment Method records.

  • Optional Fields

    • Street can be used for additional verification for the Payment Method.

    • The Payment Gateway Data section is data created for error logging and storing the tokenized ID's in Salesforce.
      When a "Valid" Payment Method is created the Card ID, Customer ID.

ACH Status

The Payment Method Status will update to "Valid" when the bank information has been entered and the record has been saved. If there is anything wrong with the Account Number or Routing Number you will receive an error message.

There are two error fields on the page layout, Error Type and Error Message that will provide information about why the Payment Method is "Invalid".

Please note that ACH transactions with ECheck Type = "WEB" can't be refunded. You will see a validation error message if a WEB Transaction is attempted to Refund.

Kindly visit Authorize.net to know the more about eCheck Type Requirements

Card and ACH notes

When entering the CVV and Billing Information fields, there is an AVS (address verification) check and the three fields: CVV CheckPostal Code Check, and Street Check will automatically update with an "Unavailable", "Pass" or "Fail" status.

If you have more than one Payment Gateway set up, manually enter in the Payment Gateway lookup field to make your selection otherwise, if left "Blank", the default Payment Gateway will be used.

Non-Gateway Payment Methods

You can create records which represent a Payment Method, but they are not actually sent to the Payment Gateway. This means that any Transaction linked to these records are symbolic, i.e. not sent to the gateway.

In order to create a Non-Gateway Payment Method:

  1. Create a new Payment Method record.
  2. Uncheck the Send to Gateway checkbox.
  3. Populate all the required fields.
  4. Click Save.

Remove the Payment Method

Once a Payment Method record in Salesforce has synced to the Payment Gateway (Stripe/Authorize.net), you are unable to delete the record. If you need to remove the Payment Method for any reason, that can be done by clicking the Remove From Gateway button or checking the Remove From Gateway checkbox. This functionality was created so historical information can be kept while ceasing all ways to capture transactions.

  1. Navigate to the Payment Method object.
    • Lightning: Click on the app launcher > Under "All Items" > Click on Payment Methods.
    • Classic: Click on "All Tabs" ("+" icon in the top right) > Click on Payment Methods.
  2. Click on the record you want to remove from Stripe.
  3. Click the Remove From Gateway button or check the Remove From Gateway checkbox.

The Payment Method Status will update to "Deleted from Payment Gateway".
H_01_09_Remove Payment Method

  1. When defining the Contact and/or Account fields on a Payment Method for a new customer, the Payment Gateway Customer record will inherit the same Contact and Account as well.
  2. If you set the Contact field on a Payment Method where the Contact is related to an Account, the Account will automatically be added to the Payment Method Account field.
  3. When the Contact, Account, or Lead fields are set on the Payment Gateway Customer record, the newly created Payment Method will inherit the same Contact, Account, and Lead as well.

Remove the Payment Method Parent Object

  1. Navigate to Setup.
  2. In the Quick Find, type in and search for "Custom Settings".
  3. Click Manage next to Payment Method Parents.
  4. Click Delete next to the object you want to remove.
  5. Delete the lookup fields on both the Payment Method object and your object.

Update an Existing Payment Method

Need to update an existing Payment Method?

Sometimes Payment Methods expire, but retain the same card details like card number. When this happens you can edit the expiration date. See instructions below:

  1. Search for the existing Payment Method that requires the update.
  2. Click Edit.
  3. Type in the new 2 digit month value in the Expiration Month field.
  4. Type in the new 4 digit year value in the Expiration Year field.
  5. Click Save.

The updated Expiration Month and Expiration Year fields will be sent to Stripe for the edited Payment Method.

Troubleshooting

If you have received an error with your Payment Method or have a question, please view our Troubleshooting page.