Developers

Maintain a custom invoicing installation

Plan source changes around the licensed installation, exact financial actions, stored originals and a repeatable update process.

Created Updated

Start a customization with the smallest requirement you can verify. “Put our purchase-order reference on the invoice presentation” gives a developer a clear result to inspect. “Adapt billing to our business” does not yet define the work or its maintenance cost.

Pepper supplies application source for the licensed installation. The stack uses Laravel and PHP, React with Inertia, TypeScript and Tailwind CSS. Blade templates render PDFs and email. A normal production installation uses the bundled dependencies and compiled assets; changing frontend source requires a development build process.

Try a setting before changing a file

Check company settings, document notes, email templates and PDF branding for the requirement. A supported setting leaves fewer changes for you to carry through an update. Confirm the result on a draft and its output before deciding source changes are necessary.

Keep custom code in version control against a clean purchased package. Record why each change exists and which invoice, email or export it affects. The next developer needs that context as much as the patch.

Preserve the financial actions

A custom screen or integration must retain the application's authorization checks and exact calculations. Core writes use Laravel actions. PHP decides the stored financial totals; browser totals are not authority to issue or settle a document.

Treat issue, send and record payment as separate actions. For example, adding a “finish” control must not imply that an invoice was emailed because issuance succeeded. Read the action's result and keep failures visible at the step where they happen.

Preserve source relationships and stored originals. A presentation change should not replace an issued PDF with a newly rendered file and call it the original. Test with existing records as well as new drafts.

Rehearse an update with the change present

The built-in updater refuses modified application files. Plan how you will compare a new package, reapply the custom work and verify it on an isolated copy before touching production.

For an invoice-output change, inspect an ordinary invoice, a credit note and a document with the currencies or tax categories your business uses. Check that totals and document relationships remain correct. Use representative records without letting the test installation send real customer email.

Back up the database and stored files, and prove recovery through the documented procedure. Updating source files alone cannot restore a business record if a custom migration damaged it.

Price the continuing work

The license permits modification for the licensed installation. It does not permit redistributing the application as a separate package or service. Each client business needs its own production license and installation.

Product support excludes debugging modified code, code reviews and custom integrations. The yearly updates membership renews automatically unless you cancel; it does not extend support or pay for merging your changes. Include that work in your maintenance agreement.

See license terms, the source ownership guide, updates and the technical stack.