Skip to main content
POST
Process a Donation Payment
Send the publicId of the page being given through, the payment nonce or paymentMethodId with its paymentMethodType, the amount and currency, and the donor details. Set isRecurring with a frequency and startDate to start a recurring gift, split the gift across designations with projects, and use donorPaidCosts or coverAdminFee when the donor is covering fees.
To try the call without charging a payment method, send isTestMode=true with a method from Generate Test Payment Method.
The spec does not document error responses for this endpoint beyond 401, so the causes aren’t listed with the responses here. Errors still arrive in the ProblemDetails envelope the rest of the Raise API uses — handle a rejected request (400), and a path ID that doesn’t resolve (404), as you would on any other endpoint.

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"

Body

The donation to process, including the page publicId, the payment details, the amount, and the donor.

Represents a donation payment request.

amount
number<double>
required

The donation amount, in the currency given by currency.

paymentMethodType
enum<integer>
required

How the donor is paying, such as CreditCard, ACH, or PayPal.

Available options:
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
paymentMethodId
string
required

The identifier of the payment method to charge. Use Generate Test Payment Method to get one for isTestMode.

Minimum string length: 1
nonce
string<uuid>

The single-use token representing the payment details collected in the browser. Send it, or paymentMethodId for a stored method.

publicId
string<uuid> | null

The public identifier of the page the donation is being given through.

pageRequestId
string<uuid> | null

The identifier of the page view the donation came from, used to tie the gift back to the session.

currency
string | null

The three-letter ISO currency code of the amount. Defaults to the organization's currency.

exchangeRate
number<double>

The rate used to convert the amount to the organization's base currency.

segment
string | null

The segment to attribute the gift to.

segmentOverrideCode
string | null

The segment code to use instead of the page's default segment.

projectOverrideCode
string | null

The project code to use instead of the page's default designation.

isRecurring
boolean

Whether to start a recurring gift rather than record a one-time gift. Send frequency and startDate with it.

frequency
enum<integer> | null

How often the recurring gift is charged. Required when isRecurring is true.

Available options:
0,
1,
2,
4,
12,
26,
52,
100
startDate
string<date-time> | null

The date the recurring gift starts, in the time zone given by timeZone.

startDateTimeUtc
string<date-time> | null

The UTC date and time the recurring gift starts.

donorPaidCosts
boolean

Whether the donor is covering the payment processing cost on top of the amount. Use Calculate Payment Processing Cost to get what it adds.

isAnonymous
boolean

Whether the gift is given anonymously.

creditCardType
string | null

The brand of the card, such as Visa or Mastercard.

giftAidRequested
boolean

Whether the donor requested Gift Aid on the donation.

doubleTheDonationCompanyId
integer<int32> | null

The Double the Donation identifier of the donor's employer, for matching gifts.

doubleTheDonationEnteredText
string | null

The employer name the donor typed, for matching gifts.

isTestMode
boolean

When true, records the gift without charging a payment method. Pair it with a method from Generate Test Payment Method.

premiumId
integer<int64> | null

The unique identifier of the premium the donor chose.

visitorId
string | null

The identifier of the visitor, used to tie the gift to their earlier activity.

comments
string | null

Any comments the donor left with the donation.

paymentId
string | null

The payment provider's identifier for the payment, when it was taken outside Raise.

clientId
string | null

The identifier of the client application submitting the donation.

sessionId
string | null

The identifier of the browser session the donation came from.

timeZone
string | null

The time zone startDate is interpreted in.

coverAdminFee
boolean | null

Whether the donor is covering the administrative fee on top of the amount.

adminFee
number<double> | null

The administrative fee the donor is covering.

adminFeeProjectId
integer<int64> | null

The unique identifier of the project the administrative fee is designated to.

paypalPaymentSource
string | null

The PayPal funding source the donor paid with, such as paypal or venmo.

motivationCodeId
integer<int64> | null

The unique identifier of the motivation code to attribute the gift to.

motivationCodeGroupId
integer<int64> | null

The unique identifier of the motivation code group to attribute the gift to.

gatewayId
integer<int64>

The payment gateway ID to be used.

donor
object | null

The donor giving the gift. An existing donor is matched on id, crmKey, or email address; otherwise one is created.

tribute
object | null

The tribute the gift is given in memory or honor of, if any.

projects
object[] | null

The projects associated with the donation.

Response

OK

Last modified on July 28, 2026