Fiscal Host Settings UI#
The fiscal host dashboard contains two distinct settings sections that are easily confused because both deal with "payment details":
| Section | URL slug | Who sees it | What it configures |
|---|---|---|---|
| Receiving Money | receiving-money | Fiscal hosts with money management | How contributors pay the host (Stripe, PayPal, bank transfers, custom methods) |
| Payment Methods | payment-methods | Any account with USE_PAYMENT_METHODS active | Stored cards for outgoing payments + stored payout accounts for receiving reimbursements |
Both live under the Settings group in the dashboard sidebar and are rendered via the legacy AccountSettings → EditCollectiveForm path .
Routing Architecture#
Both sections are declared as LEGACY_SETTINGS_SECTIONS in dashboard/constants.ts:
RECEIVING_MONEY = 'receiving-money'PAYMENT_METHODS = 'payment-methods'
DashboardSection matches these section keys against LEGACY_SECTIONS and wraps them in <AccountSettings account={...} section={section} />. From there, EditCollectiveForm.renderSection() dispatches via a switch statement:
PAYMENT_METHODS→<PaymentInformation account={collective} />RECEIVING_MONEY→<ReceivingMoney collective={collective} />
Receiving Money Section#
Entry point: components/edit-collective/sections/ReceivingMoney.tsx
This section is only visible to fiscal hosts: it renders <FeatureNotSupported /> when hasAccountMoneyManagement is false or RECEIVE_FINANCIAL_CONTRIBUTIONS is 'UNSUPPORTED' .
The section has two sub-sections :
Automatic Payments
- Stripe — always shown; rendered by
EditStripeAccount - PayPal — shown only when
FEATURES.PAYPAL_DONATIONSis enabled; rendered byEditPayPalAccountwithvariation="RECEIVING"
Manual Payments
- Bank Transfers — rendered by
BankTransferMethods - Custom Payment Methods — rendered by
CustomPaymentMethods - Editing both is gated by
host.plan.manualPayments; accounts without this plan see an upgrade prompt
Data is loaded via editCollectiveBankTransferHostQuery .
Menu visibility: Shown when
hasMoneyManagement && !isAccountantOnly && isReceiveContributionsSupported.
Payment Methods Section#
Entry point: components/edit-collective/sections/payment-info/index.tsx
This is an account-level section (not host-only) that manages stored payment credentials in two sub-sections rendered by a single PaymentInfoDashboard component :
For Contributions / Sending Money
- Credit cards stored for outgoing payments: contributions, ticket purchases, platform billing
- Add cards via
CreateCreditCardModal - Displayed in
PaymentMethodsTable
For Expenses / Receiving Money
- Payout methods (bank accounts, PayPal, etc.) used to receive expense reimbursements, invoices, and grants
- Add methods via
CreatePayoutMethodModal - Displayed in
PayoutMethodsTable
Section headings adapt to account type: ORGANIZATION accounts see "Sending Money" / "Receiving Money"; all others see "For Contributions" / "For Expenses" .
Data is fetched via managePaymentMethodsQuery from ./gql . A ?successType=payment query param triggers a success banner after a payment method confirmation redirect .
Menu visibility: Shown when
account.features.USE_PAYMENT_METHODSis'ACTIVE'or'AVAILABLE'and!isAccountantOnly.