Account & Billing
The Account page is where you manage your pyhall identity, subscription, and billing. Navigate there from Dashboard → Account or by clicking your plan card on the overview.
Profile
The profile section shows your GitHub avatar, login, and display name. These are pulled from GitHub at login and kept in sync. To change them, update your GitHub profile — pyhall reads them on your next login.
Account Details
| Field | Description |
|---|---|
| GitHub Login | Your GitHub username |
| pyhall Account ID | Your permanent pyhall identifier (format: YYYYMMDD-SHARD-######). This ID is stable across OAuth provider changes. |
| Member Since | When your pyhall account was created |
| Status | Active or Suspended |
Your pyhall account ID is your stable identity within the registry. It does not change if you update your GitHub username or switch to a different OAuth provider in the future.
Subscription
The subscription card shows your current plan, renewal date, and subscription status.
| Status | Meaning |
|---|---|
| Active | Paid and in good standing |
| Cancelling | Will cancel at period end — still active until then |
| Past Due | Payment failed — resolve via billing portal |
| Free | No paid subscription |
Upgrading Your Plan
Click Upgrade Plan to open the Stripe Checkout session for a higher tier. You’ll select monthly or annual billing (annual is 10% off). After payment, your new limits take effect immediately.
Available tiers and their limits are on the pricing page.
Downgrading Your Plan
To downgrade, open the Stripe Customer Portal via the billing portal link. From there you can switch to a lower tier. Downgrades take effect at the end of the current billing period — you keep your current limits until then.
If you downgrade below a tier that requires features you’re using (e.g., org namespaces or db isolation), those features will be restricted after the period ends. Your data is not deleted.
Cancelling
To cancel your subscription:
- Click Cancel Subscription in the Account page.
- Confirm the cancellation.
- Your subscription remains active until the end of the current billing period.
- After the period ends, your account reverts to the Free tier.
If you change your mind before the period ends, click Reactivate to resume your subscription.
Immediate cancellation is also available (no refund) if you need to cancel without waiting for the period end.
Payment Methods
The payment methods section lists your saved cards. Each card shows the brand, last 4 digits, and expiry date.
- Add card — Click Add Payment Method. A Stripe-hosted form opens to securely enter card details.
- Set default — Click Set Default on any card to make it the primary charge card.
- Remove — Click Remove on a non-default card to detach it.
You must have at least one payment method on file to maintain a paid subscription.
Billing History
The billing history section shows your 24 most recent invoices. Each entry shows the date, amount, and a link to download the PDF invoice. Invoices are generated and managed by Stripe.
Recovery Code
Your recovery code is a one-time-use emergency credential. It is required to mark a worker as compromised (POST /:id/compromised) — an operation that bypasses your normal OAuth session.
The recovery code is shown once when first generated. To rotate it:
- Scroll to the Recovery Code section.
- Click Rotate Recovery Code.
- A new code is generated and displayed once.
- Copy and store it immediately. The previous code is invalidated.
Store your recovery code in a password manager or secure vault. If you lose it, you can rotate to get a new one, but you cannot recover the old one.
Deleting Your Account
The Danger Zone section has an account deletion button. This performs a soft-disable: your account is flagged as inactive, your OAuth sessions are invalidated, and your data is retained for 30 days before permanent deletion.
After soft-disable:
- You cannot log in
- Your workers remain in the registry but stop routing
- Your API keys are invalidated
- Namespaces remain claimed during the retention window
To permanently delete before the 30-day window, contact support.