← All webhook events

Subscribe to receipt.generated

An 80G tax receipt is generated and the PDF is ready to download. Fires AFTER donation.paid for the same donation.

When does receipt.generated fire?

ReceiptService::generate() emits the PDF and persists it to storage. The donation row's status flips to 'receipted'.

What developers build with it

  • Auto-attach the receipt PDF to a CRM contact record
  • Push the receipt to DigiLocker for donors with consent
  • Trigger a custom delivery channel (e.g. Telegram bot, Slack DM)
  • Mirror to a document-management system for compliance archival
  • Donor-portal real-time refresh

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 receipt.generated:

{
    "receipt_id": 9821,
    "donation_id": 12345,
    "ngo_id": 7,
    "donor_id": 482,
    "receipt_no": "DZ/2026-27/00921",
    "amount": 5000,
    "fy_label": "2026-27",
    "generated_at": "2026-05-15T10:23:55+05:30",
    "verify_url": "https://www.donateazy.in/verify-receipt?no=DZ%2F2026-27%2F00921",
    "pdf_url": "https://www.donateazy.in/receipts/9821/download"
}

Subscribe to this event

From your NGO dashboard, head to System · Webhooks · Add new. Paste your HTTPS endpoint, copy the signing secret, tick receipt.generated 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'] !== 'receipt.generated') {
    http_response_code(202); exit; // not for this handler
}

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