Automated invoice generation from Toggl time tracking to Fakturoid invoices.
Fakturator is a desktop application that simplifies invoice generation for freelancers and small business owners. It automatically fetches time entries from Toggl Track and creates invoices in Fakturoid with a single click.
- Single-Click Invoice Generation: Generate invoices for any month with one button
- Automatic Grouping: Projects with the same client are automatically combined into one invoice
- Custom Invoice Descriptions: Use templates with placeholders for professional invoice text
- API Integrations: Seamlessly connects with Toggl Track and Fakturoid APIs
- Local Data Storage: All configuration and history stored securely on your computer
- Setup Wizard: Easy first-time configuration with guided setup
- Project Configuration: Customize hourly rates, VAT, and client info per project
- Time Rounding: Configurable time rounding (e.g., to 15-minute increments)
- Tag Filtering: Exclude specific tags from billing
- Invoice History: Track all generated invoices with status and PDF links
- Client Import: Fetch client details directly from Fakturoid
- Privacy-First: No data sharing - everything stays on your local machine
- Cross-Platform: Works on Windows, macOS, and Linux
Download the installer for your platform:
- Download
Fakturator-Setup.exefrom Releases - Run the installer
- Launch Fakturator from Start Menu
- Complete the setup wizard
- Download
Fakturator.dmgfrom Releases - Open the DMG and drag Fakturator to Applications
- Launch from Applications
- Complete the setup wizard
π See User Guide for detailed instructions
- Python 3.9 or higher
- Toggl Track account with API access
- Fakturoid account with API access
- Clone the repository
git clone https://github.com/yourusername/Fakturator.git
cd Fakturator- Create and activate virtual environment
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Run the application
python main.py- Complete the setup wizard
On first launch, you'll be guided through:
- Entering your Toggl API credentials
- Entering your Fakturoid API credentials
- Setting up your business profile
- Selecting Toggl projects to track
- Configuring invoice defaults
- Log in to your Toggl Track account
- Go to Profile Settings
- Scroll down to find your API Token
- Copy your Workspace ID from the workspace settings
- Log in to your Fakturoid account
- Go to Settings β API
- Generate an API key
- Note your account slug (subdomain)
-
Launch the application
python main.py
-
Select the month you want to generate invoices for (defaults to previous month)
-
Choose invoice mode:
- Draft: Creates invoices as drafts for review before sending
- Final: Creates and sends invoices directly
-
Click "Generate Invoices"
-
Review the results in the log panel and invoice history table
Access project settings via Settings β Project Settings to:
- Set hourly rates per project
- Configure VAT rates
- Add client information (name, email, address, tax ID)
- Enable/disable projects for automatic invoicing
- Configure time rounding rules
- Exclude specific tags from billing
The main window displays a history of all generated invoices including:
- Date generated
- Invoice month
- Project name
- Total hours
- Total amount
- Status (draft/sent)
- PDF download link
All data is stored locally in:
- Database:
~/.fakturator/fakturator.db(SQLite) - Encryption Key:
~/.fakturator/.key(for API credentials) - Logs:
~/.fakturator/logs/fakturator.log
Configure default settings via Settings β Run Setup Wizard or by editing:
- Currency (CZK, EUR, USD)
- Payment terms (default: 14 days)
- Default invoice notes
- Draft mode preference
To create standalone installers for distribution to non-technical users:
# On Windows machine
build_windows.batCreates: installer\Fakturator-Setup-1.0.0.exe
# On macOS
./build_macos.shCreates: dist/Fakturator.app
π See Build Guide for detailed build instructions
Once built, you can distribute the installers to colleagues who don't need Python installed:
- Windows: Share
Fakturator-Setup-1.0.0.exe- double-click to install - macOS: Share
Fakturator.dmg- drag to Applications to install
Each user will configure their own API credentials on first run through the setup wizard.
- Toggl: Verify your API token and workspace ID are correct
- Fakturoid: Ensure your API key, account slug, and email are correct
- Check your internet connection
- Go to Settings β Project Settings
- Click "Refresh from Toggl"
- Configure hourly rates and client information for each project
- Check the log panel for error messages
- Verify project configurations have client information
- Ensure time entries exist for the selected month
- Check API credentials are valid
View detailed logs at: ~/.fakturator/logs/fakturator.log
Fakturator/
βββ main.py # Application entry point
βββ requirements.txt # Python dependencies
βββ src/
β βββ __init__.py
β βββ invoice_generator.py # Core invoice generation logic
β βββ api/
β β βββ toggl_client.py # Toggl API client
β β βββ fakturoit_client.py # Fakturoid API client
β βββ database/
β β βββ manager.py # SQLite database manager
β βββ models/
β β βββ config.py # Configuration models
β β βββ invoice.py # Invoice data models
β β βββ toggl.py # Toggl data models
β βββ ui/
β β βββ main_window.py # Main application window
β β βββ setup_wizard.py # First-time setup wizard
β β βββ project_settings.py # Project configuration dialog
β βββ utils/
β βββ logger.py # Logging utilities
β βββ transformers.py # Data transformation utilities
βββ tests/ # Unit tests
pytest tests/# Format code
black src/
# Lint code
flake8 src/Fakturator is designed with privacy in mind:
- All data stored locally on your computer
- API credentials encrypted with local key
- No telemetry or data sharing
- No internet access except to Toggl and Fakturoid APIs
[Your chosen license]
For issues, feature requests, or questions:
- Create an issue on GitHub
- Contact: [your-email@example.com]
- Built with PyQt6
- Integrates with Toggl Track
- Integrates with Fakturoid
Version: 1.0.0 Author: Filip Last Updated: 2025-10