# Donations

> Gifts and pledges from donors (registered subjects) to funds and campaigns, each posted gift on the ledger in bigint minor units, charges through the versioned payments provider interface, and tax receipts numbered per organization with a yearly summary.

- Category: Billing & commerce
- Module: `donations`
- Modes: `managed`, `custom`
- Docs: https://bettersupabase.com/docs/blocks/donations
- Page: https://bettersupabase.com/blocks/donations

## Install

```bash
npx better-supabase add donations
```

The command also installs `updated-at`, `tenant`, `access`, `subjects`, `ledger`.

## Configure

Add the block to `better-supabase.config.ts`:

```ts
import { defineConfig } from "better-supabase/config";

export default defineConfig({
  blocks: {
    // Required by donations; add installs them too.
    "updated-at": {},
    tenant: {},
    access: {},
    subjects: {},
    ledger: {},
    // Modes: "managed", "custom". The default is "managed".
    donations: { mode: "managed" },
  },
});
```

## Client

The block has no React entry yet. Its server-side TypeScript is in `better-supabase/blocks/donations`.

## Events

- `donation.failed`
- `donation.received`
- `donation.refunded`
- `donation_receipt.issued`
- `donation_receipt.voided`
- `pledge.created`
- `pledge.updated`

## Related blocks

Requires: [tenant](https://bettersupabase.com/blocks/tenant.md), [access](https://bettersupabase.com/blocks/access.md), [subjects](https://bettersupabase.com/blocks/subjects.md), [ledger](https://bettersupabase.com/blocks/ledger.md)

Works with: [outbox](https://bettersupabase.com/blocks/outbox.md), [audit](https://bettersupabase.com/blocks/audit.md), [number-sequences](https://bettersupabase.com/blocks/number-sequences.md)
