Skip to main content

Confirm a checkout result

Send POST /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:
Status is 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 omit member_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.