Skip to main content
POST
Process a campaign checkout

Path Parameters

client_id
integer
required

Client owning the program, recipients, donor form and payment configuration.

program_id
integer
required

Campaign or trip program used to resolve checkout settings and the public donor form.

session_id
string
required

Frontend session containing checkout state. Existing donors must use the session that verified their email/account; the response returns the resulting donor session.

Body

application/json

Email and method_signup are always required. Supply a non-empty designations cart, or entity_id plus amount or donation_amount. Public donor identity and custom form fields can be required for unverified/new donors; payment fields depend on the chosen processor and whether a verified saved method or completed charge is supplied.

email
string<email>
required

Required donor email; existing accounts require verification before completing checkout.

Example:

"jane@example.org"

method_signup
string
required

Required payment-method code passed to the configured donation processor.

Example:

"3"

type
enum<string>

Normalized donor identity type. Public identity validation applies when the donor is not already verified.

Available options:
INDIVIDUAL,
ORGANIZATION
Example:

"INDIVIDUAL"

organization_name
string

Organization donor name; required by identity validation for organization records.

Maximum string length: 255
Example:

"Acme Foundation"

policy_revision
string

Optional public donor-form revision; a stale supplied revision returns 409 when standardized field policy is checked.

Example:

"current-form-revision"

entity_id
integer

Recipient id required when a designations cart is not supplied.

Example:

4711

amount
number

Single-recipient decimal amount. Required without donation_amount unless a designation cart is supplied.

Required range: x >= 0.01
Example:

35

donation_amount
number

Legacy single-recipient amount alias; required without amount unless a designation cart is supplied.

Required range: x >= 0.01
Example:

35

frequency
string

Frequency label for a single-recipient gift; absent values normalize to one time.

Example:

"Every Month"

designations
object[]

Recipient cart. When non-empty, every row requires entity_id, amount and frequency.

Minimum array length: 1
additional_gifts
object[] | null

Extra gifts permitted by the checkout program and donor form.

paymentMethod
string

Payment family. credit_card requires card details unless payment_method or a verified Flutterwave completion is supplied.

Example:

"credit_card"

payment_method
string

Saved/provider payment method. For credit_card, this replaces the raw card-field requirement.

Example:

"pm_saved_method"

first_name
string

Required for direct credit-card entry without payment_method; may also be required by the public donor form.

Example:

"Jane"

last_name
string

Required for direct credit-card entry without payment_method; may also be required by the public donor form.

Example:

"Donor"

number
string

Card number required for direct credit-card entry without payment_method.

Example:

"4242424242424242"

cvv
string

Card verification value required for direct credit-card entry without payment_method.

Example:

"123"

expiryMonth
string

Card expiry month required for direct credit-card entry without payment_method.

Example:

"12"

expiryYear
string

Card expiry year required for direct credit-card entry without payment_method.

Example:

"2030"

check_number
string | null

Optional check reference; validator rule nullable|string|max:100.

Maximum string length: 100
Example:

"1042"

next
string<date>

Future recurring start date. A valid date after today defers the immediate charge.

Example:

"2027-01-15"

flutterwave_v4_charge_id
string

Completed Flutterwave charge id; server-held state and provider status must match the checkout.

Example:

"chg_checkout"

Response

Checkout accepted, scheduled for a future date or saved pending bank verification. Inspect success_state before treating the payment as completed.

status
string
Example:

"success"

message
string
Example:

"Success: Donation has been Added"

donor
object
session_id
string
Example:

"donor-session"

session_logged_in
boolean
Example:

true

redirect
string
Example:

"/frontend/donor_view/207/11/donor-session"

success_state
object

Checkout receipt/status details, including deferred or pending bank-verification outcomes.