> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wegive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Donation Payloads

> Every donation webhook key, status code, and amount convention for actions 1, 2, and 6.

Actions 1, 2, and 6 use exactly the following root keys. The body is the object itself. Values reflect the record/profile at serialization time. Related donor and plan fields are not immutable donation-time snapshots.

<Note>
  New or updated donations can have any non-failed status, including Pending, Processing, or Refunded. Use `status: 2` for a successful payment. See [Webhook trigger details](/external/onboarding/webhooks#trigger-details-that-affect-reporting).
</Note>

| Key | Data / meaning |
| - | - |
| `id` | WeGive transaction ID; integer. |
| `description` | Transaction description; string/null. |
| `amount` | Transaction amount divided by 100: **major currency units**. Numeric. |
| `status` | Numeric transaction status; see the status table below. This is not always successful. |
| `payment_method_type` | Stored source type, e.g. `card` or `bank`; string/null. |
| `payment_method_id` | Stored source/payment-method ID; integer/null. |
| `donor_type` | Stored owner morph type; string/null. |
| `donor_id` | Stored owner ID; integer/null. |
| `donor_mobile_phone` | Current owner profile’s mobile phone; string/null. |
| `donor_home_phone` | Current owner profile’s home phone; string/null. |
| `donor_office_phone` | Current owner profile’s office phone; string/null. |
| `donor_other_phone` | Current owner profile’s other phone; string/null. |
| `addresses` | Array of the owner’s serialized [Address models](/external/onboarding/webhooks/model-attributes#address-model-keys). |
| `donor_fax` | Current owner profile’s fax; string/null. |
| `donor_email_1` | Current owner profile’s email 1; string/null. |
| `donor_email_2` | Current owner profile’s email 2; string/null. |
| `donor_email_3` | Current owner profile’s email 3; string/null. |
| `donor_name` | Current owner profile’s name; string/null. |
| `donor_first_name` | Current owner profile’s first name; string/null. |
| `donor_last_name` | Current owner profile’s last name; string/null. |
| `fund_id` | Designation/fund ID; integer/null. |
| `fund_name` | Related fund name when a fund ID exists; string/null. |
| `fundraiser_id` | Fundraiser ID; integer/null. |
| `fundraiser_name` | Related fundraiser name when a fundraiser ID exists; string/null. |
| `scheduled_donation_id` | Recurring-plan ID; integer/null. |
| `scheduled_donation_amount` | Related plan’s stored installment amount in **cents**, or null. Unlike root `amount`, this is not divided by 100. |
| `scheduled_donation_frequency` | Related plan’s numeric frequency code, or null; see [frequency mapping](/external/onboarding/webhooks/recurring-plans#frequency-mapping). |
| `scheduled_donation_next_giving_date` | Related plan’s `start_date`; date/datetime string/null. |
| `scheduled_donation_iteration` | Related plan’s count of successful transactions; integer/null. This is read from the plan, not the transaction’s own installment index. |
| `created_at` | Transaction creation timestamp; serialized date string/null. |
| `updated_at` | Transaction update timestamp; serialized date string/null. |
| `cover_fees` | Stored fee-coverage flag; normally numeric 0/1, not explicitly cast by this serializer. |
| `fee_amount` | Stored fee amount in **cents**, nullable; not divided by 100 here. |
| `anonymous` | Boolean/null anonymity flag. |
| `tribute_email` | Dedication recipient email; string/null. |
| `tribute_name` | Dedication name; string/null. |
| `tribute_message` | Dedication message; string/null. |
| `tribute` | Boolean/null dedication flag. |
| `checkout_id` | Checkout configuration ID; integer/null. |

## Transaction status codes

| Code | Meaning |
| - | - |
| 1 | Pending |
| 2 | Success |
| 3 | Cancelled |
| 4 | Refunded |
| 5 | Failed — excluded by normal donation webhook triggers |
| 6 | Disputed |
| 7 | Processing |
| 8 | Retried |
| 9 | Partially Refunded |

Only `status: 2` is the explicit Success code. Handle later refunds/disputes as changes to the same transaction, rather than another donation.

## Donation example

This complete root-key example represents a one-time gift. Currency must be obtained from the organization/integration context: **there is no `currency` or `currency_code` key in this resource**.

```json theme={null}
{
  "id": 42001,
  "description": "General Fund donation",
  "amount": 26,
  "status": 2,
  "payment_method_type": "card",
  "payment_method_id": 7001,
  "donor_type": "donor",
  "donor_id": 1201,
  "donor_mobile_phone": null,
  "donor_home_phone": null,
  "donor_office_phone": null,
  "donor_other_phone": null,
  "addresses": [],
  "donor_fax": null,
  "donor_email_1": "jane@example.org",
  "donor_email_2": null,
  "donor_email_3": null,
  "donor_name": "Jane Example",
  "donor_first_name": "Jane",
  "donor_last_name": "Example",
  "fund_id": 7,
  "fund_name": "General Fund",
  "fundraiser_id": null,
  "fundraiser_name": null,
  "scheduled_donation_id": null,
  "scheduled_donation_amount": null,
  "scheduled_donation_frequency": null,
  "scheduled_donation_next_giving_date": null,
  "scheduled_donation_iteration": null,
  "created_at": "2026-10-12T18:00:00.000000Z",
  "updated_at": "2026-10-12T18:00:01.000000Z",
  "cover_fees": 1,
  "fee_amount": 100,
  "anonymous": false,
  "tribute_email": null,
  "tribute_name": null,
  "tribute_message": null,
  "tribute": false,
  "checkout_id": 12
}
```

The donation resource does **not** supply `correlation_id`, Salesforce/global IDs, campaign ID, session UUID, `tracking_url`, UTM fields, brand, a resolved payment processor, or transaction allocation arrays. Do not infer those keys from similarly named browser or recurring-plan payloads. The `scheduled_donation_amount` and `fee_amount` fields stay in cents even though root `amount` uses major units.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.