Skip to content
Foxx Cyberfoxxcyber/docs

Set up giving, start to finish

Every step from a new workspace to a published donation page, in order, with how to tell each one worked.

Giving records gifts, keeps funds and campaigns, issues donor receipts and runs your online donation page. Several switches have to be on before any of it shows, and some of them live in different parts of Administration. This page puts them in order. Do the steps top to bottom: each one depends on the ones above it.

Before you start

  • You are a company administrator. Only company administrators can change the organization type, the modules and the payment connections.
  • You have a Stripe account, a PayPal business account, or both. You only need one.
  • Optional but recommended: your organization's email is set up under Administration → Email, so receipts can be emailed. See Administration.

To reach Administration, click the grid icon at the right end of the top bar. Giving's own screens are behind the heart icon in the top bar.

1. Make the organization a nonprofit

Giving is offered only to nonprofits. A business never sees it: not in Modules, not in the grants, not in the menus.

  1. Open Administration → Workspace settings.
  2. Under Organization type, choose A nonprofit.
  3. Click Save type.

Workspace settings with the Organization type card. "A nonprofit" is selected and a Nonprofit badge shows at the top right of the card

How to tell it worked: the card shows a Nonprofit badge. Saving also adds the nonprofit accounts to your chart of accounts (net assets with and without donor restrictions, contributions, and a few more); see Funds and the ledger.

2. Turn on Giving and Finance

Giving starts off, even for a nonprofit. The donation page also needs Finance, because the Stripe and PayPal connections and the books live there.

  1. Open Administration → Modules.
  2. Find Finance and make sure its switch shows On.
  3. Find Giving ("Donations, funds, campaigns, and IRS-ready donor receipts.") and switch it On.

The Modules page listing feature areas with on/off switches. Finance and Giving both show On

How to tell it worked: both rows show an On badge, and the heart icon for Giving appears in the top bar. If Giving is not in the list at all, go back to step 1. If the page says "Areas your plan doesn't include aren't listed", your plan may leave Giving or Finance out: ask your platform administrator. See also Modules.

3. Decide who runs Giving

Donor data is sensitive, so Giving goes by grants only. Leading or belonging to a department never gives anyone access to Giving.

WhoWhat they can do
Company administratorsEverything in Giving, always. They need no grant.
Giving admin grantEverything: gifts, receipts, year-end statements, imports, funds, campaigns, the donation page, monthly gifts, reports and settings.
Giving entry grantEnter gifts and deposit batches, and see only the ones they entered. No receipts, reports, donor history or settings.

To give someone a grant:

  1. Open Administration → Users and click the person.
  2. In the Access card, find Giving admin (or Giving entry) and click Grant.

A user's page in Administration: the Access card lists the grants, including Giving admin and Giving entry, each with a Grant button

How to tell it worked: the dot beside the grant fills in and the button changes to Revoke. The person sees Giving after their next page load. A Giving admin sees an Administration group in Giving's sidebar (Receipts, Funds, Campaigns, Donation page and the rest); an entry-only person sees just Overview, New gift, Gifts and Deposit batches.

Volunteers get entry only

A person whose Person type (on their user page) is volunteer is capped at the entry level everywhere except Volunteers, even if they hold the Giving admin grant. Their user page still shows the grant. Use a staff account for anyone who runs Giving.

4. Connect Stripe or PayPal, with the webhook

The donation page takes gifts through your own Stripe account, your own PayPal account, or both. Card details never reach Foxx HQ.

  1. Open Administration → Payments. (This menu item only shows while Finance is on.)
  2. Stripe: choose Test or Live, paste the Secret key (from Stripe's dashboard under Developers → API keys), click Save, then Test connection.
  3. Still on the Payments page, in the Webhook card, click Copy beside Endpoint URL and Copy the list beside Events to send. In Stripe's dashboard, go to Developers → Webhooks → Add endpoint, paste the URL, pick those events and save. Then reveal the endpoint's signing secret (it starts with whsec_), paste it into Webhook signing secret in Foxx HQ and click Save.
  4. PayPal (optional): choose Sandbox or Live, paste your REST app's Client ID and Secret, click Save, then Test connection. In PayPal's developer dashboard, add a webhook to the app with the Webhook URL and the events from the PayPal webhook card, then paste the webhook's ID into Webhook ID and click Save.

The Stripe card on Administration → Payments showing a connected badge, test mode, the saved secret key and webhook signing secret, and the Test connection and Save buttons

How to tell it worked: the Stripe (or PayPal) heading shows a connected badge, Test connection names your account, and the Webhook signing secret (or Webhook ID) hint says it is set. The full walkthrough, including moving from test to live, is in Payments setup.

Don't skip the webhook

The webhook is how Stripe and PayPal tell Foxx HQ that someone gave. The donation page goes live as soon as a key is saved, with or without the webhook. Without it, donors can be charged while no gift, no CRM contact and no receipt appears in Foxx HQ.

5. Create your funds

A fund is where the money goes. The donation page needs at least one active fund to offer.

  1. Open Giving → Funds and click New fund.
  2. Enter a short Code (for example GEN) and a Name (for example General fund).
  3. Pick the Class: without donor restrictions for money you can use for anything, with donor restrictions when the donor limited it to a purpose, and say what for in Restriction purpose.
  4. Save.

How to tell it worked: the fund is listed on Funds and shows up in the Funds donors may choose list on the donation page. Details: Funds and the ledger.

6. Set up the donation page

  1. Open Giving → Donation page.
  2. Fill in Headline, Story, an optional Image, the Suggested amounts, the Smallest gift and Largest gift, One-time gifts and/or Monthly gifts, and tick at least one fund under Funds donors may choose.
  3. Watch the Preview on the right as you type.
  4. Click Save draft.

How to tell it worked: a message says "Draft saved. Publish to put it on the page." Every setting is explained in The donation page.

7. Publish

Click Publish at the top of the Donation page screen.

The status card at the top of the Donation page screen: a Live badge, a Stripe test mode badge, the page address, and Copy link and Open buttons

How to tell it worked: the status card at the top shows a green Live badge, the page's address, and Copy link and Open buttons. If it shows Not live, it lists what is missing with a ✗ beside each item: fix those and the page goes live by itself.

8. Test it

  1. Stay in Stripe Test mode (or PayPal Sandbox) for now. The page shows "Test mode: no real money moves" at the top.
  2. Click Open on the status card, choose an amount and click Give. On Stripe's page, pay with the test card 4242 4242 4242 4242 (any future date, any security code).
  3. Back in Foxx HQ, open Giving → Gifts: the gift is there, posted, method Card, in the fund you chose. Its page carries a Given online (Stripe) badge. If automatic receipts are on and email is set up, the donor's receipt is emailed at once and shows under Giving → Receipts.

If the page took the payment but no gift appears, the webhook is not set up: go back to step 4.

When everything works, switch Administration → Payments to Live with your live keys and the live webhook (Stripe and PayPal keep test and live webhooks separate), and share the address.

Troubleshooting: why can't I see Giving, and why does my page say "not found"?

The public address (your organization's address ending in /give) shows "This page isn't available" unless every condition below is true. The same check runs each time a donor clicks Give.

What you seeWhyFix
No heart icon / no Giving in the menusThe organization type is BusinessAdministration → Workspace settings → A nonprofit → Save type
No heart icon, organization is a nonprofitGiving is off (it starts off)Administration → Modules → Giving On
Giving missing from the Modules listBusiness organization, or your plan leaves it outMake the organization a nonprofit; if it still isn't listed, ask your platform administrator
Giving admin / Giving entry missing from a user's grantsBusiness organizationMake the organization a nonprofit
A colleague can't see GivingThey hold no Giving grant (departments never give Giving)Administration → Users → the person → Grant on Giving admin or Giving entry
A colleague sees Gifts but no Receipts, Funds, Donation pageThey have Giving entry, or they are a volunteerGrant Giving admin; volunteers stay at entry level
Payments missing from AdministrationFinance is offAdministration → Modules → Finance On
Donation page status: ✗ Finance is onFinance is offAdministration → Modules → Finance On
Donation page status: ✗ Stripe or PayPal is connectedNo Stripe secret key and no PayPal client ID and secret savedAdministration → Payments
Donation page status: ✗ PublishedThe page was never published, or was unpublishedPublish on the Donation page screen
Status says Live, but the address says not foundNone of the funds the page offers is active any moreGiving → Funds: reactivate the fund, or tick another fund on the Donation page and Publish again
Campaign page address says not foundThe campaign page isn't published, the main donation page isn't published, or the campaign is archivedPublish both pages; restore the campaign on Campaigns
Campaign page says the campaign has endedIts end date has passedChange the end date on Campaigns
Donors paid but no gift appearsThe webhook isn't set up, or its signing secret / webhook ID is missing or wrongStep 4 above
Publish says "Save the page before publishing it."The page was never savedClick Save draft, then Publish
Gifts arrive but no receipt emailAutomatic receipts are off, or email isn't set upEmail receipts automatically on the Donation page; Administration → Email

Last updated October 15, 2026