Troubleshooting Questions about Checkout

If your donation form includes a customized Process button, it’s important to ensure it doesn’t interfere with payment processing. Improper customizations can cause donation attempts to fail, and Blackbaud Merchant Services (BBMS) may list these transactions as “Not Processed.”
Why This Happens
Older customizations — such as modal upsells, custom validations, or donor cover logic — often use fake buttons or override the default pstep_finish
behavior. These can conflict with the new checkout flow, especially when using digital wallets like Google Pay or PayPal.
Best Practices for Custom Button Handling
Standard Behavior: Use the pstep_finish
button for form submission.
Avoid Fake Buttons: Custom buttons (e.g., pstep-custom
) that trigger modals or validations can break the submission flow.
Avoid Preventing Default Behavior: Overriding pstep_finish
with event.preventDefault()
can interfere with checkout and digital wallet flows.
Watch for Code Locations: Custom logic may be in:
Event listeners
Page wrappers
HTML captions
External JS files (e.g., via FTP)
Risks of Improper Customization
Breaks multi-step submission flow: Luminate Online and Blackbaud Merchant Services perform a handshake to validate and record gifts. Interference can cause failures.
Digital wallet incompatibility: Wallets like PayPal and Google Pay have their own flows that may bypass or conflict with custom logic.
Hard to debug: Custom implementations can require deep analysis of the source and require development tools to identify conflicts.
Steps to Resolve the Issue for Custom Code in the HTML Caption Data Element
Determine who can update your code, either someone on your team, a web developer, or Blackbaud Professional Services.
Locate and edit your donation form
In Luminate Online, go to Fundraising, Donation Management.
Select the All Donation Forms tab.
Find your form and select Edit under the Actions column.
On the left, select Design Donor Screens.
For Donation Form, select Edit.
On the left, highlight the HTML Caption data element.
Select Save and Edit Selected.
Update the “Process” Button Logic. Ensure your form uses the correct
pstep_finish
button. You can use the following JavaScript as an example:document.body.addEventListener("keypress", function(event) {
if (event.keyCode === 13) {
event.preventDefault();
var button = document.getElementById("pstep_finish") ||
document.getElementById("pstep_next") ||
document.getElementById("pstep_finish_validate");
if (button) {
button.click();
}
}
});
Save your changes.
Test the form.
Try different payment methods (credit card, bank account, Google Pay, PayPal) to ensure compatibility.
Publish the form
Note: As of release 25.3.1a, additional logging is available to help identify issues related to button handling and submission flow.

This error can occur when the PayPal account is restricted. For steps to resolve the restriction and remove the error, see the Knowledgebase article, PayPal or Venmo error: "Can't process payment. Try again or contact us for assistance." when using checkout.

On an embedded checkout form, a spinning wheel can occur when custom jQuery code in the Page Wrapper or the donation form's HTML Caption data element conflicts with jQuery code used by Luminate Online.
An update to handle custom jQuery code is coming in an upcoming release, but you can take steps now to resolve the issue. In your Page Wrapper or HTML Caption element, you can either:
Remove the conflicting version of jQuery.
--or--
Update your code to include
jQuery.noConflict()
before the custom jQuery code, so that it doesn't conflict with the existing jQuery version in Luminate Online.
To resolve this issue in the Page Wrapper: Review the configuration of your Page Wrapper for any custom jQuery code that might cause conflict. Make a Copy, then either remove the jQuery code or include jQuery.noConflict()
. For editing guidance, see, Edit an existing version of a wrapper.
To resolve this issue in the HTML Caption element on your form:
Go to Fundraising, Donation Management.
Select Manage from the Actions column for the campaign.
Select Edit from the Actions column of the donation form.
On the left, select Design Donor Screens.
In the list of Donor Screens, select Edit from the Actions of the donation form.
In the Form Designer right pane, select the HTML Caption element and click Save Order and Edit Selected.
In the lower portion of the Form Designer, select the Edit Data Element tab.
Locate the jQuery code that was added to your form. For example, in the image below, jQuery version 1.7.2 was added.
Remove any custom jQuery code or include
jQuery.noConflict()
.Click Finish.
Validate the jQuery version in the browser console with the command,
$.fn.jquery
. The jQuery version should return as 3.7.1.

Checkout-enabled donation forms with custom Donor Cover code may face an issue where transactions are marked as not processed if the fee cover amount isn't added to the user_donation_amt
field.
To ensure that final amount, including the fee cover, is correctly reflected to the donor and processed fully, make sure the custom code writes the final amount to the user_donation_amt
field. This code might be located in your Page Wrapper or donation form.
To resolve this issue, you can either:
Update the custom Donor Cover code to ensure the final amount is processed
--or--
Remove the custom Donor Cover code
To update the code, find the Donor Cover code in your Page Wrapper or donation form. For example, if you have:
$('.donation-level-user-entered input[type="text"]').val(donateAmt);
Update the code to
$('#user_donation_amt').val(donateAmt);

This message can occur when an existing merchant account has a gateway set for the S1300-Tag version of classic Blackbaud Checkout, whether or not the feature was used. The message displays when trying to update an existing campaign's merchant account.
Resolving the message best depends on whether you want to use the S1300 S-Tag classic Blackbaud Checkout version.
If you do not want to use the S1300 S-Tag classic Blackbaud Checkout, and you want to update your existing campaign, disconnect classic Blackbaud Checkout from the original merchant account using the following steps:
Note: The following steps change the behavior of all donation campaigns that use the merchant account.
Go to Setup, then Product Configuration.
In Merchant Account, select Edit next to the existing merchant account.
In the Legacy options section, change the Legacy Blackbaud Checkout Account selection to No Gateway Selected.
Select Save.
Return to edit your campaign, select your new checkout merchant account, and Save.
However, if you do not yet want to disable the S1300-Tag version of classic Blackbaud Checkout from use everywhere, make a transition merchant account to allow for migration of certain donation campaigns to use the new checkout, while other campaigns can continue to use the classic Blackbaud Checkout. Follow these steps for campaigns that will use the new checkout:
Make a transition merchant account:
Go to Setup, then Product Configuration.
In Merchant Account, select Create Account.
Configure all of the options in the Legacy options section except the field for Legacy Blackbaud Checkout Account.
Select Save.
Update the existing campaign to this new transition merchant account to allow migration.
Go to Fundraising, then Online Giving.
In the Campaigns list, select Edit for the appropriate campaign.
Select Choose Financial Options and select the new transition merchant account.
Save your change.
Update the same campaign to now use the new checkout gateway.
Go to Fundraising, then Online Giving.
In the Campaigns list, select Edit for the appropriate campaign.
Select Choose Financial Options and select the merchant account appended with "Checkout" from the list.
Save your change.

Sometimes, messages or errors coming from Stripe elements appear in the console of Mozilla Firefox. The errors do not prevent payment processing and are related to cross-site tracking.

Sometimes, the donateCheckout API method can result in the error, "There was a problem encountered while processing your donation," when the payment zone is not passed as an argument in the method. When this occurs, transactions will not process and the call gives a 404 error that the resource is not found.
To resolve this, ensure that you first execute either getDonationFormInfo or getTeamraiserConfig before calling donateCheckout
.

Sometimes this error occurs when custom JavaScript in a reusable PageBuilder page conflicts with code in Luminate Online. To resolve this, review your reusable PageBuilder pages for custom JavaScript and remove the custom code.
This error can also occur when you have the CAPTCHA data element on your form. The new checkout automatically provides reCAPTCHA, so to resolve this error, remove the CAPTCHA data element from your form. See Knowledgebase article, Should I remove reCAPTCHA/CAPTCHA from a checkout form in Luminate Online?