Skip to content

Artisan commands

Terminal window
php artisan billing:process-recurring-charges

Finalizes due period-end cancellations, then initiates renewal charges for due package-managed subscriptions. See Renewals and dunning. Scheduled every minute.

Terminal window
php artisan billing:reconcile-pending-payments

Polls (or writes off) payments pending longer than reconcile_after_minutes. See Scheduled commands. Scheduled every 15 minutes.

Fires TrialWillEnd reminders, then moves expired package-managed trials to ended (TrialEnded). Hourly.

Fires SubscriptionPeriodEnding per period_ending_notices. Hourly.

Resumes paused subscriptions whose pause_ends_at passed. Hourly.

Resets usage of prices with their own quota cycle. Hourly.

Terminal window
php artisan billing:health {gateway?}

Probes one gateway, or every registered health-capable gateway, and prints a table (gateway, status, latency, detail). Exit code 1 if any is down. Without an argument a gateway with none of its secret credentials set is listed as skipped / “not configured” and doesn’t affect the exit code; a named gateway is always probed. An unknown name throws.

Terminal window
php artisan billing:stripe-register-webhook [--url=] [--gateway=stripe] [--tenant=] [--fresh]
OptionMeaning
--urlEndpoint URL; default route('billing.webhook', <gateway>) (+ ?tenant=)
--gatewayGateway name whose secret_key to use (a second Stripe account)
--tenantUse that tenant’s credentials and add ?tenant= to the URL
--freshDelete existing endpoints for this URL and re-create (new secret)

Without --fresh an existing endpoint for the URL gets its events updated (secret unchanged; exits 1 with a warning if its API version differs from the driver’s). Otherwise creates the endpoint with the pinned API version and prints the signing secret once. See Stripe.

Terminal window
php artisan billing:paddle-register-webhook [--url=] [--gateway=paddle] [--tenant=]

Creates the notification destination, or updates the events of an existing one for the same URL, and prints its secret (Paddle returns it on every read). See Paddle.

Registered daily for Fomvasss\Billing\Webhooks\BillingWebhookCall when the schedule is enabled:

Terminal window
php artisan model:prune --model="Fomvasss\Billing\Webhooks\BillingWebhookCall"