Skip to content
Coritan Docs

Change an instance's plan or cancel it

Move an instance to another billing period, see what the switch costs first, get a different size, or cancel the instance.

View as Markdown

An instance's Billing tab shows its plan and what it costs. On this tab you move an instance that has a plan price to another billing period, such as from monthly to quarterly, or cancel it.

An instance you order on your own account is billed by what it uses, so it has no plan price and no billing period to change (How Cloud Compute is billed). Its tab opens with a Cost card, and the tab does not offer Change plan…. The API answers a plan change with This service is billed by what it uses, so it has no plan price to change. Cancelling works for every instance. An instance that keeps a plan price shows a Billing by use card with Switch to usage billing….

The size you ordered sets the instance's vCPU, memory, disk and monthly traffic allowance, and it stays with the instance. Get a different size explains how to move to another one.

Change a service's plan and Cancel a service explain how plan changes and cancellations are billed for every product. This page covers what they do to an instance.

  • The service must be active. You cannot change the plan of a suspended instance until you pay the open invoice.
  • A plan change shuts the instance down and starts it again, even though its size stays the same. Choose a time when a short outage does no harm.

On an instance billed by use, the Cost card is the first card of the Billing tab. It shows:

This month so far
What the instance has cost this month, from its use of 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 instance's size with the CPU at 10% of its vCPUs, with every vCPU busy all month, with no CPU in use and with the instance stopped all month. A stopped instance pays for its disk only.
Server access
Active when your account has Server access, or Needed. A card under it says what Server access includes, which is data out each month, and See plans opens the plan page when you need it.

Under the figures, each rate says what it is a price for, and a line for each meter lists what the instance used this month, how much of it was included and what it cost. A line is missing until the instance has used that meter. When the instance is stopped, the card says it costs its disk only.

Check your cost and estimate a month

Section titled Check your cost and estimate a month

Under the Cost card, an instance billed by use has a Check your cost card. It shows This month so far for the instance and Whole account by month end, says when the instance is stopped and costs its disk only, and has two buttons:

Estimate a month
Opens the estimator for the instance's size. Change Hours a day it runs, CPU use and Data out a month to see what a month costs. Hide the estimate closes it. The same estimator is in the plan section of the Cloud Compute order, so you can try a size before you buy.
Query a charge…
Asks us about one hour of this instance's usage. It opens a support conversation that names the row (See your usage, budgets and credit activity).

POST /api/v1/billing/estimate prices the same scenario from the API, over the price book the order quote uses. It writes nothing:

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": "cloud_compute", "size": "rx-2", "hours_per_day": 24, "cpu_share": 0.1}]}'

The answer has each priced lines entry, the subtotal, the plan_cost of Server access when your account lacks it, the total and the notes that say what the estimate assumes. An unknown product, account, cycle or size answers 422 with the words it takes.

An instance that keeps a plan price shows a Billing by use card with Switch to usage billing…. Select it to open the Switch to usage billing page and read what the last 30 days would have cost both ways. The page shows the flat price now, the cost on usage billing and the difference. When we have not measured the instance for a month yet, it says We have not measured this instance for a month yet, so this assumes it ran all month. An instance billed by the month or longer moves when its paid period ends or Now, with the unused days credited. Choose it under When it moves, then select Switch and the instance's name to move it. The move is one way (Switch a service to usage billing explains the rules). The preview is POST /api/v1/billing/services/{id}/switch?preview=1.

  1. In the dashboard, go to Cloud Compute, open the instance and select the Billing tab.
  2. Read the Current plan card.
Product
The product you ordered.
Plan
The size and billing period the instance is on now, such as RX-2 (Monthly).
Price
What the plan costs for each billing period.
Status
The state of the service, such as Active or Suspended.
Next renewal
The date of the next invoice. An hourly instance shows Used this month instead: what it has cost so far this month.
Set up
When we created the instance.
Service ID
The number to quote when you contact support.

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

Once account plans open on your account, the Console tab also shows the plan, its price and the add-ons on the instance, on the Plan and add-ons card. Add an add-on there, or open the order page of a floating IP or a DDoS Shield profile for the instance (Read the rest of the tab).

These steps are for an instance that keeps a plan price: one you ordered before usage billing.

  1. On the Billing tab, select Change plan… on the Current plan card. A Change plan page opens.
  2. In New plan, choose the plan you want. The cards are the other billing periods of the instance's size, such as RX-2 (Quarterly), 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 period 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.

When the new plan applies, we shut the instance down and start it again. An instance that was stopped starts too.

You cannot change the size of an existing instance. The New plan list offers only the billing periods of the size you ordered. To move to more or fewer vCPUs, more memory, a larger disk or a larger traffic allowance:

  1. Create an instance of the size you want.

  2. Copy your data to it, for example with rsync over SSH:

    Shell
    rsync -a /srv/ alex@203.0.113.20:/srv/
    
  3. Point your DNS records at the new instance's addresses: A records at its IPv4 address, and AAAA records at its IPv6 address if it has one. Floating IPs that you ordered on their own can move to the new instance instead, as Attach and detach a floating IP describes.

  4. Cancel the old instance, as below.

Important

The IPv4 address and the IPv6 /64 that came with the old instance cannot move with you. We release the IPv4 address when the old instance ends, even if you have attached it to the new one. The /64 cannot leave its instance at all. The new instance gets a /64 of its own where its location has IPv6.

Contact support if you need help with the move.

  1. On the Billing tab, select Cancel service… on the Cancel service card.

  2. Under When, choose when the instance ends:

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

    An hourly instance has no choice. It ends at once, and billing stops at the hour.

  3. Type cancel and select Cancel service.

An instance that ends at the end of its term keeps running until then. Its card on the Cloud Compute list says "This instance ends on" and the date, with Open Billing, which opens this tab. The note does not count under Needs attention (Notes are not problems).

Warning

The dialog also offers Take a snapshot first. It keeps nothing for an instance. The instance's snapshots are stored on its disk, and we delete its backups with it. Copy anything you need off the instance before you cancel.

When the instance ends, we delete:

  • the instance and its disk, with every snapshot on it
  • every backup of the instance
  • the IPv4 address that came with the instance, wherever it is attached, which goes back to our pool
  • the instance's IPv6 /64, which goes back to our pool, and every reverse DNS name in it
  • the instance's tags

Other floating IPs you attached to the instance are detached and stay on your account. We keep billing them until you cancel them. DNS records and web proxies that point at the instance also stay, so delete them once the instance has gone.

After a plan change, the Current plan card shows the new plan and the Activity table lists the change. The instance runs again once it has restarted.

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

No other plan to switch to in place of Change plan…
The instance's size has no other billing period on offer. Keep the plan, or move to another size as Get a different size describes.
Could not check that the host can take the new plan. Try again in a moment.
The check the dashboard runs before a plan change did not get an answer. Select Apply change again. If the message stays, contact support.
Service is not active
The instance is suspended, or its service has ended. Pay the open invoice to lift a suspension, then change the plan.
This service is billed by what it uses, so it has no plan price to change.
The instance is billed by use. It has no billing period to change, so keep it as it is, or move to another size as Get a different size describes.
Pay the upgrade invoice to apply the plan change
Your credit balance did not cover the switch. Pay the invoice. The plan applies when it is paid.
The instance is stopped after a plan change
The restart did not finish. Select Start in the instance header. If it does not start, contact support.
Cancellation scheduled
You asked for the instance to end at the end of its term. To keep it, contact support before the date shown.
Suspended
We suspended the instance, usually for an unpaid invoice. The alert gives the reason. Pay the open invoice to restore it.

A plan change goes through the services API, which accepts the instance's UUID as the service reference. An instance billed by use answers upgrade-preview and change-plan with 409 and the code usage_billed. Read the service to find its product_id and pricing_id, then read the product. Its pricing list holds one row for each billing period, and each row's id is a plan you can move to.

Shell
curl -s https://api.coritan.com/api/v1/services/$INSTANCE_UUID \
  -H "Authorization: Bearer $CORITAN_TOKEN"

curl -s https://api.coritan.com/api/v1/products/$PRODUCT_ID \
  -H "Authorization: Bearer $CORITAN_TOKEN"

Preview the cost, then change the plan:

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

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

The response's status is applied when the new plan applies now. It is payment_required when the switch waits for its invoice, whose number is in invoice_id. A plan from another product answers 400 with New pricing must belong to the same product or Plan changes must stay within the same hardware tier. The change also answers 400 with Service is not active or Already on this plan, and 404 with Pricing tier not found.

Before it changes the plan, the dashboard sends the new plan's vCPU, memory and disk to resize-preview. A field you leave out keeps its current value.

Shell
curl -s -X POST https://api.coritan.com/api/v1/client/vps/$INSTANCE_UUID/resize-preview \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"cpu_cores": 2, "memory_mb": 2048, "disk_gb": 40}'
JSON
{
  "current": {"cpu_cores": 2, "memory_mb": 2048, "disk_gb": 40},
  "requested": {"cpu_cores": 2, "memory_mb": 2048, "disk_gb": 40},
  "hotplug_eligible": true,
  "requires_stop": false
}

hotplug_eligible is true when the disk stays the same, vCPU and memory do not shrink, and the instance is running. requires_stop is its opposite. A plan change restarts the instance whatever they say. A disk_gb smaller than the instance's disk answers 400 with Disk can only grow.

To cancel, send immediate as true to end the instance now, or false (the default) to end it at the end of its term. reason is optional. keep_snapshot keeps nothing for an instance, and the response's snapshot_taken is always false.

Shell
curl -s -X POST https://api.coritan.com/api/v1/services/$INSTANCE_UUID/cancel \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"immediate": false, "reason": "Moved to a larger instance"}'

The response gives the new status and the termination_date. A second request answers 400 with Service already scheduled for end-of-term termination or Service already cancelled/terminated.

The Cloud Compute API reference and the services API reference list every field.

API operations on this page

MethodPathWhat it does
POST/api/v1/client/vps/{uuid}/resize-previewCapacity/mode preview for a plan change resize (billing via /services change-plan)
POST/api/v1/billing/estimateWhat a mix of products would cost a month