VoltexaHubDocumentation1.8.0Install the beta
Browse documentation

Administration

Payments and paid memberships

Prepare providers, dedicated groups, plans and reconciliation before accepting payments.

On this page

Start with a disabled integration#

Stripe and PayPal hosted checkout support recurring memberships, one-time memberships and fixed-amount donations. Payments start disabled. Donations grant no membership. Configure providers and verify a sandbox flow before enabling new payments.

Set provider environment variables on both web and worker: Stripe needs STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET; PayPal needs PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_WEBHOOK_ID and PAYPAL_MODE. Use HTTPS APP_URL, QUEUE_CONNECTION=database and shared CACHE_STORE=database. Follow billing reference for exact webhook events and the pinned Stripe API version.

Create a plan#

Open Administration → Payments → Plans → Create plan. Choose a dedicated ordinary member group for benefits, price/currency and duration/recurrence. Configure the matching Stripe Price ID or recurring PayPal Plan ID. One-time PayPal/donations use the configured amount. Review exact provider/app terms before enabling the plan.

Payment plan administration with plans and status
Payment plan administration with plans and status · Select image to open full size.

Existing plans cannot be repriced or have benefits edited. Create a replacement and disable the old plan. Supported two-decimal currencies are USD, EUR, GBP, CAD, AUD and NZD. Tax calculation, coupons, trials, prorations and plan upgrades are outside this release's billing scope.

Verify before enabling#

  1. Test checkout, return, webhook processing and canonical provider reconciliation in sandbox.
  2. Confirm access for the intended paid group, including search and restricted files.
  3. Test expiry, cancellation, refund/dispute and failed renewal behavior.
  4. Confirm queue and once-per-minute reconciliation scheduling.
  5. Only then set BILLING_ENABLED=true and enable Allow new payments and the plan using the intended live configuration.

Manage the lifecycle#

Returning from checkout does not grant access directly. Recurring access requires verified payment and paid-through time. Cancellation stops renewals but preserves confirmed paid time; it is not a refund. Disabling checkout does not stop existing reconciliation/cancellation.

Paid grants remain separate from manual groups. Explicit denies and bans win. Paid groups cannot grant staff or unsupported plugin powers. Use Transactions for records and rechecks, and provider dashboards for supported refund/dispute work. Consult billing operations before recovery or provider removal.