Plugin Billing
Plugin billing is handled end-to-end by Levy through Stripe Connect. Operators see a single charge on their card; Levy automatically splits the revenue between the vendor and Levy, taking a 20% platform fee.
Pricing models
Every plugin declares one of four pricing models in its manifest:
| Model | When you're charged | Example |
|---|---|---|
| Free | Never | Slack, Zapier, Reaction-time test |
| One-time | Once, at install | Setup fees for self-service plugins |
| Monthly | Every month, prorated on the first cycle | Captur.ai ($99/mo), SparkPark ($49/mo), BigQuery export ($199/mo) |
| Usage | Monthly in arrears, based on events | Veriff (per verification), Persona (per check) |
The pricing badge on the marketplace card always shows the entry-level price. The detail page shows the full pricing breakdown.
The 20% platform fee
For every paid plugin, Levy collects a 20% platform fee on the gross amount charged. The remaining 80% is paid out to the vendor via Stripe Connect.
Example: Captur.ai monthly subscription at $99/mo.
| Line item | Amount |
|---|---|
| Operator card charged | $99.00 |
| Stripe processing fee | -$3.10 |
| Levy platform fee (20% of gross) | $19.80 |
| Vendor payout (Captur.ai) | $76.10 |
The platform fee rate is configurable per vendor agreement — marquee partners may negotiate down to 10%, niche vendors may pay up to 30%. The rate is fixed for the lifetime of an install once you've signed up.
Stripe Connect setup
Levy uses Stripe Connect (the same infrastructure that pays out partner fleets for ride revenue). For operators, this is invisible — you see one charge labeled "Levy Plugins" on your card statement, and the split happens behind the scenes.
For vendors, see Developer portal — vendors complete Stripe Connect Express onboarding once and Levy automatically routes their share of every plugin invoice.
Invoices
Each charge generates a plugin_invoice record:
| Field | Description |
|---|---|
amount_cents | Total charged to operator |
platform_fee_cents | Levy's 20% cut |
vendor_amount_cents | Vendor's 80% cut |
period_start / period_end | Billing period (for monthly / usage) |
status | pending, paid, failed, or refunded |
Invoices are visible in Dashboard → Settings → Billing → Plugin invoices, downloadable as PDF.
Usage billing
Usage-billed plugins (Veriff, Persona) post usage records back to Levy via the plugin API as events happen. At month-end, Levy:
- Aggregates unbilled usage records for the previous month.
- Computes total amount =
unit_amount * units. - Applies the 20% platform fee.
- Creates a Stripe Connect invoice with the vendor as destination.
- Charges your card on the next billing cycle.
The monthly billing reconciler runs as a Vercel cron at 02:00 UTC on the 1st of each month. If a charge fails (declined card), the invoice enters failed status and we'll email you and retry on Stripe's standard schedule.
Idempotent reconciliation
The reconciler checks for an existing invoice for the same period before creating a new one, so re-running the cron never double-charges.
Refunds
If a plugin malfunctions and you need a refund:
- Contact the vendor first through their support_url (listed on the plugin detail page). They issue the refund through Stripe Connect — both the vendor's portion and Levy's platform fee are returned.
- If the vendor is unresponsive after 5 business days, contact Levy support and we'll mediate.
The vendor — not Levy — owns the refund decision because the vendor controls the service being refunded.
Disputes
If you file a chargeback through your bank, Stripe Connect handles the dispute on Levy's behalf. Levy collects evidence from both itself (audit log, webhook delivery history) and the vendor. The platform fee is returned along with the vendor's share if the dispute is lost.
Failed payments
If your card declines on a monthly or usage charge:
- The invoice enters
failedstatus. - Stripe retries on its standard schedule (4 attempts over ~2 weeks).
- Your plugin stays active during the retry window.
- If all retries fail, the plugin is disabled but not uninstalled — your config is preserved. Update your payment method in Settings → Billing and we'll retry the charge.
Free-tier limits
Subaccounts on Levy's free plan can install up to two free plugins. Paid plugins are blocked on the free plan; upgrade to install them. Paid plans have no plugin count limit.
What's next
- Configuring a plugin — change settings, rotate tokens
- Developer portal — set up Stripe Connect as a vendor
- FAQ — common billing questions