Skip to content
API reference/Donations

Send the yearly giving summaries

Try it

Emails every donor who gave in a finished calendar year one summary of their gifts and the total, in the business's name. Each donor gets ONE per year, ever: running it again only mails donors who haven't had theirs (they also go out by themselves each January).

POST/api/v1/sites/{site_id}/donations/summaries

Authentication

An API key as Authorization: Bearer or x-api-key. It needs the donations:write scope — stop monthly gifts and send the yearly giving summaries (donors are emailed).

donations:writeChanges the draft or a recordIdempotency-Key requiredMCP tool: send_donation_summaries

Parameters

Named placeholders go in the path; the rest in a JSON body.

site_idstringPath · required
The site's id.1 to 100 characters
yearintegerBody · required
A finished year, e.g. last year.2020 to 2100

Response

200 with JSON on success (schema on the right). Errors use the standard envelope; a retry with the same Idempotency-Key gets the first answer back (how retries work).

curl
curl -X POST 'https://websites.workflowcorp.com/api/v1/sites/SITE_ID/donations/summaries' \
  -H "Authorization: Bearer $WEBSITEBUDDY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"year":2025}'
Example arguments
{
  "site_id": "SITE_ID",
  "year": 2025
}
Response schema
{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "sent": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "skipped": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Donors who already had theirs."
    },
    "failed": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Couldn't be emailed now; a later run tries again."
    },
    "waiting": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Donors still without a summary after this run."
    }
  },
  "required": [
    "year",
    "sent",
    "skipped",
    "failed",
    "waiting"
  ],
  "additionalProperties": false
}