← All webhook events

Subscribe to csr.task.completed

A CSR workflow task (review, site visit, document check) is marked completed.

When does csr.task.completed fire?

The assigned reviewer marks a task complete, whether from the My Work dashboard or a checklist-driven workflow.

What developers build with it

  • Sync task completions into an external PM tool
  • Track reviewer throughput and workload
  • Trigger the next step in a multi-task checklist workflow

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 csr.task.completed:

{
    "task_id": 210,
    "title": "Verify Q1 field photos",
    "subject_type": "CsrProject",
    "subject_id": 12,
    "completed_by_user_id": 3,
    "completed_at": "2026-07-08T15:30:00+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 csr.task.completed 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 = 'sha256=' . 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'] !== 'csr.task.completed') {
    http_response_code(202); exit; // not for this handler
}

// $payload['data'] is the block documented above.
handleCsrTaskCompleted($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