Skip to main content

PBJ Invoicing — Changelog

Current release: 7.0.0 (September 2026)

7.0.0 — 4 September 2026

7.0.0 — THE SUITE MAJOR, requiring PBJ CRM 7.0.0. One equal version across the suite. SCHEMA CHANGE: DB 6 to 7 drops the no-op per-invoice reminders_enabled and late_fees_enabled columns. They stopped deciding anything in 1.44.0, when per-document payment chasing was removed — automatic reminders and late fees are SITE settings and were already the only thing any reader consulted — so nothing changes on screen and no invoice data moves. The migration drops one column per statement (a combined ALTER would let a refusal on the second undo the first), verifies BOTH columns are gone before it stamps the version, and heals a half-finished drop on a later request. A PUT that still names either key is refused with the same message it has been given since 1.44.0.

Full release notes: PBJ CRM Suite 7.0.0.

1.44.0 — 2 September 2026

Empty invoice, estimate, recurring and money-owed lists now show a short line drawn with the CRM’s shared empty-state frame, so they match every other empty screen in the portal. No database change.

1.43.1 — 31 August 2026

Invoice lists now load every returned invoice’s line items in one ordered query, and global search resolves company/contact names in two published CRM batch reads. Payloads, item order, company-name precedence, permissions, and database schema are unchanged.

1.43.0 — 30 August 2026

  • A verified payment can no longer be lost to a momentary failure. If recording a payment or refund fails mid-processing, the gateway is now told to retry — instead of being told all is well — and the retried delivery picks the work back up and completes it, exactly once, never twice.
  • A refund that arrives before its payment is no longer dropped. It is acknowledged, held, and reconciled automatically the moment the matching payment is recorded; the daily tick also retries, and an unmatched refund becomes a terminal audit entry after 7 days. Adds one column to the webhook log (database version 6 — the update runs itself and stamps only after verifying).
  • Signature failures and malformed notifications behave exactly as before, and ordinary payment-then-refund processing is unchanged.

1.42.0 — 29 August 2026

  • Invoicing now appears on the CRM’s new “Who can do what” screen – eight rows covering raising and sending an invoice, saving a line for yourself, putting one into the shared price list, recurring billing, voiding, money owed, how an invoice looks, and reminders and late fees.
  • Two rows carry a warning rather than a tidy answer, deliberately. Voiding an invoice and reading money owed both still follow being able to work on that invoice, while the decision of 28 August puts them higher. The screen says so on the row instead of showing the decision as though it had already happened – a table that told you the wrong thing confidently would be worse than no table.
  • Nothing about who can do what has changed in this release.

1.41.0 — 29 August 2026

  • Reminders & late fees are on the front end. Settings > Invoice reminders & late fees now opens in the CRM: the schedule, the grace period, the fee, the repeat, the cap and the “tell the customer” switch, with the same plain-English summary underneath.
  • The warning that nothing can send until your business name is filled in is shown here too, where reminders are switched on – not left to a log nobody reads.
  • Amounts are still typed in dollars and stored in cents, and every limit is the same one the website admin applies. Editing from a phone cannot produce a fee the website admin would not have allowed.
  • The complete screen stays in the website admin as well, unchanged.
  • Invoices can now have their own “Who sees what” setting. A CRM owner can set invoices to open or scoped separately from everything else, and it applies to the invoice list, estimates, “Money owed” and every total. Nothing changes until they set one, and the person a document belongs to always keeps it.

1.40.0 — 28 August 2026

  • SAVED LINE ITEMS ARE PERSONAL FIRST (Access Ladder 23.4). A line you save is YOURS until a manager puts it into everybody’s price list. Before this, anything anybody saved went straight into the shared list for the whole site.
  • DB 4 -> 5: one new column, saved_items.shared. Its DEFAULT is 1 on purpose — every line that already existed is already in everybody’s list, and a default of 0 would have quietly taken all of them away on update. New rows are written 0 by the writer, so the default serves the migration and the writer serves the policy.
  • A manager sees every personal line, because a manager who cannot see a line has no way to promote it. This is strictly a NARROWING for the employee rung and leaves the manager rung exactly where it was.
  • The scope is applied in SQL, so the row cap still caps what this viewer can see rather than capping the table and hiding most of what came back.
  • On a site where the new column has not landed, the list behaves exactly as it did before 1.40.0 — the safe degrade, checked against the database rather than against a stored version number.
  • Refusals now come from the CRM’s own refusal seam where the hub is new enough to build one, and fall back to this plugin’s own sentence where it is not, so the minimum-CRM floor does not move.

1.39.1 — 28 August 2026

  • Translation template regenerated. No change to how anything works.

1.39.0 — 28 August 2026

  • A line can carry its own description. Each row on an invoice or estimate gets a DESC line beneath the figures, so a charge can explain itself without pushing the explanation down into the notes block. Database version 4.
  • The due date honours a setting of zero. A site configured for 0 days was still getting 30, because a zero was being treated as “nothing set”. Fixed here and on the recurring schedule’s own due-in-days, which had the identical fault.
  • Linked records and Activity now appear on an invoice. The panel existed but was reading keys the server does not send, so it was empty on every document ever opened. An invoice raised from a ticket or a visit now shows that link, and the trail of what happened to it.

1.38.0 — 28 August 2026

  • The estimate and invoice editor is rebuilt to one layout. The document down the middle; totals, delivery, notes and terms beside it, or below it on a phone. On a new document an Estimate/Invoice switch changes what you are writing in place. Tax rate, deposit, reminders, late fees and manual payment methods are settings now, decided once — existing documents keep exactly the values they had.
  • A business can be a recipient. An invoice for a company addressed to that company is the ordinary case, and the only way to say it used to be leaving the recipient list empty. Any other business is still refused.
  • The PDF gives your customer a way to pay. It listed the manual methods and nothing else, so somebody holding the download could not reach card checkout at all.
  • The Send window no longer asks for a subject it was throwing away, and it names the address your customer will actually see the email from.
  • A line item with no description reads “Untitled item” instead of being blank.
  • Overdue documents carry an orange dot, and one past the late-fee point a red one, on every list they appear in.
  • Creating or editing a document works again after 1.35.x — the editor was asking for a list at an address that only ever accepted saves, and one refusal took the whole screen.
  • Merging two contacts now moves invoices and recurring profiles onto the survivor.

1.34.0 — 24 August 2026

  • Invoice, estimate, recurring and Money Owed lists now use CRM-owned cards, readers, footer actions and saved workspaces.
  • No-rail readers use the full remaining width, and the Money Owed explainer can be dismissed per signed-in user.
  • Invoice due dates and authoritative recurring next-run dates contribute to the shared Calendar registry.
  • Scoped invoice and recurring work can appear in the CRM-owned Open Work section without module-owned card markup.

1.33.0 — 24 August 2026

  • Invoices, estimates, recurring profiles and Money Owed now use CRM-owned cards, readers and saved workspaces.
  • Readers without a side rail use the full available width.
  • The Money Owed explanation is now dismissible per user.
  • Active recurring profiles contribute their authoritative next-run dates to the shared Calendar.

1.32.0

Your invoice theme and your email templates are now drawn by the CRM inside the portal, in the same look as the rest of the suite — rather than on a screen of their own that looked like a different product.

Nothing about what they do has changed, and nothing you had set has been moved or reset. Only where you find them, and what they look like when you get there.

1.31.0

See late money at a glance. An invoice past its due date shows an orange circle, and one past the late-fee point (a fee has been added, or the grace period has run out) shows a red circle — on the invoice list, the invoice itself and the Money owed to you screen.

1.30.0

Add Work on a person or business profile can raise an invoice directly, for people with invoice access. No database change.

1.29.0

One shared answer to “has this ticket or visit been invoiced yet?” Other PBJ modules can now show View invoice instead of Create invoice when one already exists. No database change.

1.28.0

Invoice line items are usable on a phone. Every line is a full-width labeled card for description, quantity, price, tax, amount, reuse and remove; desktop remains a table. Issue and due dates stay inside the card and retain date-only behavior.

Direct company links now show the authoritative business name, including a business with no contacts. Permitted agents get Find invoices and Create invoice in the mobile menu, plus Create/View invoice actions from completed tickets and visits.

1.27.0

Documents inherit the communication method of the ticket or visit they came from. Email keeps the established invoice mailer, text sends a concise message with the protected document link, and phone starts click-to-call. If no usable origin exists, the agent chooses. No database or minimum-CRM change.

1.26.0

Invoice reporting now lives on the CRM’s unified Reports screen. Invoicing registers its existing Money owed report only while the module is installed, so reports stay useful without showing unavailable modules.

Requires PBJ CRM 1.46.0 or newer. No database change.

1.25.0

New invoices and repeat bills now use the due terms set in admin. A fourteen-day setting produces fourteen days, and an intentional zero means due today; the editor no longer silently falls back to thirty days.

Current invoices now appear in CRM Everything. They are visible on the customer or business record and on the creating agent’s profile, including through that agent’s manager and owner visibility ladder. No database change.

1.24.0

The “Invoices” and “Estimates” headings no longer repeat the tab directly above them.

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.

August 4, 2026

Current release: 7.0.0 (September 2026)

7.0.0 — 4 September 2026

7.0.0 — THE SUITE MAJOR, requiring PBJ CRM 7.0.0. One equal version across the suite. SCHEMA CHANGE: DB 6 to 7 drops the no-op per-invoice reminders_enabled and late_fees_enabled columns. They stopped deciding anything in 1.44.0, when per-document payment chasing was removed — automatic reminders and late fees are SITE settings and were already the only thing any reader consulted — so nothing changes on screen and no invoice data moves. The migration drops one column per statement (a combined ALTER would let a refusal on the second undo the first), verifies BOTH columns are gone before it stamps the version, and heals a half-finished drop on a later request. A PUT that still names either key is refused with the same message it has been given since 1.44.0.

Full release notes: PBJ CRM Suite 7.0.0.

1.44.0 — 2 September 2026

Empty invoice, estimate, recurring and money-owed lists now show a short line drawn with the CRM’s shared empty-state frame, so they match every other empty screen in the portal. No database change.

1.43.1 — 31 August 2026

Invoice lists now load every returned invoice’s line items in one ordered query, and global search resolves company/contact names in two published CRM batch reads. Payloads, item order, company-name precedence, permissions, and database schema are unchanged.

1.43.0 — 30 August 2026

  • A verified payment can no longer be lost to a momentary failure. If recording a payment or refund fails mid-processing, the gateway is now told to retry — instead of being told all is well — and the retried delivery picks the work back up and completes it, exactly once, never twice.
  • A refund that arrives before its payment is no longer dropped. It is acknowledged, held, and reconciled automatically the moment the matching payment is recorded; the daily tick also retries, and an unmatched refund becomes a terminal audit entry after 7 days. Adds one column to the webhook log (database version 6 — the update runs itself and stamps only after verifying).
  • Signature failures and malformed notifications behave exactly as before, and ordinary payment-then-refund processing is unchanged.

1.42.0 — 29 August 2026

  • Invoicing now appears on the CRM’s new “Who can do what” screen – eight rows covering raising and sending an invoice, saving a line for yourself, putting one into the shared price list, recurring billing, voiding, money owed, how an invoice looks, and reminders and late fees.
  • Two rows carry a warning rather than a tidy answer, deliberately. Voiding an invoice and reading money owed both still follow being able to work on that invoice, while the decision of 28 August puts them higher. The screen says so on the row instead of showing the decision as though it had already happened – a table that told you the wrong thing confidently would be worse than no table.
  • Nothing about who can do what has changed in this release.

1.41.0 — 29 August 2026

  • Reminders & late fees are on the front end. Settings > Invoice reminders & late fees now opens in the CRM: the schedule, the grace period, the fee, the repeat, the cap and the “tell the customer” switch, with the same plain-English summary underneath.
  • The warning that nothing can send until your business name is filled in is shown here too, where reminders are switched on – not left to a log nobody reads.
  • Amounts are still typed in dollars and stored in cents, and every limit is the same one the website admin applies. Editing from a phone cannot produce a fee the website admin would not have allowed.
  • The complete screen stays in the website admin as well, unchanged.
  • Invoices can now have their own “Who sees what” setting. A CRM owner can set invoices to open or scoped separately from everything else, and it applies to the invoice list, estimates, “Money owed” and every total. Nothing changes until they set one, and the person a document belongs to always keeps it.

1.40.0 — 28 August 2026

  • SAVED LINE ITEMS ARE PERSONAL FIRST (Access Ladder 23.4). A line you save is YOURS until a manager puts it into everybody’s price list. Before this, anything anybody saved went straight into the shared list for the whole site.
  • DB 4 -> 5: one new column, saved_items.shared. Its DEFAULT is 1 on purpose — every line that already existed is already in everybody’s list, and a default of 0 would have quietly taken all of them away on update. New rows are written 0 by the writer, so the default serves the migration and the writer serves the policy.
  • A manager sees every personal line, because a manager who cannot see a line has no way to promote it. This is strictly a NARROWING for the employee rung and leaves the manager rung exactly where it was.
  • The scope is applied in SQL, so the row cap still caps what this viewer can see rather than capping the table and hiding most of what came back.
  • On a site where the new column has not landed, the list behaves exactly as it did before 1.40.0 — the safe degrade, checked against the database rather than against a stored version number.
  • Refusals now come from the CRM’s own refusal seam where the hub is new enough to build one, and fall back to this plugin’s own sentence where it is not, so the minimum-CRM floor does not move.

1.39.1 — 28 August 2026

  • Translation template regenerated. No change to how anything works.

1.39.0 — 28 August 2026

  • A line can carry its own description. Each row on an invoice or estimate gets a DESC line beneath the figures, so a charge can explain itself without pushing the explanation down into the notes block. Database version 4.
  • The due date honours a setting of zero. A site configured for 0 days was still getting 30, because a zero was being treated as “nothing set”. Fixed here and on the recurring schedule’s own due-in-days, which had the identical fault.
  • Linked records and Activity now appear on an invoice. The panel existed but was reading keys the server does not send, so it was empty on every document ever opened. An invoice raised from a ticket or a visit now shows that link, and the trail of what happened to it.

1.38.0 — 28 August 2026

  • The estimate and invoice editor is rebuilt to one layout. The document down the middle; totals, delivery, notes and terms beside it, or below it on a phone. On a new document an Estimate/Invoice switch changes what you are writing in place. Tax rate, deposit, reminders, late fees and manual payment methods are settings now, decided once — existing documents keep exactly the values they had.
  • A business can be a recipient. An invoice for a company addressed to that company is the ordinary case, and the only way to say it used to be leaving the recipient list empty. Any other business is still refused.
  • The PDF gives your customer a way to pay. It listed the manual methods and nothing else, so somebody holding the download could not reach card checkout at all.
  • The Send window no longer asks for a subject it was throwing away, and it names the address your customer will actually see the email from.
  • A line item with no description reads “Untitled item” instead of being blank.
  • Overdue documents carry an orange dot, and one past the late-fee point a red one, on every list they appear in.
  • Creating or editing a document works again after 1.35.x — the editor was asking for a list at an address that only ever accepted saves, and one refusal took the whole screen.
  • Merging two contacts now moves invoices and recurring profiles onto the survivor.

1.34.0 — 24 August 2026

  • Invoice, estimate, recurring and Money Owed lists now use CRM-owned cards, readers, footer actions and saved workspaces.
  • No-rail readers use the full remaining width, and the Money Owed explainer can be dismissed per signed-in user.
  • Invoice due dates and authoritative recurring next-run dates contribute to the shared Calendar registry.
  • Scoped invoice and recurring work can appear in the CRM-owned Open Work section without module-owned card markup.

1.33.0 — 24 August 2026

  • Invoices, estimates, recurring profiles and Money Owed now use CRM-owned cards, readers and saved workspaces.
  • Readers without a side rail use the full available width.
  • The Money Owed explanation is now dismissible per user.
  • Active recurring profiles contribute their authoritative next-run dates to the shared Calendar.

1.32.0

Your invoice theme and your email templates are now drawn by the CRM inside the portal, in the same look as the rest of the suite — rather than on a screen of their own that looked like a different product.

Nothing about what they do has changed, and nothing you had set has been moved or reset. Only where you find them, and what they look like when you get there.

1.31.0

See late money at a glance. An invoice past its due date shows an orange circle, and one past the late-fee point (a fee has been added, or the grace period has run out) shows a red circle — on the invoice list, the invoice itself and the Money owed to you screen.

1.30.0

Add Work on a person or business profile can raise an invoice directly, for people with invoice access. No database change.

1.29.0

One shared answer to “has this ticket or visit been invoiced yet?” Other PBJ modules can now show View invoice instead of Create invoice when one already exists. No database change.

1.28.0

Invoice line items are usable on a phone. Every line is a full-width labeled card for description, quantity, price, tax, amount, reuse and remove; desktop remains a table. Issue and due dates stay inside the card and retain date-only behavior.

Direct company links now show the authoritative business name, including a business with no contacts. Permitted agents get Find invoices and Create invoice in the mobile menu, plus Create/View invoice actions from completed tickets and visits.

1.27.0

Documents inherit the communication method of the ticket or visit they came from. Email keeps the established invoice mailer, text sends a concise message with the protected document link, and phone starts click-to-call. If no usable origin exists, the agent chooses. No database or minimum-CRM change.

1.26.0

Invoice reporting now lives on the CRM’s unified Reports screen. Invoicing registers its existing Money owed report only while the module is installed, so reports stay useful without showing unavailable modules.

Requires PBJ CRM 1.46.0 or newer. No database change.

1.25.0

New invoices and repeat bills now use the due terms set in admin. A fourteen-day setting produces fourteen days, and an intentional zero means due today; the editor no longer silently falls back to thirty days.

Current invoices now appear in CRM Everything. They are visible on the customer or business record and on the creating agent’s profile, including through that agent’s manager and owner visibility ladder. No database change.

1.24.0

The “Invoices” and “Estimates” headings no longer repeat the tab directly above them.

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.

Latest Articles