The Soapbox Engage Donations app allows organizations to both collect recurring donations as well as use Authorize.net as a payment gateway. In some cases, two transactions may appear to represent the first of a series of recurring donations. This is due to Authorize.net's unique approach to not immediately charging the credit card for the initial recurring donation, and due to Authorize.net's Automated Recurring Billing (ARB) system only processing recurring payments once a day.
Instead, there is a chance that the credit card may be charged on the subsequent day.
For example, if a donor successfully submitted a $50 monthly recurring donation on the Donations app page, the following situation may happen.
- An ARB subscription is created in Authorize.net representing the recurring donation series.
- An authorization (but not a charge) may be successfully processed for the initial donation.
- The Donations app records the initial transaction in Soapbox Engage.
- The Donations app send an integrated CRM this first transaction information.
- The next day, Authorize.net completes the charge of the credit card for the initial donation.
- The Donations app receives a webhook request from Authorize.net saying that a payment has been made in the series of Donations.
- The Donations app records this webhook's information as a second transaction related to this recurring donation series, even though technically it is the same transaction as previously processed.
- The Donations app send an integrated CRM this second transaction information.
Soapbox Engage has logic that attempts to handle this situation gracefully and avoid duplicate data. Typically, the recording the data of the submission of the form as the initial recurring donation date, and a subsequent webhook by Authorize.net will be ignored within a 24 hour window of the initial transaction submission.
However, this isn't perfect. If multiple payments, typically with the same transaction ID, appear related to recurring donation subscription in Soapbox Engage, it is very likely due to this timing situation by Authorize.net. To clean this data in your Soapbox Engage account account, please open a ticket in our support portal for our support team to lend a hand.