Skip to content

Plans & credit packs

Plans are what customers buy. Each plan = price + billing interval + a limits block + an allowed-model list. Prices are in BDT (stored as poisha, 1/100 BDT).

Anatomy of a plan

FieldExampleMeaning
Slug / Namepro-monthly / "Pro"Identity shown at checkout
IntervalDAILY · WEEKLY · MONTHLY · YEARLY · ENTERPRISEBilling cycle
Price99900 poisha = ৳999Charged via SSLCommerz / bKash / Nagad / DCB carrier billing
Limits JSONsee belowThe quota engine reads this
Allowed modelslist of model idsWhat the tier can use
json
{
  "monthlyRequests": 500,
  "tokenLimit": 1500000,
  "imageCredits": 6,
  "videoCredits": 3,
  "concurrentJobs": 5,
  "apiAccess": true,
  "priorityLevel": 3
}

imageCredits / videoCredits are counts — how many images / videos the tier includes per cycle. tokenLimit is the text-token allowance. Each call debits by count, not by the model's price.

Cost, margin & the economics panel

The Plans page shows, per plan, a live cost-to-serve breakdown next to the price:

Net margin = price − provider cost − payment-gateway fee (2%) − overhead (8%)

Provider cost = the granted credits valued at the cheapest servable model's real BDT unit cost (video is the big driver). Each grant field shows its own ≈BDT cost as you edit, and a green/red bar shows the resulting net margin. Seeded plans are tuned to ~62–70% net margin at full use.

Use the Recommend (65%) button (sparkle icon) in the plan editor to back-solve grants for a target margin from the price — it splits the provider budget roughly 65% video / 25% image / 10% tokens.

Creating a tier

PlansNew plan → fill the structured form (each grant field shows its per-unit cost and the live margin updates as you type) → Create. It appears at checkout ordered by sortOrder. Archive (trash icon) hides a plan from new purchases — existing subscribers keep it until expiry.

Credit packs (one-time top-ups)

Alongside recurring plans, Plans → Credit packs manages one-time purchases that add credits straight to a customer's wallet — no subscription, no renewal. A pack's grants block mirrors plan limits (textRequests, tokens, imageCredits, videoCredits).

PackPriceGrants (req / tokens / img / vid)
Starter Pack৳149100 / 100k / 6 / 0
Creator Pack৳499400 / 300k / 10 / 1
Pro Pack৳9991000 / 1.5M / 6 / 3
Studio Pack৳2,4993000 / 3M / 10 / 8
Mega Pack৳4,9998000 / 6M / 20 / 16

Packs carry the same cost/margin panel as plans (provider cost + 2% fees + 8% overhead), so you set top-up prices with the net margin in view. Full CRUD lives on the page (POST/PATCH/DELETE /v1/admin/credit-packs); delete is a soft-deactivate — existing wallets keep credits already granted.

Building a reseller package

A "reseller package" is a plan tailored to a partner who resells access under their own brand:

  1. Create a dedicated plan — e.g. partner-acme-monthly, interval MONTHLY, negotiated price, generous limits, apiAccess: true (the reseller integrates via API keys).
  2. Restrict the model list to what the deal covers (only cheap image models, for example).
  3. Grant it manually — Users → the partner's account → Grant plan → pick the plan + duration. No card required. Repeat on renewal or script it via POST /v1/admin/users/:id/grant-subscription.
  4. Enterprise teams — create a Workspace for the partner, invite their staff; attach the subscription to the workspace so all members share the pool.
  5. Watch consumption — Analytics → top users; per-user detail shows recent usage.

For carrier-billed consumer packages (Bangladesh DCB via Hullor): create a BDT plan, and the checkout flow handles carrier consent SMS. Amounts must match a plan configured on the Hullor side (keyword + amount pair).

Promotions

CouponsNew coupon → percent-off or fixed-amount, optional redemption cap and start/expiry window. Codes are entered at checkout.

Ad-hoc credits

For goodwill / sales trials: Users → user → Grant credits (text requests, tokens, image credits, video credits — with an internal note). Instant, no payment involved.

Magic.ai — internal documentation