Cosmoner Docs
Guides

Billing & Payments

Understand how billing works, what happens when payments fail, and how credits and refunds work when you remove resources.

How Billing Works

Cosmoner uses Stripe for subscription billing. Each project has a subscription that covers all provisioned resources — servers, apps, databases, object storage buckets, and container registries. You are billed monthly on the 25th of each month.

Pre-charging and Proration

When you deploy a new resource, you are charged immediately for the prorated amount from the deployment date to the next 25th. From then on, the full monthly price is billed on each billing cycle.

For example, if you deploy a $24/month app on the 10th, you would pay approximately $12 upfront (15 days of the 30-day cycle), and then $24 on the 25th for the next full month.

The prorated charge happens automatically against the project's payment method — there is no separate checkout step and no card entry when deploying. Any project member with write access can deploy; the charge always goes to the project's card, not the person clicking deploy.

The Project Payment Method

Each project has a single payment method that all of its resources are billed to. It is managed by the project's biller (see Members).

  • The biller adds and manages the card under Settings → Billing. This is the card every resource in the project is charged to.
  • Other members can deploy resources, but cannot see or manage the card. If the project has no card yet, a non-biller who tries to deploy is prompted to notify the biller (by email and in-app) to add one — they are never asked for their own card.

If you deploy as the biller and the project has no card yet, you add one in place and the deployment continues automatically.

Billing Email

By default, invoices and receipts go to the biller's account email. You can override this per project under Settings → Billing by setting a billing email — it then receives invoices and receipts sent by Stripe, as well as Cosmoner's own billing notifications (payment confirmations, payment failures, domain renewal invoices). A shared inbox or distribution list (for example [email protected]) works well if several people need these emails.

Clearing the billing email reverts delivery to the biller's account email. Changing the biller (see Members) also changes where billing emails go when no override is set.

Removing Resources and Credits

When you remove a resource (delete an app, server, database, or storage bucket), billing stops immediately, and the unused portion of the current billing period is credited back to you.

Credit on removal

Removing a resource generates a prorated credit for the unused days, which is added to your project's credit balance — this happens whether or not you still have other active resources. For example, if you delete a $24/month app halfway through the billing cycle, you receive a ~$12 credit.

By default, the credit balance is applied automatically to your upcoming invoices and payments. No action is required on your part.

Refunding the credit balance instead

If the project's biller would rather have the credit balance returned than applied to future invoices, they can request a refund to the original payment method(s) from the billing page (or as part of a biller transfer).

Refunds are issued minus non-recoverable payment-processing fees — our payment processor does not return its transaction fees on refunded charges, so the amount refunded is always less than the credit balance being refunded. Refunds typically take 5–10 business days to appear on your statement. See the Payment Policy for full details.

Cosmoner does not issue automatic refunds to a payment method under any circumstances, including when you remove your last active resource.

Payment Lifecycle

When an invoice is generated, Stripe attempts to charge your default payment method. If the charge succeeds, no action is needed. If it fails, the subscription enters a retry period.

Past Due

A subscription becomes past due when the initial payment attempt fails and Stripe begins retrying. During this state:

  • Servers are stopped.
  • Object storage buckets are suspended (reads and writes blocked, data preserved).
  • Your account is blocked — you cannot create or manage resources until the balance is settled.

Stripe retries the charge several times over the following days. If any retry succeeds, the subscription returns to active and your account is unblocked automatically.

Unpaid

If all retry attempts fail, the subscription moves to unpaid. This is a more severe state:

  • Servers are terminated and their data is lost.
  • Object storage buckets are suspended (data preserved, but access blocked).
  • Your account remains blocked.

At this point, automatic retries have stopped. You must take manual action to restore your account.

Resolving a Blocked Account

The project's biller resolves a blocked project:

  1. Update the project payment method — Under Settings → Billing, add or replace the card. Make sure it has sufficient funds. The biller-only endpoint is:

    POST /v1/projects/:projectId/billing/payment-methods
    {
      "paymentMethodId": "pm_..."
    }

    The card supplied here always becomes the project's default. Adding a replacement is how you swap a declined card.

  2. Settle the outstanding balance — Pay any open invoices from the project's billing dashboard.

  3. Wait for reactivation — Once the payment succeeds, your subscription returns to active. Cosmoner automatically:

    • Unblocks your account and restores access to the dashboard.
    • Reactivates suspended object storage buckets.
    • Note: terminated servers cannot be recovered — you will need to redeploy them.

Avoiding Payment Failures

  • Keep your default payment method up to date.
  • Monitor billing notifications — Cosmoner sends email alerts when payments fail.
  • Check your invoices regularly from the billing dashboard or API.
  • If you expect a large bill (e.g., adding multiple servers or upgrading tiers), confirm your payment method has sufficient limits.

Payment Methods

The biller manages the project's card via the dashboard or the project billing API. To add a card, first create a setup intent (which returns a client secret to confirm the card in the browser), then register the confirmed payment method:

ActionEndpoint
Start adding a cardPOST /v1/projects/:projectId/billing/setup-intent
List methodsGET /v1/projects/:projectId/billing/payment-methods
Add / replace cardPOST /v1/projects/:projectId/billing/payment-methods
Set defaultPATCH /v1/projects/:projectId/billing/payment-methods
Remove a methodDELETE /v1/projects/:projectId/billing/payment-methods

All of these endpoints are restricted to the project's biller (the pending biller of an in-flight transfer may also add a card while accepting). You cannot remove the default card while the project has an active subscription — add a replacement first.

The older account-level payment-method endpoints (/v1/stripe/payment-methods) are deprecated: resource billing now runs entirely on the project card, so cards are no longer collected at signup.

On this page