Connect Raiser’s Edge NXT using the Fundraise Up API

Learn how to send donation data from Fundraise Up to Blackbaud Raiser's Edge NXT.

Fundraise Up’s native integration with Raiser’s Edge NXT is being phased out. If you’re already using it, you can continue doing so for now — but if you disconnect it, you won’t be able to reconnect. New organizations can no longer activate the integration.

To keep sending Fundraise Up data to Raiser’s Edge NXT, you can build a custom connection using the Fundraise Up API. This article explains how to set up a one-way sync to your Raiser’s Edge NXT account.

This integration requires development resources. If you need a ready-to-use solution, consider third-party integration platforms like Omatic Cloud or Zapier.

Before you begin

 
Link copied

To build this connection, you'll need:

  • Access to your Fundraise Up Dashboard with Organization Administrator role (required to manage API keys).
  • Admin access to your Raiser’s Edge NXT environment.

Step 1: Create an API key

 
Link copied
  1. Go to Dashboard > Settings > API keys.
  2. Click Create API key.
  3. Enter a descriptive name (for example, "RE NXT Integration").
  4. Choose Live data to sync real data. Use Test data if you’re testing.
  5. Select Retrieve donation data permission.
  6. Click Create API key.
Treat this API key like a password and store it securely.
We recommend creating a dedicated API key specifically for this integration. Only grant the minimum permissions needed.

If you're working with subaccounts, make sure you generate the API key from the correct subaccount.

Make authenticated requests

 
Link copied

Include your API key in the Authorization header using Bearer authentication:

1curl -H "Authorization: Bearer YOUR_API_KEY" \
2     https://api.fundraiseup.com/v1/donations
3

All requests must use HTTPS. HTTP requests are not accepted.

Step 2: Understand the key data objects

 
Link copied

Your CRM sync will use these Fundraise Up entities:

  • Donations. Includes amount, currency, status, type, timestamp, and unique Fundraise Up identifiers.
  • Supporters. Name, email, phone, mailing address, and preferences.
  • Recurring plans. Frequency, status, start date, donation amount, and next installment date.
  • Campaigns. Used to categorize donations.
  • Designations. Specifies the program or fund selected by the supporter.
  • Tributes. Optional tribute data (in honor or in memory of someone).

Each object is accessible through the API. Details on structure and fields can be found in the API reference.

Step 3: Retrieve data

 
Link copied

Your integration service will need to periodically poll (query) the Fundraise Up API to check for new or updated records since the last sync.

Use GET requests to fetch data from these API endpoints.

Collection endpoints

 
Link copied
  • GET /v1/donations
  • GET /v1/supporters
  • GET /v1/recurring_plans
  • GET /v1/campaigns
  • GET /v1/designations
  • GET /v1/tributes

Use limitstarting_after, and ending_before for pagination.

Detail endpoints (by ID)

 
Link copied
  • GET /v1/donations/{donation_id}
  • GET /v1/supporters/{supporter_id}
  • GET /v1/recurring_plans/{plan_id}
  • GET /v1/campaigns/{campaign_id}
  • GET /v1/designations/{designation_id}
  • GET /v1/tributes/{tribute_id}

These are useful for re-sync attempts or fetching full record detail after a list query.

Event-driven updates using Zapier

 
Link copied

If you prefer event-based syncing over polling, you can use Zapier to listen for Fundraise Up triggers.

TriggerDescription
New DonationTriggered when a new donation is created.
Update DonationTriggered when an existing donation is updated.
New RecurringTriggered when a new recurring plan is created.
Update RecurringTriggered when a recurring plan is updated.
New SupporterTriggered when a new supporter record is created.
Update SupporterTriggered when an existing supporter is updated.

Zapier can then trigger a sync job in your system. Fundraise Up doesn’t support direct webhooks to external URLs. Learn more about Zapier integration →

Syncing historical data

 
Link copied

To sync historical data when first setting up the integration or backfilling your CRM, you'll need to perform a historical data sync.

To load past records:

  1. Use starting_after and ending_before parameters with an existing object ID.
  2. Fetch data in batches using limit. This parameter specifies the number of records to display per page, ranging from 1 to 100.
  3. Process each batch sequentially.

Step 4: Choose field mapping strategy

 
Link copied

Field mapping is a critical step where you define how Fundraise Up data fields correspond to fields in the Raiser’s Edge NXT. Correct field mapping ensures that Fundraise Up data is stored in the right places in your CRM and avoids sync errors.

Principles of effective field mapping

 
Link copied
  • Identify corresponding objects. Define which CRM objects correspond to Fundraise Up entities (for example, donationgift, supporterconstituent).
  • Match data types. Ensure the data types are compatible. Transform values as needed (for example, string to picklist).
  • Handle required fields. Identify which fields are required in Raiser’s Edge NXT and ensure you supply values, using defaults if needed.
  • Store Fundraise Up IDs. Always store Fundraise Up’s unique IDs in your CRM. These are essential for update logic and deduplication.
  • Include custom fields. Map any custom fields you collect for supporters or donations.

Example: Fundraise Up to Raiser’s Edge NXT

 
Link copied
Fundraise Up objectFundraise Up PropertyRaiser’s Edge NXT objectRaiser’s Edge NXT property
staticValueFundraiseUp'giftbatch_prefix
staticValueTRUEgiftis_manual
donationIDgiftID
donationdonation dategiftdate
donationamountgiftamount
donationsupporter is anonymousgiftis_anonymous
donationstatusgiftgift_status
donationgift post statusgiftpost_status
donationdefault fundgiftfundId
donationdefault campaigngiftcampaignId
donationdefault appealgiftappealId
donationdefault gift subtypegiftsubtype
donationhas been acknowledgedgiftacknowledgement.status
donationcommentgiftcomment
donationdonation dategiftacknowledgement.date
donationamountgiftreceipts.amount
donationstatusgiftreceipts.status
donationreceipt sent dategiftreceipts.date
recurringdefault gift subtyperecurring giftsubtype
recurringcreated daterecurring giftrecurring_gift_schedule.start_date
recurringfrequencyrecurring giftrecurring_gift_schedule.frequency
staticValueFundraise Up'recurring giftbatch_prefix
recurringamountrecurring giftamount
recurringstatusrecurring giftstatus_status
staticValueDoNotPost'recurring giftpost_status
recurringIDrecurring giftID
staticValueTRUErecurring giftis_manual
recurringsupporter is anonymousrecurring giftis_anonymous
staticValueIndividual'constituenttype
donationsupporter titleconstituenttitle
donationsupporter first nameconstituentfirst name
donationsupporter last nameconstituentlast name
donationsupporter emailconstituentemail.address
donationsupporter addressconstituentaddress.address_lines
donationsupporter phone numberconstituentphone.number
donationsupporter mailing list subscribedconstituentemail.do_not_email
donationsupporter address cityconstituentaddress.city
donationsupporter address postalconstituentaddress.postal_code
donationsupporter address countryconstituentaddress.country
donationsupporter address stateconstituentaddress.state

This table is illustrative. Adapt field mappings to match your CRM configuration.

Step 5: Handle deduplication

 
Link copied

Your CRM should prevent duplicate records by using Fundraise Up IDs as primary keys.

  • On sync, check if a record already exists using the Fundraise Up ID (for example, Donation ID or Supporter ID).
  • If found, update it. If not, create a new record.
  • If IDs are missing, use fallback matching logic such as email address and full name.

Step 6: Monitor rate limits

 
Link copied

Fundraise Up's API has usage limits. See the rate limit section for details.

Include retry handling and backoff logic in your integration.

Platform-specific behaviors and limitations

 
Link copied

When sending data to Raiser’s Edge NXT using a custom integration, keep these platform-specific behaviors in mind:

  • Receipt number: Fundraise Up’s Receipt ID cannot populate Raiser’s Edge NXT’s locked Receipt Number field. Map it to a custom field on the Gift record in Raiser’s Edge NXT (for example, Fundraise Up Receipt ID).
  • Canceled recurring plans: ReNXT does not support reactivating canceled recurring plans. If a supporter resumes a plan, create a new recurring gift in Raiser’s Edge NXT.
  • Direct debit donations sync: For direct debit methods like ACH and SEPA, donations only sync to Raiser’s Edge NXT after the payment settles — when the status in Fundraise Up changes to succeeded. This can take several days.
  • Refunds: When a donation is refunded in Fundraise Up, this does not automatically update the original gift record’s status to refunded in Raiser’s Edge NXT. Manually create a corresponding refund adjustment or update the gift's status in Raiser’s Edge NXT to reflect the refund accurately.
  • Batching: Fundraise Up doesn’t assign donations to batches in Raiser’s Edge NXT. Each donation is created as a separate gift record.
  • Bulk sync: Raiser’s Edge NXT doesn’t support bulk inserts — each record must be synced individually. Manual re-syncs using the API will require custom logic.
  • Deletions: Donations synced from Fundraise Up to Raiser’s Edge NXT may not be deletable through the web UI. Consult Raiser’s Edge NXT documentation for data modification and deletion policies.
  • Failed donations: Donations with failed status aren’t synced to Raiser’s Edge NXT, since they aren’t completed gifts. You may choose to log these elsewhere based on your data policies.

Additional resources

 
Link copied

For endpoint details, request formats, and examples, refer to our API documentation.

Alternatives

 
Link copied

If building a custom integration isn't feasible, consider these alternatives:

  • Omatic Cloud: Pre-built integration platform with special pricing for Fundraise Up customers.
  • Zapier: Event-driven automation with Fundraise Up triggers.
  • Importacular: Database-level integration for smaller organizations.
  • Data exports: Manual CSV exports from Fundraise Up for periodic imports.

Each option has different levels of automation and technical complexity to match your organization’s needs.

 

In this article