Record a donation through Zapier
Records a donation through donations.create and returns the created record with individual/combined payment amount context. This records the supplied payment outcome without initiating a provider charge. Requires donation management and the relevant donor-form/program access; body idempotency_key supports replay.
Authorizations
Passport bearer token authentication for legacy admin sessions.
Body
Validated input accepted by this Zapier transport.
Donor who owns the gift or commitment. Validation: required|integer.
12345
Recipient/designation identifier for the donation. Validation: required|integer.
4711
Individual gift amount in the supplied currency. Validation: required|numeric|min:0.01.
x >= 0.0125
Stored currency value; legacy callers commonly use a currency symbol. Validation: nullable|string|max:10.
10"$"
Stored compatibility payment method identifier. Validation: nullable|integer.
1
Record type accepted by this operation. Validation: nullable|integer.
1
Compatibility one-time gift indicator. Validation: nullable|integer.
1
Recorded payment result description. Validation: nullable|string|max:500.
500"Created via Zapier"
External transaction reference stored with the record. Validation: nullable|string|max:255.
255"external-payment-001"
Recorded settlement status. Validation: nullable|string|max:100.
100"completed"
Internal description associated with the recorded gift. Validation: nullable|string.
"Offline gift received."
Custom-field values keyed by the configured form field names. Validation: nullable|array.
Whether the recorded gift has a refund. Validation: nullable|boolean.
false
Recorded amount already refunded. Validation: nullable|numeric|min:0.
x >= 00
Whether the recorded gift is tax deductible. Validation: nullable|boolean.
true
Stable caller key used by the selected mutation to prevent duplicate records. Validation: nullable|string|max:191.
191"external-record-001"
Response
Created, updated or replayed record; this transport unwraps the primitive success envelope.
An individual donation transaction. Donations may be one-time or part of a recurring Commitment. Despite the name, the designation column actually stores the recipient entity_id (it predates entities and was never renamed). Tax/refund/QuickBooks state lives on the donation row alongside the gateway transaction id.
Internal donation ID.
983221
Owning Gratona client (multi-tenant scope).
207
Donor who gave this donation.
12345
Persisted donation-line allocation, including any donor-covered processing fee. Existing amounts are preserved.
51.5
ISO 4217 currency code.
"USD"
Recipient entity ID — see Entity schema. Historical naming: this is NOT an accounting designation, it is the entity / sponsorship target. Null for unrestricted gifts.
4711
Donation type code (gateway / source family). Internal enum; values include cash, check, credit card, ACH, in-kind, etc.
1
Payment method code: 1=cash, 2=check, 3=Stripe, 6=PayPal, 8=Stripe-Connect, 9=Flutterwave, 10=Flutterwave-standard, 11=QPayPro, 12=ACH-direct-debit, 13=in-kind. See config/constants.php for canonical mapping.
3
Recurrence cadence: 1=every-month, 2=every-3-months, 3=every-6-months, 4=every-year, 5=one-time, 6=bi-weekly, 7=every-2-months.
1, 2, 3, 4, 5, 6, 7, null 5
True for one-off gifts; false when the donation is part of a recurring commitment.
true
Optional end date for time-bounded recurring donations.
"2027-01-15"
Total allocated collection cost in processor_fee_currency: Stripe processing fee plus any Connect platform fee. Eligible fee-free cash/check records return zero; unverified fees remain null.
2
Connect application fee breakdown already included in processing_fee. Do not subtract it again from net. Display only when positive.
0.5
Net amount after the inclusive processing_fee, in processor_fee_currency. Original Stripe settlement net, or gross for eligible fee-free cash/check records. Stable compatibility key; later refunds are separate.
49.5
Same original settlement net as amount_excluding_fee.
49.5
Currency of actual fee and net amounts: Stripe settlement currency (which may differ from donation currency), or donation currency for eligible fee-free cash/check records.
"USD"
Donor's optional added contribution in the original donation currency, separate from actual gateway expense.
1.5
Whether valid original Stripe settlement evidence or an eligible fee-free cash/check record establishes fee and net amounts.
true
Total amount the gateway captured for the payment. Shared charges repeat this total on each allocation; it is not a per-line fee.
103
Set only when method is in-kind (13).
stocks, goods, services, cryptocurrency, other, null "goods"
Free-form gateway result (e.g. successful, failed, pending). Gateway-specific values are common.
"successful"
External payment-gateway transaction ID (Stripe charge id, PayPal capture id, etc.).
"ch_3OqXXXXX"
External gateway status string.
"succeeded"
True if the donation has been at least partially refunded.
false
Amount refunded so far (in currency).
0
Whether the gateway integration believes this donation can still be refunded.
true
Whether the donation is reportable as tax-deductible giving.
true
Free-form donor / admin tags.
Plaintext notes attached to the donation (memo line, admin remarks).
"Memo: in honor of John Doe"
QuickBooks receipt id, if synced.
"qbo_5512"
When the donation receipt email was last sent (null if never).
"2026-01-02T08:30:00Z"
When this gift was acknowledged for stewardship tracking. Null means pending acknowledgement.
"2026-01-03T10:15:00Z"
Admin user who last acknowledged the gift, when known.
42
How the gift was acknowledged.
manual, auto_email, receipt, mailing, interaction, import, null "manual"
Lightweight acknowledgement metadata such as note, previous state, or receipt context.
Custom profile/record fields. Raw model responses retain the encoded JSON string; projection endpoints may return a decoded map or list. Use the record form definition to interpret field keys.
Set when imported via CSV; groups donations imported together.
null
True when the row was created from a CSV import (vs. live gateway charge).
false
"2026-01-02T08:25:00Z"
"2026-01-02T08:30:00Z"
null