Skip to main content
Released October 30, 2026. Surface Admin · 28 Checkout · 2 Portal · 6 Integrations · 4 API · 1 Legacy · 2

New

Refunds on Chase card and bank payments can now be issued from WeGive, including partial refunds when partial refunds are enabled. If Chase does not confirm the outcome, further refunds on that payment are blocked until it is reconciled with Chase.
Dunning now tracks each failed installment on its own and can re-charge it between notices when automatic retries are turned on. Retries are off by default. Notice count and spacing are configurable, and dunning can be stopped for a single installment.
Organizations limited to one recurring plan per brand can choose Update existing plan instead of Replace existing plans under Brand Preferences. A donor’s new recurring gift then edits the existing plan, keeping its ID and CRM history. Replace remains the default.
Checkout custom questions can save an answer to the recurring plan, optionally into a plan custom field. If checkout creates a one-time gift instead, a fallback gift custom field can be used.
Checkouts can offer honor tributes, memory tributes, or both, with configurable name, email and message fields. Receipts and tribute emails say “In memory of” or “In honor of” to match, and recurring installments carry the type.
Organizations that use fund allocations can ask WeGive to require plan edits to keep allocations matching the plan total. When enabled, the plan editor shows a running allocated total and rejects mismatches. It is off by default.
The journey Analytics tab now offers an all-time range and a per-message comparison table. Ranges are bounded by send date, and Errored counts only messages that errored and were never delivered, opened or clicked.
Reporting dashboard cards now offer a help popover with the report’s query details, filters and when it ran. Gifts recorded offline, with source type organization, are labeled Offline in those details.
The API section of Settings now has a Call Center Virtual Terminal setup button that creates the required login without an engineering request. An existing virtual terminal login is left untouched.
A new Trigger engagements toggle on the Confirm step controls whether imported records fire receipts, triggered messages and journey enrollment. It is on by default. Tag-rule automations that run after the import and outbound webhooks are not affected.
Settings, then Phone Numbers, now has an Edit Credentials option for numbers on your own Twilio account. Leave the auth token blank to keep the saved one. WeGive confirms the number belongs to the new credentials before saving.
Transaction exports now include Deposit Payout Id and Deposit Date, identifying the payout that deposited each gift rather than a later fee or refund payout.
When an organization uses brands, a Salesforce field mapped to brand name now assigns a brand to imported transactions and recurring plans that have none, if exactly one active brand matches. Once a brand is set, Salesforce never changes it.
A new Show pending transactions in the portal setting controls whether pending gifts appear in donors’ transaction history. It is on by default, so pending gifts stay visible unless you turn it off.

Changed

Behavior that worked one way before this release and works another way now.
A pending Finix refund is no longer treated as complete. The payment keeps its amount and status and shows a Refund pending badge until Finix confirms. A failed refund leaves the payment untouched, and the Refund button is disabled while one is pending.
When a donor’s new plan replaces one managed in PayPal, WeGive cancels the old PayPal subscription and archives the old plan only after cancellation is confirmed. If it cannot be confirmed, the new checkout is kept, the old plan stays, and WeGive is alerted to reconcile it.
The donor portal sign-in code email now uses your organization’s name, logo and website, with the subject “Your Example Org sign-in code”. You can add an optional custom message in Portal Settings. This applies to all organizations automatically.
Saved integration secrets such as client secrets and API keys are no longer displayed. Fields show the last four characters, and editing starts empty. Leaving a field blank keeps the saved value.
Organization and integration API responses now return null for each secret, plus a has-value flag and the last four characters. To clear a credential, send it as null and list it in clear_credentials. Anything that read secrets back from these responses will need updating.
Native PayPal wallets now export with the configured PayPal payment method name instead of the card name, and payment method records include the PayPal vault token and customer ID.
SSL status now comes from the certificate’s own validation state rather than a handshake, so aliases mid-setup show Pending validation instead of Issued. The check always returns a result, and a failed lookup shows Couldn’t verify.

Improved

Designation pickers now gray out inactive funds and label them Inactive, but they remain selectable. Fund notes appear as the subtitle for active funds.
Payment and recurring plan detail pages now show an Anonymous row with Yes or No.
Transaction detail and the recurring plan page now show an Anonymous row with Yes or No.
Dashboard lists filtered by a CRM ID or an updated-date range now use selective indexes instead of scanning the whole organization, which speeds them up for large accounts.

Fixed

Overlapping CRM pushes for the same record now run one at a time, and each push uses the record’s latest data, so a later change is no longer lost when two pushes collide.
After a Salesforce allocation sync or a dashboard allocation change, a gift’s primary designation now follows its allocations, so receipts and CRM pushes stop showing a stale fund.
Adding a payment method from the plan or payment edit view now lists the supporter’s logins and preselects the plan’s own login, instead of showing no results.
The recurring plan detail page now shows the date of the first processed charge, or the scheduled start date, rather than the plan’s creation date.
Recurring plan cancellations a donor makes in the portal now appear in Recent Activity, and See all opens a paginated activity view.
The legacy portal now shows the reason given when a recurring plan save is rejected, rather than a generic error. Server and network failures still show the generic message.
The recurring plan importer now accepts semiannual, semiannually, semi-annual and semi-annually, and frequency names are no longer case-sensitive.
Setting a designation to Inactive from the dashboard now persists. Previously the change was not saved and the designation stayed Active.
U.S. receipts now include the first line of the mailing address, which was previously omitted so that only the second line appeared.
Receipt downloads from the dashboard now save with a .pdf extension, even when the supporter’s name contains periods.
Receipt downloads from the donor portal now save with a .pdf extension, even when the supporter’s name contains periods.
The Fee Covered quick filter on the Payments table now filters payments as expected.
Embedded images in fundraiser descriptions no longer spill CSV export cells across rows. Image data is redacted and cells are capped at the spreadsheet limit of 32,767 characters. The legacy editor now accepts images by URL only.
Triggered messages in the v2 dashboard can again be sent after a relative delay or on a fixed date.
The Recurring page’s monthly estimate now updates without a hard refresh, and the Estimated Monthly Total section hides when the total is $0.
Recurring pulls from DonorDirect no longer fail with an HTTP 500 when reference numbers contain a legacy control character. The fix is a stored procedure update that must be deployed to each DonorDirect environment, so contact your account manager.