Skip to main content

Recurring Gift Data Mapping

This document details the field-level mappings between WeGive recurring donation records and Blackbaud Raiser’s Edge NXT recurring gift records.

Object Overview

WeGive Recurring Donation Object

  • Purpose: Represents recurring/subscription donations in the WeGive platform
  • API Endpoint: /recurring_donations/{recurring_donation}
  • Unique Identifier: WeGive recurring donation ID
  • Payment Processing: Automated recurring payment collection

Blackbaud Recurring Gift Object

  • Purpose: Represents recurring gifts and pledges in Raiser’s Edge NXT
  • API Endpoint: gift/v1/recurringgifts/{recurring_gift_id}
  • Unique Identifier: Blackbaud recurring gift ID
  • Stewardship Management: Donor commitment tracking and recognition

Core Recurring Gift Mapping

Basic Recurring Gift Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
idCorrelation ID storageStringBothNoStored in custom field or external reference
amountamount.valueDecimalBothYesRecurring gift amount per installment
currencyamount.currencyStringBothNoDefault “USD”
frequencyfrequencyStringBothYesPayment frequency
statusstatusStringBothNoActive, Inactive, Cancelled, Completed
start_datestart_dateDateBothYesFirst payment date
end_dateend_dateDateBothNoFinal payment date (if specified)

Donor and Constituency

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
donor.idconstituent_idStringBothYesLinks to constituent record
donor.typeDerived from constituentStringBothNoIndividual or Organization
donor.nameDerived from constituentStringBothNoDisplay name for recurring gift

Payment Schedule Configuration

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
frequencyfrequencyStringBothYesPayment interval
day_of_monthday_of_monthIntegerBothNoSpecific day for monthly payments
day_of_weekday_of_weekStringBothNoSpecific day for weekly payments
installmentsinstallmentsIntegerBothNoTotal number of payments
installments_paidinstallments_paidIntegerBothNoPayments completed to date

Frequency Mapping

WeGive FrequencyBlackbaud FrequencyDescription
weeklyWeeklyEvery 7 days
biweeklyEvery two weeksEvery 14 days
monthlyMonthlyOnce per month
quarterlyQuarterlyEvery 3 months
semiannualSemiannuallyEvery 6 months
annualAnnuallyOnce per year
customOtherCustom frequency with specified interval

Status Mapping

WeGive StatusBlackbaud StatusDescription
activeActiveCurrently processing payments
pausedHeldTemporarily suspended
cancelledTerminatedCancelled by donor or system
completedCompletedAll installments processed
failedLapsedFailed due to payment issues
expiredExpiredEnded due to expiration date

Fund Designation and Campaign Attribution

Single Fund Designation

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
fund.iddesignations[0].fund_idStringBothYesPrimary fund designation
fund.namedesignations[0].fund.nameStringBothNoFund display name
amountdesignations[0].amountDecimalBothYesFull amount to single fund

Multiple Fund Designations

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
fund_allocationsdesignationsArrayBothNoMultiple fund splits
fund_allocations[].fund_iddesignations[n].fund_idStringBothYesFund identifier
fund_allocations[].amountdesignations[n].amountDecimalBothYesAllocated amount per payment
fund_allocations[].percentageCalculatedDecimalBothNoPercentage of total gift

Campaign and Appeal Attribution

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
campaign.idappeals[0].campaign_idStringBothNoPrimary campaign attribution
campaign.nameappeals[0].campaign.nameStringBothNoCampaign display name
appeal.idappeals[0].idStringBothNoSpecific appeal within campaign
sourcesource_codeStringBothNoMarketing source tracking

Payment Method and Processing

Payment Method Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
payment_method.typepayment_methodStringBothYesCredit card, bank transfer, etc.
payment_method.last_fourpayment_detailsStringBothNoLast 4 digits of payment method
payment_method.brandcard_typeStringBothNoVisa, MasterCard, etc.
payment_method.expiresexpiration_dateDateBothNoPayment method expiration

Payment Method Mapping

WeGive Payment MethodBlackbaud Payment MethodDescription
cardCreditCardCredit and debit cards
bankDirectDebitBank transfers and ACH
paypalOnlinePaymentPayPal recurring payments
checkPersonalCheckRecurring check commitments

Processing Configuration

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
processorpayment_processorStringBothNoPayment processor used
processor_fee_percentageprocessing_fee_rateDecimalBothNoFee percentage per transaction
auto_retry_failedretry_failed_paymentsBooleanBothNoAutomatic retry on failures
max_retriesmax_retry_attemptsIntegerBothNoMaximum retry attempts

Pledge Integration

Pledge Relationship

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
pledge_idpledge_idStringBothNoAssociated pledge commitment
pledge_typecommitment_typeStringBothNoRecurring vs. one-time pledge
pledge_balancebalance_remainingDecimalBothNoRemaining commitment balance
pledge_payment_schedulepayment_scheduleObjectBothNoScheduled payment dates

Commitment Tracking

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
commitment_amounttotal_committedDecimalBothNoTotal commitment value
commitment_datecommitment_dateDateBothNoDate commitment was made
expected_completionprojected_end_dateDateBothNoExpected completion date
completion_percentageCalculatedDecimalBothNoPercentage of commitment fulfilled

Gift History and Tracking

Payment History

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
paymentsgiftsArrayBothNoIndividual payment records
first_payment_datefirst_gift_dateDateBothNoDate of first successful payment
last_payment_datelast_gift_dateDateBothNoDate of most recent payment
next_payment_datenext_expected_dateDateBothNoNext scheduled payment

Payment Statistics

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
total_paidtotal_paidDecimalBothNoTotal amount paid to date
successful_paymentssuccessful_giftsIntegerBothNoNumber of successful payments
failed_paymentsfailed_attemptsIntegerBothNoNumber of failed payment attempts
average_paymentCalculatedDecimalBothNoAverage successful payment amount

Donor Communication and Stewardship

Communication Preferences

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
send_receiptssend_acknowledgmentsBooleanBothNoSend payment receipts
receipt_frequencyacknowledgment_frequencyStringBothNoPer payment, monthly, annually
thank_you_templateacknowledgment_templateStringBothNoThank you message template
special_instructionsstewardship_notesTextBothNoSpecial stewardship instructions

Recognition and Acknowledgment

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
anonymousanonymousBooleanBothNoAnonymous recurring gift
recognition_namerecognition_nameStringBothNoName for recognition purposes
honor_memorialtributeObjectBothNoHonor/memorial designation
recognition_levelrecognition_tierStringBothNoDonor recognition level

Modification and Lifecycle Management

Recurring Gift Modifications

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
amount_changesamount_adjustmentsArrayBothNoHistory of amount changes
frequency_changesfrequency_adjustmentsArrayBothNoHistory of frequency changes
pause_periodssuspension_periodsArrayBothNoTemporary suspension history
modification_datelast_modifiedDateTimeBothNoDate of last modification

Cancellation and Completion

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
cancellation_reasontermination_reasonStringBothNoReason for cancellation
cancellation_datetermination_dateDateBothNoDate recurring gift ended
completion_datecompletion_dateDateBothNoDate all installments completed
final_payment_amountfinal_gift_amountDecimalBothNoAmount of final payment

Custom Fields and Attributes

Extended Recurring Gift Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
custom_fieldsattributesObjectBothNoOrganization-specific fields
tagsrecurring_gift_codesArrayBothNoCategorization tags
donor_notesdonor_commentsTextBothNoDonor-provided notes
internal_notesinternal_notesTextBothNoStaff-only notes

Sustainer Program Integration

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
sustainer_programsustainer_program_idStringBothNoAssociated sustainer program
enrollment_dateprogram_enrollment_dateDateBothNoDate enrolled in program
program_benefitsmember_benefitsArrayBothNoProgram member benefits
upgrade_opportunitiesupgrade_prospectsArrayBothNoPotential upgrade opportunities

Data Transformation Rules

Amount and Financial Processing

Amount Handling
  • All amounts stored in dollars with 2 decimal precision
  • Currency conversion applied when necessary
  • Historical exchange rates preserved
  • Automatic rounding to nearest cent
Fee Calculations
  • Processing fees calculated per transaction
  • Fee structures updated automatically
  • Net amount calculations maintained
  • Cost tracking for ROI analysis

Schedule and Frequency Processing

Date Calculations
  • Next payment date calculated automatically
  • Business day adjustments for weekends/holidays
  • Leap year handling for annual recurring gifts
  • Timezone considerations for international donors
Frequency Conversions
  • Standard frequency mapping between systems
  • Custom frequencies converted to closest standard
  • Schedule adjustments for donor preferences
  • Grace periods for payment processing

Status and Lifecycle Management

Status Transitions
  • Automatic status updates based on payment success/failure
  • Business rules for status change permissions
  • Audit trail for all status modifications
  • Notification triggers for status changes

Sync Behavior

Create Operations

New WeGive Recurring Donation → Blackbaud Recurring Gift
  1. Validate recurring gift data and requirements
  2. Map payment method and schedule information
  3. Link to existing constituent
  4. Apply fund designations and campaign attribution
  5. Create recurring gift record in Blackbaud
  6. Store correlation ID for future updates
  7. Initialize payment schedule
New Blackbaud Recurring Gift → WeGive Recurring Donation
  1. Extract recurring gift and constituent information
  2. Map to WeGive recurring donation format
  3. Create or link to WeGive donor
  4. Preserve fund and campaign attributions
  5. Store correlation ID and schedule information

Update Operations

Bidirectional Updates
  • Amount and frequency modifications
  • Fund designation changes
  • Status updates and lifecycle changes
  • Payment method updates
  • Schedule adjustments
Payment Processing Updates
  • Successful payment recording
  • Failed payment tracking
  • Retry attempt logging
  • Next payment date calculation

Cancellation and Completion Operations

Recurring Gift Termination
  • Status update to cancelled/completed
  • Final payment processing
  • Balance calculations and reconciliation
  • Historical data preservation
  • Stewardship transition planning

API Examples

Create Recurring Gift Record

WeGive to Blackbaud Recurring Gift Creation
POST /gift/v1/recurringgifts
{
  "constituent_id": "280bb97a-f71e-4158-9040-85506f6c2e8e",
  "amount": {
    "value": 50.00,
    "currency": "USD"
  },
  "frequency": "Monthly",
  "start_date": "2024-04-01",
  "day_of_month": 1,
  "status": "Active",
  "payment_method": "CreditCard",
  "designations": [
    {
      "fund_id": "f1e8c4a7-2b5d-4c91-8e72-1a3b4c5d6e7f",
      "amount": {
        "value": 50.00,
        "currency": "USD"
      }
    }
  ],
  "appeals": [
    {
      "campaign_id": "c123-4567-8901-2345",
      "appeal_id": "sustainer-program-2024"
    }
  ],
  "reference": "WG-REC-789012"
}

Update Recurring Gift Status

Payment Processing Status Update
PUT /recurring_donations/{recurring_donation_id}
{
  "status": "active",
  "installments_paid": 3,
  "total_paid": 150.00,
  "last_payment_date": "2024-06-01T10:30:00Z",
  "next_payment_date": "2024-07-01T10:30:00Z",
  "successful_payments": 3,
  "failed_payments": 0,
  "blackbaud_recurring_gift_id": "12345678-1234-1234-1234-123456789abc"
}

Recurring Gift with Multiple Designations

Multi-Fund Recurring Gift Example
{
  "amount": {"value": 100.00, "currency": "USD"},
  "frequency": "Monthly",
  "designations": [
    {
      "fund_id": "general-fund",
      "amount": {"value": 60.00, "currency": "USD"},
      "percentage": 60.0
    },
    {
      "fund_id": "scholarship-fund",
      "amount": {"value": 40.00, "currency": "USD"},
      "percentage": 40.0
    }
  ],
  "commitment_type": "Pledge",
  "total_committed": {"value": 1200.00, "currency": "USD"},
  "installments": 12,
  "acknowledgment_frequency": "Annually",
  "attributes": [
    {
      "attribute_category": "Sustainer Program",
      "string_value": "Monthly Heroes"
    },
    {
      "attribute_category": "Enrollment Channel",
      "string_value": "Website"
    }
  ]
}

Error Handling and Validation

Required Field Validation

Critical Fields
  • Constituent ID must exist and be valid
  • Amount must be positive
  • Frequency must be valid enumerated value
  • Start date cannot be in the past
  • At least one fund designation required
Data Quality Checks
  • Amount precision validation (2 decimal places)
  • Date format validation (ISO 8601)
  • Frequency value validation
  • Payment method validation
  • Fund ID existence verification

Common Error Scenarios

Invalid Constituent
  • Error: Constituent ID not found
  • Resolution: Create constituent first or use valid ID
  • Action: Queue recurring gift for manual review
Payment Method Errors
  • Error: Invalid or expired payment method
  • Resolution: Update payment method information
  • Action: Pause recurring gift until resolved
Schedule Validation Issues
  • Error: Invalid frequency or date combination
  • Resolution: Adjust to supported schedule
  • Action: Log warning and use closest valid schedule

Retry and Recovery Logic

Payment Processing Failures
  • Automatic retry logic for failed payments
  • Exponential backoff for retry attempts
  • Maximum retry limits with manual intervention
  • Payment method update notifications
Sync Failures
  • Network timeouts: Retry with exponential backoff
  • Rate limiting: Respect retry-after headers
  • Server errors: Retry up to 3 times with delays
  • Data conflicts: Queue for manual resolution

Performance Optimization

Batch Processing

Recurring Gift Management
  • Process payment schedules in batches
  • Group by payment date for efficiency
  • Parallel processing for independent operations
  • Progress tracking and status reporting
Payment Processing Optimization
  • Batch payment method validations
  • Group payment attempts by processor
  • Optimize retry scheduling
  • Minimize API calls through intelligent batching

Monitoring and Alerting

Payment Success Monitoring
  • Track payment success rates
  • Alert on declining success rates
  • Monitor payment method expiration
  • Forecast payment failures
System Performance Tracking
  • Average processing time per recurring gift
  • API response time monitoring
  • Error rate alerting
  • Throughput optimization

Best Practices

Recurring Gift Management

  1. Clear Communication: Set donor expectations for payment timing
  2. Payment Method Maintenance: Proactive payment method updates
  3. Flexible Scheduling: Accommodate donor preferences
  4. Regular Monitoring: Track payment success and failure rates
  5. Stewardship Planning: Appropriate recognition and communication

Data Quality

  1. Validation Rules: Comprehensive validation before processing
  2. Payment Method Verification: Regular payment method validation
  3. Schedule Optimization: Efficient payment scheduling
  4. Error Handling: Robust error recovery procedures
  5. Audit Trails: Complete history of all changes

Integration Management

  1. Sync Frequency: Appropriate sync timing for operations
  2. Error Monitoring: Proactive error detection and resolution
  3. Performance Tracking: Monitor processing efficiency
  4. Backup Procedures: Regular recurring gift data backups
  5. Testing Protocols: Thorough testing of payment processing

Troubleshooting Guide

Common Processing Issues

Payment Failures
  • Check payment method validity and expiration
  • Verify bank account or card status
  • Review payment processor connectivity
  • Validate payment amount and currency
Schedule Problems
  • Review frequency and date calculations
  • Check for business day adjustments
  • Validate timezone settings
  • Confirm holiday and weekend handling
Status Inconsistencies
  • Compare status between systems
  • Check status transition rules
  • Verify manual status changes
  • Review automated status updates

Data Quality Issues

Missing Information
  • Check field mapping completeness
  • Verify data availability in source system
  • Review sync scope and filtering rules
  • Validate required field population
Payment History Discrepancies
  • Compare payment records between systems
  • Check for duplicate payment recording
  • Verify payment status accuracy
  • Review refund and reversal handling

Performance Problems

Slow Processing
  • Optimize batch sizes for payment volume
  • Review payment processor response times
  • Check network connectivity and latency
  • Monitor system resource utilization
High Failure Rates
  • Analyze payment failure patterns
  • Review payment method management
  • Check processor status and issues
  • Validate payment scheduling logic

Support Resources

Documentation References

Support Contacts