25 Aug 2026 — online donation receipts stopped sending (open)

Angie reported that donors stopped receiving emailed tax receipts, and staff stopped receiving copies, from 15 Aug 2026. She confirmed it with a test gift on the live site. She asked whether it coincided with the new site going live.

It is not the website. donate.html has not changed since 31 Jul; the BBOX form ID 82adc758-cd1c-42f0-981c-36c79eaabd08 has not changed since 6 Jul; no commit between 10–21 Aug touches bbox at all. Structurally it could not be: BBOX renders Blackbaud's form and Blackbaud's servers send the acknowledgement. The embedding page has no role in delivery.

What the DNS actually says (queried 25 Aug against 8.8.8.8):

SPF   "v=spf1 include:spf.protection.outlook.com -all"   ← Microsoft only, hard fail, no Blackbaud
DKIM  selector1/selector2 → …onmicrosoft.com            ← Microsoft only; no Blackbaud selector
DMARC "v=DMARC1; p=none; rua=mailto:DMARC@…"

So Blackbaud is not authorised to send as lutheranindianministries.org and never has been — the SPF is identical to the pre-cutover capture in plan/dns-cutover-checklist-2026-08-03.md, so the cutover did not cause it. The gap is long-standing; what changed is enforcement. Blackbaud's documentation indicates they now decline to send for domains without DKIM configured (reported enforcement from 1 Jul 2026). That fits a hard stop on a fixed date with nothing changed in Blackbaud.

Fix: Angie requests the per-account DKIM records and the SPF include from Blackbaud support (their KB gives +include:outboundmail.blackbaud.net for Online Express); add them at Network Solutions alongside the Microsoft records — do not replace the existing SPF, merge into it; one SPF record only. Then make a real test gift and confirm the receipt lands, and ask Blackbaud to re-send acknowledgements for gifts since 15 Aug.

Lutheran Indian Ministries — Home Developer Docs
Integration Guide

Connecting the Donation Form to Blackbaud

This guide explains how to replace the current Netlify form logic with Blackbaud's BBOX (Blackbaud Checkout) script so that donations sync directly to Raiser's Edge / Blackbaud CRM.

Before you start: Log into your Blackbaud Merchant Services or Raiser's Edge portal and add the production domain to the Approved Domains list. The form will silently fail on unapproved domains.

1
Option 1 — The Clean Swap

Replaces the internal fields of the current modal with the official Blackbaud form. Ensures 100% PCI compliance and connects directly to your Blackbaud merchant account. Recommended for most deployments.

Step 1 — Update the Modal HTML in index.html

Find the <div id="m-donate"> section and replace the <form> and its contents with the Blackbaud root div.

Remove:

HTML — remove
<form id="don-form" ...>
  <!-- all form fields -->
</form>

Replace with:

HTML — add
<div id="bbox-root"></div>
Step 2 — Add the Blackbaud Loader Script

Add this script just before the closing </body> tag in index.html:

JavaScript
<script type="text/javascript">
  window.bboxInit = function () {
    // Replace with your actual Blackbaud Form ID
    bbox.showForm('82adc758-cd1c-42f0-981c-36c79eaabd08');
  };
  (function () {
    var e = document.createElement('script');
    e.async = true;
    e.src = 'https://bbox.blackbaudhosting.com/webforms/bbox-min.js';
    document.getElementsByTagName('head')[0].appendChild(e);
  }());
</script>
2
Option 2 — Hybrid (Keep Custom UI)
Option 2

Keeps the custom yellow preset-amount buttons and frequency toggle, and only hands off to Blackbaud when the user clicks "Give Now." The selected amount and frequency are passed as parameters.

Update donSubmit() in the script block of index.html
JavaScript
function donSubmit(e) {
  e.preventDefault();

  const amount    = document.getElementById('don-amt-val').value;
  const frequency = document.getElementById('don-freq-val').value;
  // frequency value is 'one-time' or 'monthly'

  bbox.showForm({
    formId:    '82adc758-cd1c-42f0-981c-36c79eaabd08',
    amount:    amount,
    recurring: frequency === 'monthly'
  });
}

You will still need to add the Blackbaud loader script from Option 1 Step 2 for this approach to work.

3
Key Requirements
  • Approved Domain: Log into Blackbaud Merchant Services or Raiser's Edge and add the production domain to the Approved Domains list. Blackbaud will silently block the form on unapproved domains.
  • Form ID: The ID used above (82adc758-cd1c-42f0-981c-36c79eaabd08) must match the specific Web Form created in your Blackbaud dashboard. Verify this before going live.

Option 1 is right if…

You want the simplest, most compliant path and are OK with Blackbaud rendering the form fields.

Option 2 is right if…

You want to preserve the custom preset amounts and frequency toggle before handing off to Blackbaud's payment screen.

4
Benefits After Integration
  • Direct CRM Sync: Donations automatically appear in Raiser's Edge / Blackbaud CRM — no manual entry.
  • Security: Credit card data never touches LIM's server; it goes directly to Blackbaud's encrypted vault (PCI-DSS compliant).
  • Payment Methods: Once integrated, the form supports Apple Pay, Google Pay, and ACH if those are enabled in your Blackbaud account.

← Back to Site  ·  LIM Developer Documentation  ·  Restricted Access