Billing for businesses with weather.
Stripe Billing was designed to add billing onto a Stripe-shaped payments business. Cabbage was designed to be the billing layer of an operating system — invoices post to Bean in the same transaction, dispatch through Basil, queue Chard payment intents, and recognise revenue under ASC 606 without a bolt-on.
Invoices
INV-2941 · ACME Holdings
| Description | Qty | Rate | Amount |
|---|---|---|---|
| Garden Apex · Orchard plan · 1 mo | 1 | $499.00 | $499.00 |
| Transaction volume · 412k events | 412,000 | $0.018 | $7,416.00 |
| Greenhouse FROST · 18 signers | 18 | $220.00 | $3,960.00 |
| Sage screening · 4,287 cases · 24h | 4,287 | $0.42 | $1,800.54 |
| Compute · usage credits | — | — | $1,144.46 |
Every customer carries MRR, contracts, and health live.
No CRM export, no churn report job. The customer table is the customer table — joined to Bean's accounts receivable, Sage's KYB status, and Chard's payment-method health in real time.
Customers · 24 of 142
| Account | Entity | MRR | Contracts | Status | Health |
|---|---|---|---|---|---|
| ACME Holdings | 1042-A | $14,820.00 | 4 | active | good |
| Forerun Labs | 1089-B | $4,016.67 | 2 | active | good |
| Northwood Capital | 1147-C | $3,200.00 | 1 | trial | watch |
| Helsinki & Co | 1162-D | $2,840.50 | 3 | active | good |
| Marsh Bay Trading | 1184-A | $1,915.00 | 1 | delinquent | risk |
| Pinnacle Insurance | 1199-B | $1,720.00 | 2 | active | good |
MRR, ARR, ASC 606 rev rec — derived from the contract.
The contract is the source of truth. Renewals, proration, upgrades, mid-cycle changes, ramps — every event recalculates the revenue schedule and posts adjustments to Bean.
sub_2941 · Forerun Labs · Orchard plan
| Line item | Qty | Rate | Subtotal |
|---|---|---|---|
| Garden Apex · Orchard plan | 1 | $499.00 | $499.00 |
| Volume · 38k events / mo | 38,000 | $0.018 | $684.00 |
| Greenhouse · 6 signers | 6 | $220.00 | $1,320.00 |
| Sage screening · 1,200/mo | 1,200 | $0.42 | $504.00 |
| Bean entries · unlimited | — | — | incl. |
Performance obligations to monthly waterfall, automatic.
Cabbage decomposes every contract into ASC 606 performance obligations, allocates the transaction price across them, and posts the recognition waterfall to Bean on the first of each month. Every renewal, proration, or upgrade re-runs the schedule — and the adjustment is a journal entry, not a CSV.
ASC 606 · contract_4f81 · ACME Holdings · $81,008 TCV
| PO | Name | Kind | Allocated | Method | Period |
|---|---|---|---|---|---|
| PO-01 | Orchard plan · monthly licence | subscription | $5,988.00 | ratable | 2026-04-01 → 2027-03-31 |
| PO-02 | Greenhouse FROST · 18 signers | subscription | $47,520.00 | ratable | 2026-04-01 → 2027-03-31 |
| PO-03 | Volume · per-event metering | usage | 0.018 / evt | as-delivered | 2026-04-01 → 2027-03-31 |
| PO-04 | Implementation · 3 milestones | milestone | $24,000.00 | milestone | 2026-04-08 → 2026-06-30 |
| PO-05 | Bean · Multi-entity addon (1-time) | one-time | $3,500.00 | point-in-time | 2026-04-01 → 2026-04-01 |
Billing as a property of the ledger, not a side car.
Stripe Billing has the rails. Chargebee has the model. Cabbage has the books.
| Capability | Stripe Billing | Chargebee | Zuora | Cabbage |
|---|---|---|---|---|
| Posts to ledger atomically | — | — | module | ✓ |
| ASC 606 rev rec native | — | — | ✓ | ✓ contract-derived |
| Multi-entity invoicing | — | — | ✓ | ✓ default |
| Pay rail-agnostic | card-first | card-first | card-first | ✓ Chard |
| Crypto / stablecoin | — | — | — | ✓ USDC, USDP, PYUSD |
| Agent-issued invoices | — | — | — | ✓ MCP |
| Dunning + collections | ✓ | ✓ | ✓ | ✓ + Basil dispatch |
| Tax engine | Stripe Tax | Avalara | Vertex | ✓ pluggable |
An agent can run the entire revenue lifecycle.
From price-book change to invoice issuance to dunning. Every action passes through a typed policy ("approval > 5,000 USD") and lands in Bean with a complete chain back to the agent that initiated it.
tool cabbage.invoices.issue Issue an invoice for a customer tool cabbage.subscriptions.upgrade Apply proration + ramp tool cabbage.pricing.set Update a pricing plan (signed) tool cabbage.dunning.advance Move account to next dunning step resource contract://acme/sub_2941 Live subscription contract
POST /cabbage/v1/invoices Issue invoice (idempotent) POST /cabbage/v1/subscriptions Create subscription PATCH /cabbage/v1/subscriptions/:idUpgrade / downgrade / pause POST /cabbage/v1/pricing/plans Create or version a plan POST /cabbage/v1/dunning/runs Advance dunning campaign
Authorization: Bearer arsenal:act_ce… X-Garden-Capability: cabbage.invoices.issue · max_amount=5000 X-Garden-Approval-Policy: invoice > 5000 USD requires human X-Garden-Idempotency: inv_iss_pi_2c4f1a
What Cabbage replaces on day one.
- 01Subscriptions, usage-based, milestone-based, and contract billing
- 02ASC 606 revenue recognition derived from the signed contract
- 03Multi-entity invoicing with intercompany handling
- 04Tax: Stripe Tax, Avalara, Vertex, or in-house engine
- 05Dunning campaigns with Basil-dispatched touchpoints
- 06Multi-currency with FX captured at invoice issue
- 07Coupons, credits, budgets, usage caps, and overage rules
- 08Native crypto and stablecoin invoicing (USDC, USDP, PYUSD)























