Revenue, Pricing & Payouts
Pricing models
You can list items as:
- Free —
price_eur: 0. No license check, free download. - One-time — single payment, perpetual license, includes 1 year of updates.
- Subscription — monthly or yearly recurring, includes updates while subscribed.
- Per-instance — pricing tied to merchant's instance ID. Useful for B2B integrations.
Pricing is set in the developer portal listing, not in the manifest.
The 10% platform fee
For every paid sale, the platform retains 10% to cover:
- Stripe processing fees (~2.9% + €0.30 absorbed by platform).
- Hosting the marketplace and CDN.
- Review and security infrastructure.
- Tax handling (we file VAT MOSS for EU merchants on your behalf).
You receive 90% net.
License keys
When a merchant buys a paid item:
carphacom.comissues a license key (CC-XXXX-XXXX-XXXX).- The merchant's installer stores it encrypted in
carphacom_plugin.config.license_key. - The plugin verifies on startup via
POST /store/marketplace/license/verify. - If verification fails (revoked, expired, wrong instance), the plugin enters a grace period (7 days) then disables itself.
Implement license enforcement in your register() hook:
async register({ medusa, config }) {
const result = await fetch(
`https://carphacom.com/store/marketplace/license/verify`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
license_key: config.license_key,
marketplace_id: "@my-vendor/my-plugin",
instance_id: process.env.CARPHACOM_INSTANCE_ID,
}),
}
).then(r => r.json())
if (!result.valid) throw new Error("Invalid or revoked license")
}
Refund policy
Merchants can refund within 14 days of purchase, no questions asked. Refunded sales are deducted from your next payout. After 14 days, refunds require justification and are reviewed case by case.
Payouts
- Schedule: every Monday for the previous week's earnings.
- Minimum threshold: €25. Below threshold rolls over.
- Method: Stripe Connect Express to your connected account.
- Currency: EUR (your bank converts on receipt if non-EUR).
Track in Developer Portal → Earnings. Tax forms (annual statement, VAT MOSS report) download from Developer Portal → Tax.
Pricing strategy tips
- Free + paid pro variant works well: free hooks merchants in, pro upgrades them.
- Subscription pricing yields more lifetime value but requires ongoing support commitment.
- Bundle pricing (your themes + plugins as a suite) drives larger initial sales.