🔥
FireBuddy Admin

Admin access

Sign in with your FireBuddy account. Only allowlisted users can enter.

Invalid credentials.

We sent a 6-digit code to

Resend code · Different email

Loading admin data…

🔥
FireBuddy Admin
Overview
Dashboard
Manage
Customers 0
WL Partners 0
WL Plans 0
Bundles 0
Fire Registrations 0
All Payments 0
FireBuddy Income
Renewal Emails 0
Assessments 0
Consultations 0
Booking Links 0
Pages
Signup Plans 0
Config
System Status
Audit Log
Settings
Dashboard
A
Admin

Admin Dashboard

Real-time overview of all FireBuddy customers and revenue

Checking system health…
—
View status →
MRR
—
From active paid subs
Active Subscriptions
—
Currently paying
Total Customers
—
All time signups
Expiring Soon
—
Within 12 days
Expired / Lapsed
—
Need follow-up

Pending Fire Approvals

BusinessNameStatusInitiatedActions

📅 Upcoming calls

Days with calls are marked. Click one to filter the list.

Recent Signups

BusinessEmailPartnerCreditStatusFeesActions
Loading…
Today
—
0 payments
Last 7 days
—
0 payments
Last 30 days
—
0 payments
All-time revenue
—
Credit + usage fees

Recent Payments

DateCustomerProductAmountStatusFire ref
Loading…

All Customers

Manage subscriptions, API keys and plans

Add Customer

Find an existing account by email or create a new one. A subscription record will be created so they appear here.

Sets billing currency & VAT rules — prices below follow it.

Prices shown in the country's currency. Pick one and use the stage buttons to mark payment.

BusinessEmailPartnerCreditStatusFeesActions
Loading…

All Payments

Every transaction processed through FireBuddy widgets

DateBusinessCustomerProductAmountStatusFire Ref
Loading…

Fire Registrations

Track and manage Fire bank account KYC/KYB approvals

Total Registrations
—
Pending KYC
—
Approved
—
Rejected
—
BusinessEmail / User IDFire AccountStatusInitiatedApprovedActions
Loading…

Renewal Emails

Customers approaching expiry — send manual reminders

Expiring within 12 days

BusinessEmailPlanExpiresDays leftAction
Loading…

Expired / Grace Period

BusinessEmailPlanExpiredStatusAction
Loading…

Assessments

Prospects who filled in the /assess questionnaire — review, qualify, follow up

Total submissions
—
New (untouched)
—
Qualified
—
Converted
—
BusinessContactIndustryVolumeTimelineStatusSubmitted
Loading…

Consultations

Discovery responses from /consult — prospects asking us to scope a custom-build solution

Total
—
New (untouched)
—
In scoping
—
Won
—
BusinessContactBudgetTimelineStatusSubmitted
Loading…

Booking Links

Public booking links live on the FireBuddy team's account — edit, deactivate, or pick which one is shown on landing pages

Total
—
Active
—
Free booking
—
Landing page link
—

⏰ Consultant availability

Weekly hours & slot duration for the team's booking links. Add multiple time blocks per day with + Add hours.

Loading…

📅 Closed dates — holidays / away days; no one can book these

Click a day to close it. Click again to reopen.
Upcoming closed dates
NameTypeDurationPublic URLLandingStatusActions
Loading…

Pages

Every public-facing page the team shares — open, copy, see how each one is converting

Tracked pages
—
Attributed leads (consult)
—
Attributed leads (assess)
—
Top source
—
💡 How attribution works: when a page CTA links to /consult?from=page-slug or /assess?from=page-slug, the form captures it as the source. The counts below reflect that. For deeper visitor data (sessions, scroll depth, rage clicks), click the Clarity link on any row.
PageURLPurposeConsult leadsAssess leadsActions
Loading…

Signup Plans

Plans the prospect picks (and pays for via Fire Open Banking) at /signup. Distinct from the public monthly Subscription Pricing.

OrderNameDescriptionPrice (EUR/GBP)StatusActions
Loading…

New Signup Plan

These plans appear on /signup and the merchant pays the price via Fire Open Banking before account creation completes.

🔒 Private offer for — this will only show in their account, never on /signup, and is added to their visible offers automatically.
Off = you enter the ex-VAT price and VAT is added on top (customer pays price + VAT). On = the price you enter is the VAT-inclusive total (customer pays exactly that). Either way the customer is charged the same once VAT is applied — this just changes which number you type.
First month only · monthly plans. Must be < regular price.
Auto-create makes a payment_links row on your own Fire-connected merchant account (priced at the EUR/GBP price above) and pastes the short code here. /signup uses each pair when the prospect picks that currency. A currency with no price + pay code is hidden from that prospect.
Charged once on signup. From month 2 the regular pay code kicks in via the renewal cron — no extra wiring needed.

System Status

Automated health check of every active payment link & public page. Runs every 3 hours; emails the founder on failure.

Loading latest check…
—
Recent checks
WhenResultCheckedPassedFailedDuration
Loading…

Audit Log

Every admin write that touched customer state or platform config. Append-only — see docs/incident-response.md Step 3.

WhenActorActionResourceNotes
Loading…

FireBuddy Income

Your pay-as-you-go revenue — credit top-ups collected and usage-fee invoices.

💳 Credit top-ups

BusinessPaidBonusCredit grantedStatusDate
Loading…

🧾 Usage-fee invoices

BusinessAmountPeriod endStatusPaid / Due
Loading…

Settings

Configure your Fire API, email, pricing and branding

Fire API Credentials

These credentials are stored in your Supabase database and used server-side only. Never exposed to end users.
Stored encrypted. Never shown after saving.
Needed so GBP merchants can top up credit via Open Banking. Leave blank if FireBuddy has no GBP account.
Where Fire sends customers after payment

Webhook Configuration

Set the same secret in your Fire account → Webhooks so Fire can sign incoming events and the FireBuddy edge function can verify them.

Used to validate incoming webhook signatures from Fire
How to set up: Log into your Fire dashboard → Settings → Webhooks → Add the URLs above. Fire will POST events when KYC status changes or payments are received.

Sandbox Mode — Test Tools

Approves the most recent pending registration

🏛️ VAT auto-set-aside (signup revenue)

When a VAT-inclusive EUR signup payment lands in the platform account, automatically move the 23% VAT slice into your tax account in Fire — so the main account shows real profit. (Merchant payments are handled separately in each merchant's own dashboard.)

The Fire account number (ICAN) of your EUR tax account — the VAT is transferred there from the platform EUR account on each settled signup.

MailCub Email Settings

WhatsApp Cloud API

Platform-wide Meta Cloud API credentials. FireBuddy owns one WhatsApp Business number; every merchant who opts in from their Fire Setup receives notifications via this sender. Rotate the access token here when it expires (every 60 days for temp tokens).
From Meta for Developers → WhatsApp → API Setup
System User token preferred (never expires) — temporary tokens work for 24h only
BCP-47 code — must match the language the templates were approved in

Template names

These must match the approved template names in your WhatsApp Manager exactly. Change here if you rename a template in Meta.

🧪 Send a test

Sends a sample “new booking” WhatsApp using the booking-confirmed template, so you can verify the number + template once approved. Save your settings above first.

✓ Saved

Fees & Pricing

Pay-as-you-go: set the per-transaction FireBuddy fee, the Stripe comparison rate and the prepaid credit packs below. The old subscription/tier price fields are retired and hidden.

Tier Pricing

Always free (both currencies)

Per-transaction fees & Stripe comparison

FireBuddy's fee charged per payment (on top of Fire's own fee). The Stripe rates are what we compare against to show merchants their savings — keep them current with stripe.com/ie/pricing (IE standard: 1.5%+€0.25 EEA · 2.5% UK · 3.25% intl).

Small payments
Payments under the threshold use these fees instead — keeps tiny payments cheaper than Stripe. Leave the small flat at 0 to always beat Stripe on small amounts. (Blank threshold = no small tier.)
Merchants pre-buy credit (usage mode): they pay the first amount and receive pay + bonus. Bigger bonus on bigger packs = "buy more, save more". Shown on their dashboard.
The minimum monthly order every standard-plan merchant places (net + VAT, Fire pay link). The full net comes back to them as FireBuddy Money — credit that pays their per-payment fees. Yearly pack: pay N months once, covered for M (the extra months are the bonus). New signups are on the plan automatically; existing merchants stay PAYG until you switch them on their customer page. Confirm VAT treatment with the accountant before assigning real merchants.

Tier Feature Lists

One feature per line. Shown on the subscription page. Use ✓ and ✗ prefixes or leave plain — ✓ is auto-added.

Free €0/mo
Pro €29/mo
Business €79/mo

Section Access per Tier

Toggle which dashboard sections each tier can access. Locked sections show an upgrade prompt.

Section Free Pro Business
Days after expiry before key deactivates
When to send the first reminder email

Branding

Used in renewal email links
Shown in dashboard header and emails instead of FireBuddy logo — use a 200×50px PNG/SVG
Accent colour applied to buttons and badges on the merchant dashboard

Intuit Developer App (QuickBooks)

One-time setup. Merchants who want to connect their QuickBooks account use this app to authorise FireBuddy. Get the client_id / client_secret from developer.intuit.com/app/developer/myapps. Full step-by-step at docs/quickbooks-setup.md.
Sandbox calls api.sandbox-quickbooks.com; production calls quickbooks.api.intuit.com. The client_id / secret differ between environments — re-paste when you switch.
From the Intuit Developer dashboard → Keys & OAuth tab
Stored server-side; never returned to merchants.
Paste this exact URL into the Intuit Developer app's "Redirect URIs" list. Recommended: https://srjrxyobhfegimgqfpor.supabase.co/functions/v1/quickbooks-oauth-callback
✓ Saved

✨ AI features (Anthropic key)

Powers the AI features across FireBuddy — booking-page copy drafting, bank-statement categorisation and summaries. Uses your own Anthropic key, billed to your Anthropic account. Stored server-side, never shown to end users.
Create one at console.anthropic.com/settings/keys → Create Key, then paste it here.

FireBuddy API — integration details

To connect another app (a booking page, a website, an accounting tool) so it can create payments through a merchant's FireBuddy account, that app needs two values: the API URL below and the merchant's own API key. Paste them into the other app's "FireBuddy" / payment-provider settings.
https://srjrxyobhfegimgqfpor.supabase.co/functions/v1/firebuddy-api
This is FireBuddy's platform endpoint — it is not per-merchant. Every merchant uses this exact URL. Requests are authenticated by the per-merchant API key, not the URL.
The key is per-merchant and secret, so it isn't shown here. The merchant gets their own key from their dashboard:
  1. Dashboard → API Keys tab → + Generate Key (give it a label, e.g. "Booking page"), then copy the fb_live_… key — it's shown once.
  2. The ready-to-paste pair (URL + masked key with Copy buttons) also lives on their Overview page in the 🔌 Connect FireBuddy card.
The key works immediately — no activation needed on this side. Treat it like a password; anyone with it can create payments on that merchant's account.
Full route + schema list: supabase/functions/firebuddy-api/openapi.yaml. Common calls: POST /payment-requests (create a pay request), GET /payment-requests/{code} (status), GET /invoices, POST /invoices/{id}/mark-paid. All require header Authorization: Bearer fb_live_….

Customer

🛟

Start a support session

Time-boxed access — the merchant gets emailed immediately, sees a banner the whole time, and can end the session from their own dashboard. Auto-expires at the end of the duration. Logged permanently as a support session.

Minimum 10 chars. Goes in the merchant's email and the permanent audit log.

Contact Details

Subscription

Fire Bank Account

🔌 Payment setup & API access

🎁 Offers for this client

💳 FireBuddy credits

White-Label Partners

White-label partners — each manages their own client accounts and branding

NameSlugPlanClientsStatusActions
No white-label partners yet

White-Label Plans

Plan templates — define features and pricing for each white-label tier

Plan Features Monthly Annual Partners Status
Loading…

New Plan

Configure plan features, pricing and colour

Plan Details

Partners on this Plan

Save the plan first to see assigned partners.

Included Bundles

Select which feature bundles are included in this plan. Each bundle contains a group of features.

Resolved Features (read-only)

Select bundles above to see resolved features

Feature Bundles

Named groups of features — assign to plans or let merchants self-select

Bundle Features Monthly Annual Group Status
Loading…

New Bundle

Configure bundle features, pricing and sidebar group

Bundle Details

Included Features

Select the dashboard features included in this bundle.

New White-Label Partner

Account details, branding and dashboard features

Account Details

Custom Pricing Override (leave blank to use plan default)

Branding

Dashboard Features

Choose which sections appear in this partner's merchant dashboards.

Change Plan

Update subscription plan for this customer

Signup plan picked at checkout

Changes the currency of the plan prices below — and the customer's VAT rules.

👉 Pick a plan (e.g. the Bespoke Client Offer) and the Tier, Billing Cycle, Status & Expiry below auto-fill to match — so this client gets the right account access. Adjust if needed, then Save.

Must be within ±10 years of today. The picker happily takes typos like 2126 — double-check the year.

Assigning a partner makes this client appear in that partner's admin panel under their brand.

Tick a section to hide it from this customer's dashboard nav. They keep their tier — this just removes features they don't use. Takes effect next time they load.

\u26A0 Delete Customer

This will permanently delete the auth user, their subscription, API keys, payments and all related data. This cannot be undone.

You are about to delete:
—

Temp Login Code

Read or send this 6-digit code to the customer. It expires in 30 seconds and works once only.

Generating code…
——
for —
10:00
Expires in 10:00
Single use — works once only
⚠️ Code expired — generate a new one
📲 Or send a login link
Generate a one-click login URL — paste directly into WhatsApp or SMS. No email needed.
Generating link…
ONE-TIME LOGIN LINK
⚠ Single use — expires after one click

Edit Customer

Update contact and account details

✓ Saves as their new login email — they'll use this to sign in next time.

Send Renewal Reminder

Sending to: —

Email sending requires MailCub integration — configure in Settings.