VoidhashDocs
DevelopersHelp centerGuidesAPI reference
Dashboard
Get started
Introduction
Quickstart
How Voidhash works
Glossary
Versions and releases
Concepts
Teams, projects and environments
API keys
Products and perks
Offers
Subscription lifecycle
People and identity
Events
Features
Paywalls in your app
Feature flags and A/B tests
Paywall components
Push notifications
Ad attribution in your app
Client SDKs
React Native
Swift
Kotlin
Web
Your backend
Node.js
PHP
Go
Rust
Other languages
Payment sources
Forward store notifications
Developer tools
CLI
MCP server
Query analytics with VoidQL
CLI
CLI reference
Commands
Sign-in and projects
People and access
Catalog and payments
Paywalls and components
Flags and experiments
Analytics and ads
Webhooks and push
Team and settings
Types, API and config

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

CommandWhat it doesKey flags
product listProducts 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 createCreates 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 listPerks with the products that grant each.
perk createCreates 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.

CommandWhat it doesKey flags
provider listEach 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-storeConnects 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-playConnects Google Play.--package-name, --service-account-key <.json>, --notifications-topic, --forward-notifications-to
provider connect stripeConnects 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-sourceAdds 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_monthly

Next 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.

PreviousPeople and accessNextPaywalls and components

On this page

Products and perksPayment providersExampleNext steps