Pricing & Discovery¶
App pricing¶
An app has a base price and, optionally, a set of plans.
| Field | Notes |
|---|---|
| Price | 0 = free. Free apps install instantly; paid apps go through checkout first. |
| Currency | Defaults to BDT. Set at creation and not editable afterwards. Stored as a 3-letter code. |
| Plans | Optional. If you define plans, the base price is only the "starting at" figure shown on the listing. |
Plans¶
Each plan has:
| Field | Notes |
|---|---|
| Name | Required — a row without a name is discarded. |
| Billing period | month, year, lifetime or one_time. |
| Price | ≥ 0. |
| Trial days | Optional. Only for month and year — there is no renewal to trial against on lifetime or one-time plans, and the field is disabled for them. |
| Default | Exactly one plan is the default. Selecting another moves the flag. |
Access is always granted by an entitlement, never by raw payment state.
lifetime and one_time create a perpetual entitlement with no subscription
row behind it.
sales_mode is not yours
If you have seen sales_mode (plan_included / plan_or_paid /
paid_only) in the platform, it applies to first-party core apps only.
External apps ignore it — they are always sold on their own plans.
Theme pricing¶
Themes are free or one-time only. There are no theme subscriptions.
The price you enter on the submission form is a proposal. A Bitcommerz
super-admin sets or confirms the final market price after approval, and that is
what merchants pay. Currency is BDT.
Discovery¶
What merchants can actually search and filter on is short, so use it well:
- Name — the strongest signal. It is permanent once submitted.
- Category — free text on the app form; a required field on themes. Use the closest fit to an existing category rather than inventing one, or your listing will sit in a category of one.
- Description — up to 5000 characters, and the only place to explain what the app does. Lead with the concrete outcome for a merchant.
There is no subtitle field, no search-keyword field, no geographic or sales-channel targeting, and no listing media for apps (no icon upload, no screenshots, no banner). Themes get screenshots, but they are extracted from your package — see Theme Screenshots & Assets.
Revenue share and payouts¶
| Developer share | 75% of every app and theme sale |
| Platform fee | 25% — hosting, billing, distribution |
| Buyer-protection hold | 7 days before your share is released |
| Currency | BDT |
The split is flat: no tiers, no volume gates. It is resolved and snapshotted onto each transaction at the time of sale, so a later change never rewrites past earnings.
Every sale moves through: pending → settled → held → released, or
refunded.
Where you see it¶
Sales & Earnings in the Partner Panel shows:
- Available balance — released, ready to withdraw
- In hold — inside the 7-day window
- Lifetime earned
- Recent sales: date, product, gross, your share, state
- Payouts: date, amount, reference, state (
pending/paid)
How you get paid¶
Marketplace payouts are processed manually in this release. The Sales & Earnings page is read-only — there is no payout-request button on it, and there is no published payout schedule, minimum threshold or payout method. A payout appears in the table once the Bitcommerz team has issued it.
Don't confuse the two ledgers
The Disbursement page does have a Request Payout button — that draws on the affiliate/referral earnings ledger (commission for referring merchants), not on marketplace app or theme sales. The two are deliberately kept apart.