Webhook Integrations - Outbound
BetterUnite webhooks allow you to receive real-time notifications when key events occur in your account — such as new payments, contact updates, or campaign launches.
This article outlines the structure of webhook requests, supported event types, and the fields included in each payload.
Overview
When a subscribed event occurs, BetterUnite sends an HTTP POST request to your configured webhook endpoint.
Request Details:
-
Method:
POST -
Content-Type:
application/json -
Body: JSON payload (see examples below)
Each payload contains structured data specific to the event type.
Supported Webhook Event Types
You can subscribe to any of the following events:
-
New Contact– Triggered when a new contact is created. -
Update Contact– Triggered when an existing contact is updated. -
New Payment– Triggered when a new payment or donation is recorded. -
Update Payment– Triggered when a payment is updated. -
Campaign Launch– Triggered when a campaign is launched. -
Payment Issue– Triggered when a payment-related issue occurs.
Example Payloads
1. New Payment Event (NewPayment)
{
"transactionId": "b1e2c3d4-5678-1234-9abc-def012345678",
"organization": "BetterUnite Org",
"intendedAmount": 100.00,
"grossAmount": 100.00,
"cardProcessingFees": 2.90,
"platformFees": 0.00,
"transactionDateUtc": "2024-02-12T18:30:00Z",
"tags": "donation,annual",
"notes": "Thank you for your support!",
"dedication": "In memory of John Doe",
"fundName": "General Fund",
"membershipPlanName": "Annual Supporter",
"deductibleAmount": 100.00,
"campaignId": "a1b2c3d4-5678-1234-9abc-def012345678",
"fundingAccountId": "acct_123456789",
"paymentType": "CreditCard",
"referenceNumber": "INV-2024-0001",
"lineItemsSummary": "General Donation",
"contactDetails": {
"organization": "BetterUnite Org",
"contactId": "c1d2e3f4-5678-1234-9abc-def012345678",
"firstName": "Jane",
"lastName": "Smith",
"companyName": "Acme Corp",
"emailAddress": "jane.smith@example.com",
"tags": "donor,newsletter",
"notes": "",
"street": "123 Main St",
"city": "Austin",
"state": "TX",
"zipcode": "78701",
"country": "USA",
"homePhone": "512-555-1234",
"cellPhone": "512-555-5678",
"workPhone": "",
"gender": "Female",
"contactType": "Individual",
"contactCustomFields": [
{ "name": "Birthday", "value": "1980-01-01", "misc": "" }
]
},
"campaignDetails": {
"campaignId": "a1b2c3d4-5678-1234-9abc-def012345678",
"organization": "BetterUnite Org",
"name": "Spring Fundraiser",
"campaignCreatedOnUtc": "2024-01-01T00:00:00Z",
"campaignRoute": "spring-fundraiser",
"status": "Active"
},
"transactionCustomFields": [
{ "name": "Source", "value": "Website", "misc": "" }
],
"buUniqueReference": "BU-2024-0001",
"paymentProcessorUniqueReference": "PP-123456789"
}
2. New Contact Event (NewContact)
{
"organization": "BetterUnite Org",
"contactId": "c1d2e3f4-5678-1234-9abc-def012345678",
"firstName": "Jane",
"lastName": "Smith",
"companyName": "Acme Corp",
"emailAddress": "jane.smith@example.com",
"tags": "donor,newsletter",
"notes": "",
"street": "123 Main St",
"city": "Austin",
"state": "TX",
"zipcode": "78701",
"country": "USA",
"homePhone": "512-555-1234",
"cellPhone": "512-555-5678",
"workPhone": "",
"gender": "Female",
"contactType": "Individual",
"contactCustomFields": [
{ "name": "Birthday", "value": "1980-01-01", "misc": "" }
]
}
Field Reference
Payment Event Fields
| Field | Type | Description |
|---|---|---|
transactionId |
GUID | Unique transaction ID |
intendedAmount |
decimal | Intended donation amount |
grossAmount |
decimal | Amount received |
cardProcessingFees |
decimal | Card processing fees |
platformFees |
decimal | Platform fees |
transactionDateUtc |
datetime | UTC transaction date/time |
tags |
string | Comma-separated tags |
notes |
string | Notes or dedication |
dedication |
string | Dedication text |
fundName |
string | Fund name |
membershipPlanName |
string | Membership plan name |
deductibleAmount |
decimal | Tax-deductible amount |
campaignId |
GUID | Campaign ID |
fundingAccountId |
string | Funding account ID |
paymentType |
string | Payment method (CreditCard, ACH, etc.) |
referenceNumber |
string | Reference number |
lineItemsSummary |
string | Summary of line items |
contactDetails |
object | Contact information (see below) |
campaignDetails |
object | Campaign details (see below) |
transactionCustomFields |
array | Custom transaction fields |
buUniqueReference |
string | BetterUnite unique reference |
paymentProcessorUniqueReference |
string | Processor reference ID |
Contact Fields
| Field | Type | Description |
|---|---|---|
contactId |
GUID | Unique contact ID |
firstName |
string | First name |
lastName |
string | Last name |
companyName |
string | Company name |
emailAddress |
string | Email address |
tags |
string | Comma-separated tags |
notes |
string | Notes |
street |
string | Street address |
city |
string | City |
state |
string | State |
zipcode |
string | ZIP code |
country |
string | Country |
homePhone |
string | Home phone |
cellPhone |
string | Cell phone |
workPhone |
string | Work phone |
gender |
string | Gender |
contactType |
string | Contact type |
contactCustomFields |
array | Custom contact fields |
Campaign Fields
| Field | Type | Description |
|---|---|---|
campaignId |
GUID | Campaign ID |
organization |
string | Organization name |
name |
string | Campaign name |
campaignCreatedOnUtc |
datetime | Campaign creation date (UTC) |
campaignRoute |
string | Campaign route/slug |
status |
string | Campaign status |