KamoCRM

A second subscription is safe, grace periods, per-market agreements, paid/ended events

Featurekamo-shared-library
Shipped
November 11, 2026 at 6:09 AM UTC
Author
Kamo
Commit
185198f

Generic for every org selling through the Subscription line of business: - CorePlans: the core-plan subscription is picked deterministically; a flat product (max_seats 1, flat-priced, not FREE — e.g. Marketing Website) is never a seat: no seat rows, not seated, not "licensed" (seat-only licence query). - OrgBillingAgreement.market_id + OrgBillingAgreements.live: agreements are per market and priced from the BUYER (POS calculatePrice no longer reads the seller's). - Opt-in grace periods (grace_mode OFF|MANUAL|AUTO DEFAULT OFF, grace_days 60, grace_until, grace_expired_at) on account_subscriptions and commerce_subscriptions; SubscriptionLifecycleService: auto start on past due, expiry stops service like a manual pause, payment lifts it. - POS cancel/term end now end the customer's access (CANCELED, seats lapse); cancel defaults to the end of the paid period, immediate=true ends now. - billing.subscription.paid / ended / grace events, relayed to NATS after commit. - ONE_TIME add-ons bill on the first invoice only.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing