Skip to content
Coritan Docs

Manage a server's billing

See a server's plan, add ports, databases or backups, change the billing cycle of a flat plan, move a server to usage billing, or cancel the server.

View as Markdown

A server's Billing tab shows what its plan gives it, the add-ons on it, what it costs and when it renews. On this tab you add capacity, move a server with a flat price to another billing cycle, or cancel it.

A server you order on your own account is billed by what it uses, and How game servers and databases are billed explains that. This page covers what the tab does for every server, and a server that keeps a plan price, as every game server did: one ordered before usage billing, or ordered for an organization. Switch a service to usage billing moves it. A web service or a static site, with spend limits, is covered in How App Deployment is billed.

The plan you ordered sets the server's memory, disk and CPU, and they stay with the server. Get a bigger server explains how to move to a larger plan.

Add capacity to a service, Change a service's plan and Cancel a service explain how add-ons, plan changes and cancellations are billed for every product. This page covers what they do to a server.

  • Only the account that ordered the server sees its Billing tab. On a server someone shared with you, ask its owner to make the change. An organization's server is billed to the organization's owner, and for anyone else its tab says The owner of <organization> pays for this server (Who can change billing).
  • To add an add-on or change the plan, the service must be active and not set to end. Pay the open invoice first to lift a suspension (Failed payments and suspended services).
  1. In the dashboard, go to App Deployment and open the server.
  2. Select the Billing tab.

Selecting the server on the Subscriptions tab of Billing opens this tab too (Manage your subscriptions). When the server is suspended, so does Open Billing in the This deployment is suspended alert.

The Size and add-ons card shows what the server's plan gives it, and the add-ons on it.

Field What it means
Memory Memory in GB, with the same figure in MB below it.
Disk Disk space in GB, with MB below it.
CPU CPU limit as a percentage, where 100% is one core. The figure below it gives the number of cores.
Database slots How many databases you can create on the Databases tab, database add-ons included.
Backup slots How many backups the server can keep.
Port slots How many ports the server can hold, the primary one and port add-ons included.

No limit means the plan sets none.

Under the figures, Available lists the add-ons the server can take, each with what it adds and its price:

  • Extra Port adds one port slot for each one you add.
  • Extra Database adds one database slot for each one you add.
  • Automatic Server Backups takes a snapshot of the server every day and keeps the newest 7 (Automatic backups).
  1. Select Add… beside the add-on. A page opens with the add-on's name in its heading, such as Add extra ports.
  2. Choose the Quantity, if the page asks for one.
  3. Read the lines in Your order: the price for the rest of the billing period, Due today, and Then, what the add-on renews at. Enter a Promo code if you have one.
  4. Under Pay with, choose how to pay, then select the button, "Pay $X and add". Your account credit pays when it covers the price. When it does not, we add the missing amount to your credit with the method you chose, in the same step, and take the price from it.

The add-on renews with the server, and the first invoice charges the rest of the current billing period. The add-on applies once the payment is in, and the page returns you to the Billing tab by itself. Add an add-on in the dashboard describes each step.

An add-on your account plan includes shows Included in your plan in place of a price. The Ports and Databases tabs offer the same add-on in place when the server reaches its limit.

The add-ons on the server are under On this service.

  1. Select Remove beside the add-on.
  2. Select Remove in the dialog.

The add-on stays until the server renews, and nothing more is charged for it. Until then, its row shows the day it ends, such as Ends on 16 Oct 2026. Add capacity to a service explains how add-ons are billed.

On a server billed by use, the Cost card comes first on the Billing tab:

This month so far
What the server has cost this month, from its memory, CPU, disk and data out after the amounts Server access includes.
A typical month, Most a month, Idle, memory and disk and Stopped, disk only
What a month costs for the server's size with the CPU at 10% of its vCPUs, with every vCPU busy all month, with no CPU in use and with the server stopped all month. A stopped server costs its disk only.
Server access
Active when your account has Server access, or Needed, with See plans under it. Server access includes data out each month, and no memory, CPU or disk.

Under the figures, each rate says what it is a price for, and a line for each meter lists what the server used this month, how much of it was included and what it cost. The card says so when the server is stopped. The free server shows no cost card: it is never metered (Free servers).

A server that keeps a plan price shows a Billing by use card instead, with Switch to usage billing…. Select it to read what the last 30 days would have cost both ways, then move the server. The move is one way, and a monthly server moves when its paid period ends or Now, with the unused days credited (Switch a service to usage billing). POST /api/v1/billing/services/{id}/switch?preview=1 is the preview.

Check your cost and estimate a month

Section titled Check your cost and estimate a month

Under the Cost card, a server billed by use has a Check your cost card. It shows This month so far for the server and Whole account by month end, and says when the server is stopped and costs its disk only. See all usage opens the Usage tab of Billing (See your usage, budgets and credit activity). It has two buttons:

Estimate a month
Opens the estimator for the server's size. Change Hours a day it runs, CPU use and Data out a month to see what a month costs, and select Hide the estimate to close it. The plan section of the order has the same estimator, so you can try a size before you buy.
Query a charge…
Asks us about one hour of this server's usage. It opens a support conversation that names the row (Ask about a charge).

POST /api/v1/billing/estimate prices a scenario from the API with the same price book as the order quote, and writes nothing. Send a game_server component with its size, hours_per_day and cpu_share:

Shell
curl -X POST https://api.coritan.com/api/v1/billing/estimate \
  -H "Authorization: Bearer $CORITAN_TOKEN" -H "Content-Type: application/json" \
  -d '{"components": [{"product": "game_server", "size": "cx4", "hours_per_day": 3, "cpu_share": 0.25}]}'

A server billed by use can sleep when nobody is on it. While it sleeps, it costs its disk only, so a server that is busy a few hours a day costs much less. You turn it on, and you choose how long the server waits.

  1. Open the server's Billing tab. Only the account that owns the server sees the card. A server that already sleeps when empty shows the same card on its Console tab, under the sleep banner.
  2. On the Sleep when empty card, turn on the switch.
  3. Under Sleep after nobody has been on for, choose how long the server waits with nobody on it, from 5 minutes to 24 hours. We start with 10 minutes.
  4. Select Save. Nothing changes until you do. If the card cannot load, it says Could not load this setting and offers Try again.

When nobody has been on the server for that time, we stop it. The next player who joins its join address starts it again, or you can select Wake server on the Console tab. We start it when its host has room, and the Console tab says when it is waiting for room. Turn the switch off and the server stays up until you stop it.

A server that sleeps because you chose it is still a paid server: the free plan's limits do not apply to it, and its start does not wait behind free servers. The free server always sleeps, and a server that keeps a plan price has no switch, because its price does not change with use.

The Current plan card, under Size and add-ons, shows the server's service:

Product
The product you ordered.
Plan
The plan the server is on now, with its billing cycle.
Price
What the plan costs for each billing cycle.
Status
The state of the service, such as Active or Suspended.
Next renewal
The date of the next invoice. A server billed by the hour shows Used this month instead: what it has cost so far this month.
Set up
When we set the server up.
Service ID
The number to quote when you contact support.

The Activity table under the card lists setup, renewals, plan changes and cancellations, with who made each one.

Note

A server billed by use has no plan price to change, so its tab does not offer Change plan…, and the API answers a plan change with This service is billed by what it uses, so it has no plan price to change. The steps below are for a server that keeps a plan price.

  1. On the Current plan card, select Change plan…. A Change plan page opens.
  2. In New plan, choose the plan you want. The cards are the other billing cycles of the server's plan, each with its price.
  3. Read What it costs today. It fills in as soon as you choose a plan, with no button to press. It shows how many days are left in this billing cycle and what the switch costs today:
    • Credit for unused time is the value of the days left on your current plan.
    • Charge for the new plan is the price of the new plan for the same days.
    • Due now is the difference.
    • When you move to a cheaper plan, Credit you receive is the credit we give you.
  4. Select Apply change, or "Pay $X and change plan" when your credit does not cover Due today. You land back on the Billing tab.

If the switch needs a payment, we take it from your credit balance first. When your balance does not cover all of it, the dashboard shows Pay the upgrade invoice to apply the plan change. Pay the invoice, and the new plan applies once it is paid.

You cannot change the size of an existing server. The New plan list offers only the billing cycles of the plan you ordered. To move to more memory, disk or CPU:

  1. Take a snapshot of the server.
  2. Order a server on a larger plan, and start it from that snapshot.
  3. Give your players the new server's address. It has an address and a join address of its own.
  4. Cancel the old server, as below.
  1. On the Cancel service card, select Cancel service….

  2. Under When, choose when the server ends:

    • At the end of the current term keeps it running until the paid period ends. The dialog shows the date.
    • Immediately deletes it now. We do not refund the unused time.

    A server billed by the hour has no choice. It ends at once, and billing stops at the hour.

  3. Leave Take a snapshot first ticked to keep a snapshot of the server, or clear it to keep nothing.

  4. Type cancel and select Cancel service.

Caution

When the server ends, we delete it and its files, and its add-ons end with it. Only a snapshot you chose to keep stays, under Snapshots. Copy anything else you need before you cancel.

We take the snapshot at the moment you cancel, and name it Saved before cancellation with the date. Floating IPs, DNS records and proxies that point at the server stay on your account (What ends with the service).

After you add an add-on, it appears under On this service and the limit it raises goes up. After a plan change, the Current plan card shows the new plan and the Activity table lists the change.

After you cancel at the end of the term, the tab shows Cancellation scheduled with the date the server ends. The server keeps running until then. After an immediate cancellation, we delete the server.

The server has no Billing tab
Only the account that ordered the server sees it. Opened from a link, the tab says Only the owner sees this server's billing. Ask the server's owner.
This server has no billing to show
The server is not billed as a service, so it has no plan or invoice.
No other plan to switch to in place of Change plan…
The server's plan has no other billing cycle on offer. Keep the plan, or move to a bigger server as Get a bigger server describes.
Service is not active
The server is suspended, still being set up, or has ended. Pay the open invoice to lift a suspension, then try again.
This service is billed by what it uses, so it has no plan price to change.
The server is billed by use, so there is no billing cycle to change. Its cost follows what it uses (How game servers and databases are billed).
Could not price the change or Could not change the plan
The message under it gives the reason, such as Already on this plan. Choose another plan, or try again.
Could not load billing or Could not load the add-ons
The card did not load. Select Try again.
An add-on shows a reason and no Add…
The server cannot take that add-on now. The reason says why, such as a limit on how many one service can hold.
Cancellation scheduled
You asked for the server to end at the end of its term. To keep it, contact support before the date shown.

The services API accepts the server's UUID as the service reference, so each call below works with the UUID or with the service ID. GET /client/servers/{uuid} gives the service ID as service_id. A server on another account answers 403 Access denied, even one its owner shared with you.

The figures on the Size and add-ons card come from the server itself, in GET /client/servers/{uuid}:

Card field Response field
Memory, Disk, CPU memory_mb, disk_mb, cpu_percent
Database slots, Backup slots, Port slots database_limit, backup_limit, allocation_limit

Read the Current plan card with GET /services/{service_ref}, and the Activity table with GET /services/{service_ref}/events (Manage your subscriptions).

GET /services/{service_ref}/addons lists the add-ons on the server and the ones it can take. Add capacity to a service shows the answer, and how to add and remove one.

Preview a change of billing cycle, then apply it, as Change a service's plan describes. A server billed by use answers both calls with 409 and the code usage_billed:

Shell
curl -s "https://api.coritan.com/api/v1/services/$SERVER/upgrade-preview?new_pricing_id=42" \
  -H "Authorization: Bearer $CORITAN_TOKEN"

curl -s -X POST https://api.coritan.com/api/v1/services/$SERVER/change-plan \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"new_pricing_id": 42}'

To cancel, send immediate as true to end the server now, or false (the default) to end it at the end of its term. keep_snapshot, true by default, snapshots the server first (Cancel a service).

Shell
curl -s -X POST https://api.coritan.com/api/v1/services/$SERVER/cancel \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"immediate": false, "keep_snapshot": true}'

GET /api/v1/client/servers/{uuid}/sleep-setting reads the choice behind the Sleep when empty card, and PUT of the same address changes it. Only the account that owns the server may call either: anyone else answers 403.

Shell
curl -s -X PUT https://api.coritan.com/api/v1/client/servers/$SERVER/sleep-setting \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true, "idle_minutes": 30}'
enabled
true to sleep when empty, false to stay up. Required.
idle_minutes
How long the server waits with nobody on it, from 5 to 1440. Leave it out to keep the current wait, which is 10 until you set one. Outside the limits it answers 422 with the code idle_minutes.

Both calls answer the setting: available, enabled, idle_minutes, default_minutes, min_minutes, max_minutes and a reason when available is false. available is false for the free server (it always sleeps) and for a server on a flat price. Turning sleep on for either answers 409 with the code free_server or not_usage_billed. A server that sleeps because you chose it shows "policy": "idle" in sleep of GET /api/v1/client/servers/{uuid}/sleep, and POST /api/v1/client/servers/{uuid}/wake starts it.

API operations on this page

MethodPathWhat it does
GET/api/v1/services/{service_ref}Fetch a service by numeric id OR underlying resource UUID (instance/server/IP)
GET/api/v1/services/{service_ref}/addonsThe add-ons on one of your services, and the ones you can add
GET/api/v1/services/{service_ref}/upgrade-previewWhat changing the service to another price would cost now
POST/api/v1/services/{service_ref}/change-planChange the service to another price, prorated
POST/api/v1/services/{service_ref}/cancelCancel the service now or at the end of its term
GET/api/v1/client/servers/{uuid}/sleep-settingWhether this server sleeps when nobody is on it, and how long it waits
PUT/api/v1/client/servers/{uuid}/sleep-settingTurn sleeping when empty on or off for a server billed by what it uses
POST/api/v1/billing/estimateWhat a mix of products would cost a month