paid_until remains the actual paid invoice period end during renewal grace: read the effective plan/source instead of deciding by that timestamp alone.
A new workspace starts Free. A Granted badge means Paid features were granted, for example for thirty days through a referral; it does not represent a Stripe subscription or add another monthly Paid allowance. Billing shows a finite grant’s end (paid_until in ohmyhost credits account --organization "$ORGANIZATION_ID" --json). When it ends, the workspace returns to Free: managed mail stops, and a custom domain answers HTTP 402 unless its project shows the ohmyho.st flag. Credit exhaustion and Stop budgets are separate limits.
Make a purchase
--offer topup --packs N to buy one to 100 USD 10 packs in one checkout. Each dollar up to USD 100 grants 100 credits; the portion above grants 125 credits per dollar, 25% more (Credit prices). Open the returned Checkout URL, review the total and complete payment yourself. The command does not pay automatically. Every successful purchase has an invoice; applicable tax is calculated by Stripe Tax.
Follow the returned checkout ID with billing status. A top-up adds credits and does not extend a subscription. A purchase is complete only when status shows payment_confirmed: true; a Checkout URL or browser return page is not a payment. Then read ohmyhost credits account --organization "$ORGANIZATION_ID" --json for the current balance and plan.
Auto-recharge
When enabled, a refill adds 1,000 top-up credits for USD 9 plus tax after the available balance falls below 100 credits. You explicitly authorize recurring off-session charges and choose a gross UTC-month limit including tax. Without active Paid access no refill starts and Billing shows auto-recharge as Paused; your consent stays until you turn it off.1000 to 100000, USD 10 to USD 1,000 including tax) and the required consent:
--enabled false with that revision, the current saved monthly limit and a new key, without --consent. An out-of-range limit, or consent with disabled state, answers invalid_command. Turning it off prevents new attempts; an already submitted payment can still settle.
Only one unresolved refill is allowed. A tax/address/payment issue requires the stated action; do not create a second payment to bypass it or disable tax. Credits are issued from confirmed paid events, once.
Resolve a tax issue on the original invoice
Read the original checkout or recharge policy:billing_issue contains code, invoice_id, observed_at and required_action:
Follow
required_action: open_billing_portal opens the supported correction flow; contact_support uses the contact form. Auto-recharge can show tax_required while this invoice needs attention. Keep the original invoice and check the same checkout/policy again after the required correction. Reading status never initiates a new charge.
Do not disable tax, discard the invoice, create another subscription/top-up or repeatedly re-enable recharge to bypass the issue. Applicable tax and the approved gross monthly cap remain in force. A past payment_confirmed is historical; read the current account balance and effective plan separately.
Manage payment details
The recharge response includesportal_available. When it is true, the workspace has a Stripe customer and Billing shows Manage in Stripe; A granted entitlement alone does not create a Stripe customer.