Bookie
Self-hosted · Zero dependencies · Pure PHP + vanilla JS

The billing back office
Stripe and Square forgot to build.

Bookie turns a payment processor into a complete billing operation: invoices with real PDFs, recurring plans, dunning, receipts, reporting, customer self-service, and an API — all running on your server, with your database, on hosting that costs a few dollars a month.

See how it compares Explore features

Your whole billing desk, one screen

Net revenue, MRR, receivables aging, dunning — live from your own database.

Bookie dashboard showing net revenue, MRR, outstanding and overdue invoices, payment success rate and a 12-month revenue chart

Everything a billing desk needs

No Composer, no CDNs, no SaaS lock-in. Every subsystem — the Stripe client, SMTP sender, PDF generator, charts, even the maps — is hand-rolled or bundled locally.

Invoices with real PDFs

Server-generated, multi-page PDFs with your logo and accent color. Long line items word-wrap and flow across pages. Amount paid and balance due always shown — including partial payments.

Cards, cash, checks & crypto

Stripe Checkout for cards, plus hand-recorded offline payments. One ledger, one balance, one report — however your customer pays.

Charge a saved card on file

Customer authorized you? Flip the toggle, adjust the amount (full or partial), and charge their stored card off-session — recorded, receipted, and webhook-deduplicated automatically.

Recurring billing, two ways

Invoice-mode plans Bookie drives itself, or native Stripe subscriptions — plus metered billable events pushed from your own apps via the JSON API.

Multiple Stripe accounts

Route different invoices and subscriptions to different Stripe accounts, each with its own webhook endpoint and signing secret.

Dashboard that answers questions

Net revenue, MRR/ARR, receivables aging, payment success rate, top customers, invoice-vs-subscription charts, open rates — every table exports to CSV.

Dunning & automatic receipts

A past-due worklist with one-click, editable reminder emails, and automatic paid receipts — sent once per invoice, over SMTP or Gmail with automatic fallback.

Every email & text, your words

All 11 emails and 5 text messages the app sends are editable templates with placeholders. Texts prefill your own Messages app — and with Twilio, a failed subscription payment can text the customer a fix-it link automatically.

Customer self-service

An embeddable "Manage subscription" button: customers get a magic link into Stripe's Customer Portal to update cards or cancel — no support ticket needed.

Import & reconcile history

Bulk-import Stripe or Square CSVs with dry-run preview, auto-detect subscriptions vs one-offs, and a cron pull from Stripe that back-fills anything a webhook missed.

Access control & webhooks

Failed-payment grace windows and outbound webhooks so your membership or hosting software suspends and restores customers automatically.

Bookable meetings, built in

A Calendly-style scheduler that bills: sharable booking pages, your Apple Calendar availability, surge pricing, and payment or invoicing baked into every booking.

Rentals: spaces, equipment & vehicles

Meeting rooms, cabins, campsites, party rooms — plus equipment and vehicle rentals. Hourly, nightly, or day-rate, hotel-style stacked taxes, QR check-in/check-out, optional AI-verified photo ID, and a live door-sign display for a wall tablet.

Digital deliverables

Sell downloadable files with an embeddable Buy Now button: tokenized links, download and IP tracking, suspendable access, versioned update delivery.

Security that's actually novel

Role-based users, CSRF everywhere, parameterized queries, sent-email and webhook logs, database backup/restore, an in-app updater — and an optional login geofence as a location second factor.

Scheduling that gets you paid

Why pay for Calendly AND an invoicing tool? Bookie's built-in scheduler books the meeting, charges the card or sends the invoice, and puts it on your calendar — Apple, Google, or Outlook. One system, one ledger.

Sharable booking links

Every meeting type gets a clean hosted page — yoursite.com/meet/intro-call — plus an embeddable button for any website. Customers pick a time from your real availability.

Apple, Google & Outlook calendars

Point it at any mix of calendars — iCloud published links, Google secret iCal addresses, Outlook published calendars — and busy time across all of them disappears from the schedule. Confirmed bookings arrive as calendar invites for both sides.

Surge pricing

Charge more for same-day bookings and after-hours slots — set it once per meeting type, and the price updates live as customers pick their time.

Pay to book — or bill after

Take card payment upfront through Stripe (with sales tax handled), or confirm free and invoice after the meeting. A PDF invoice lands in your ledger either way.

Meeting ran long? Bill it.

Adjust the amount before the automatic invoice goes out, put billing on hold, or send additional invoices later — the two-hour call gets billed like a two-hour call.

Onsite service ready

Collect the street address at booking for house calls and field work — it lands in the confirmation email and as the location on the calendar invite.

Rent out anything — rooms, cabins, campsites, equipment, vehicles

The same booking engine runs whatever you rent: spaces by the hour or night, and property like trailers, tools, boats, or bounce houses by the day. Renters book online, pay correctly taxed totals, check in and out with a QR scan, and the invoice takes care of itself.

Hourly or nightly, per listing

Party room by the hour, cabin by the night, excavator or boat by the day (nightly mode works perfectly for day-rate rentals). Each listing sets its own window, minimum, lead time, and calendar feeds that block availability.

Hotel-style stacked taxes

Up to three named taxes per space — sales + occupancy + city — calculated together on every charge and itemized on the invoice, so lodging tax rules stop being a spreadsheet.

QR check-in & check-out

Print a letter-size QR sign (or download SVG/PNG) for the door, pickup counter, or equipment yard. Renters scan, verify with the email or phone they booked with, and tap an emailed link — check-in/pickup and check-out/return, timestamped.

Live door sign for a tablet

A full-screen display that knows the time: green "Available" with a booking QR when free, red "In use" with the check-out QR when occupied — plus today's schedule and your booking policies. Refreshes itself every 5 minutes.

Bill the hours they actually used

Party ran long? With actual-time billing, check-out timestamps the real end and the invoice charges the hours used, rounded up — no chasing, no awkward conversations.

A booking page per space

Every space gets a clean sharable link — yoursite.com/space/cabin-3 — with live availability, tax-inclusive totals, and pay-to-book or invoice-after, your choice.

Photo ID at booking

Flip one switch per listing, meeting type, or plan and first-time renters attach a photo of their ID — any format, converted to compact WEBP and stored on the customer record. Essential when handing over keys, vehicles, or equipment.

AI-verified IDs

Add your Anthropic API key and Claude checks each upload — real ID, name matches the booking — and marks the guest verified in seconds. Anything unclear goes to you for review; the AI never turns a customer away. Verified guests are never asked twice.

Serious security, zero hassle

No more two-factor headaches. Signing in takes two things: your password and being where you're supposed to be. No codes, no authenticator apps, nothing to lose.

Locked to your location

Draw a circle on a map — your office, shop, or town. Sign-in only works inside it. That's your second factor.

Bots can't even knock

Hackers' automated login attacks fail instantly — they're never in the right place. Repeated wrong guesses get blocked automatically.

The right access for each person

Your team works with invoices and customers; only admins touch settings and payment connections. Suspend anyone with one click.

Flexible for people on the move

Each person can have their own allowed area — the bookkeeper at the office, you wherever you work from.

Why not just Stripe alone — or Square?

They're excellent at moving money. Bookie is what wraps around them: the invoicing desk, the ledger, the reporting, and the customer records — without per-invoice fees or another SaaS subscription.

CapabilityBookieStripe aloneSquare
Extra software cost$0 — self-hosted, flat0.4–0.5% per invoice*Free tier, paid add-ons*
Own your data (your server, your MySQL)YesNo — lives in StripeNo — lives in Square
Offline payments (cash / check / crypto / wire) in the same ledgerYes, first-classManual workaroundsLimited
Multiple Stripe accounts, one dashboardYesOne account at a time
Adjustable card-on-file charge with authorization audit trailYesBuild it yourselfCard on file, less control
Receivables aging, MRR/ARR, dunning worklistBuilt inPartial, spread across pagesBasic reports
Every outgoing email & text is an editable templateSMTP or Gmail, your wording, logged & resendableStripe-branded templatesSquare-branded
Automatic text (SMS) when a subscription payment failsBuilt in — Twilio, with a self-serve fix-it link
JSON API for subscriptions & metered eventsYes, token-authenticatedYesLimited
Import historic payments (Stripe/Square CSV) & reconcileYes, with dry-run
Sell digital downloads with tokenized deliveryBuilt inThird-party toolsSeparate product
Bookable meetings with payment (Calendly-style)Built in — booking, payment & invoice in one— (add Calendly, ~$10+/user/mo*)Square Appointments (separate app)
Surge pricing for same-day & after-hours slotsYes, per meeting type
Bill-after-meeting with adjustable amountsYes — adjust, hold, or bill extraManual invoicing
Space, equipment & vehicle rentals with QR self check-inBuilt in — stacked lodging taxes, door-sign display
Photo-ID capture with AI verificationBuilt in — verified guests skip re-upload
Space & room rentals with lodging-style stacked taxesBuilt in — hourly or nightlySeparate booking products
QR self check-in/out + live tablet door signBuilt in, no extra hardware fees
Works on cheap shared hostingYes — pure PHP, no Composern/a (SaaS)n/a (SaaS)
Vendor lock-inNone — move hosts by copying filesHighHigh

* Processor invoicing/add-on pricing varies by plan and region — check current pricing. Card processing fees always apply regardless of tooling; Bookie adds no fees on top.

0

External dependencies

No Composer packages, no JS frameworks, no CDNs. The Stripe client, mailer, PDF engine and charts are all in the box. Upload the folder, point your web root, done.

1

Folder to deploy

Private code ships locked down behind app/.htaccess. Installer writes the config, runs the schema, and the in-app updater handles upgrades with migrations.

100%

Yours

Customers, invoices, payments and email logs live in your MySQL database. Back up and restore from inside the app. Leave any host, keep everything.

Simple pricing, no subscription required

Buy it once, own it for life. Add hosting or hands-on help only if you want it — and in-app AI support is free for everyone.

HIPAA-compliant hosting

$9 / month
  • App deployment included free
  • Uptime monitoring included free
  • SSL certificate included free
Subscribe — $9/mo

Deployment & data import

$199 one-time
  • Full setup on any host you choose
  • Your existing data imported for you
  • Handed over running and ready

Support & training

$79 / hour
  • One-on-one help from a real person
  • One-hour minimum
  • In-app AI support always free

Keep the processor. Own the billing.

Bookie rides on top of Stripe for card payments and plays nicely with your Square history — while everything that matters stays on your server.