Catalog and payments
CLI commands for products, perks, store connections, store product mappings and payment sources.
These commands manage what people buy and how purchases reach Voidhash: products, perks, payment providers and the mappings between store products and products. Studio covers the same under Products, Perks and Settings → Payment providers.
Products and perks
| Command | What it does | Key flags |
|---|---|---|
product list | Products with the perks they grant and the stores they sell in. | --type subscription|one-time|consumable |
product view [product] | A product's type, perks and store products. | |
product create | Creates a subscription, one-time purchase or consumable. | --name, --slug, --type, --period weekly|monthly|quarterly|semi-annual|annual, --perk (repeat) |
product edit [product] | Renames a product or changes its slug. Type and period can't change. | --name, --slug |
product delete [product] | Deletes a product no store product is mapped to. Asks first. | |
product perks set [product] [perk…] | Makes a product grant exactly these perks. Removing one asks first. | --none, --dry-run |
perk list | Perks with the products that grant each. | |
perk create | Creates a perk, optionally granted by products. | --name, --slug, --product (repeat) |
perk edit [perk] | Renames a perk or changes the slug your app checks. | --name, --slug |
perk delete [perk] | Deletes a perk; every product stops granting it. Asks first. |
See Products and perks.
Payment providers
Name a provider app-store, google-play, stripe, or by a payment source's slug, name or ID.
Secrets are asked for hidden in a terminal.
| Command | What it does | Key flags |
|---|---|---|
provider list | Each provider's health: enabled, store products read and mapped, purchases waiting for a mapping. | |
provider view [provider] | Status, store products, waiting purchases, history imports and the notification address. | |
provider connect app-store | Connects the App Store. Run again to change settings. | --bundle-id, --apple-id, --issuer-id, --iap-key <.p8>, --api-key <.p8>, --vendor-number, --forward-notifications-to |
provider connect google-play | Connects Google Play. | --package-name, --service-account-key <.json>, --notifications-topic, --forward-notifications-to |
provider connect stripe | Connects Stripe live mode, test mode or both. Without webhook secrets it prints where to point Stripe. | --account-id, --live-secret-key, --test-secret-key, --live-webhook-secret, --test-webhook-secret |
provider connect payment-source | Adds a payment source and prints each endpoint's signing secret once. | --name, --slug, --endpoint, --test-endpoint |
provider test [provider] | Checks the saved credentials, or calls each payment source endpoint. Exits 1 on failure. | |
provider edit [provider] | Renames, enables or disables a provider; changes a payment source's endpoints and secrets. Disabling, disconnecting and rotating ask first. | --name, --enable, --disable, --endpoint, --test-endpoint, --rotate-secret, --rotate-test-secret, --disconnect-endpoint, --disconnect-test-endpoint |
provider products [provider] | Store products and the product each is mapped to. | --mapped, --unmapped, --refresh (the cached copy is up to an hour old) |
provider map [store-product] [product] | Makes buying a store product grant a product. Moving a mapping asks first. | --provider, --offer <id>=<store offer id>, --environment all|production|test |
provider unmap [store-product] | Removes a mapping made by mistake. Asks first. | --provider, --product |
provider import [provider] | Imports Stripe's or a payment source's earlier purchases in the background. | --environment production|test, --watch, --cancel |
provider delete [provider] | Deletes a provider no store product is mapped to. Asks first. | |
provider record-payment [source] | Records a payment a payment source took, such as a bank transfer, or a refund of one. | --amount, --currency, --product, --distinct-id, --customer, --refunds <charge id>, --id, --at, --test |
provider refund [source] | Refunds a charge at the payment source. Asks first. | --transaction, --amount, --currency, --reason |
provider cancel-subscription [source] | Cancels a subscription at the payment source, at the period's end. Asks first. | --subscription, --now |
Stripe store products are prices, written prod_…:price_…. A --test payment stays out of
production revenue and never unlocks access in production apps. Credentials are explained in
Connect the App Store, Connect Google Play and
Connect Stripe (Help center).
Example
voidhash product create --name "Pro Monthly" --slug pro_monthly --type subscription --period monthly --perk premium
voidhash provider map com.example.pro.monthly pro_monthlyNext steps
- Products and perks: how products, perks and store products relate.
- Payment providers (Help center): what each provider needs.
- Paywalls and components: sell the products.
Something wrong or missing on this page? Tell us by email or on Discord.