Creating a Checkout
Last updated: April 9, 2026
A checkout is the core donation form in WeGive — the primary way donors interact with your organization to make one-time or recurring gifts. This guide walks you through creating a checkout and configuring every available option.
Getting Started
To create a new checkout, navigate to Elements → Checkouts in the dashboard and click the create button. The only required field to get started is a Name, which serves as your internal identifier for the checkout. Once saved, you'll land on the checkout detail view where you can configure everything else.
After creation, WeGive automatically sets some defaults for you: all recurring frequencies are enabled, suggested amounts are empty (ready for you to fill in), and the recurring conversion options are pre-configured with monthly and yearly prompts.
Checkout Editor Tabs
The checkout editor is organized into tabs, each controlling a different aspect of the donor experience. Here's what each tab does and the options available within it.
Name
This tab controls the checkout's internal name and its URL slug. The slug becomes part of the public URL donors use to access the checkout, following the pattern:
https://{app-domain}/{organization-slug}/checkout/{checkout-slug}Choose a slug that's clean and memorable — it will appear in links you share and embed codes you distribute.
Type
The Type tab defines the fundamental behavior of the checkout.
Transaction type determines whether this checkout collects tax-deductible donations or non-deductible service revenue. The is_tax_deductible flag controls how receipts are generated.
Currency — if your organization has multi-currency support enabled (supports_multiple_currencies), you can configure the checkout to accept donations in different currencies.
Informational content — toggle this on to display an informational banner card alongside the checkout form. This is where you add context, images, and messaging to tell donors what their gift supports.
Appearance
The Appearance tab handles the visual presentation of your checkout.
First step title — customize the header text donors see when the checkout loads.
Informational card — configure the banner image, description text, and whether the card appears on desktop and/or mobile. You can also control whether the organization logo appears as the card's avatar via info_card_avatar_use_organization_logo.
Navigation — the enable_nav toggle controls whether a back button and login options are visible. show_view_profile and show_give_again determine what donors see after completing a donation.
Custom footer text — add a message at the bottom of the checkout form.
Confetti — enable show_confetti to trigger a celebration animation when a donation completes.
Suggested Amounts
Configure pre-set donation amounts that appear as quick-select options for donors.
One-time amounts — set up to six suggested amounts (suggested_amount_1 through suggested_amount_6), each with an optional description. You can also use the suggested_amounts JSON array for dynamic amounts. Control how many display with number_of_suggested_amounts.
Recurring amounts — separately configure suggested amounts for recurring donors (recurring_suggested_amount_1 through recurring_suggested_amount_6) with their own count setting.
AI suggested amounts — enable ai_suggested_amounts to let WeGive generate smart amount suggestions.
Display type — the suggested_amount_display_type setting controls the visual layout. Options are list (a minimal dropdown) or grid (amounts shown as selectable buttons/cards).
Amount labels — customize the label text with suggested_amount_label.
Minimum amounts — set minimum_one_time_amount and minimum_recurring_amount to enforce floor values.
Fixed amounts — use preset_amount_type and preset_amount to lock the checkout to a specific donation amount.
Allow cents — the allow_cents toggle determines whether donors can enter cent values.
Single Page
This tab toggles between two layout modes.
Multi-step (default) — guides donors through the process across multiple screens, one step at a time. This provides a more structured, focused experience.
Single page — displays the entire checkout on one screen. When enabled, you get additional layout controls:
single_page_column_order— whether the info card appears to the left or right of the formsingle_page_checkout_width— width of the checkout form column (default: 700px)single_page_info_width— width of the info card column (default: 480px)single_page_gap_width— spacing between the two columns (default: 48px)single_page_show_information/single_page_show_information_mobile— control info card visibility per device typeshow_single_page_mobile_information_as_step— on mobile, show the info card as its own step instead of inline
Note: You can override this setting per-link by adding ?single_page=true or ?single_page=false to the checkout URL.
Recurring
The Recurring tab controls everything related to recurring donations.
Allow one-time / Allow recurring — toggle allow_one_time and allow_recurring to control which donation types are available. You can enable one or both.
Default frequency — set which frequency is pre-selected when a donor opens the checkout.
Allowed frequencies — granularly enable or disable each frequency option: daily, weekly, monthly, bimonthly (every 2 months), quarterly, semiannual, yearly, and 1st-and-15th.
Frequency display type — choose between list (dropdown) or grid (buttons) layout for frequency selection.
Allow frequency change — the allow_frequency_change toggle controls whether donors can select their own frequency or are locked to the default.
Recurring conversion step — this is a powerful feature for converting one-time donors to recurring givers. When conversion_step is enabled, donors who make a one-time gift are shown a prompt asking them to convert it to a recurring donation.
recurring_conversion_options— an array defining what conversion choices to present. Each option has apercentage(suggested increase) andfrequency(monthly, yearly, etc.).place_conversion— controls when the prompt appears:0shows it before payment processing,1shows it after.enforce_recurring_prompt_max_amountandrecurring_prompt_max_amount— cap the conversion prompt so it only appears for donations under a certain amount.
Recurring program — use recurring_giving_program and recurring_giving_program_description to brand your recurring giving with a program name and description.
End dates — allow_end_date lets donors set when their recurring plan should stop. force_recurring_plan_end_date and recurring_plan_end_date let you enforce a specific end date from the organization side.
Designations
Designations let donors choose which fund or purpose their gift supports.
Enable designations — toggle designation on to show fund selection options.
Designation setting — controls the selection behavior. Options range from no donor choice (fixed fund), to letting donors freely choose from available funds.
Require designation — when require_designation is on, donors must select a fund before completing their donation.
Allow multi-designations — enable allow_multi_designations to let donors split a single donation across multiple funds. This requires that the organization also has enable_fund_allocations turned on.
Designation list — instead of manually selecting which funds appear on each checkout, you can create a Designation List (a reusable group of funds) and attach it via designation_list_id. This is especially useful when multiple checkouts should offer the same set of fund options.
Default fund — set a fund_id as the fallback fund when no designation is selected.
Display type — designation_display_type supports list (dropdown) or grid (visual cards) layout.
Display label — customize the label text donors see with designation_label.
Force show — force_show_designation ensures the designation selector is always visible, even if only one fund is available.
URL pre-selection — you can pre-select designations via URL parameters: ?designation=123 for a single fund, ?designation_code=ABC by code, or ?designations=123,456 for multiple funds.
Tribute
Tribute gifts let donors dedicate a donation in honor or memory of someone.
When enabled on the Tribute tab, donors can provide:
Tribute name — the person being honored or remembered
Tribute message — an optional personal message
Tribute email — an optional email address for sending a notification
When a tribute email is provided, WeGive automatically sends a notification email via Mailgun, as long as the organization's "Tribute Made" triggered message is set to Live.
For recurring donations with tribute details, every subsequent transaction inherits the same tribute information, and the notification email is sent with each installment.
Payment Methods
This tab controls which payment methods donors can use.
Credit card (
credit_card) — standard card paymentsACH / Bank transfer (
ach) — direct bank account debitsBank login (
bank_login) — bank account connection via loginApple Pay (
apple_pay) — available on supported devices/browsersGoogle Pay (
google_pay) — available on supported devices/browsersPayPal (
enable_paypal) — PayPal integrationStripe Link (
link) — Stripe's one-click paymentCrypto (
crypto) — cryptocurrency donationsPre-Authorized Debit (
pad) — for Canadian bank debits
Each method is a simple boolean toggle — enable or disable as needed based on your organization's payment processing setup.
Fees
The Fees tab controls how processing fees are handled.
Fee pass (
fee_pass) — enable to give donors the option to cover processing feesDefault to covered (
default_to_covered) — pre-check the fee coverage optionRequire fee cover (
require_fee_cover) — force donors to cover fees (no opt-out)Customize fee cover amount (
customize_fee_cover_amount) — allow custom fee amountsShow savings (
show_savings) — display how much the organization saves when fees are coveredTipping (
tipping) — enable a tipping option
Donation Rules
Configure limits and restrictions on the checkout.
Total donation limit — enable total_limit and set total_limit_count to cap the total number of successful donations the checkout will accept. Once the limit is reached, the checkout stops accepting new donations. This is useful for limited campaigns or matching gift drives.
Donor limit — enable donor_limit and set donor_limit_count to limit how many unique donors can give through this checkout.
Verification — require_verification adds a donor verification step before the donation processes.
Guest checkout — enable_guest allows donors to give without creating an account. guest_checkout_only forces all donors into guest mode.
Company donations — company_donations enables giving as a company/organization rather than an individual.
Anonymous donations — anonymous_donations lets donors choose to give anonymously.
Custom Questions
Add custom data collection fields to your checkout.
Custom questions are attached to the checkout and displayed in a configurable order. Key settings:
Place questions (
place_questions) — controls whether questions appear before or after payment confirmationAsk questions again (
ask_questions_again) — if a returning donor has already answered, this controls whether they're prompted againQuestion step title (
question_step_title) — customize the heading for the questions section
Questions are stored via a polymorphic customQuestions relationship, so the same question framework is reusable across different checkout instances.
Thank You
Customize the post-donation experience.
Headline and description (
thank_you_headline,thank_you_description) — the main message donors see after completing their giftVideo (
thank_you_video_link) — embed a YouTube thank-you video. Enableautoplay_thank_you_videofor automatic playback.Redirect (
thank_you_redirect,thank_you_redirect_url) — send donors to an external URL after the donation completes instead of showing the default thank-you screenReceipt customization (
receipt_title,receipt_description) — customize the donation receipt textConfirmation text (
confirmation_header_text,confirmation_button_text) — customize the final confirmation step messaging
Donor Information Collection
Beyond the tabs above, the checkout has several settings for what donor information to collect.
Name — ask_for_name prompts for the donor's name. only_ask_for_name_when_unknown skips the prompt if the donor is already identified. name_required makes the field mandatory.
Billing address — ask_full_billing_address collects the complete billing address (not just zip code).
Mailing address — ask_for_mailing_address adds a mailing address field. ask_for_mailing_address_before_confirmation controls placement, only_ask_for_mailing_address_when_unknown skips it for known donors, and mailing_address_required makes it mandatory.
Details update — ask_for_details_update prompts returning donors to update their information. ask_for_details_update_before_confirmation controls when this prompt appears.
Additional profiles — allow_additional_company_profiles and allow_additional_individual_profiles let donors add secondary profiles during checkout.
Sharing and Implementing Your Checkout
Once configured, WeGive provides multiple ways to share your checkout with donors via the Implement Button:
Direct link — a copyable URL you can share anywhere (email, social media, text messages).
Embed code — an HTML snippet for embedding the checkout directly into your website.
Pop-up — a code snippet that triggers the checkout as a pop-up overlay on your site.
QR code — automatically generated alongside the URL for print materials and in-person events.
You can also append query parameters to customize the experience per-link:
?campaign=123— associate the donation with a specific campaign?designation=456— pre-select a fund?single_page=true— override the layout mode
Preview and Test Modes
Before going live, use the built-in preview and test modes:
Preview mode — renders the checkout with a
/previewURL path and?preview=trueparameter so you can see how it looks without processing real donationsTest mode — uses a
/testURL path with?preview=true, allowing you to walk through the full flow with test data
A/B Testing
WeGive supports A/B testing checkouts to optimize conversion rates.
Create an A/B test by selecting two or more checkout variants and assigning each a traffic percentage. All variants share a single test URL that splits incoming traffic according to your specified percentages.
Requirements for a valid test: at least two checkout variants, percentages that add up to 100%, and each variant must use a unique checkout. You can optionally configure email notifications triggered by a specific date or a performance threshold.
Checkout Analytics
After your checkout is live, the checkout detail view provides analytics including:
KPI metrics via the checkout dashboard
Flow chart data showing donor progression through each step
Session tracking with detailed records of each donor interaction
Conversion data for one-time to recurring upgrades
These analytics are powered by the CheckoutSession model, which records every donor interaction with the checkout — including which steps they completed, whether they used single-page or multi-step layout, and the outcome.