Charging sellers a listing fee
By default, your community's marketplace is free — anyone can post a listing without paying. If you want to charge a small fee per listing to discourage low-effort posts or fund hosting costs, Mobieus has three modes you can pick from.
The fee is charged to the seller, into your own Stripe account. Mobieus is not on the payment path; we only render the form and call Stripe with your keys. Refunds, dispute handling, and anything else commerce-y all happen in your Stripe dashboard.
Before you start
Set up Stripe keys first if you haven't: Connecting Stripe to your community. The fee flow won't work until at least the sandbox keys are saved and validated.
Fee models
Pick one in Admin → mobieusMarket → Listing fees.
- Off (default). No fee. Listings are free for sellers. The create form skips the payment step entirely.
- Flat. Same fee in cents on every listing regardless of price. Good for low-volume curated marketplaces — a $5 part and a $5,000 motherboard pay the same fee.
- Sliding. Tiers based on the listing's asking price. Useful when you want a $0.50 listing fee on a $10 part but $5 on a $1,000 part.
Flat model
Just enter the fee in cents. 50 = $0.50, 500 = $5.00. Save.
Sliding model
You write a JSON array of tiers. Each tier has:
max_price_cents— the upper bound of the tier in cents, ornullfor "everything beyond the previous tier."fee_cents— the fee charged when a listing's price falls in that tier.
[
{ "max_price_cents": 500000, "fee_cents": 50 },
{ "max_price_cents": 5000000, "fee_cents": 200 },
{ "max_price_cents": null, "fee_cents": 500 }
]
This says: listings up to $5,000 pay $0.50, listings up to $50,000 pay $2.00, listings over $50,000 pay $5.00. Mobieus normalises the tiers on save (sorts them, dedupes the open-ended one), so the order you type them in doesn't matter.
Per-category override
On any category's edit page (Admin → mobieusMarket → Categories → edit), the Listing-fee override field overrides the marketplace-wide model for listings in that category. Useful when:
- You want a "Featured" category with a higher fee.
- You want a "Free items" category that's exempt from a flat fee.
Leave blank to inherit the global model.
Explainer text
The "Why am I being charged?" textarea on the fee config page shows up to the seller on the create form. Plain text. Two sentences is plenty. Default empty.
What sellers see
When a fee model is on, the listing-create form gains a "Listing fee" panel. It shows:
- The fee Mobieus computed for the listing's price + category.
- Your explainer text (if you wrote one).
- A Stripe-hosted card field where the seller enters their card.
When the seller clicks "Post listing", Stripe charges them; if it succeeds, the listing is created with the fee tracked. If it fails, the listing is not created and the seller sees Stripe's error message inline.
Refunds
Mobieus does not auto-refund anything. If you remove a listing for policy reasons, refund the seller manually from your Stripe dashboard if you choose. The "no auto-refund" rule is intentional: auto-refunding a withdrawn listing would let someone post, get the listing live for hours, withdraw, and get refunded.
Auditing
The audit log records every fee-config change (admin.marketplace_fees_updated)
and each listing's fee (marketplace.listing_created includes the
fee in the listing row). The Stripe dashboard is the source of
truth for actual money movement.
# Charging sellers a listing fee
By default, your community's marketplace is free — anyone can post a
listing without paying. If you want to charge a small fee per listing
to discourage low-effort posts or fund hosting costs, Mobieus has
three modes you can pick from.
The fee is charged to the **seller**, into **your own Stripe
account**. Mobieus is not on the payment path; we only render the
form and call Stripe with your keys. Refunds, dispute handling, and
anything else commerce-y all happen in your Stripe dashboard.
## Before you start
Set up Stripe keys first if you haven't:
[Connecting Stripe to your community](stripe-setup.md). The fee
flow won't work until at least the sandbox keys are saved and
validated.
## Fee models
Pick one in **Admin → mobieusMarket → Listing fees**.
- **Off (default).** No fee. Listings are free for sellers. The
create form skips the payment step entirely.
- **Flat.** Same fee in cents on every listing regardless of price.
Good for low-volume curated marketplaces — a $5 part and a $5,000
motherboard pay the same fee.
- **Sliding.** Tiers based on the listing's asking price. Useful
when you want a $0.50 listing fee on a $10 part but $5 on a $1,000
part.
### Flat model
Just enter the fee in cents. `50` = $0.50, `500` = $5.00. Save.
### Sliding model
You write a JSON array of tiers. Each tier has:
- `max_price_cents` — the upper bound of the tier in cents, or
`null` for "everything beyond the previous tier."
- `fee_cents` — the fee charged when a listing's price falls in
that tier.
```json
[
{ "max_price_cents": 500000, "fee_cents": 50 },
{ "max_price_cents": 5000000, "fee_cents": 200 },
{ "max_price_cents": null, "fee_cents": 500 }
]
```
This says: listings up to $5,000 pay $0.50, listings up to $50,000
pay $2.00, listings over $50,000 pay $5.00. Mobieus normalises the
tiers on save (sorts them, dedupes the open-ended one), so the order
you type them in doesn't matter.
### Per-category override
On any category's edit page (**Admin → mobieusMarket → Categories →
edit**), the **Listing-fee override** field overrides the
marketplace-wide model for listings in that category. Useful when:
- You want a "Featured" category with a higher fee.
- You want a "Free items" category that's exempt from a flat fee.
Leave blank to inherit the global model.
## Explainer text
The "Why am I being charged?" textarea on the fee config page
shows up to the seller on the create form. Plain text. Two
sentences is plenty. Default empty.
## What sellers see
When a fee model is on, the listing-create form gains a "Listing
fee" panel. It shows:
- The fee Mobieus computed for the listing's price + category.
- Your explainer text (if you wrote one).
- A Stripe-hosted card field where the seller enters their card.
When the seller clicks "Post listing", Stripe charges them; if it
succeeds, the listing is created with the fee tracked. If it fails,
the listing is not created and the seller sees Stripe's error
message inline.
## Refunds
Mobieus does not auto-refund anything. If you remove a listing for
policy reasons, refund the seller manually from your Stripe
dashboard if you choose. The "no auto-refund" rule is intentional:
auto-refunding a withdrawn listing would let someone post, get the
listing live for hours, withdraw, and get refunded.
## Auditing
The audit log records every fee-config change (`admin.marketplace_fees_updated`)
and each listing's fee (`marketplace.listing_created` includes the
fee in the listing row). The Stripe dashboard is the source of
truth for actual money movement.