Please review the updates below and follow the upgrade instructions to upgrade your Payments application.
Salesforce Release Update Known Issue
Enable Secure Static Resources for Lightning Components is a Salesforce Release Update that has been postponed indefinitely. Test Run on this Release Update should remain disabled to use our Virtual Terminal components. This is due to a Salesforce Known Issue.
Table of Contents
(Release Date: 8/26/25)
Breaking Change
Salesforce Connected App Changes
Salesforce recently announced a change to its security policy around Connected Apps, effective August 28th. As a result, Blackthorn recommends verifying that these Connected Apps are installed in your Salesforce orgs.
Blackthorn | Connected App - required to use Blackthorn Events and Blackthorn Payments
Mobile Check-in App - required for using Blackthorn Mobile Check-in
Blackthorn | Mobile Connected App - required for using Blackthorn Mobile Payments
Blackthorn Message - required for using Blackthorn Messaging
Please review the attached pdf for instructions to check that the required Connected Apps are installed and connected correctly.
Bug Fixes
Split Payments: When Split Payments is enabled for an Event and the Event has a Payment Gateway and a Donation Payment Gateway, Attendees can complete the checkout process. Two Transaction records related to the Invoice will be created. Previously, a BT Log with a “Duplicate id in list:” error was also generated.
Invoices: If an Attendee registers for a free Event, the Invoice will be created as expected. Previously, when an Invoice was generated for a free Event, the Invoice’s Payment Status was set to “Unpaid,” and the “Send the Event Payment Request Email” workflow was triggered, sending a payment request email to the Attendee. (Known Issue: 000004688)
Refunds: When a user performs a non-gateway refund on a non-gateway Transaction, the original Transaction’s Retained Amount and Retained Net Amount fields update correctly. Also, their values do not revert when a user edits either the refund or the original Transactions’ fields. Previously, full and partial refunds on non-gateway Transactions did not correctly update the original Transaction fields, and/or they reverted them after an update was made to the original Transaction. (Known Issue: 000004865)
Line Items: If an Attendee registers for a waitlisted Session, the related Invoice’s Line Item for the waitlisted Session will have Total = “0.” Previously, the waitlisted Session’s Line Item listed the Total as the actual cost of the Session. (Known Issue: 000004779)
Transactions: When an Attendee uses an ACH payment method to register for a paid Event on an Authorize.net gateway, the related Transaction will have the Transaction Status set to “Completed” and the Payment Status set to “Captured.” Previously, ACH Transactions were stuck with Transaction Status = “Completed” and Payment Status = “Authorized.” (Known Issue: 000004775)
Enhancement
Historical Sync: The performance of the “PaymentGateway_SyncBatchable” batch job was improved, especially when running a Historical Sync on a Payment Gateway with a large volume of Stripe transactions. Previously, the batch job running the sync failed, and users saw an “Apex CPU time limit exceeded” error.
DocumentLink
Bug
If an Invoice contains values in the DocumentLink Field 3 and DocumentLink Field 3 (Label) fields, the information in those fields will be visible on the related DocumentLink. Previously, the information was not visible on the DocumentLink. (Known Issue: 000004688)
Mobile Payments App
Enhancements
Saved Payment Methods for iOS
The iOS Mobile Payments app’s user interface now includes a “Save card for future payments” checkbox. When submitting a payment via a card reader or by typing in a card’s information, users can check the checkbox to allow their card information to be saved and reused for future payments. This feature can be used both online and offline.
Admins can enable or disable this feature using the custom attribute “Enable_Reusable_Payments.” For example, the following will occur if the mobile device is offline.
If the Payee checks "Save card for future payments," then the Payment Method Status will be set to "Valid."
If the Payee does not check the "Save card for future payments" checkbox, then the Payment Method Status will be set to "One-time."
Click here for information about setting up the “Save card for future payments” feature.
Payment Intents
iOS Mobile Payments app users can now accept payments submitted via a card reader or entered manually. The updated payment submission process now passes the following information to Stripe: Payment Method, customer information, and whether the customer has consented to save the Payment Method by checking the box in the Mobile Payments app.
After completing the transaction, the result is newly created Transaction and Payment Method records linked to the customer in Stripe and Salesforce. If the customer checks the box to allow their Payment Method to be reused, it will also be saved for future use.
Use the Blackthorn Payments | Mobile Settings custom setting, Confirm Payment Intents (bt_stripe__Confirm_Payment_Intents__c), to change where the Payment Intent will be confirmed.
If Confirm Payment Intents is “True” or doesn’t exist, the Mobile Payments app processes the Payment Intent as it currently does, without confirming additional information.
If Confirm Payment Intents is “False,” The Mobile Payments app confirms additional information before confirming the Payment Intent.
Click here for more information about Payment Intents.
Upgrade Instructions
To upgrade Payments to the newest version, go to the Blackthorn Candy Shop.
Important Definitions
Breaking Change
A breaking change is a significant change that requires a package upgrade to see the update.
Off-Cycle or Hotfix Release
A hotfix is a release that corrects a problem that impacted extensive functionality.
If you have any questions, please don't hesitate to contact Blackthorn Support.