PBJ Invoicing — Changelog
Current release: 1.23.0 (August 2026). One-time purchase per major version; requires PBJ CRM.
1.23.0
An invoice or an estimate is now something you can attach things to — tasks, notes and files. The chase-up list for a bill can sit on the bill itself.
The document’s own number is used wherever an attached item says where it lives, never one worked out from its id. Invoices and estimates are numbered separately, so a worked-out reference would disagree with the document you have already sent.
1.22.0
Fixed: the “Pay by card” button your customers see is readable again. On the invoice page your customer opens, that button was invisible until you moved the mouse over it. It now reads properly the moment the page opens. The Decline button on estimates had exactly the same fault and is fixed too. Nothing was ever broken about paying — the button worked all along, you just could not read it.
On your own invoice screen the Edit button now appears once, at the top, instead of twice.
A print button, and a tidier printed invoice.
1.21.0
An assistant can now put lines on an invoice. Before this it could only create an empty one, which totalled nothing and had no way of getting anything onto it. It can now add a line, change a line and take a line off. The arithmetic has not moved: the same multiplication and the same rounding happen in the same one place they always have.
It can also record a payment you have already been given — cash, cheque, bank transfer, or whatever else you have set up by hand. There is deliberately no way for an assistant to take a card payment, and no way for it to give money back; a payment for a negative amount is refused. Repeat bills and the money-owed list can both be read. One thing worth knowing: an invoice an assistant makes stays a draft, because it has no way to move a document on to the next stage.
Money safety: a quantity written with a comma is now refused. On the screen “1,500” sensibly means fifteen hundred. Sent by an assistant, or pasted out of a spreadsheet, “1,5” usually means one and a half — and it was being read as fifteen, a tenfold overcharge, without a word said. An assistant is now told to send a plain number with a dot, for example “1.5”. Nothing about typing quantities on the invoice screen has changed.
1.20.0
“What has changed since” now gives an honest total. Ask an assistant which invoices or estimates have changed since a date and the number it reports is the number that really did change, and it agrees with the documents listed beside it. It used to hand back the total for everything, so the count stopped short of the truth. An assistant asking what has changed now gets the complete answer.
1.19.0
Invoices, estimates and recurring billing are available to the CRM’s new assistant connector (Apps & Assistants) — always as you, seeing only your own slice. Requires PBJ CRM 1.29.0 or newer. Nothing else changed.
1.18.0
The pay button is readable before you touch it. The label colour is now chosen by real contrast arithmetic against your accent colour — on the page, the PDF and the email alike. And “How to pay” says the right thing: with an online payment button on the page the manual methods heading reads “Additional ways to pay”; with no online option it stays “How to pay”.
1.17.0
Invoices, estimates and recurring billing join the suite’s search — and searching by the customer’s name now really works, on the invoice list and in the header search.
1.16.0
The invoicing round-out. Six things, and a database update.
Raise an invoice from a ticket. Any ticket in PBJ Helpdesk 2.15.0 or newer — open or closed — now carries a “Create an invoice” button. Billing a job you only think about after closing the ticket is the normal way round, and until now nothing on a ticket led to an invoice at all.
A savable description under the line items. Write the paragraph that explains what the work was, then press “Save for reuse” and it joins a list you can pick from next time. It is separate from the Notes block, which stays your closing message at the bottom.
A business can be the only recipient. If a business has its own email address in the CRM you no longer have to name a person at it — a company-only invoice is now a normal document rather than something the editor blocks. If there is neither a ticked person nor an address on the business, the save still refuses, and it now tells you both ways to fix it. Recurring profiles follow the same rule.
Standard terms. There is a general-purpose terms template and a “Use the standard terms” button that drops it in as ordinary editable text. The terms box also shows your site-wide defaults as greyed-out placeholder text, so you can finally see what an invoice will say when you leave the box empty instead of guessing.
Re-open a closed invoice. Managers and above get a Re-open button on a paid invoice. It asks for a reason, will not go ahead without one, and keeps the reason with the invoice. Note what re-opening now does: the invoice stays open. It will not put itself back to Paid on the next nightly run — a person decides when it closes again, so a refund or a query cannot be quietly erased.
Database update. Two new columns, applied automatically. It is checked before it is recorded as done, a site left half-finished by an earlier attempt repairs itself on the next page load, and a host that refuses the change is retried a bounded number of times and then told about on screen — instead of being retried on every page view for ever.
1.15.0
The customer box on invoices and estimates can now add somebody who is not in your list yet. Type the name, and if nothing matches, press “+ Add a new person” (or “+ Add a new business”) and fill in the name, email and phone right there — no trip to the CRM in the middle of writing an invoice. Nothing is ever added until you press Save on that little form.
The new box comes from PBJ CRM 1.22.0. With an older CRM, the customer box looks and works exactly as it did before. No database changes.
1.14.0
If you charge percentage late fees, please read this one. A late fee could be applied more than once to the same invoice — and once it started, it repeated every night. It happened when the record of the charge failed to save while the charge itself went through, so the next run could not tell the fee had already been applied. Charges are now recorded first and checked before any money is added. If you use late fees, it is worth looking over your overdue and recently paid invoices and crediting back anything that was charged twice.
A second fee problem is fixed with it: an invoice paid while the nightly run was working through the list could still be charged, which reopened a settled invoice and emailed the customer about it. Every invoice is now re-checked immediately before it is charged.
Percentage late fees are also now applied at the same precision they are saved and previewed at. A 1.2345% fee on a $10,000 invoice charged $123.50 and now charges $123.45 — the figure the settings screen always showed. Nothing you have saved changes meaning.
Also: every money amount is now produced in one place, so the same total can no longer be spelled two ways on the screen and the PDF; changing a deposit between a flat amount and a percentage without giving a new figure is refused rather than silently misread; and the plugin checks that PBJ CRM is new enough, not merely installed. No database change.
1.13.0
Your invoice email templates and your reminder and late-fee settings now appear on PBJ CRM’s Templates & Notifications tab, next to every other add-on’s. Nothing about how they work has changed — only where you find them. Behind the scenes, the “never cache this page” rule now comes from PBJ CRM instead of a copy kept here, and your invoice page, its PDF and the not-found page all send the full set of no-cache instructions on every route rather than only on the routes that happened to add them. No database change.
1.12.0
Two important fixes found in review. Monthly and yearly recurring invoices no longer drift at month end: a profile billed on the 31st used to slide forward and stay slid, and one billed on the 28th or 30th could quietly become a month-end profile. The day you chose is now remembered and kept — the 31st clamps to the short month and comes back to the 31st, while the 30th stays the 30th. Separately, a flood of fake payment notifications can no longer stop genuine ones from being recorded. Also: a bare number typed as an invoice date is read as the date it says instead of becoming a 1970 date.
1.11.0
Saved line items: save the lines you use often and add them to any invoice, estimate or recurring template with one pick — nothing saves as a side effect, and every added line stays editable.
1.8.0–1.10.1
Hosted checkout and signed webhooks for Square, PayPal and Stripe (payments land even if the tab closes; receipts sent automatically); the daily jobs really run — overdue sweep, reminders, late fees, recurring invoices — with a “Run the daily jobs now” button and a dead-cron warning; full mobile pass.
1.4.0–1.7.0
Settings moved inside PBJ CRM; payment credentials live once on the CRM’s Connected accounts screen; invoice email sends through the CRM’s mailboxes; screens follow the CRM theme.
1.0.0–1.3.0
The foundation: invoices and estimates bound to CRM contacts and businesses, whole-cent money math, the tokenized public invoice page with PDF, invoice themes, “Jane at Acme” documents, and the “Money owed to you” screen with aging buckets and CSV.
Current release: 1.23.0 (August 2026). One-time purchase per major version; requires PBJ CRM.
1.23.0
An invoice or an estimate is now something you can attach things to — tasks, notes and files. The chase-up list for a bill can sit on the bill itself.
The document’s own number is used wherever an attached item says where it lives, never one worked out from its id. Invoices and estimates are numbered separately, so a worked-out reference would disagree with the document you have already sent.
1.22.0
Fixed: the “Pay by card” button your customers see is readable again. On the invoice page your customer opens, that button was invisible until you moved the mouse over it. It now reads properly the moment the page opens. The Decline button on estimates had exactly the same fault and is fixed too. Nothing was ever broken about paying — the button worked all along, you just could not read it.
On your own invoice screen the Edit button now appears once, at the top, instead of twice.
A print button, and a tidier printed invoice.
1.21.0
An assistant can now put lines on an invoice. Before this it could only create an empty one, which totalled nothing and had no way of getting anything onto it. It can now add a line, change a line and take a line off. The arithmetic has not moved: the same multiplication and the same rounding happen in the same one place they always have.
It can also record a payment you have already been given — cash, cheque, bank transfer, or whatever else you have set up by hand. There is deliberately no way for an assistant to take a card payment, and no way for it to give money back; a payment for a negative amount is refused. Repeat bills and the money-owed list can both be read. One thing worth knowing: an invoice an assistant makes stays a draft, because it has no way to move a document on to the next stage.
Money safety: a quantity written with a comma is now refused. On the screen “1,500” sensibly means fifteen hundred. Sent by an assistant, or pasted out of a spreadsheet, “1,5” usually means one and a half — and it was being read as fifteen, a tenfold overcharge, without a word said. An assistant is now told to send a plain number with a dot, for example “1.5”. Nothing about typing quantities on the invoice screen has changed.
1.20.0
“What has changed since” now gives an honest total. Ask an assistant which invoices or estimates have changed since a date and the number it reports is the number that really did change, and it agrees with the documents listed beside it. It used to hand back the total for everything, so the count stopped short of the truth. An assistant asking what has changed now gets the complete answer.
1.19.0
Invoices, estimates and recurring billing are available to the CRM’s new assistant connector (Apps & Assistants) — always as you, seeing only your own slice. Requires PBJ CRM 1.29.0 or newer. Nothing else changed.
1.18.0
The pay button is readable before you touch it. The label colour is now chosen by real contrast arithmetic against your accent colour — on the page, the PDF and the email alike. And “How to pay” says the right thing: with an online payment button on the page the manual methods heading reads “Additional ways to pay”; with no online option it stays “How to pay”.
1.17.0
Invoices, estimates and recurring billing join the suite’s search — and searching by the customer’s name now really works, on the invoice list and in the header search.
1.16.0
The invoicing round-out. Six things, and a database update.
Raise an invoice from a ticket. Any ticket in PBJ Helpdesk 2.15.0 or newer — open or closed — now carries a “Create an invoice” button. Billing a job you only think about after closing the ticket is the normal way round, and until now nothing on a ticket led to an invoice at all.
A savable description under the line items. Write the paragraph that explains what the work was, then press “Save for reuse” and it joins a list you can pick from next time. It is separate from the Notes block, which stays your closing message at the bottom.
A business can be the only recipient. If a business has its own email address in the CRM you no longer have to name a person at it — a company-only invoice is now a normal document rather than something the editor blocks. If there is neither a ticked person nor an address on the business, the save still refuses, and it now tells you both ways to fix it. Recurring profiles follow the same rule.
Standard terms. There is a general-purpose terms template and a “Use the standard terms” button that drops it in as ordinary editable text. The terms box also shows your site-wide defaults as greyed-out placeholder text, so you can finally see what an invoice will say when you leave the box empty instead of guessing.
Re-open a closed invoice. Managers and above get a Re-open button on a paid invoice. It asks for a reason, will not go ahead without one, and keeps the reason with the invoice. Note what re-opening now does: the invoice stays open. It will not put itself back to Paid on the next nightly run — a person decides when it closes again, so a refund or a query cannot be quietly erased.
Database update. Two new columns, applied automatically. It is checked before it is recorded as done, a site left half-finished by an earlier attempt repairs itself on the next page load, and a host that refuses the change is retried a bounded number of times and then told about on screen — instead of being retried on every page view for ever.
1.15.0
The customer box on invoices and estimates can now add somebody who is not in your list yet. Type the name, and if nothing matches, press “+ Add a new person” (or “+ Add a new business”) and fill in the name, email and phone right there — no trip to the CRM in the middle of writing an invoice. Nothing is ever added until you press Save on that little form.
The new box comes from PBJ CRM 1.22.0. With an older CRM, the customer box looks and works exactly as it did before. No database changes.
1.14.0
If you charge percentage late fees, please read this one. A late fee could be applied more than once to the same invoice — and once it started, it repeated every night. It happened when the record of the charge failed to save while the charge itself went through, so the next run could not tell the fee had already been applied. Charges are now recorded first and checked before any money is added. If you use late fees, it is worth looking over your overdue and recently paid invoices and crediting back anything that was charged twice.
A second fee problem is fixed with it: an invoice paid while the nightly run was working through the list could still be charged, which reopened a settled invoice and emailed the customer about it. Every invoice is now re-checked immediately before it is charged.
Percentage late fees are also now applied at the same precision they are saved and previewed at. A 1.2345% fee on a $10,000 invoice charged $123.50 and now charges $123.45 — the figure the settings screen always showed. Nothing you have saved changes meaning.
Also: every money amount is now produced in one place, so the same total can no longer be spelled two ways on the screen and the PDF; changing a deposit between a flat amount and a percentage without giving a new figure is refused rather than silently misread; and the plugin checks that PBJ CRM is new enough, not merely installed. No database change.
1.13.0
Your invoice email templates and your reminder and late-fee settings now appear on PBJ CRM’s Templates & Notifications tab, next to every other add-on’s. Nothing about how they work has changed — only where you find them. Behind the scenes, the “never cache this page” rule now comes from PBJ CRM instead of a copy kept here, and your invoice page, its PDF and the not-found page all send the full set of no-cache instructions on every route rather than only on the routes that happened to add them. No database change.
1.12.0
Two important fixes found in review. Monthly and yearly recurring invoices no longer drift at month end: a profile billed on the 31st used to slide forward and stay slid, and one billed on the 28th or 30th could quietly become a month-end profile. The day you chose is now remembered and kept — the 31st clamps to the short month and comes back to the 31st, while the 30th stays the 30th. Separately, a flood of fake payment notifications can no longer stop genuine ones from being recorded. Also: a bare number typed as an invoice date is read as the date it says instead of becoming a 1970 date.
1.11.0
Saved line items: save the lines you use often and add them to any invoice, estimate or recurring template with one pick — nothing saves as a side effect, and every added line stays editable.
1.8.0–1.10.1
Hosted checkout and signed webhooks for Square, PayPal and Stripe (payments land even if the tab closes; receipts sent automatically); the daily jobs really run — overdue sweep, reminders, late fees, recurring invoices — with a “Run the daily jobs now” button and a dead-cron warning; full mobile pass.
1.4.0–1.7.0
Settings moved inside PBJ CRM; payment credentials live once on the CRM’s Connected accounts screen; invoice email sends through the CRM’s mailboxes; screens follow the CRM theme.
1.0.0–1.3.0
The foundation: invoices and estimates bound to CRM contacts and businesses, whole-cent money math, the tokenized public invoice page with PDF, invoice themes, “Jane at Acme” documents, and the “Money owed to you” screen with aging buckets and CSV.