Skip to content
Estimates, invoices, recurring

Invoicing that ships with your CRM data

Quote it, bill it, chase it, record it. On the same customer record as the deal it came from, with no per-invoice fee and no second subscription.

Unlimited invoices and unlimited users. MIT licensed, self-host it anywhere.

Bill the same customer every month without thinking about it

Set the cadence once. A task runs at midnight, finds what is due and raises it, with the line items already filled in.

  • Cadence Daily, weekly, monthly, yearly With an end date or open-ended. Turn auto-send on and the customer gets it without you opening the app.
  • Chasing Reminders before and after the due date You choose how many days either side and how often. Overdue invoices are marked every morning by a separate task.
  • Estimates Expire on their own An estimate carries an expiry date, and a nightly task marks it expired so a stale quote cannot be accepted months later.
[ APP.BOTTLECRM.IO/INVOICES/RECURRING ]
End to end

Draft, send, chase, record

Four steps, and the CRM does three of them for you.

Draft

Build the document from line items: quantity, unit price, per-line tax, discount as a percentage or a flat amount. Every total is recomputed on the server on each save.

  • Line-item editor
  • Per-line tax rate
  • Percentage or flat discount
  • Reusable products catalogue

Send

Email it to the customer. They get a link to a public page that needs no login, with your own template and your own terms on it.

  • Emailed from the CRM
  • Tokenised public URL
  • Per-org HTML template
  • PDF render

Chase

Reminders go out on a schedule you set, before the due date and after it. Overdue invoices are marked automatically each morning.

  • Days before and after due
  • Frequency you choose
  • Reminder count tracked
  • Overdue marked daily

Record

When the money arrives, record the payment against the invoice. Several partial payments can sit against one document, and the balance follows.

  • Partial payments
  • Payment method and reference
  • Amount due recalculated
  • Full audit trail
Read this before you adopt

There is no payment processor

This page used to say Stripe was built in. It is not, it never was, and that is the most important thing on this page.

BottleCRM does not process payments

There is no Stripe integration, no PayPal, no Razorpay, and no gateway webhook. The app has never had one, and the public invoice page deliberately does not draw a "Pay now" button.

You get paid the way you already do

Bank transfer, card terminal, a payment link from your own processor, a cheque. Your payment terms appear on the public invoice page alongside the reference and the amount due.

You record the payment here

A person enters the payment against the invoice: amount, date, method and reference. Partial payments stack, and the balance updates.

What you lose, and what you keep

You lose one-click checkout. You keep an invoicing system with no per-invoice fee, no processor cut on top of your existing one, and no third party holding your customer list.

What is built

Everything up to the moment money moves

Estimates, invoices and recurring, one engine

The same line-item model powers customer-facing estimates, one-off invoices and recurring schedules. An accepted estimate converts to an invoice in a single transaction.

  • Three document types
  • Estimate to invoice convert
  • Status workflow per type
  • Expiry dates on estimates

Tax and discount, computed server-side

A tax rate per line for mixed jurisdictions, and a discount as either a percentage of the subtotal or a flat amount. The client never sends a total: the server derives subtotal, tax, discount and grand total on save.

  • Per-line tax rate
  • Percentage or flat discount
  • Any ISO-4217 currency
  • Never trusts client-side maths

Public pages with no login

Every estimate and invoice gets a tokenised URL. Customers open it, read it, and accept an estimate if they want to. No account, no password.

  • Tokenised URL per document
  • Readable on a phone
  • Accept an estimate online
  • Your payment terms shown

Recurring schedules

Daily, weekly, monthly or yearly. A background task runs at midnight and generates the invoices that are due, inheriting the line items from the schedule.

  • Any cadence
  • Auto-send option
  • End date or open-ended
  • Inherits line items

Your template, your branding

The invoice renders from an HTML template you edit per organisation: logo, colours, headings, footer terms. The default covers standard B2B layouts.

  • Per-org template
  • Logo and colours
  • Footer terms
  • Applies to the PDF too

Reports and aging

An accounts-receivable aging report showing what is owed and how long it has been owed, plus revenue reporting and a products catalogue behind the line items.

  • AR aging report
  • Revenue reporting
  • Products catalogue
  • Overdue at a glance
Questions

The ones that decide it

Check for yourself

The invoice model, the recurring task and the public page are all in the open repository.

Can customers pay online?

No. This is the honest answer and an earlier version of this page gave a dishonest one, so it is worth being blunt: BottleCRM has no payment processor. The public invoice page shows your terms, the reference and the amount due, and the customer pays you by whatever route you already use. When the money lands, someone records it against the invoice. If online checkout is a requirement for you, this is the feature to weigh before you adopt.

What currencies and tax models are supported?

Any ISO-4217 currency code, set per document, so a customer in another market gets an invoice in their own currency. Tax is a single rate per line, which covers mixed rates across a document. Compound or stacked tax, where one tax is charged on top of another, is not supported.

How are recurring invoices generated?

A scheduled background task runs once a day at midnight, finds the schedules that are due and generates their invoices. Each one inherits the line items, the contact and the custom field values from the schedule, and sends itself if you turned auto-send on. Two other tasks run daily alongside it: one marks invoices overdue, another expires estimates past their date.

Can I change how the invoice looks?

Yes. Invoices render from an HTML template you can edit per organisation, covering the logo, colours, headings and footer terms, and the same template drives the PDF. The default handles standard B2B layouts, and a fully custom template can be swapped in.

Stop paying per invoice

Unlimited documents, unlimited customers, on your own database. Host it yourself, or let MicroPyramid run it.

MIT licensed No per-invoice fee 100% data ownership