Record a received gift
Record a gift that already arrived by cash, check, in kind or an outside payment service.
POST https://cotlet.dev/api/v1/bloomerang/constituents/{constituent_id}/donations
Adds the gift to the timeline and returns its ID. It records money that is already in your hands: it does not process a payment, so Credit Card, EFT and Saved Payment are refused, and there is no tool to refund or delete a gift. It leaves "send acknowledgement now" off, so no email goes to the donor. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| constituent_id integer required | integer | Constituent ID from search_constituents. |
| date string required | string | Date the gift was made, YYYY-MM-DD. |
| amount number required | number | Total amount. |
| method string required | string | Cash, Check, InKind, PayPal, Venmo, ApplePay or GooglePay. The last three record payments made outside Bloomerang. |
| non_deductible number | number | Part of the gift that is not tax deductible. Default 0. |
| fund string | string | Fund name from list_giving_options. |
| campaign string | string | Campaign name from list_giving_options. |
| appeal string | string | Appeal name from list_giving_options. |
Request
curl -X POST https://cotlet.dev/api/v1/bloomerang/constituents/48211/donations \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-10-19","amount":150,"method":"Check","fund":"General Fund","campaign":"Fall Appeal 2026","appeal":"Fall mailer"}' result = client.call("bloomerang", "record_donation", {"constituent_id":48211,"date":"2026-10-19","amount":150,"method":"Check","fund":"General Fund","campaign":"Fall Appeal 2026","appeal":"Fall mailer"}) const result = await cotlet.call('bloomerang', 'record_donation', {"constituent_id":48211,"date":"2026-10-19","amount":150,"method":"Check","fund":"General Fund","campaign":"Fall Appeal 2026","appeal":"Fall mailer"}); cotlet call bloomerang record_donation --data '{"constituent_id":48211,"date":"2026-10-19","amount":150,"method":"Check","fund":"General Fund","campaign":"Fall Appeal 2026","appeal":"Fall mailer"}' Example response
{
"id": 90533,
"constituent_id": 48211,
"date": "2026-10-19",
"amount": 150,
"method": "Check",
"fund": "General Fund",
"campaign": "Fall Appeal 2026",
"appeal": "Fall mailer",
"acknowledgement_sent": false
}