Transaction Data Mapping
This document details how donation transactions are mapped between WeGive and DonorPerfect, including one-time gifts, recurring donations, and tribute gifts.
DonorPerfect Table Reference
Primary Table : dpgift (Gift Records)
WeGive Model : Transaction
Sync Direction : WeGive → DonorPerfect (Push Only)
Core Transaction Fields
Primary Identifiers
Gift Identification
WeGive Field DonorPerfect Field Type Notes dp_id@gift_idInteger Auto-generated DonorPerfect gift ID owner.dp_id@donor_idInteger Links to donor record N/A @record_typeString Always set to ‘G’ (Gift) N/A @user_idString Always set to ‘WeGive’
Transaction Linking Relationship Mapping :
Each WeGive transaction creates one DonorPerfect gift record
Donor must exist in DonorPerfect before transaction sync
Automatic donor creation if donor doesn’t exist
Gift ID stored back in WeGive for future reference
Amount Processing
WeGive Field DonorPerfect Field Calculation Notes amount@amount(amount - fee) / 100Net donation amount in dollars feeNot directly mapped Used in calculation Processing fee deducted destination.currency@currencyDirect mapping Currency code (e.g., ‘USD’)
Amount Calculation Examples
Standard Donation WeGive Transaction :
Amount: $100.00 (10000 cents)
Fee: $2.90 (290 cents)
DonorPerfect Gift :
Amount: $97.10 ((10000 - 290) / 100)
Fee-Covered Donation WeGive Transaction :
Amount: $100.00 (10000 cents)
Fee: $0.00 (0 cents, donor covered fee)
DonorPerfect Gift :
Amount: $100.00 ((10000 - 0) / 100)
Date and Timing
WeGive Field DonorPerfect Field Format Notes created_at@gift_dateMM/DD/YYYY Transaction processing date
Fund and Campaign Attribution
Fund Designation
Fund Mapping
WeGive Field DonorPerfect Field Type Notes fund.dp_gl_code@gl_codeString DonorPerfect GL code for fund fund.nameNot directly mapped String Description in GL code table
GL Code Requirements Fund Setup Requirements :
WeGive funds must have associated DonorPerfect GL codes
GL codes must exist in DonorPerfect before transaction sync
Automatic GL code creation for new WeGive funds
Fund names sync to GL code descriptions
Gift Types and Classifications
Recurring Donation Handling
Scheduled Donations
WeGive Field DonorPerfect Field Value Notes scheduled_donation_id@pledge_payment’Y’ or ‘N' 'Y’ if part of recurring gift
Logic :
Regular donations: @pledge_payment = 'N'
Recurring donations: @pledge_payment = 'Y'
Links to pledge record in DonorPerfect
Recurring Gift Integration Process Flow :
Scheduled donation creates pledge in DonorPerfect
Individual payments reference pledge record
Payment status tracked in both systems
Pledge modifications sync automatically
Tribute and Memorial Gifts
Tribute Information
WeGive Field DonorPerfect Field Type Max Length Notes tribute_name@memory_honorString 50 In honor/memory of name tribute_typeNot mapped String - Honor vs. memorial not distinguished
Tribute Processing Mapping Rules :
Only tribute name syncs to DonorPerfect
Tribute type (honor vs. memorial) not distinguished
Empty tribute fields sync as null
Tribute notifications handled separately
Gift Narrative and Notes
Automatic Gift Description
Standard Gift Narrative
WeGive Field DonorPerfect Field Value Notes Generated @gift_narrative”Online gift through WeGive” Standard description anonymous@gift_narrative”+ (Anonymous)“ Added if anonymous gift
Gift Narrative Examples Regular Gift :
"Online gift through WeGive"
Anonymous Gift :
"Online gift through WeGive (Anonymous)"
Tribute Gift :
"Online gift through WeGive - In honor of [Name]"
Data Flow Process
Transaction Sync Workflow
Transaction Created
New donation processed in WeGive system
Donor Validation
Verify donor exists in DonorPerfect (create if needed)
Amount Calculation
Calculate net amount after fee deduction
Gift Record Creation
Create gift record in DonorPerfect dpgift table
ID Assignment
Store DonorPerfect gift ID back in WeGive
Error Handling
Error Type Cause Resolution Invalid Donor Donor doesn’t exist in DonorPerfect Auto-create donor, retry transaction Invalid GL Code Fund GL code not found Create GL code, retry transaction Amount Validation Negative or zero amount Skip transaction, log error Date Format Invalid date format Correct format, retry API Timeout DonorPerfect API unavailable Retry with backoff delay
API Operations
DonorPerfect Gift Creation
dp_savegift Action Required Parameters :
@gift_id (empty for new gifts)
@gift_date (MM/DD/YYYY format)
@amount (decimal dollars)
Optional Parameters Additional Fields :
@pledge_payment ('Y' or 'N')
@memory_honor (tribute name)
@gift_narrative (description)
@currency (currency code)
Query Operations
Gift Lookup SQL Query Example :
SELECT gift_id, donor_id, gift_date, amount, gl_code
AND gift_date >= ' MM/DD/YYYY '
Sync Configuration
Transaction Sync Settings
Sync Triggers Automatic Sync Events :
New transaction created in WeGive
Transaction status changes (completed, failed, refunded)
Recurring donation payment processed
Fund designation changes
Sync Timing Processing Schedule :
Real-time : New donations sync immediately
Batch Processing : Failed transactions retry every 15 minutes
Manual Sync : Available through dashboard
Error Recovery : Exponential backoff for failures
High Volume Processing
Batch processing for multiple transactions
Rate limiting to prevent API overload
Queue management for peak periods
Automatic retry for failed syncs
Error Recovery
Failed transactions automatically retry
Exponential backoff prevents system overload
Manual retry options in dashboard
Comprehensive error logging
Data Quality and Validation
Pre-Sync Validation
Required Field Checks Validation Rules :
Donor ID must exist in DonorPerfect
Transaction amount must be positive
Fund GL code must be valid
Date must be in correct format
Currency code must be recognized
Data Quality Checks Automatic Corrections :
Date format standardization
Amount precision correction
GL code validation and creation
Donor profile auto-creation
Monitoring and Reporting
Sync Status Tracking Dashboard Metrics :
Transaction sync success rate
Average sync processing time
Error rate and common failure types
Pending transaction queue status
Financial Reconciliation Accuracy Verification :
Total amount comparisons
Fee calculation verification
Fund distribution accuracy
Currency conversion validation
Troubleshooting
Common Transaction Sync Issues
Transactions Not Syncing Possible Causes :
Transaction sync disabled in configuration
Donor missing from DonorPerfect
Invalid fund GL code
API authentication problems
Solutions :
Verify sync configuration enabled
Check donor sync status
Validate fund GL code setup
Test API credentials
Incorrect Amounts Possible Causes :
Fee calculation errors
Currency conversion issues
Rounding precision problems
Solutions :
Review fee configuration
Check currency settings
Verify amount calculation logic
Missing Tribute Information Possible Causes :
Tribute name exceeds field length
Special characters in tribute name
Tribute type not supported
Solutions :
Truncate long tribute names
Remove special characters
Use tribute name field only
For additional help with transaction data mapping, contact our support team at support@wegive.com .