← All webhook events

Subscribe to donor.created

A new donor record is created - via a first-time donation, manual entry from the dashboard, or CSV import.

When does donor.created fire?

Donateazy creates the donor row. Includes 'source' so you can distinguish donation-flow signups from imports.

What developers build with it

  • Auto-enroll into MailChimp / Brevo / Klaviyo / SendGrid list
  • Trigger welcome-series automation
  • CRM enrichment with PAN / email / phone validation
  • Slack / Teams notification for high-value donors
  • Real-time deduplication checks

Sample payload

The full envelope (with HMAC-SHA256 signature, delivery UUID and headers) is documented on the webhooks hub page. Below is the per-event data block for donor.created:

{
    "donor_id": 482,
    "ngo_id": 7,
    "name": "Vandana Kapoor",
    "email": "vandana@example.com",
    "phone": "+919876543210",
    "pan": "ABCDE1234F",
    "source": "donation_flow",
    "created_at": "2026-05-15T10:23:14+05:30"
}

Subscribe to this event

From your NGO dashboard, head to System · Webhooks · Add new. Paste your HTTPS endpoint, copy the signing secret, tick donor.created in the events list, save. The first matching event fires within seconds. Verify the X-Donateazy-Signature header on every request.

// PHP example - drop into your webhook receiver
$raw = file_get_contents('php://input');
$expected = hash_hmac('sha256', $raw, $WEBHOOK_SECRET);
if (! hash_equals($expected, $_SERVER['HTTP_X_DONATEAZY_SIGNATURE'] ?? '')) {
    http_response_code(401); exit;
}

$payload = json_decode($raw, true);
if ($payload['event'] !== 'donor.created') {
    http_response_code(202); exit; // not for this handler
}

// $payload['data'] is the block documented above.
handleDonorCreated($payload['data'], $payload['id']);
http_response_code(200);

Build your first integration in 10 minutes.

Webhooks ship on Pro and above. Full API reference, signature verification and idempotency on the hub.

Read the full reference See pricing
Chat with us