Recent Changes

Here you'll find some fixes, improvements, as well as new features to Blackthorn | Payments. Don't worry when we release a new version of the app, we will still add an announcement and send an email to you!

We're here to help

If you have questions on any of these items, don't hesitate to contact support.

Payments app is now paid...

Please keep in mind if you upgrade to version 4.3 +, you will be required to pay for the app after a 14-day trial. Please see our notice.

To receive the latest features, improvements, or fixes please install the latest version of Blackthorn | Payments.


December 2018

Version 4.43, released December 10th

November 2018


Version 4.32

If upgrading from version 4.30 or earlier, please see our additional upgrading instructions, here.

  • IMPROVEMENT: Open-ended payment schedules
    Now create recurring payment schedules that do not end until manually canceled!

  • IMPROVEMENT: Uncaptured Authorized Transactions
    There is a new field on the Transaction object called, Uncaptured Method. This field tells you if an authorized transaction was manually or automatically released.
    To Do: Add the Uncaptured Method field to your charge transaction page layout.

  • IMPROVEMENT: A batch job to delete Blackthorn | Logs after 30 days
    Salesforce storage can fill up quickly if the Blackthorn | Logs are not deleted periodically. This batch job delete Blackthorn | Logs that are older than 30 days.

  • IMPROVEMENT: Permission set for community users
    There is a managed permission set that you can assign to community users for access to Blackthorn | Payments components.

  • IMPROVEMENT: A new lookup field to Payment Gateway has been added to the Payment Schedule object
    Defining the Payment Gateway on the Payment Schedule will roll down to all generated Transactions.
    To Do: Add the Payment Gateway field to your Payment Schedule page layout.

  • FIXED: Related To fields on Payment Schedules are now set on all generated Transactions
    When a Transaction is generated from a Payment Schedule, it inherits all the Payment Schedule's "Related To" values.

  • FIXED: The setup wizard load time has decreased.
    Prior to 4.29, it took around 5 seconds to load. Now it takes 1-2 seconds.

  • FIXED: Reattempt transactions now relate to the original transaction's parent record.

  • FIXED: Transaction due dates that have different formats, ie Australian date format, are now calculated correctly from the Payment Schedule record.

  • FIXED: The partial refund button is now working in the Service Console.

September 2018


Version 4.9

FIXED: Non-stripe Transfer transactions will not be submitted to Stripe.


Version 4.6

FIXED: Related To field in the Virtual Terminal was not prepopulating.

August 2018


Version 4.3

Existing PayLink customers

Upgrading will break your current PayLink field on Transaction and any custom processes. Please follow our upgrade instructions, here.

Upgrade Instructions

Navigate to the Blackthorn | Payments settings tab and click "Update Picklist Values".

  • IMPROVEMENT: PayLink now accepts ACH Payment Methods

  • FIXED: Dispute Evidence not uploading to Stripe

  • FIXED: Updated Currency ISO picklist values on Payment Schedules

  • FIXED: Postal Code not required for ACH Payment Methods

  • FIXED: Cancel and Refund error on Payment Schedules

July 2018


Version 3.85

There are no changes to this version that should break any custom processes.

  • FIXED: The dispute webhook event record, "charge.dispute.updated" would throw an error when trying to process. This webhook is related to updating dispute information like file ids or status changes from Stripe.

  • FIXED: When a "charge.dispute.funds_withdrawn" webhook event processes, our logic creates a refund Transaction off the original Transaction. The amount on the refund Transaction was rounding down to the nearest full value. This was only happening in Salesforce. The disputed amounts in Stripe are correct.

  • FIXED: When adding the "Order" object to the Virtual Terminal, you were not able to see or search for the Order Number within the Parent Object field.

  • FIXED: A few customers had been receiving developer script exception emails related to the webhook service apex job. This was caused by an incorrect character causing the code to fail when processing this type of webhook event record.

  • IMPROVEMENT: Our Virtual Terminal shows updated error messages with a direct link to the failed Transaction or Payment Method record. This allows you to view why the Transaction or Payment Method failed, quickly.

  • IMPROVEMENT: The Virtual Terminal's Payment Gateway field now defines which Payment Methods are shown.

June 2018


  • FIXED: Error with the Virtual Terminal in the recent Summer '18 release.
    Our Virtual Terminal had a Transaction Fieldset error in the latest release because of the updated API.

April 2018

Instructions after install:

  1. Delete the scheduled job, "Blackthorn | Payments Balance Update."
  2. Navigate to Blackthorn | Payments Settings and click the "Upgrade" button.
  • IMPROVEMENT: New object called, "Blackthorn Logs."
    A new object has been created to capture any errors or performance issues with Blackthorn | Payments. This allows you to understand, trace, report, and troubleshoot more efficiently.

  • FIXED: Ghost user assigned to the Blackthorn | Payments Balance Update job.
    When upgrading to a new version, this job was scheduled under Blackthorn Payments, which is not a user in any org and resulted in permission issues.

  • FIXED: Changed the Update Payment Gateway Balance process to a scheduled daily job.
    Customers with high transaction volume were hitting query limits from an hourly job or clicking the "Update Balance" button.

  • FIXED: Changed the Transaction Parent Roll-Up process.
    Customers with high transaction volume were hitting query limits from this trigger. The process has been changed to batch calls (instead of batch and future calls) and will fire on create and update of Transactions. Please Note: If you click the "Recalculate Transaction Parent Rollups (Beta)" button and have high Transaction volume, you will receive a query limit error.

Navigate to the Blackthorn | Payments Settings tab and click the upgrade button to deploy new picklist values.

  • IMPROVEMENT: Support plan options are now included in the setup wizard.
    You receive basic support when installing the app, but can select a paid support within the setup wizard. Help to support our app development by using one of our paid plans, which also comes with multiple benefits and a faster response SLA.

  • IMPROVEMENT: Default Payment Methods through the Virtual Terminal.
    When creating a new Payment Method through the Virtual Terminal, you can set it as the default. This functionality mirrors our current default Payment Method logic.

  • IMPROVEMENT: The Virtual Terminal is available in Communities.
    The Virtual Terminal is available in Communities. For additional information and help with set up, please view our documentation.

  • IMPROVEMENT: New Transaction status value called "On Hold" for Charge, Transfer, and Payout Transactions.
    This "On Hold" status allows the user to put Transaction's that are scheduled for auto-process on hold for whatever reason. When the hold is changed back to "Open", it will get picked up by the daily auto-processing job.

  • IMPROVEMENT: New custom setting to disable Transaction rollup.
    There is a new custom setting that when checked, the Transaction parent rollup fields are disabled. Allowing you to control when updates should be made or if they can happen automatically.

  • IMPROVEMENT: Two new buttons in Blackthorn | Payments Settings.
    The "Process Scheduled Transactions" button immediately processes scheduled Transactions instead of waiting for the daily job to process them. The "Recalculate Transaction Parent Rollups" button automatically updates all the Parent record's rollup fields.

  • FIXED: The status for non-stripe Transactions would automatically update to "Open".
    When creating a non-stripe Transaction and setting the Transaction status to any value, on save, the status would change from that value to "Open". Now, the non-stripe Transactions will save with the original Transaction Status value.

  • FIXED: Webhooks did not update a failed charge Transaction.
    When a webhook updated a failed Transaction, it did not include an error message as to why the Transaction failed. This has been fixed and the Error Message now populates with the failed information.

March 2018

Please view our announcement for upgrading instructions.

  • IMPROVEMENT: Total balance fields for Payment Gateway.
    There are seven new fields for Stripe and Payment Gateway balances. For additional information regarding these fields, click here.

  • IMPROVEMENT: Transaction fees.
    There are eight new fields on the Transaction object to capture Stripe and application fees, net amount, and retained net amount (after any refunds). For additional information on each field, click here.

  • IMPROVEMENT: Available on and balance status.
    There are two new fields on the Charge Transaction Page Layout, available on and balance status, which provide when the Transaction's amount is available in your Stripe account.

  • IMPROVEMENT: Account and Contact insert.
    When a Transaction or Payment Schedule is created where the Account and/or Contact are null, the related Payment Method's Account and/or Contact will automatically populate those fields. Click here for more information.

  • IMPROVEMENT: Transaction's status immediately updates to "Completed."
    Prior, when Transactions were processed, you would have to refresh the page to show the updated Transaction status. Now, the Transaction record immediately shows the updated status when you click "Capture" or "Authorize".

  • IMPROVEMENT: Transaction roll-up fields on Parent Objects.
    When a Transaction parent is selected in the setup wizard, eight new fields are deployed onto that object's Page Layout to summarize the related Charge Transactions. See Transaction and Payment Schedule documentation for more information.

  • IMPROVEMENT: Remove from Stripe checkbox field.
    When this field is checked, it removes the Stripe Customer from Stripe just like the "Remove from Stripe" button functionality. This field was created so that you can remove customers from Stripe through process flows, workflows, visualforce page, etc...

  • IMPROVEMENT: Three validations have been added to the Payment Method object.
    If the Payment Method's currency does not support ACH, American Express, or is not supported by Stripe at all a dynamic validation error will be thrown.

  • FIXED: Webhook fix to prevent duplicates.
    When Webhook Events receive a charge, we have now created logic to look for existing Transactions and match them using the Salesforce ID from the metadata within Stripe to prevent duplicate Transactions from being created.

  • FIXED: Postal Code and CVV are now required for capturing Payment Methods.
    Making these fields required lowered the apps risk of fraud and was mandated by Stripe that we require this in our API.

  • FIXED: Capturing authorized amounts rounded down to the whole amount.
    When authorizing an amount with decimal, ie $100.50, then capturing that amount results in the captured amount rounding down to a whole amount (ie $100). This has been fixed and all authorized Transactions capture the original amount.

  • FIXED: Required "Type" field on Content Version Object.
    This field was accidentally set as required in field-level security settings and blocking customers from being able to upload files. This has been fixed and the "Type" field is required on the Page Layout allowing files to upload successfully.

  • FIXED: Historical sync email match.
    The email match feature connecting Contacts to Stripe Customer records has been fixed.

  • FIXED: Capturing authorized Transactions.
    When trying to capture an authorized Transaction, an error would be thrown about only being able to capture an "Open or Process" status Transaction. This has now been fixed so that you can capture authorized Transactions.

  • FIXED: Capturing a Transaction amount that was less than the authorized amount.
    When capturing a lesser amount than what was authorized was producing the incorrect Payment status. The Payment status now updates "Partially Captured."




  • ADDED: Disputes and Fraud.
    You can now manage Stripe's Dispute resolution process directly in Salesforce. Allowing you to receive, accept, and refund Disputes and submit Dispute Evidence all within your Salesforce Org. Click here for the full announcement on this feature.

  • ADDED: "Upgrade" Button.
    This button will automatically add new fields, picklist values, and other small changes from our app on your existing Page Layouts, Record Types, or Objects instead of you having to do it manually. We will inform you when the "Upgrade" button needs to be clicked.



  • FIXED: Webhook fix to prevent duplicates.
    When Webhook Events receive a charge, we have now created logic to look for existing Transactions and match them using the Salesforce ID from the metadata within Stripe to prevent duplicate Transactions from being created.

  • IMPROVEMENT: Auto-populated Account and Contact fields on Payment Method.
    When a Transaction is completed and captured and the related Payment MethodsAccountandContactfields are null, those fields on the Payment Method will be updated with the Transaction'sAccountandContact` values.



  • IMPROVEMENT: Validation on Micro Deposit fields with ACH Payment Methods.
    If you use a decimal in the micro deposit field, it would break the verification process. So we updated the API call out to strip any characters except the number (ex. ".32" entered, the API call sends "32").

  • IMPROVEMENT: Retained Revenue logic on Non-Stripe Transactions.
    We have now extended the retained revenue logic to non-stripe Transactions. When checking the Non-Stripe field on Transaction, the Transaction Status = Completed, and the Payment Status = Captured.