Confirm a checkout result
SendPOST /api/public/client/{public_uuid}/giving/checkout-status with:
provider accepts stripe or flutterwave. reference is required and accepts
up to 255 characters. Include a positive integer campaign_id for an Outreach
Campaign payment; omit it for general giving.
The server verifies the provider result and requires its reference, church, and
campaign to match the request. A successful response contains only:
pending, completed, failed, or cancelled, as supported by the
provider. The response uses Cache-Control: no-store. Invalid input returns
422, a scope mismatch returns 404, and unavailable provider confirmation
returns 503. The route allows 20 requests per minute.
Treat redirect query parameters as navigation hints. They are not proof of a
completed payment. Provider confirmation also does not replace settlement
webhooks or their idempotency checks.
Associate a member
Legacy public Stripe, Flutterwave, and PayPal checkout requests may omitmember_id for anonymous giving. When it is supplied, include the authenticated
member’s bearer token. The server requires that identity to match the member
and church; a numeric member ID alone is insufficient.
The existing verified public authentication response includes a
giving_member_claim. The web PayPal flow refreshes this claim before creating
an order and includes it in compact order metadata. It expires after 24 hours
and is scoped to its church and member. Webhooks do not associate a member from
unverified legacy metadata; those payments remain anonymous.
Campaign checkout also requires an active campaign belonging to the route’s
church and accepting cash gifts. A total cannot be less than the base gift.
Public errors do not include raw provider exception details.