Learn Build on Elastbiz
Build on Elastbiz

How to run invoicing & billing on Elastbiz

Invoices are rows. Payments are rows. Wire Stripe once and every paid invoice lands in your Tables as a record your AI workers can reconcile.

Billing tools keep your money data in someone else's product and hand you a CSV export. On Elastbiz the invoice is a row next to the customer it belongs to, and the payment that settles it is a row too — so 'which customers are overdue' is a view, not a spreadsheet.

What you will build

  • An Invoices partition linked to Customers, with Status (draft / sent / paid / overdue).
  • A Payments partition that Stripe writes into via webhook.
  • A Checkout button that creates a Stripe session; on success the payment row lands automatically.

Step by step

  1. Model invoices. Columns: Number, Customer (reference), Amount, Currency, Status, Due date, Line items (a subtable). A view grouped by Status is your accounts-receivable board.
  2. Add a Checkout action. A pricing/pay button calls CreateCheckoutSession(price_id, success_url, cancel_url) and redirects to Stripe. This is the same Stripe wiring the platform ships for its own plans.
  3. Verify the webhook. Stripe posts checkout.session.completed and invoice.paid to your endpoint; the handler checks the whsec_ signature before trusting the event.
  4. Write the rows. On a verified invoice.paid, insert a Payment row and flip the matching Invoice to Paid — the reconciliation is a row update, not a manual match.
  5. Test in Stripe test mode. Pay with card 4242 4242 4242 4242, confirm the Payment row appears against the right Customer, and screenshot the flow before switching to live keys.
  6. Let AI chase the rest. An AI worker can read the Overdue view, draft reminder emails through your DKIM-signed Mail server, and log each nudge as an AIRecord on the invoice.
Dogfood note: this is exactly how Elastbiz bills itself — Stripe webhooks are HMAC-verified and turned into license + payment rows in our own Tables. The billing layer is a customer of the same substrate you are building on.

Where to go next

Pair this with the CRM walkthrough so an invoice links back to its deal, and read the pricing comparison for why self-hosted billing avoids the per-seat tax.

Share on LinkedIn

Build it on your own substrate.

Every walkthrough here runs on Tables — self-host it under Elastic License 2.0 or open it on our cloud.