last_four becomes preferred_payment.last_four in a donor payload or payment_method.last_four in a plan payload. Objects can be null/empty as described in their parent table. Nested resources are reused application serializers and can depend on the request and loaded records; see Additional model attributes for dynamic branches.
Card
Used by donorpreferred_payment, plan payment_method/paymentMethod, and accounts.cards[]. last_four is masked; has_vgs_tokens is a flag, not a token value. total_charged is the cached stored amount (not divided by 100 in this resource).
Keys: id, email, name, created_at, last_four, issuer, expiration, expires_at, owner_type, owner_id, type, wallet_type, paypal_connection_id, paypal_email, has_vgs_tokens, zip_code, primary, last_activity, total_charged, charges, scheduled_donations_count, scheduled_donations_monthly_estimate, fraud_rule_override_at, salesforce_id, deleted_at.
Bank
Used by the equivalent bank paths andaccounts.bank_accounts[]. plaid_token is explicitly a boolean, not a Plaid token string. Institution/transit metadata and mandate acceptance are included; there is no full account-number field in this resource. Cached total_charged is not divided by 100.
Keys: id, email, name, created_at, owner_type, owner_id, last_four, plaid_token, primary, type, institution_number, transit_number, bank_account_type, mandate_acceptance, last_activity, total_charged, charges, zip_code, scheduled_donations_count, scheduled_donations_monthly_estimate, fraud_rule_override_at, salesforce_id, deleted_at.
UserSimple
Used for the action-7 payment method when its type isuser.
Keys: name, email, id.
DonorTable
Used by plandonor. Major-unit fields: total_given, total_given_this_year, emrr. primary_user is null or {id, first_name, last_name, email}; dashboard request context affects it. Address objects use AddressResource below; pivot is relation-dependent metadata.
Keys: chat_id, id, organization_id, created_at, type, mobile_phone, home_phone, office_phone, other_phone, fax, mailingAddress, mailing_address_object, billing_address_object, billingAddress, email_1, email_2, email_3, first_name, name, total_given, total_given_this_year, avatar, last_donation, enabled, pivot, tagged_on, preferred_email, preferred_phone, do_not_contact, deleted_at, total_payments, last_payment_date, total_sessions, last_seen, messages_count, last_message, emrr, logins, do_not_email, do_not_sms, do_not_mail, primary_user.
Donor-facing ScheduledDonation
Used in donorscheduled_donations[]; this is different from action 7. amount, net_amount, charge_amount, all_transactions_total, and fee_amount use major units. payment_method has Card/Bank/User variants or an empty object; other model types may pass through. fund uses the Fund projection/raw model rules; checkout uses CheckoutView; donor uses DonorTable; destination uses OrganizationTable; allocations use FundAllocation.
Keys: bill_on_wegive, id, name, net_amount, charge_amount, amount, all_transactions_total, type, locked, paused_at, deleted_at, destination, frequency, start_date, ends_at, cover_fees, fee_amount, payment_method_id, payment_method_type, payment_method, created_at, iteration, installments_count, last_processed, tribute_email, tribute_name, tribute_message, paused_type, paused_until, pause_initiator, pause_reason, anonymous, fund, fund_id, checkout, donor, last_failed_date, has_had_pm, next_retry_at, campaign_id, campaign_name, fundraiser_id, fundraiser_name, campaign_fundraiser_id, campaign_fundraiser_name, organization_brand_id, is_test, salesforce_id, donor_direct_id, tracking_url, currency, fund_allocations, external_paypal_subscription_id, external_management_url, resolved_paypal_connection_id, paypal_connection_id.
FundraiserTable
Used in donorfundraisers[]. goal and total_raised use major units; percent_raised is a ratio, not multiplied by 100. p2p_preset is null or {id, name}. owner can be DonorSimple, OrganizationSimple, a raw Household, or null; recipient can be DonorSimple, OrganizationSimple, or null.
Keys: id, slug, percent_raised, goal, total_raised, description, name, type, expiration, created_at, start_date, total_donors, owner, recipient, publicity, active, thumbnail, deleted_at, status, emrr, last_donation, new_donors, p2p_preset.
DonorSimple
Used for donor owners/recipients in fundraiser objects. Address subobjects use AddressResource.primary_user is a request-dependent User model/null; its shape is not a webhook-specific allowlist. pivot is relation-dependent. Monetary totals shown here are divided by 100.
Keys: primary_user, id, deleted_at, organization_id, created_at, type, mobile_phone, home_phone, office_phone, other_phone, fax, mailingAddress, mailing_address_object, billingAddress, billing_address_object, email_1, email_2, email_3, name, total_given, total_given_this_year, avatar, last_donation, enabled, total_given_to_element, pivot, tagged_on.
OrganizationSimple
Used for organization owners/recipients in fundraiser objects. Keys:id, slug, name, avatar.
OrganizationTable
Used by plandestination and nested CheckoutView recipient; categories[] uses CategoryTable.
Keys: name, categories, id, slug, thumbnail, avatar, banner, type, legal_name, dba, url, ein, uuid, enable_dunning.
CategoryTable
Category metadata;type is the literal category.
Keys: id, slug, name, color, is_featured, type.
AddressResource
Used by DonorTable/DonorSimple address objects. This differs from the rawaddresses[] collection in donation/donor webhooks.
Keys: id, address_1, address_2, city, state, country, zip, readable_string.
FundAllocation
Used by plan allocation arrays.amount uses major units; allocation_for_fees is boolean. fund can be a raw staff model or the donor-safe FundView projection depending on originating request context.
Keys: id, fund, amount, allocation_for_fees.
CustomFieldValue
Used by action-7custom_fields[]. id is the custom-field definition ID. type is value type (text, number, date, boolean), not a custom-question control type. value is display-form data; raw_value is stored data; editable is boolean.
Keys: id, name, type, value, raw_value, editable.
FundView
Donor-safe designation projection.suggestion_source is conditional. rendered_card_html and rendered_row_subtitle can be added for the applicable profile-picker route/configuration; otherwise they are absent.
Keys: id, name, code, default, thank_you_url, override_thank_you, thank_you_message, profile_description, profile_image_url, suggestion_source.
DesignationListView
Used by CheckoutViewdesignationList.
Keys: id, name.
CheckoutView
Used in donorscheduled_donations[].checkout. Includes the raw Checkout attributes plus the explicit keys below. resolved_paypal_connection_id can be added for an organization recipient. recipient uses OrganizationTable; fund/default_designation use FundView or null; designationList uses DesignationListView. Each company_types[] item has id, name, and boolean is_tax_exempt. impact_number and question configuration include additional model attributes.
Keys: recipient, frequency_text, banner, thank_you_banner, info_card_avatar, recurring_banner, recurring_info_card_avatar, designation_fallback_image, fund, default_designation, designationList, impact_number, custom_questions, recurring_conversion_options, limit_reached, company_types, default_company_type_id.
CustomQuestion
Used by CheckoutViewcustom_questions[]. Starts with model attributes excluding deleted_at, owner_type, owner_id, then adds/overrides the keys below. JSON choices/conditions and option-source configuration are organization-defined; they are not a fixed donor-answer schema.
Keys: answer_options, answer_option_values, conditional_parent_values, donor_should_skip, communication_list, context_conditions, option_source.
Custom-question option-source configuration
When present,custom_questions[].option_source supplies id, name, source_key, search_url, resolve_url, options_path, label_key, value_key, active_key, min_chars, result_limit, timeout_ms, search_origin, search_prefix, resolve_origin, resolve_prefix, dependencies, and enabled. dependencies is an array of referenced question .value paths. communication_list is a raw CommunicationList model/null. These describe configuration, not submitted donor answers.