May 2023 - Version 5.103
  • 31 Aug 2023
  • 3 Minutes to read
  • Dark
    Light

May 2023 - Version 5.103

  • Dark
    Light

Article Summary

Once the updates listed below have been reviewed, please 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 in order to use our Virtual Terminal components. This is due to a Salesforce Known Issue.

Upgrade Instructions

To upgrade Payments to the newest version, go to the Blackthorn Candy Shop.

New Virtual Terminal Feature

Virtual Terminal now supports ACH Direct Debit using Payment Intents with Stripe for enhanced Nacha regulation compliance.

  • Webhooks related to ACHv2 Payment Methods will process and update the appropriate record(s) in Salesforce successfully while ensuring no errors are created.
  • The following mandate fields have been added to the Payment Method object:
    • Mandate Accepted at (date/time field)
    • Customer Acceptance Type
    • IP Address
    • User Agent
  • The ACH (Bank Account) page layout was updated to include the new Mandate Data section where the new fields are visible.
  • Blackthorn Payments (User) and Blackthorn Payments (Admin) permission sets were updated to include edit access to the new fields.
  • “Enable Payment Intents for ACH PMs,” a new custom setting, was added to Blackthorn Pay - Trigger Settings. Enabling the new setting will allow users to send ACH payments through Stripe’s Payment Intents endpoint (ACHv2).
    1. Go to Custom Settings.
    2. Click Blackthorn Pay – Trigger Settings.
    3. Set Enable Payment Intents for ACH PMs = “True”.
    4. Click Save.
  • When ACH Payment Intents are enabled, users will see the mandate acceptance text in the Virtual Terminal if the selected ACH Payment Method does not have the required mandate details.
  • When ACHv2 is enabled and a new or existing Stripe ACH Payment Method is charged via the Virtual Terminal, the mandate details including the following are recorded on the new Payment Method record.
    • Mandate Accepted at (date/time of acceptance)
    • Customer Acceptance Type (online)
    • IP address
    • User Agent (browser details)
  • When collecting mandate details in the Virtual Terminal, the Statement Descriptor from your Stripe account, located under Settings > Public details, will be displayed in the mandate text.
  • You can read more about using ACH Direct Debits with Stripe here: https://stripe.com/docs/payments/ach-debit

Enhancements

A global method that allows customers to process certain Stripe Billing webhook types asynchronously instead of via the Blackthorn batch jobs was added. If the Process Async checkbox = “True”, the existing web processing batch jobs will skip those webhooks.

Blackthorn customers are responsible for adding the logic that 1) sets the records they want as Process Async and 2) calls the async method to process them. The following example code creates a before trigger to check the Process Async box and an after trigger to call the async method.

trigger ProcessWebhooksAsync on bt_stripe__Webhook_Event__c (before insert, after insert) {
  
  if (Trigger.isBefore) {
    for (bt_stripe__Webhook_Event__c webhook : Trigger.new) {
      if (webhook.bt_stripe__Type__c == 'customer.created') {
        webhook.bt_stripe__Process_Async__c = true;
      }
    }
  }
  
  if (Trigger.isAfter) {
    for (bt_stripe__Webhook_Event__c webhook : Trigger.new) {
      if (webhook.bt_stripe__Process_Async__c && webhook.bt_stripe__Type__c == 'customer.created') {
        bt_stripe.ProcessEventStripeAsync(webhook);
      }
    }
  }
  
}

NOTE: Replace 'customer.created' or add additional webhook types as needed.

Bug Fixes

  • The Stripe webhook type ‘charge.refund.updated’ is now supported and will processes correctly. Once processed, the Webhook Event’s Not Supported field will be set to “False” (or not checked) and the refund Transaction’s Transaction Status will be set to “Failed”. (Known Issue: 000002637)
  • Currently, PayLink doesn’t support allowing users to retry a payment after an initial failure. We’ve corrected the user interface to prevent users from retrying to make a payment, which resulted in an error. This update will happen on Tuesday, May 9 when the PayLink front end release occurs. (Known Issue: 000002644)
  • An error caused by clicking the Deploy Stripe Billing button in the Blackthorn | Payments Admin tab has been fixed.
  • The following limitation has been added to the Check 21 Integration.
    • A warning message will appear when the Transaction to Account rollup batch job attempts to roll up more than 10,000 Transactions related to a single Account. This message lets users know the rollup job is approaching Salesforce limits and will appear as a Blackthorn Log.
    • If the batch job detects more than 40,000 Transactions rolling up to a single Account, the job will create a cap at 40,000 Transactions and generate a Blackthorn Log recommending users disable the batch job via Custom Settings.

If you have any questions about this or need help with testing, please don't hesitate to reach out to Blackthorn Support.