BookKeep Pro Documentation

Complete Installation, Setup & Feature Guide | Version 1.0 | Generated: August 13, 2026

Table of Contents

1. System Requirements

Minimum Requirements

PHP Extensions Required

2. Installation Guide

Quick Installation (Automated)

Run the automated setup script:

chmod +x setup.sh
./setup.sh

Manual Installation Steps

Step 1: Download & Extract

git clone [repository-url] bookkeep-pro
cd bookkeep-pro

Step 2: Install PHP Dependencies

composer install

Step 3: Configure Database

Create a PostgreSQL database and configure the connection:

export PGHOST=your-database-host
export PGPORT=5432
export PGDATABASE=bookkeep
export PGUSER=your-username
export PGPASSWORD=your-password

Step 4: Initialize Database

php includes/db_setup.php

Step 5: (Optional) Load Sample Data

php includes/seed.php

Step 6: Start the Server

php -S 0.0.0.0:5000 -t public public/router.php
Done! Access the application at http://localhost:5000

3. Required API Keys & Configuration

Service Purpose Required? Where to Configure
Stripe Payment processing, subscriptions Optional User Settings → Payment Settings
OpenAI Receipt/invoice OCR scanning Optional Admin → Company Settings → AI / OCR
SMTP Email sending (invoices, notifications) Optional Admin → Company Settings → Email
Google reCAPTCHA Spam protection on forms Optional Admin → Company Settings → reCAPTCHA

Stripe Configuration

For payment processing and subscriptions:

  1. Create an account at stripe.com
  2. Get your API keys from the Stripe Dashboard
  3. Enter keys in: Settings → Payment Settings
Note: Each user can configure their own Stripe keys for their business.

OpenAI API Key (OCR Feature)

For AI-powered receipt and invoice scanning:

  1. Create an account at platform.openai.com
  2. Generate an API key
  3. Enter the key in: Admin → Company Settings → AI / OCR

SMTP Email Configuration

Common SMTP settings:

Provider Host Port Encryption
Gmail smtp.gmail.com 587 TLS
SendGrid smtp.sendgrid.net 587 TLS
Mailgun smtp.mailgun.org 587 TLS

4. Admin Features & Locations

Access: Admin features require a user with role='admin' in the database. Access the admin panel at: /admin/

Admin Dashboard

Feature Location Description
Dashboard Overview /admin/ Stats: users, revenue, invoices, customers
User Management /admin/users.php Create, edit, delete users, assign roles, manage permissions
Permission Management /admin/users.php → Shield icon Granular permissions per user
Subscription Invoices /admin/subscription-invoices.php View subscription payments, webhook logs
Email Campaigns /admin/campaigns.php Send newsletters and announcements
Translation Management /admin/translations.php Edit translations for EN, DA, SV
VAT Configuration /admin/vat.php Manage VAT rates

Company Settings Tabs

Location: /admin/company.php

Tab Settings Available
General Trial period, copyright text, footer settings
AI / OCR OpenAI API key for receipt scanning
Branding & SEO App name, logo, favicon, meta tags
Social Social media links
Email SMTP configuration
Company Info Business name, address, contact details
Bank Details Bank account, IBAN, SWIFT
Invoice Settings Invoice prefix, numbering, payment terms
Import Service Customer import service configuration
reCAPTCHA Spam protection settings

5. User Features & Locations

Main Navigation

Dashboard

/dashboard.php

Overview, quick stats, recent activity

Customers

/customers.php

Manage company & private customers

Vendors

/vendors.php

Supplier management, expenses

Invoices

/invoices.php

Create, send, track invoices

Products

/products.php

Products, services, text items

Estimates

/estimates.php

Create quotes and estimates

Accounting Features

Chart of Accounts

/accounts.php

BAS kontoplan management

Journal Entries

/journal.php

Double-entry bookkeeping, OCR scanning

General Ledger

/ledger.php

Account transactions view

Reports

Location: /reports/

Report Path Description
Reports Dashboard /reports/ Overview of all reports
Revenue Report /reports/revenue.php Monthly revenue with charts
Outstanding Invoices /reports/outstanding.php Aging analysis
Top Customers /reports/top-customers.php Revenue by customer
Profit & Loss /reports/profit-loss.php Income statement
Balance Sheet /reports/balance-sheet.php Assets, liabilities, equity
VAT Report /reports/vat-report.php VAT declaration

User Settings

Location: /settings.php

Special Features

Feature Location Description
Receipt/Invoice OCR /journal.php → Scan Receipt AI-powered document scanning
SIE-4 Export /reports/ → Export Swedish accounting export
SAF-T Export /reports/ → Export OECD standard XML export
VAT Export (Sweden) /reports/vat-export-skv.php Skatteverket XML format
VAT Export (Denmark) /reports/vat-export-skat.php SKAT XML format
Company Lookup /customers.php Auto-lookup from allabolag.se / datacvr.virk.dk
Multi-Company Navigation → Company Switcher Manage multiple companies

6. Database Setup

Main Database Tables

Table Purpose
usersUser accounts with roles
companiesBusiness details, VAT, bank info
customersCustomer records
vendorsSupplier/vendor management
productsProduct catalog
servicesService offerings
invoicesInvoice headers
invoice_itemsInvoice line items
paymentsPayment records
chart_of_accountsAccount plan (BAS)
journal_entriesJournal entry headers
journal_entry_linesDouble-entry lines
expensesExpense tracking
vat_ratesVAT rate configuration
translationsMulti-language strings
system_settingsGlobal settings

Demo Credentials

Demo User: demo@bookkeep.com / demo123

Admin: Create via database or set role='admin'

7. Security Features

8. Troubleshooting

Common Issues

Database Connection Failed

Verify your PostgreSQL environment variables are set correctly:

echo $PGHOST $PGPORT $PGDATABASE $PGUSER

Permission Denied Errors

Ensure the uploads directory is writable:

chmod -R 755 public/uploads

OCR Not Working

Emails Not Sending

Stripe Payments Failing