Skip to main content
POST
Verify the donor passwordless verification code

Path Parameters

client_id
integer<int64>
required
Example:

207

program_id
string
required
Example:

"11"

Body

application/json
email
string<email>
required

Email entered on the verification screen. Validator rule: required|email.

donor_id
integer<int64>
required

Donor id returned by postPasswordlessLogin. Validator rule: required|integer.

verification_code
string
required

Six-digit numeric code from the verification email. Submit it as a string so leading zeros are preserved. Validator rule: required|string|size:6|regex:/^[0-9]{6}$/.

Required string length: 6
Pattern: ^[0-9]{6}$
Example:

"012345"

Response

Verification succeeded.

status
string
Example:

"success"

message
string
donor
Donor · object

A donor record. Donors give one-time donations and recurring commitments, and may be linked to entities (recipients) via sponsorships. Standardized profile columns (first_name, phone, address, etc.) coexist with arbitrary custom fields stored in json_fields and defined per hysform_id. The username/email/password columns also let donors sign in to the donor portal.

client
Client · object

A Gratona client — the tenant of the multi-tenant system. Owns donors, entities, programs, users, and integrations. The client_id on every other resource scopes data to this row. Stripe Connect onboarding state, account-level settings, and the client's display name all live here.

session_id
string

Redis donor session id. Carry it on subsequent donor-portal requests as the {session_id} URL path parameter.

session_logged_in
boolean
Example:

true

payment_method_details
object

Raw payment-method details from the admin DonorController card lookup.

saved_payment_method
object | null

Normalized summary (id, type, brand/last4 etc.) suitable for one-click checkout.

has_saved_payment_method
boolean