October 2020 - Version 5.1


October Payments Webinar

Our Payments Webinar will be on October 19th at 11am EST. We'll be inviting everyone to use webcams, chat with us, and ask questions about anything we're releasing! Register for the webinar here.

Once the below updates have been reviewed, please follow the upgrade instructions to upgrade your payments application from the AppExchange.

Breaking Change


Stripe API Update Required

Payments package v5.1 requires Stripe API version 2020-08-27 or above.

Customers need to make sure they are using Stripe API version 2020-08-27 and not a previous version before upgrading to this package. Stripe has included updates to their API. In order to retain payments feature functionality be sure to complete this Stripe API upgrade.

Upgrade Steps for Stripe API:
**Make sure Viewing test data is disabled
Navigate to Stripe Dashboard --> Developers --> Click Upgrade Available button in the API Version section.

**If you would like to return to viewing test data be sure to enable the View test data slider once API is upgraded.


Install Latest Paylink Package

After installing this Payments package(v5.1) you will need to install the latest Paylink package(v1.17) to continue using the PayLink functionality. You can do this either via the Paylink step in the Payments Setup Wizard or use this link: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1I000003B2fw

Upgrade Instructions

  1. Review the new enhancements and bug fixes above.

  2. We added a few new fields to this package. If you are using custom permission sets/profiles, please see the new fields section below to update your profile and or permission sets.

  3. Install the latest version from here.

  4. Navigate to Blackthorn | Payments Admin, click the 'Metadata Updates' tab, and click 'Add Picklist Values' to add 'Spreedly' as a picklist value on Provider on the Payment Gateway object.

  5. Navigate to Blackthorn | Payments Admin, click the 'Metadata Updates' tab to click 'Allow Access To API'. If you do not see this button then access has already been granted and you are all set.

Stripe Billing Users:
Subscription Schedules are included in this package. You'll notice that the Subscription object now includes two record types: Subscription and Subscription Schedule Phase. In order to use these record types properly you'll need to follow the steps below.

  1. Navigate to Blackthorn | Payments Admin → Click Stripe Billing → Click Assign Subscription Record type button → This will update all existing subscriptions to the new ‘Subscription’ record type.
  2. Navigate to Blackthorn | Payments Admin → Click Stripe Billing → Click Deploy Stripe Billing → This will add Subscription Schedule Phase Layout to the Subscription Schedule Phase Record Type and assign the two Subscription record types to profiles.
  3. Remove 'required' as an attribute on Interval on the Price page layout.


  1. Spreedly integration starts now! This will allow users to choose from 120+ gateways and processors. Check out our Spreedly documentation.


Payments processing using Spreedly is currently only available in the Virtual Terminal or through the Transaction object.

  1. Stripe Billing Customers: A new object called Subscription Schedules has been added to the Payments package. This object will be used to store changes to subscriptions over time. Read more here!

Creating a Subscription Schedule


LIMITATION: Webhook Events Initiated from Stripe Dashboard

Currently, customers will not be able to create or update Subscription Schedules from the Stripe dashboard and push to Salesforce. In order to create and update Subscription Schedules the customer will need to kick off the request in Salesforce and push to Stripe.


  1. Custom Settings just got more robust! Three new settings for the Opportunity object were added.

    1. Disable Opp Assign Default Source: Use this setting when you would like to bypass the Default Source from your Payment Gateway Customer. If this box is left unchecked the Payment Method field on the Opportunity record is populated with the value in the Default Source field on the associated Payment Gateway Customer.
    2. Disable Opp Data Validation: This setting allows the user to bypass Payment Method and Coupon validations when saving an Opportunity record.
    3. Disable Opp Generate Subscription: gives the user the ability to stop subscriptions from being created when checking Push to Stripe on the Opportunity record and saving.
  2. A field named Allocation Rollup has been added to the Sales Document object so you can track all Allocations associated with that Sales Document. Now Allocations will roll up to related Sales Documents. Read more about Allocations.

  3. Relationship Settings has the ability to consider Record Types when matching Contacts, Accounts, and Leads.

    1. Note: This Record Type condition must be added to your active Duplication Rules.
  4. Added a Custom Setting called 'Enable Change Data Capture' in Blackthorn | Pay - Trigger Settings to allow for processing of records through a batch job. This will work for our Stripe Billing objects Products and Prices. Users will be able to update records for those objects in bulk and be able to send information to Stripe. Read more about change data capture here.


Change Handlers

If you were a customer experiencing issues with change handlers the enhancement mentioned above will allow you to load the Price and Product objects using batch classes. You will need to enable the Custom Setting and add the Price and Product objects to the Change Data Capture setting in Setup.

  1. Object descriptions can be really useful if you are new to one of our features. We’ve added detail to all of the descriptions corresponding with our Blackthorn custom objects to help our customers understand why an object exists in the package.
  2. Added the ability to grant metadata API access for Government Cloud customers. This allows for an error-free experience when progressing through the Payments Set Up Wizard as a Government Cloud user.
  3. Refactored Dispute logic to only include one Dispute Refund Transaction and allowed the dispute fee to be pulled in from the webhook. Check out more on disputes here.
  4. Increased the size of the Data field on the Webhook Event object to prevent errors when there is a large payload.
  5. Stripe Billing Customers: We’ve added a new field called Billing Cycle Anchor (First Invoice) to the Opportunity object. This will work just as it does on the Subscription object. Now if you’re creating subscriptions through the Opportunity object you can go ahead a set this field to the date you would like your subscription to start billing. Read more about it in our creating subscriptions from opportunities documentation.
  6. Stripe Billing Customers: Added a button to the Opportunity object called Create Subscription. This will allow the Opportunity object to have a similar UX to the Subscription object when it comes to pushing Subscription data to Stripe. Read more about creating Subscriptions from Opportunities here.
  7. Stripe Billing Customers: A Proration Behavior picklist has been added to both the Subscription object and the Opportunity object. This determines how to handle prorations when the billing cycle changes (e.g., when switching plans, resetting the billing cycle anchor, or starting a trial), or if an item’s quantity changes. Read more about Subscriptions here.

Bug Fixes

  1. The field Paid in Full was not populating for invoices once all conditions met the appropriate criteria. This has been fixed so that now the date/time is populated appropriately.
  2. Addressed a verbiage update in the Payments Setup Wizard to update the trial days from 14 to 21.
  3. While executing a transfer to a Connected Account there were times were an unhandled exception would be thrown and fail to invoke a future method. This has been resolved with a fix to one of the permissions to a Stripe object.
  4. Fixed the Payout lookup and Payout Info formula fields on the Sales Document object so that they continue to populate when a Payout is related to a Sales Document.
  5. Added XSS fixes to the Transaction object for refunds to address findings in the security review.
  6. Updated the Payments REST API to include customer attributes on Transaction
  7. Fixed a null pointer error that was occurring in the last package when pushing an Opportunity to Stripe.
  8. Added a fix for Disputes to correct an issue where the Salesforce record was not being updated with the proper status.
  9. Corrected a bug where Auth.net was throwing an error for duplicate transactions. This was occurring with scheduled batch jobs that had an Auth.net Payment Method.
  10. Fixed a bug where a new Payment Gateway Customer was being created when using Paylink even though there was an existing Payment Gateway Customer associated with the Transaction.
  11. Stripe Billing Customers: Added a fix so error messages would be populated if a Subscription update did not successfully push to Stripe.

New Fields/Layouts

  1. A ‘Create Spreedly Gateway’ button has been added to the Payment Gateway.
  2. Fields labeled Spreedly Environment Key, Spreedly Configured Gateway, and Gateway Token were added to the Payment Gateway object.
  3. Allocation Rollup has been added to the Sales Document object.
  4. The field Set All Email Fields has been renamed to Match All Email Fields on the Relationship Setting object.
  5. Stripe Billing Customers: A new button labeled Create Subscription has been added to the Opportunity object.
  6. Stripe Billing Customers: A picklist labeled Proration Behavior was added to the Subscription and Opportunity object to support added Stripe features.
  7. Stripe Billing Customers: The Plan object has been renamed to Price. Check out more information here.
    • Note: The API Name did not change, but you will see Price referenced on Object/field labels with this update.
  8. Stripe Billing Customers: Billing Cycle Anchor (First Invoice) has been added to the Opportunity object.

iOS Mobile Payments App Updates

Note: These enhancements are available only in the iOS app v1.1.1

  1. Enhancements to Check21 integration to better support mobile check processing.
  2. Added Contact and Account lookup fields on the "Mobile Payments" home screen.
  3. Provided a 'Tokenize Card' option to tokenize credit card and associate to Contact and/or Account via lookup fields.
  4. Implemented a fix for rounding issues that were occurring on some transactions.
  5. Incorporated the Blackthorn brand update with new colors and logo.
  6. Added 'Money Order' as a picklist value on the Accepted Payment Methods fields on the Payment Gateway and Transaction objects.
  7. Check 21 Customers: Added a rectangle to image capture for the check payment method. Devices now have the ability to reorient the rectangle when they have been rotated.

Did this page help you?