Products

Products define wallet packages that users can purchase. Each product has a price (in cents) and an amount (in micro-dollars) that gets deposited to the organization's wallet on purchase.

Creating Products

Dashboard

  1. Go to Billing and select your organization
  2. Click "Add Product"
  3. Enter name, price (cents), and amount (micro-dollars)
  4. Click Create

CLI

mushu pay add-product \
  --name "Starter Pack" \
  --price 999 \
  --amount 10000000

Note: Price is in cents (999 = $9.99). Amount is in micro-dollars (10000000 = $10.00).

API

POST /orgs/{'{org_id}'}/products
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json

{'{'}
  "name": "Starter Pack",
  "billing_model": "one_time",
  "price_cents": 999,
  "amount_micros": 10000000
{'}'}

Product Fields

FieldRequiredDescription
name Yes Display name shown at checkout
billing_model Yes Currently only one_time
price_cents Yes Price in cents (999 = $9.99)
amount_micros Yes Wallet deposit in micro-dollars (1,000,000 = $1.00)

Example Product Lineup

A typical wallet package lineup:

NamePriceWallet DepositBonus
Starter Pack $9.99 $10.00 -
Pro Pack $24.99 $27.00 +8%
Business Pack $99.99 $115.00 +15%

Offering volume bonuses incentivizes larger purchases. The wallet deposit can be higher than the price to create value.

Micro-Dollar Conversion

AmountMicro-dollars
$1.001,000,000
$10.0010,000,000
$0.0110,000
$0.0055,000

Listing Products

mushu pay products

Output:

Products (org: org_xxx)
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┓
┃ ID                ┃ Name         ┃ Price ┃ Deposit    ┃ Type     ┃ Active ┃
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━┩
│ prod_starter      │ Starter Pack │ $9.99 │ $10.00     │ one_time │ ✓      │
│ prod_pro          │ Pro Pack     │ $24.99│ $27.00     │ one_time │ ✓      │
│ prod_business     │ Business Pack│ $99.99│ $115.00    │ one_time │ ✓      │
└───────────────────┴──────────────┴───────┴────────────┴──────────┴────────┘

Stripe Integration

When you create a product, Mushu automatically creates:

  • A Stripe Product in your account
  • A Stripe Price attached to that product

You can view these in your Stripe Dashboard under Products. The Stripe product metadata includes the Mushu product ID for reference.

Deactivating Products

Products can be deactivated via the API. Deactivated products won't appear in product listings and can't be used for new checkouts.

PATCH /orgs/{'{org_id}'}/products/{'{product_id}'}
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json

{'{'}
  "active": false
{'}'}

FAQ

Can I change prices?

You cannot change a product's price after creation (Stripe limitation). Instead, deactivate the old product and create a new one with the new price.

What currencies are supported?

Currently USD only. Multi-currency support is planned.

Can I offer subscriptions?

Not yet. Subscription support (recurring deposits, usage-based billing) is on the roadmap.

Why micro-dollars instead of cents?

Micro-dollars allow sub-cent pricing (e.g., $0.0006 per API call) without floating-point precision issues. 1 million micros = $1.00.