Process a campaign checkout
Completes public campaign, peer-to-peer or trip checkout and creates or reuses the donor record. Existing donor emails require a verified donor session before payment; checkout accepts a single recipient or a designation cart plus optional extra gifts. Payment admission, fixed-level sponsorship selections and public donor-form rules are checked before creating donations or commitments. A future start date can defer charging, and bank accounts awaiting verification produce a pending success state rather than a completed payment.
Path Parameters
Client owning the program, recipients, donor form and payment configuration.
Campaign or trip program used to resolve checkout settings and the public donor form.
Frontend session containing checkout state. Existing donors must use the session that verified their email/account; the response returns the resulting donor session.
Body
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.
Required donor email; existing accounts require verification before completing checkout.
"jane@example.org"
Required payment-method code passed to the configured donation processor.
"3"
Normalized donor identity type. Public identity validation applies when the donor is not already verified.
INDIVIDUAL, ORGANIZATION "INDIVIDUAL"
Organization donor name; required by identity validation for organization records.
255"Acme Foundation"
Optional public donor-form revision; a stale supplied revision returns 409 when standardized field policy is checked.
"current-form-revision"
Recipient id required when a designations cart is not supplied.
4711
Single-recipient decimal amount. Required without donation_amount unless a designation cart is supplied.
x >= 0.0135
Legacy single-recipient amount alias; required without amount unless a designation cart is supplied.
x >= 0.0135
Frequency label for a single-recipient gift; absent values normalize to one time.
"Every Month"
Recipient cart. When non-empty, every row requires entity_id, amount and frequency.
1Extra gifts permitted by the checkout program and donor form.
Payment family. credit_card requires card details unless payment_method or a verified Flutterwave completion is supplied.
"credit_card"
Saved/provider payment method. For credit_card, this replaces the raw card-field requirement.
"pm_saved_method"
Required for direct credit-card entry without payment_method; may also be required by the public donor form.
"Jane"
Required for direct credit-card entry without payment_method; may also be required by the public donor form.
"Donor"
Card number required for direct credit-card entry without payment_method.
"4242424242424242"
Card verification value required for direct credit-card entry without payment_method.
"123"
Card expiry month required for direct credit-card entry without payment_method.
"12"
Card expiry year required for direct credit-card entry without payment_method.
"2030"
Optional check reference; validator rule nullable|string|max:100.
100"1042"
Future recurring start date. A valid date after today defers the immediate charge.
"2027-01-15"
Completed Flutterwave charge id; server-held state and provider status must match the checkout.
"chg_checkout"
Response
Checkout accepted, scheduled for a future date or saved pending bank verification. Inspect success_state before treating the payment as completed.
"success"
"Success: Donation has been Added"
"donor-session"
true
"/frontend/donor_view/207/11/donor-session"
Checkout receipt/status details, including deferred or pending bank-verification outcomes.