View Categories

Invoice Plugin

Introduction #

Redmineflux Invoice is a complete billing and invoicing Plugin for Redmine that enables teams to generate invoices from time entries, manage customers, configure billing rules, and track payment status without relying on external tools.

The plugin connects time tracking (Spent Time) with billing workflows, allowing accurate invoice generation, better financial visibility, and streamlined project-based billing.

Main capabilities include:

  • Invoice CRUD with full lifecycle management (Draft → Sent → Paid → Cancelled)
  • Auto-generate invoices from time entries within a date range
  • Per-user team rates with fallback to project billing rate
  • Global customer database with project linking
  • Manual and online payment recording (Stripe and PayPal)
  • PDF generation with customisable HTML/ERB templates
  • Email templates with dynamic macro substitution
  • Billing dashboard with KPI summary
  • Cross-project global invoice view

Version Compatibility #

Supported Redmine versions:

  • 5.0.x
  • 5.1.x
  • 6.0.x

Installation #

To install the Redmineflux Invoice plugin:

  1. Make sure Redmine is already installed and working.
  2. Copy the plugin folder into your Redmine plugins directory.cp -R redmineflux_invoice /path/to/redmine/plugins/
  3. Install required gems.cd /path/to/redmine
    bundle install
  4. Run database migrations.
    For production:RAILS_ENV=production bundle exec rails redmine:plugins:migrateFor development:RAILS_ENV=development bundle exec rails redmine:plugins:migrate
  5. Restart Redmine.

bundle exec rails server

After installation, navigate to Administration > Plugins. The Redmineflux Invoice plugin should appear in the list.

Configuration #

To configure the plugin:

  1. Go to Administration.
  2. Open Plugins.
  3. Find Redmineflux Invoice.
  4. Click Configure.

From plugin configuration, administrators can manage:

  • Company information used on all invoices (name, address, logo, email, phone, tax IDs)
  • Invoice settings (prefix, currency, default payment terms)
  • PDF templates (default and custom HTML/ERB templates)
  • Email templates (subject, body, footer with macro support)
  • Payment gateway credentials (Stripe and PayPal)

Company Information #

Enter your organisation details in the Company Information section:

  • Company name — appears on every invoice
  • Full address (street, city, state, zip, country)
  • Company logo — uploaded image shown in the invoice header
  • Billing email and phone number
  • Tax ID and GST number if applicable

Invoice Settings #

Configure global invoice behaviour:

  • Invoice prefix — default is INV, used to generate numbers like INV-2026-0001
  • Currency — the symbol displayed on all invoices
  • Default payment terms — default is Net 30

Invoice PDF Templates #

The plugin ships with a default PDF template. You can create additional custom templates using HTML/ERB with macro substitution.

Supported macros: {{id}}, {{year}}, {{month}}, {{project_identifier}}, {{random_digit}}

Invoice Email Templates #

Email templates define the content sent to customers when an invoice is emailed.

You can:

  • Use the default template or create new ones
  • Customise subject, body, and footer
  • Use dynamic placeholders for client name, invoice number, and due date

Payment Gateway #

To enable Stripe:

  1. Open plugin configuration.
  2. Enable Stripe.
  3. Enter your Publishable Key, Secret Key, and Webhook Secret from the Stripe dashboard.
  4. Save.

To enable PayPal:

  1. Open plugin configuration.
  2. Enable PayPal.
  3. Select mode: sandbox or live.
  4. Enter Client ID and Client Secret from the PayPal developer console.
  5. Save.

Invoice Overview #

The invoice plugin provides three main working areas:

  1. Project Invoice Tab Use this to manage invoices for a single project.
  2. Global Invoice View Use this to view and manage invoices across all projects you have access to.
  3. Billing Report Use this to preview billable hours before generating an invoice.

How to Enable Invoice Module in a Project #

  1. Open the project.
  2. Go to Settings.
  3. Open the Modules tab.
  4. Enable Invoice.
  5. Save the changes.

After enabling the module, the project shows an Invoice tab in the project menu.

How to Configure Project Billing Settings #

  1. Open the project.
  2. Click the Invoice tab.
  3. Open Settings.
  4. Set the following:
    • Customer — the billing customer linked to this project
    • Project Hourly Rate — default rate when no user-specific rate is set
    • Billing Activities — time entry activity types to include in billing
  5. Save.

How to Set Team Rates (Per-User Rates) #

Team rates let you assign individual hourly rates per user per project.

To add or edit a rate:

  1. Open the project.
  2. Click Team Rates from the Invoice tab menu.
  3. Add or edit the rate for each team member.
  4. Save.

To update all rates at once:

  1. Open Team Rates.
  2. Click Bulk Update.
  3. Enter the new rates.
  4. Save.

Rate fallback order:

  • User team rate is used if set
  • Project billing rate is used if no user rate exists
  • If neither is set, the line item rate defaults to zero and must be edited manually

How to Create a Customer #

  1. Go to the Customer tab in the top navigation menu.
  2. Click New Customer.
  3. Enter the customer details:
    • Name, Company, Email, Phone
    • Address, Tax ID
  4. Save.

Note: Customers linked to a project cannot be deleted. Unlink the customer from all projects first before deleting.

How to Edit or Deactivate a Customer #

To edit:

  1. Open the Customer tab.
  2. Select the customer.
  3. Click Edit.
  4. Update the details.
  5. Save.

To deactivate a customer without deleting:

  1. Open the customer record.
  2. Click Edit.
  3. Set the status to Inactive.
  4. Save.

How to Create an Invoice #

You can create an invoice manually or auto-generate one from time entries.

To create manually:

  1. Open the project.
  2. Click the Invoice tab.
  3. Click New Invoice.
  4. Fill in the invoice details.
  5. Save.

To auto-generate from time entries:

  1. Open the project.
  2. Click the Invoice tab.
  3. Open the Billing Report.
  4. Select a date range.
  5. Review the billable hours grouped by user.
  6. Click Generate Invoice.

Auto-generated invoices aggregate all time entries within the selected date range, look up each user’s hourly rate, and create one line item per user.

How to Edit an Invoice #

Invoices can only be edited while in Draft status.

  1. Open the invoice.
  2. Click Edit.
  3. Update line items, rates, adjustments, or other details.
  4. Save.

Once an invoice is sent it can no longer be edited.

How to Add Tax or Discount to an Invoice #

  1. Open the invoice in Draft status.
  2. Click Edit.
  3. In the Adjustments section, add a new row.
  4. Enter a label (e.g. VAT, Discount), percentage, and whether it is a tax or discount.
  5. Save.

Taxes are applied after discounts are calculated.

How to Send an Invoice #

  1. Open the invoice.
  2. Click Send Email.

After sending:

  • The email is sent to the linked customer using the configured email template
  • Invoice status changes to Sent
  • The invoice can no longer be edited

How to Record a Payment #

  1. Open the invoice.
  2. Scroll to the Payments section.
  3. Enter the payment amount, date, and method.
  4. Save.

Payment status is updated manually. If the total payments equal the invoice amount, the status changes to Paid automatically. Stripe and PayPal webhook integrations can record payments automatically when configured.

How to Use Online Payments (Stripe or PayPal) #

When a payment gateway is enabled, a payment link is available on the invoice.

Customers can use the payment link to pay directly:

  1. The customer opens the invoice payment link.
  2. They select Stripe or PayPal checkout.
  3. They complete payment through the gateway.
  4. The webhook automatically records the payment and updates invoice status.

To configure gateways, see the Payment Gateway section under Configuration.

How to Use the Global Invoice View #

The Global Invoice view shows invoices across all projects you have access to.

You can use it to:

  • View all invoices in one place regardless of project
  • Filter by status, customer, date range, or project
  • Create new invoices from the global view
  • Send invoices and track payment status across projects

This is especially useful for billing managers and administrators tracking invoices across multiple client projects.

To access:

  1. Click Invoices from the top navigation menu.

This shows invoices for all projects where the current user has view_invoices permission.

How to Use the Invoice Dashboard #

The dashboard displays summary KPIs for billing visibility.

To view the dashboard:

  1. Open the project Invoice tab.
  2. Click Dashboard.

Or access the global dashboard:

  1. Click Invoices in the top navigation menu.
  2. Click Dashboard.

The dashboard shows:

  • Total value of paid invoices
  • Total value of invoices awaiting payment (Sent)
  • Total value of unpaid and draft invoices

How to Use the Billing Report #

The Billing Report lets you preview billable hours before generating an invoice.

  1. Open the project Invoice tab.
  2. Click Billing Report.
  3. Select a date range.
  4. Review hours and calculated amounts per user.
  5. Click Generate Invoice to create an invoice from the report data.

How to Manage PDF Templates #

The plugin includes a default PDF template. You can create custom templates to match your brand.

To create a new PDF template:

  1. Go to Administration.
  2. Open Plugins.
  3. Find Redmineflux Invoice.
  4. Click Configure.
  5. Open the PDF Templates section.
  6. Click New Template.
  7. Enter a name and write the HTML/ERB template content.
  8. Use supported macros in the template.
  9. Preview and save.

To copy an existing template:

  1. Open the PDF Templates list.
  2. Click Copy next to the template you want to duplicate.
  3. Edit the copy and save.

How to Manage Email Templates #

To create a new email template:

  1. Go to plugin configuration.
  2. Open the Email Templates section.
  3. Click New Template.
  4. Enter a name, subject, body, and footer.
  5. Use dynamic placeholders for client name, invoice number, and due date.
  6. Optionally enable the option to attach the PDF to the email.
  7. Save.

To preview how the template will look:

  1. Open the template.
  2. Click Preview.

Invoice Status Reference #

Status Description Editable?
Draft Newly created, under review Yes
Sent Emailed to the client No
Paid Payment fully recorded No
Cancelled Voided invoice No

Permissions #

Configure roles at Administration > Roles and Permissions.

Permission Scope What it covers
view_invoices Project View invoices, billing report, team rates
manage_invoices Project Full invoice CRUD, generate, send, manage team rates
manage_customers Global Customer full CRUD

Troubleshooting #

If you face issues with the plugin, try the following:

  1. Clear browser cache and reload the page.
  2. Restart the Redmine application.
  3. Make sure the plugin is installed in plugins/redmineflux_invoice.
  4. Re-run plugin migrations:bundle exec rails redmine:plugins:migrate RAILS_ENV=production
  5. Confirm the Invoice module is enabled in project settings.
  6. Verify billing activity configuration matches logged time entry activities.
  7. Check user permissions for:
    • view_invoices
    • manage_invoices
    • manage_customers
  8. Review Redmine logs for plugin load or controller errors.
  9. For PDF generation issues, confirm that at least one supported binary is installed: wkhtmltopdf, PDFKit, Grover (Chromium), or Prawn.

Frequently Asked Questions #

Q1. How are invoices generated?

Invoices are generated from time log entries within a selected date range. Each user’s hours are aggregated and multiplied by their hourly rate to produce one line item per user.

Q2. Can I edit a sent invoice?

No. Only invoices in Draft status are editable. Once sent, the invoice is locked.

Q3. Is payment automatic?

No. Payments must be recorded manually unless Stripe or PayPal webhooks are configured. When webhooks are active, the gateway records payments and updates invoice status automatically.

Q4. Can I set different rates for different users?

Yes. Use Team Rates under Project > Invoice > Team Rates to set per-user hourly rates. If no user rate is set, the project billing rate is used as a fallback.

Q5. Can I customise invoice and email templates?

Yes. Both PDF invoice templates and email templates are fully customisable with HTML/ERB content and macro substitution.

Q6. Can I have multiple customers per project?

No. Each project is linked to one customer for billing. If you need to bill multiple clients, create separate projects or create invoices manually.

Q7. Does deleting a customer delete its invoices?

No. The plugin prevents deletion of customers linked to projects. Unlink the customer from all projects first.

Q8. Does the plugin support Redmine 6?

Yes. The current plugin supports Redmine 5.0.x, 5.1.x, and 6.0.x from a single repository.

Q9. Can I use online payment collection?

Yes. Stripe and PayPal are supported. Configure the gateway credentials in plugin settings and share the payment link included in each invoice.

Uninstallation #

To uninstall the plugin:

  1. Go to the Redmine installation directory.
  2. Roll back the database migrations.bundle exec rake redmine:plugins:migrate NAME=redmineflux_invoice VERSION=0 RAILS_ENV=production
  3. Remove the plugin folder.rm -rf plugins/redmineflux_invoice
  4. Restart Redmine.

touch tmp/restart.txt

Take a database backup before rollback or uninstallation.

Conclusion #

Redmineflux Invoice is a complete invoicing and billing Plugin for Redmine that connects time tracking with client billing in one integrated workflow. It supports the full invoice lifecycle from draft through payment, flexible team rate configuration, customisable PDF and email templates, and optional online payment collection via Stripe and PayPal. The plugin works across Redmine 5.0.x, 5.1.x, and 6.0.x from a single codebase.