Skip to main content

Adding credits

Superheat is prepaid. Credits buy GPU time and storage, they belong to an organization rather than to a person, and you cannot deploy or start an instance unless the balance covers one hour of it — its GPU rate plus the storage on its disk — on top of an hour of everything else the organization runs.

Add credits​

  1. Open Billing in the console at cloud.superheat.xyz.
  2. Select Add credits.
  3. Pick a pack, or enter a custom amount.
  4. Select Continue to payment. You are handed off to Stripe's hosted checkout page.
  5. Pay. You are returned to the console, which confirms the top-up once the payment settles.
OptionAmount
Packs$10, $25, $100
Customany amount from $5 to $1,000

Credits do not expire. There is no subscription, no invoicing, and no post-payment: the balance you have is the balance you can spend.

After you pay​

Stripe confirms the payment, and the credit is applied to your organization's balance from the confirmation itself — never from anything the browser sends. This usually takes a few seconds, during which the console shows Confirming payment.

What you seeWhat it means
Credits addedThe balance is topped up and ready to spend
Still processingThe payment went through and the credit is running late; the balance updates on its own
Payment didn't completeThe checkout session expired and no charge was made
Checkout cancelledYou backed out on Stripe's page; no charge was made
Never pay twice for a slow confirmation

If the page says the credit is still processing, the payment already succeeded. Wait for the balance to update rather than starting a second checkout.

Who can add credits​

Adding credits is an admin action within an organization.

ActionAdminMember
See the credit balanceyesyes
See transactions and the spend chartyesyes
Deploy instances and spend creditsyesyes
Add credits and manage payment detailsyesno

A member opening the Billing page sees the balance, the spend chart and the full transaction history, but the Add credits button is replaced by a note explaining that only organization admins can add credits or manage payment details. Members who need a top-up have to ask an admin.

On your personal organization you are always the admin, so this only comes into play once you join someone else's organization. See Roles and permissions.

Balances are per organization​

Each organization has its own balance and its own ledger. Switching organizations in the console switches which balance you are looking at and which one your next deploy will draw from. Credits cannot be moved between organizations.

Running out​

A balance that cannot cover one hour of the organization's burn blocks new work before it starts. Deploying an instance, or starting one again once it is stopped, needs one hour of everything the organization would then run — that instance's GPU and disk, the GPU and disk of every other instance running, starting or being created, and the disk of every stopped one. Short of that it fails with an INSUFFICIENT_BALANCE error until you top up. Being above zero is not enough. The error carries balance_micro and required_micro, so you can see how far short you are. Instances that are already running are handled by the automatic thresholds described in Auto-stop and auto-destroy.

From the API​

curl -X POST "$SUPERHEAT_API/v1/billing/checkout-session" \
-H "Authorization: Bearer $SUPERHEAT_TOKEN" \
-H "X-Org-Id: $ORG_ID" \
-H "Content-Type: application/json" \
-d '{"pack": "25"}'

pack is a pack's whole-dollar amount as GET /v1/billing/config lists it ("10", "25", "100") or "custom". With "custom", also send custom_amount_cents — an integer number of cents between 500 and 100000. The response carries a checkout_url; open it in a browser to complete payment.

curl "$SUPERHEAT_API/v1/billing/checkout-session/$SESSION_ID" \
-H "Authorization: Bearer $SUPERHEAT_TOKEN" \
-H "X-Org-Id: $ORG_ID"

That returns a status of pending, credited or failed, which is what the console's confirmation page polls.

API keys cannot buy credits

An shk_ organization API key acts as a member, so it is rejected on checkout like every other admin action. Creating a checkout session requires a signed-in admin session. See API keys.