Buy credits
View MarkdownNodus is prepaid. You buy credits, and paid work draws on them through a funded hold placed before it starts.
You pay on a Stripe-hosted page, so Nodus never sees your card number. Every purchase is a TopUp object that you
can list and follow until the credit is on your balance.
Buy from the console
Section titled “Buy from the console”Open Usage & billing, choose Add credits, and pick $10, $20, $50, $100 or a custom amount. The console sends you to Stripe Checkout and brings you back to the billing page, which shows the top-up until it is paid.
Buy from the CLI
Section titled “Buy from the CLI”nodus billing top-up 20The CLI opens the payment page in your browser, waits until the payment is credited and prints your new balance.
| Flag | Does |
|---|---|
--save-card |
Saves the card for auto-recharge |
--no-open |
Prints the payment link instead of opening a browser, for a remote shell |
--no-wait |
Returns as soon as the payment link exists |
Buy through the API
Section titled “Buy through the API”A top-up is an ordinary resource. Create it, then open its status.checkoutURL, which appears within about a
second:
apiVersion: nodus.dev/v1kind: TopUpmetadata: name: october-creditsspec: amountUSD: "50.00" savePaymentMethod: false # true also saves the card for auto-rechargenodus apply -f topup.yamlnodus get topup october-credits -o yamlThe REST path is /apis/nodus.dev/v1/topups. By default Checkout returns to the console billing page; set
spec.successURL and spec.cancelURL to return somewhere else on the console, or to an http://127.0.0.1
address for a local tool. A top-up cannot be edited or deleted; an unpaid one expires by itself.
Limits
Section titled “Limits”| Limit | Value |
|---|---|
| Amount of one top-up | $5.00 to $1,000.00, in whole cents |
| Top-ups per org per day | $5,000 in total, per UTC day |
| Payment page | Payable for 1 hour after it is created |
An amount outside the range is refused with 422 Invalid before anything is charged.
Follow a top-up
Section titled “Follow a top-up”nodus get topups -o wide| Phase | Reason | Meaning |
|---|---|---|
Queued |
Nodus is creating the payment page | |
Running |
The payment page is open and waiting for you | |
Running |
PaymentPending |
You paid with a method that confirms later, such as a bank debit |
Succeeded |
Paid and credited; status.creditedUSD is on your balance and status.receiptURL links the receipt |
|
Failed |
Expired |
Nobody paid within the hour; nothing was charged |
Failed |
PaymentFailed |
The payment did not complete; nothing was credited |
A declined card does not fail the top-up: the payment page stays open so you can try another card. When a payment fails after you submit it, such as a bank debit that does not clear, Nodus emails your billing email.
When the credit arrives
Section titled “When the credit arrives”Nodus credits each payment once, as soon as Stripe confirms it, which usually takes a few seconds. If a confirmation from Stripe is delayed or lost, Nodus asks Stripe about the payment itself within the hour and again in a nightly check, so a paid top-up is always credited, and never twice.
If your org owes arrears, the top-up pays them first and the rest goes to your balance. Work that stopped because money ran out resumes by itself; see When money runs out.
Stripe emails a receipt for every paid top-up to your billing email. See Receipts and invoices.
The Indra plan
Section titled “The Indra plan”The Indra plan costs $20 a month. Each paid month adds a $20 credit that only Indra (nodus/indra) requests can
spend, at list price. Indra requests use that credit before your other credits, and everything
else draws on your regular balance. Unused plan credit expires when the month it belongs to ends; it does not
carry over.
Start the plan by opening an Indra plan checkout session (type ComposerSubscription) and paying on the page it returns:
curl -X POST "https://api.nodus-compute.ai/apis/nodus.dev/v1/billingaccounts/default/sessions" \ -H "Authorization: Bearer $NODUS_TOKEN" -H "Idempotency-Key: $(uuidgen)" \ -d '{"type": "ComposerSubscription"}'The response is {url, expirationTime}. An org can have one Indra plan; a second request while the plan is
active is refused with 409 Conflict.
- Renewal. Stripe charges the card each month and emails the invoice. A new month’s credit is added only once its invoice is paid; while a renewal payment is failing, Stripe retries it and Indra requests draw on your regular credits.
- Cancel. Open the billing portal with
nodus billing portaland cancel the plan there. It ends at the end of the paid month: that month’s credit stays usable until then, and nothing further is charged or added.