This project is not covered by Drupal’s security advisory policy.

This module provides flexible and heavy-weight invoicing capabilities to the Drupal Commerce ecosystem. It uses an Invoice entity type to store invoicing information and it is heavily integrated with Rules and Views.


Invoices can use various number patterns.
The module is shipped with four number patterns: consecutive, daily, monthly and yearly. Custom number patterns can also be created. By default, an integer is appended to each number pattern, which ensures uniqueness of every invoice.

Invoices have their own set of states.
By default, module provides five invoice states: Pending, Paid, Canceled, Pending refund and Refunded. The list of states can be easily updated using hook_commerce_invoice_statuses_alter()

Invoices are immutable(ish).
Invoices are normally created by Rules action. Updating order with an existing invoice results in creating a new invoice. Existing unpaid invoices will be cancelled, existing paid invoices will be scheduled for refund.

Invoices can be exported as PDF's (included submodule)
Commerce Invoice PDF uses Dompdf to generate invoice PDF's and store them in a private files directory. The submodule provides a Download PDF link field for both invoice and order views.


  • 7.x-1.x is outdated and it's use is discouraged.
  • 7.x-2.x is in active development. It does not have an upgrade path from 7.x-1.x to 7.x-2.x,
  • 8.x-2.x is not in usable state.


Commerce Billy is actively used and maintained module. It does not provide an invoice entity, but uses orders in "invoiced" state to hold invoicing information.

Initial development was realized by GVJ web sites & consulting

Supporting organizations: 
Ongoing development

Project information