Payment Methods
  • 01 Sep 2022
  • 12 Minutes to read
  • Dark
    Light

Payment Methods

  • Dark
    Light

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 Method, ite takes 4-5 days to be verified.

  • Virtual Terminal
    Manually enter the Payment Method through a popup or embedded Visualforce Page component. This Virtual terminal currently supports card 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. Utilizing our REST or Apex API on your mobile device.
  • Using our Visualforce Page Component, Virtual Terminal in Salesforce1.

Initial Setup

Setup Wizard

When you click Grant Access in the Payments Setup Wizard, a "Charge Card" Record Type is created. If you select Yes for ACH payments, an ACH Record Type is created as well. 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 Methods 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 "Charge 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 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.

  • Street Address (Optional)
    This 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 card details on the Payment Method.

When a "Valid" Payment Method 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 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 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 the Disable Fingerprint Matching (ACH) setting 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.

Creating an ACH Payment Method

  1. Navigate to the Payment Methods 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 "ACH" for the Record Type.

  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 TwoYour 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)
      Email is not a required field, however, we highly recommend requiring it as we use email for Stripe 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 Address 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 IDCustomer ID, and Fingerprint fields are populated.When using External Accounts as part of Stripe Connect, there will be no Customer ID 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 (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 Message and Error Type that will provide information on why the Payment Method is "Invalid".

For Authorize.net

  1. Navigate to the Payment Methods 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 "ACH" for the Record Type.
  3. Required ACH details to enter:
    • Holder's Name
    • Account Number
    • Routing Number
    • Account Holder Type
  4. Set the Echeck type (CCD, PPD, WEB).
    Kindly 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 contact and/or account for all Payment Method records.

  • Optional Fields

    • Street Address 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 and Customer ID fields are populated.

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 Message and Error Type that will provide information on 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 WEB transaction 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 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

This feature was introduced in Payments version 4.52. If you were a payments customer before v4.52, please edit your Payment Method page layout and add the Remove From Gateway checkbox.

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 Remove From Gateway button or check the Remove From Gateway field.

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 on a Payment Method for a new customer, the Stripe 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.
  3. When the Contact, Account, or Lead is set on the Stripe Customer record, the newly created Payment Method will inherit the same Contact, Account, and Lead as well.

Remove the Payment Method Parent Object

If you wish to remove the Payment Method parent -

  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 the Edit button.
  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 year 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.