Skip to content

Releases: Thiritin/meteric

v0.4.0

25 Jun 02:57
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Adds invoice voiding (cancellation) with a charge policy.

New:

  • Meteric::voidInvoice($invoice, VoidCharges) cancels an unpaid invoice issued in error. It refuses an invoice with a payment (use a credit note to reverse a paid one). Voiding routes through the driver, so the lexoffice driver voids an unsent draft and refuses a finalized document.
  • VoidCharges decides the charges' fate: Keep (default, leave them for a manual re-issue such as a wrong address), Release (return to pending to bill again on the next run), or Discard (void the charges too).

Requires PHP 8.3+, Laravel 12, PostgreSQL.

v0.3.0

25 Jun 01:44
Immutable release. Only release title and notes can be modified.
d0fbe7a

Choose a tag to compare

Adds invoice line grouping and an opt-in consolidated render mode.

New:

  • line_group on every charge and invoice line (the owning subscription item id), so a custom invoice driver can group a product with its configurable options and addons. Account-level charges stay null.
  • LineKind::isBaseLine() to tell a product's parent line from its option/addon/setup/credit sub-items.
  • Opt-in consolidated mode: config('meteric.invoice.line_mode') = itemized (default) or consolidated. Consolidated writes one line per product (amount summed, options/addons as sub-items in the description and in line metadata['items']); totals match the itemized invoice. The lexoffice driver inherits it.
  • Custom drivers can render itemized, nested (numbered sub-positions like 1a/1b with their own amount and tax), or consolidated from the same data. Documented under Invoicing.

Requires PHP 8.3+, Laravel 12, PostgreSQL.

v0.2.0

25 Jun 00:11
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Adds orders/checkout, scheduled cancellations, qualified VIES, and a configurable table prefix.

New:

  • Qualified VIES check: Meteric::viesCheck() validates an EU VAT id and returns the registered name/address with per-field match flags and a consultation number, for a company-details-mismatch warning and an audit record. Requester defaults from config (METERIC_VIES_REQUESTER_*).
  • Orders/checkout: persisted immutable carts (openCheckout) that materialize a subscription and a paid invoice on payment, with expiry and events.
  • Scheduled cancellations: cancel now, at period end, or a specific boundary, with a contract notice window (cancel_notice_days), cancellationOptions() for a dropdown, cancellation metadata, and a SubscriptionCancellationScheduled event. Enacted by meteric:run.
  • Configurable table prefix: config('meteric.schema.prefix') drives every table name; default meteric_, empty for none.
  • Product config validation: invalid downgrade or cancel_notice_days throws on write.
  • Configurable options carry a raw value (provisioning) and a display label.

Requires PHP 8.3+, Laravel 12, PostgreSQL.

v0.1.0

24 Jun 21:26
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

First release of Meteric, a dynamic billing engine for Laravel hosting systems on PostgreSQL.

Features:

  • Subscriptions with anchoring, proration (second precision), trials, pause/resume.
  • Plan changes: prorate or defer upgrades; defer, discard, credit, or refund downgrades.
  • Scheduled cancellations: immediate, period end, or a specific boundary with a contract notice window.
  • Configurable options and addons: tiered/volume pricing, allowance, blocks, caps, and percentage of the base price.
  • Usage metering: sum, max, last aggregation, blocks, allowances, in arrears rollup.
  • Orders/checkout: persisted immutable carts that materialize a subscription on payment.
  • Invoicing with a charge vs invoice guarantee, never negative, plus a Lexware Office (lexoffice) driver.
  • Multi jurisdiction tax (database, ibericode VIES, EU, flat).
  • Credit notes, consolidated billing, configurable table prefix, the meteric:run billing tick.

Requires PHP 8.3+ and Laravel 12.