Skip to main content
POST
Create contribution

Authorizations

Authorization
string
header
required

Organization API key created in Grain Settings → API. The key determines the organization and is limited to its assigned resource scopes. Write scopes imply the corresponding read scope.

Headers

X-Organization-Id
string

Required with OAuth access tokens. Optional with organization API keys; if supplied, it must match the key's organization.

Body

application/json
amount
number
required
Required range: x > 0
Example:

250

date
string<date>
required
Example:

"2026-07-06"

fundId
string
required
Minimum string length: 1
Example:

"cm789ghi012jkl"

method
enum<string>
required
Available options:
CASH,
CHECK,
CREDIT_CARD,
ACH,
ONLINE,
STOCK,
OTHER
Example:

"CHECK"

donorId
string
Minimum string length: 1
Example:

"cm456def789ghi"

sourceDonorId
string
Minimum string length: 1
checkNumber
string

Required when method is CHECK.

Example:

"1042"

checkDate
string<date> | null
isTaxDeductible
boolean
default:true
notes
string
memo
string | null
Maximum string length: 2000
feeCovered
boolean
givingBatchId
string | null
Minimum string length: 1
settlementId
string | null
Minimum string length: 1
givingMerchantId
string | null
Minimum string length: 1
externalId
string
externalSource
enum<string>
Available options:
PUSHPAY,
PLANNING_CENTER,
CCB,
TITHELY,
SUBSPLASH,
ROCK_RMS,
MANUAL,
OTHER
externalDonorId
string | null
Maximum string length: 500
givingEventKey
string | null
Required string length: 1 - 500
processingFee
number
Required range: x >= 0
netAmount
number
Required range: x >= 0
paymentStatus
enum<string>
Available options:
PENDING,
SUCCEEDED,
FAILED
paymentLast4
string | null
Maximum string length: 4
paymentBrand
string | null
Maximum string length: 100
paymentMethodSub
string | null
Maximum string length: 100
paymentMethodType
string | null
Maximum string length: 100
paymentSource
string | null
Maximum string length: 100
isRefunded
boolean
refundedAt
string<date-time> | null
completedAt
string<date-time> | null
sourceType
enum<string>
Available options:
DIRECT,
DAF,
QCD_IRA,
MATCHING,
FOUNDATION,
ESTATE
benefitDescription
string | null
benefitValue
number | null
Required range: x >= 0
deductibleAmount
number | null
Required range: x >= 0
stockTicker
string | null
stockShares
number | null
Required range: x > 0
stockFmvPerShare
number | null
Required range: x > 0
stockTransferDate
string<date> | null
inKindDescription
string | null
inKindFmv
number | null
Required range: x >= 0
inKindAppraisalDate
string<date> | null
foreignCurrency
string | null
foreignAmount
number | null
exchangeRate
number | null

Response

Created contribution

Contribution detail with one-level resource summaries. Provider metadata and processor billing identity are never returned.

id
string
required
donorId
string | null
required
sourceDonorId
string | null
required
amount
number
required
date
string<date-time>
required

Calendar day represented as a UTC-midnight ISO timestamp.

fundId
string
required
method
enum<string>
required
Available options:
CASH,
CHECK,
CREDIT_CARD,
ACH,
ONLINE,
STOCK,
OTHER
isTaxDeductible
boolean
required
externalSource
string
required
givingBatchId
string | null
required
settlementId
string | null
required
givingMerchantId
string | null
required
processingFee
number | null
required
netAmount
number | null
required
feeCovered
boolean
required
payment
object
required
settlementState
object
required
read-only
sourceType
enum<string> | null
required
Available options:
DIRECT,
DAF,
QCD_IRA,
MATCHING,
FOUNDATION,
ESTATE
quidProQuo
object
required
stock
object
required
inKind
object
required
foreignCurrency
string | null
required
foreignAmount
number | null
required
exchangeRate
number | null
required
donor
object | null
required

Present only with donor identity access.

sourceDonor
object | null
required

Present only with donor identity access.

fund
object | null
required
batch
object | null
required
settlement
object | null
required
journalEntry
object | null
required
merchant
object | null
required
createdAt
string<date-time> | null
required
updatedAt
string<date-time> | null
required
checkNumber
string | null
checkDate
string<date-time> | null

Calendar day represented as a UTC-midnight ISO timestamp.

notes
string | null
memo
string | null
externalId
string | null
externalDonorId
string | null

Provider donor identifier. Null when the caller lacks donor identity access.

givingEventKey
string | null
Required string length: 1 - 500
Last modified on August 23, 2026