Public Donations
Public donations let supporters give directly from your public shelter profile or full-profile embed. PawPlacer supports general donations from the profile support card and targeted funding for public wishlist items.
Requirements
To accept public donations:
- Your public profile must be enabled.
- Payments must be enabled in Profile Visibility settings.
- Donations must be enabled in Profile Visibility settings.
- At least one public payment method must be configured. Stripe Connect is required for card checkout and recurring donations; PayPal, Venmo, Cash App, Zelle, generic payment links, Bitcoin, and Ethereum can be used for tracked external payments.
PawPlacer does not automatically turn public donations on when you first enable your public profile. This keeps donation collection intentional. Owners can enable it from Settings > Profile Visibility.
For the complete setup sequence, including Stripe Connect, external payment methods, donation presets, profile visibility, and wishlist item settings, follow Set Up Public Fundraising.
What Visitors See
When public donations are enabled, visitors see a Support card on your public shelter profile or full-profile embed. If Stripe is active, the card includes a Donate button that opens a checkout dialog. If external payment methods are configured, visitors can also start a tracked payment with that provider.
The dialog lets visitors:
- Pick one of your preset donation amounts
- Enter a custom amount
- Choose One-Time, Monthly, or Yearly for Stripe donations that are not tied to wishlist quantity funding
- Add their name and email
- Leave a message
- Mark the gift as anonymous
For Stripe, the visitor is sent to Stripe Checkout. If the donation is started from an embed, checkout opens in a new browser tab when needed. Monthly and yearly gifts are handled as Stripe subscriptions on your connected Stripe account. For external payment methods, PawPlacer creates a pending donation with a reference first, then opens the best provider link available and keeps the reference visible for the supporter.
If the visitor funds a wishlist item, the dialog also includes quantity selection when the item has a price. PawPlacer validates the selected quantity against the current available quantity before creating the checkout or pending external payment. Wishlist quantity funding is one-time only so item quantities, reservations, and received counts stay accurate.
Stripe Fees
PawPlacer keeps none of the donation. Stripe's processing fee is added as a separate checkout line item so the shelter receives the full donation amount.
The donation record stores the donation amount separately from the Stripe fee.
Automatic Fulfillment
When Stripe confirms payment, PawPlacer automatically:
- Marks the donation as Received
- Stores the Stripe payment intent
- Creates or links the donor profile when donor information was provided
- Applies wishlist quantities if the donation funded a wishlist item
- Records future paid invoices for recurring donations when Stripe sends subscription invoice webhooks
If checkout expires or Stripe reports a failure, the donation is marked cancelled or failed.
For wishlist funding, open Stripe checkouts reserve the selected item quantity until payment succeeds or the checkout expires. External payment starts also reserve the selected quantity while the donation is pending, so staff should reconcile or cancel stale pending records from the Donations page.
Abuse Protection
Public donation checkout creation and public wishlist item pledges are rate limited by visitor IP address and by shelter account. PawPlacer also validates that a public checkout or pledge can only target an enabled public shelter and one available public target at a time.
External payment starts use the same rate limit and validation path. They are stored as Pending until staff match the provider transaction and mark the donation Received. Public wishlist item pledges are also rate limited and require a supporter message with enough detail to match the pledge to an order, tracking number, drop-off plan, or note.
Refunds
Issue Stripe refunds from your Stripe Dashboard. PawPlacer listens for refund webhooks and marks fully refunded public donations as Refunded. If the donation funded a wishlist quantity, the quantity is reversed so the wishlist need reopens correctly.
For recurring donations, manage the subscription in Stripe. Stripe remains the source of truth for pausing, cancelling, updating payment methods, and changing subscription details. PawPlacer records the donation activity in the Donations ledger as Stripe reports successful recurring invoices.
Other Payment Methods
If you have saved non-Stripe payment methods, the support card can start tracked payments for PayPal, Venmo, Cash App, Zelle, generic payment links, Bitcoin, or Ethereum.
Provider behavior varies:
- PayPal: opens a PayPal.Me amount link.
- Venmo: opens the web pay flow with recipient, amount, and reference note.
- Cash App: opens the configured Cash App profile or amount link from the saved Cash App username.
- Zelle: opens a best-effort banking-app link and shows the recipient/reference because banks do not provide one universal prefilled payment URL.
- Payment Link: opens your saved hosted checkout or donation page. The supporter may need to enter the amount or reference manually depending on that provider page.
- Bitcoin and Ethereum: show the wallet address and reference for manual reconciliation.
External payments still require staff reconciliation. Open the pending donation from Donations, confirm the provider payment, and mark it Received.
Where Staff Manage Public Donations
Public donations appear in Donations, Fundraising, and donor giving history when a donor can be matched or created. Open a donation from the Donations table to review the amount, donor, status, source, donor-facing reference, provider payment ID, checkout session, allocation target, notes, and stewardship markers. Staff can edit the record, reconcile external payments, mark receipt or thank-you follow-up, cancel stale pending gifts, or issue refunds through Stripe when applicable.