Skip to main content

Gift Data Mapping

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

Object Overview

WeGive Transaction Object

  • Purpose: Represents donations and payments processed through WeGive platform
  • API Endpoint: /transactions/{transaction}
  • Unique Identifier: WeGive transaction ID
  • Payment Processing: Includes payment method, status, and processing details

Blackbaud Gift Object

  • Purpose: Represents donations, pledges, and other contributions in Raiser’s Edge NXT
  • API Endpoint: gift/v1/gifts/{gift_id}
  • Unique Identifier: Blackbaud gift ID
  • Financial Management: Includes fund designations, recognition, and stewardship

Core Gift Mapping

Basic Gift Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
idCorrelation ID storageStringBothNoStored in custom field or reference
amountamount.valueDecimalBothYesGift amount in dollars
currencyamount.currencyStringBothNoDefault “USD”
created_atdateDateTimeBothYesGift date, timezone converted
statusGift statusStringBothNoCompleted, Pending, Failed
reference_numberreferenceStringBothNoExternal reference or check number

Donor and Constituency

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

Payment Method Mapping

WeGive Payment MethodBlackbaud Payment MethodDescription
cardCreditCardCredit and debit card payments
bankDirectDebitBank transfers and ACH
checkPersonalCheckPhysical and electronic checks
cashCashCash donations
wireWireTransferWire transfers
paypalOnlinePaymentPayPal and digital wallets
venmoOnlinePaymentVenmo and peer-to-peer payments
otherOtherOther payment methods

Gift Type Classification

WeGive Transaction TypeBlackbaud Gift TypeSub TypeNotes
donationDonationCashStandard one-time donation
recurringRecurringGiftPaymentPledgePayment from recurring schedule
pledge_paymentPledgePaymentInstallmentPayment toward pledge commitment
grantGrantFoundationFoundation or institutional grant
tributeDonationMemorialMemorial or honor gift
matchingMatchingGiftCorporateCorporate matching gift

Fund Designation Mapping

Single Fund Designation

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
fund.iddesignations[0].fund_idStringBothYesPrimary fund designation
fund.namedesignations[0].fund.nameStringBothNoFund display name
amountdesignations[0].amountDecimalBothYesFull gift 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
fund_allocations[].percentageCalculatedDecimalBothNoPercentage of total gift
Example Multi-Fund Gift Structure (Blackbaud)
{
  "amount": {"value": 100.00, "currency": "USD"},
  "designations": [
    {
      "fund_id": "fund-123",
      "amount": {"value": 75.00, "currency": "USD"}
    },
    {
      "fund_id": "fund-456", 
      "amount": {"value": 25.00, "currency": "USD"}
    }
  ]
}

Campaign and Appeal Attribution

Campaign Tracking

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
appeal.nameappeals[0].nameStringBothNoAppeal display name

Marketing Attribution

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
sourcesource_codeStringBothNoMarketing source tracking
mediumCustom attributeStringBothNoMarketing medium
utm_campaignCustom attributeStringBothNoUTM campaign parameter
utm_sourceCustom attributeStringBothNoUTM source parameter
utm_mediumCustom attributeStringBothNoUTM medium parameter

Gift Recognition and Acknowledgment

Acknowledgment Preferences

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
anonymousanonymousBooleanBothNoAnonymous gift preference
no_thank_youdo_not_acknowledgeBooleanBothNoSkip acknowledgment
tribute_typetribute.typeStringBothNoMemorial, Honor, Celebration
tribute_nametribute.nameStringBothNoPerson being honored/remembered

Stewardship Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
thank_you_sentacknowledgedBooleanBothNoAcknowledgment status
thank_you_dateacknowledge_dateDateBothNoWhen thank you was sent
tax_receipt_sentreceiptedBooleanBothNoTax receipt status
tax_receipt_datereceipt_dateDateBothNoWhen receipt was issued
tax_deductible_amountreceipt_amountDecimalBothNoDeductible portion

Soft Credits and Recognition

Soft Credit Tracking

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
soft_creditssoft_creditsArrayBothNoAdditional recognition credits
soft_credits[].constituent_idsoft_credits[n].constituent_idStringBothYesPerson receiving soft credit
soft_credits[].amountsoft_credits[n].amountDecimalBothNoSoft credit amount
soft_credits[].typesoft_credits[n].typeStringBothNoSolicitor, Volunteer, etc.

Joint Gift Recognition

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
joint_donorsAdditional constituentsArrayBothNoMultiple donors for single gift
primary_donorPrimary constituentStringBothYesMain donor for gift record
joint_recognitionRecognition creditsArrayBothNoRecognition for all donors

Recurring Gift Integration

Recurring Gift Schedule

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
recurring_donation_idrecurring_gift_idStringBothNoLinks to recurring gift schedule
installment_numberinstallmentIntegerBothNoSequence number in series
total_installmentsDerived from scheduleIntegerBothNoTotal expected payments

Pledge Integration

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
pledge_idpledge_idStringBothNoLinks to pledge commitment
pledge_balanceCalculatedDecimalBothNoRemaining pledge balance
pledge_payment_numberinstallmentIntegerBothNoPayment sequence number

Processing and Financial Details

Transaction Processing

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
processorpayment_method_detailsStringBothNoPayment processor used
processor_feefeesDecimalBothNoProcessing fees
net_amountnet_amountDecimalBothNoAmount after fees
processor_referenceexternal_referenceStringBothNoProcessor transaction ID

Bank and Check Details

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
check_numbercheck_numberStringBothNoPhysical check number
check_datecheck_dateDateBothNoDate on check
bank_namebank_nameStringBothNoBank name for check
routing_numberrouting_numberStringBothNoBank routing number
account_numberaccount_numberStringBothNoMasked account number

Custom Fields and Attributes

Gift Attributes

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
custom_fieldsattributesObjectBothNoOrganization-specific fields
tagsgift_codesArrayBothNoGift categorization codes
notesnotesArrayBothNoFree-form text notes
internal_notesinternal_notesArrayBothNoStaff-only notes

Event and Fundraiser Integration

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
event_idevent_idStringBothNoAssociated event or fundraiser
table_purchaseevent_participationObjectBothNoEvent table or ticket details
sponsorship_levelsponsorshipStringBothNoSponsorship tier

Data Transformation Rules

Amount Handling

Currency Conversion
  • All amounts stored in dollars (USD) by default
  • Multi-currency support available
  • Exchange rates captured at time of gift
  • Historical rate preservation for reporting
Precision Rules
  • Dollar amounts rounded to 2 decimal places
  • Large gifts (>$1M) maintain full precision
  • Fee calculations preserve all decimal places
  • Percentage calculations rounded to 4 places

Date and Time Processing

Timezone Handling
  • Gift dates stored in donor’s local timezone when available
  • UTC conversion for cross-system compatibility
  • Daylight saving time adjustments applied
  • Historical date preservation for reporting
Date Field Mapping
  • created_at → Gift date (when gift was made)
  • processed_at → Process date (when gift was processed)
  • deposited_at → Deposit date (when funds were deposited)

Status Mapping

WeGive StatusBlackbaud StatusDescription
completedActiveSuccessfully processed gift
pendingPendingGift awaiting processing
failedInactiveFailed or rejected gift
refundedReversedRefunded or reversed gift
disputedHeldDisputed or under review

Sync Behavior

Create Operations

New WeGive Transaction → Blackbaud Gift
  1. Validate gift data and requirements
  2. Map payment method and amount
  3. Link to existing constituent
  4. Apply fund designations
  5. Create gift record in Blackbaud
  6. Store correlation ID for future updates
  7. Process any soft credits or attributions
New Blackbaud Gift → WeGive Transaction
  1. Extract gift and constituent information
  2. Map to WeGive transaction format
  3. Create or link to WeGive donor
  4. Preserve fund and campaign attributions
  5. Store correlation ID

Update Operations

Bidirectional Updates
  • Gift amount and designation changes
  • Payment method updates
  • Recognition and acknowledgment status
  • Notes and attribute modifications
  • Soft credit additions or changes
Restricted Updates
  • Gift date typically immutable after creation
  • Constituent linkage requires administrative approval
  • Major amount changes may require audit trail
  • Status changes follow business rules

Delete and Void Operations

Gift Reversal
  • WeGive refunds create reversed gift records
  • Blackbaud gift reversals update status
  • Audit trail preserved for all changes
  • Financial reporting adjustments applied

API Examples

Create Gift Record

WeGive to Blackbaud Gift Creation
POST /gift/v1/gifts
{
  "constituent_id": "280bb97a-f71e-4158-9040-85506f6c2e8e",
  "type": "Donation",
  "subtype": "Cash",
  "amount": {
    "value": 250.00,
    "currency": "USD"
  },
  "date": "2024-03-15T10:30:00Z",
  "payment_method": "CreditCard",
  "designations": [
    {
      "fund_id": "f1e8c4a7-2b5d-4c91-8e72-1a3b4c5d6e7f",
      "amount": {
        "value": 250.00,
        "currency": "USD"
      }
    }
  ],
  "appeals": [
    {
      "campaign_id": "c123-4567-8901-2345",
      "appeal_id": "a987-6543-2109-8765"
    }
  ],
  "reference": "WG-TXN-123456"
}

Update Gift Acknowledgment

Blackbaud to WeGive Acknowledgment Sync
PUT /transactions/{transaction_id}
{
  "thank_you_sent": true,
  "thank_you_date": "2024-03-20T14:00:00Z",
  "tax_receipt_sent": true,
  "tax_receipt_date": "2024-03-20T14:00:00Z",
  "tax_deductible_amount": 250.00,
  "blackbaud_gift_id": "12345678-1234-1234-1234-123456789abc"
}

Multi-Fund Gift Example

Complex Gift with Multiple Designations
{
  "amount": {"value": 1000.00, "currency": "USD"},
  "designations": [
    {
      "fund_id": "general-fund",
      "amount": {"value": 600.00, "currency": "USD"},
      "percentage": 60.0
    },
    {
      "fund_id": "building-fund", 
      "amount": {"value": 300.00, "currency": "USD"},
      "percentage": 30.0
    },
    {
      "fund_id": "scholarship-fund",
      "amount": {"value": 100.00, "currency": "USD"},
      "percentage": 10.0
    }
  ],
  "soft_credits": [
    {
      "constituent_id": "spouse-id",
      "amount": {"value": 1000.00, "currency": "USD"},
      "type": "Joint Gift Credit"
    }
  ]
}

Error Handling and Validation

Required Field Validation

Critical Fields
  • Constituent ID must exist and be valid
  • Gift amount must be positive
  • Gift date cannot be in the future
  • At least one fund designation required
  • Payment method must be valid type
Data Quality Checks
  • Amount precision validation (2 decimal places)
  • Date format validation (ISO 8601)
  • Currency code validation (3-letter codes)
  • Fund ID existence verification
  • Constituent relationship validation

Common Error Scenarios

Invalid Constituent
  • Error: Constituent ID not found
  • Resolution: Create constituent first or use valid ID
  • Action: Queue gift for manual review
Fund Validation Errors
  • Error: Fund ID invalid or inactive
  • Resolution: Map to default fund or create fund
  • Action: Log warning and use fallback fund
Amount Validation Issues
  • Error: Negative or zero amount
  • Resolution: Skip transaction or flag for review
  • Action: Log error and notify administrators

Retry and Recovery Logic

Temporary Failures
  • Network timeouts: Retry with exponential backoff
  • Rate limiting: Respect retry-after headers
  • Server errors: Retry up to 3 times with increasing delays
Permanent Failures
  • Validation errors: Log and skip record
  • Authorization errors: Alert system administrators
  • Data conflicts: Queue for manual resolution

Performance Optimization

Batch Processing

Gift Creation Batches
  • Process up to 100 gifts per API call
  • Group by constituent for efficiency
  • Parallel processing for independent gifts
  • Progress tracking and status reporting
Update Optimization
  • Delta sync for changed records only
  • Timestamp-based change detection
  • Bulk update operations where supported
  • Minimized API calls through intelligent batching

Caching Strategies

Reference Data Caching
  • Fund information cached for 1 hour
  • Campaign data cached for 30 minutes
  • Constituent lookups cached for 15 minutes
  • Payment method mappings cached indefinitely
Performance Monitoring
  • Average gift sync time tracking
  • API response time monitoring
  • Error rate alerting
  • Throughput optimization

Reporting and Analytics

Gift Analytics

Sync Metrics
  • Total gifts synchronized per period
  • Success/failure rates by gift type
  • Average sync time per gift
  • Peak processing times
Data Quality Metrics
  • Validation error rates
  • Missing required field frequency
  • Fund mapping accuracy
  • Constituent linking success rates

Financial Reconciliation

Amount Reconciliation
  • Total gift amounts by period
  • Currency conversion accuracy
  • Fee calculation validation
  • Multi-fund designation accuracy
Audit Trail Maintenance
  • Complete change history
  • User attribution for modifications
  • System-generated change timestamps
  • Compliance audit support

Best Practices

Data Management

  1. Clean Source Data: Validate transaction data before sync
  2. Consistent Mapping: Maintain standardized fund and campaign mapping
  3. Regular Reconciliation: Compare financial totals between systems
  4. Backup Strategy: Maintain gift data backups before major changes

Performance Optimization

  1. Batch Operations: Use batch processing for bulk gift imports
  2. Rate Limiting: Respect API limits and implement proper throttling
  3. Caching: Cache frequently accessed reference data
  4. Monitoring: Track sync performance and optimize bottlenecks

Security and Compliance

  1. Data Encryption: Encrypt sensitive gift data in transit and at rest
  2. Access Control: Limit gift data access to authorized personnel
  3. Audit Logging: Maintain comprehensive audit trails
  4. Compliance: Follow PCI DSS and other applicable regulations

Troubleshooting Guide

Common Sync Issues

Gift Creation Failures
  • Verify constituent exists in both systems
  • Check fund ID validity and active status
  • Validate gift amount and currency format
  • Confirm payment method mapping accuracy
Amount Discrepancies
  • Review currency conversion rates
  • Check fee calculation methods
  • Validate multi-fund designation totals
  • Verify decimal precision handling
Date and Time Issues
  • Confirm timezone settings
  • Check date format compliance
  • Validate date range restrictions
  • Review daylight saving time handling

Data Quality Problems

Missing Gift Data
  • Check field mapping completeness
  • Verify data availability in source system
  • Review sync scope and filtering rules
  • Validate required field population
Incorrect Attribution
  • Review campaign and appeal mapping
  • Check fund designation accuracy
  • Validate soft credit assignments
  • Confirm marketing source attribution

Performance Issues

Slow Gift Processing
  • Optimize batch sizes for gift volume
  • Review API response times
  • Check network connectivity
  • Monitor system resource usage
High Error Rates
  • Analyze error pattern trends
  • Review data validation rules
  • Check system capacity limits
  • Validate integration configuration

Support Resources

Documentation References

Support Contacts