Skip to content
Coritan Docs

Change a service's plan

Move a service to another plan of the same product, such as another billing cycle, and see what the switch costs before you apply it.

View as Markdown

A service's plan is its price and how often you pay it. Each product in the catalogue has one plan for each billing cycle it sells, such as RX-2 (Monthly) and RX-2 (Annually), so changing plan moves a service to another billing cycle of the same product. The size, and everything that comes with it, stays the same. Coritan prices the switch for the whole days left in your current billing cycle.

To move to another size, order the new size and cancel the old service once you have moved across. Change an instance's plan or cancel it shows how for a Cloud Compute instance.

  1. Open the service: in the sidebar, select Services and then the service, or open it from its product's page. Select the Billing tab.
  2. On the Current plan card, select Change plan….
  3. In New plan, choose the plan you want. Each plan in the list shows its price.
  4. Select Preview. The preview says whether the switch is an Upgrade or a Downgrade, how many days are left in this cycle, and what the switch costs today (What the preview shows).
  5. Select Apply change. On a Cloud Compute instance, the dashboard first checks that the host can take the new plan.
Credit for unused time
The value of the whole days left on your current plan: its price divided by the days in the current billing cycle, times the days left. The day in progress counts as used.
Charge for the new plan
The new plan's price for the same days, divided over the days in the new plan's billing cycle.
Due now
The charge less the credit. It is below zero when the new plan costs less per day.
Credit you receive
Shown for a downgrade. The part of the difference that reaches your credit balance. By default, Coritan keeps back one day, so the preview shows the number of creditable days beside it.

Coritan bills a switch by comparing the two plans' prices for one billing cycle.

The new plan has a higher price
Coritan raises an invoice, due at once, and pays as much of it as your credit covers. The new plan applies when the invoice is paid. The invoice is for Due now when that is above zero. When Due now is zero or less, the invoice is for the new plan's full price, with a line such as Plan upgrade (first 30 days). That happens when you move to a longer billing cycle, which costs less per day, and when less than one day of the cycle is left. The preview shows such a switch as a Downgrade.
The new plan has the same or a lower price
The new plan applies at once. When Due now is below zero, the difference goes into your credit balance, less one day by default (Credit you receive). When Due now is above zero, which happens when you move to a shorter billing cycle, Coritan raises an invoice for it that you pay yourself.

Your renewal date stays the same. From that date, each renewal invoice is for the new plan's price, and the service renews on the new plan's billing cycle.

Warning

Moving to a longer billing cycle, or from hourly billing to a monthly or longer plan, charges the new plan's full price now and leaves the renewal date where it was. The renewal invoice that follows, on the old date, is for the full new price as well. For an hourly service, whose renewal date has already passed, it follows within a day. Contact support before you make such a switch.

A service you move to hourly billing is charged from your credit by the hour from then on (How hourly billing works). It has no monthly cap: Coritan sets a cap only on a service ordered on an hourly plan.

A message confirms the change: Plan changed. when the new plan applies at once, or Pay the upgrade invoice to apply the plan change when an invoice waits for payment. Pay the invoice on the Invoices tab under Billing, and the new plan applies as soon as it is paid.

Once the new plan applies, the Current plan card shows it and the Activity table lists the change.

Important

An invoice from a plan change counts as any other unpaid invoice. If you leave it unpaid, the service is suspended one day after the invoice date by default, and later deleted (Failed payments and suspended services). Pay it, or ask support to cancel it.

No other plan to switch to
The product has no other plan on sale, so Change plan… does not appear. To move to another size, order it as a new service.
Service is not active
The service is suspended, still being set up, or has ended. Pay its open invoice to lift a suspension, then try again.
Could not preview the change
The preview failed. The message under it gives the reason, such as Pricing tier not found when the plan is no longer on sale. Choose another plan.
Could not change the plan
The change failed. The message under it gives the reason. Already on this plan means the service is on that plan now. On a Cloud Compute instance, The host cannot apply this plan: followed by a reason means the host refused the size, and Could not check that the host can take the new plan. Try again in a moment. means the check did not get an answer.
The preview shows a credit, but applying raises an invoice
The new plan has a higher price for one billing cycle, so Coritan bills it as described under How the switch is billed.
You paid the invoice, but the plan did not change
The service was suspended when the payment arrived, so the plan stayed as it was. Contact support with the invoice number.

service_ref is the service ID, or the UUID of the instance, server or floating IP behind it. The plans a service can move to are the other entries in its product's pricing list: read product_id from GET /services/{service_ref}, then read the product with GET /products/{product_id}. Each entry's id is a new_pricing_id.

GET /services/{service_ref}/upgrade-preview takes the plan as the query parameter new_pricing_id:

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

This service is on a $4.99 monthly plan with 15 of 30 days left, and plan 42 is the same size at $13.47 a quarter:

JSON
{
  "credit_amount": 2.49,
  "charge_amount": 2.2,
  "net_amount": -0.29,
  "credit_estimate": 0.27,
  "creditable_days": 14,
  "days_remaining": 15,
  "days_in_cycle": 30,
  "change_type": "downgrade"
}

credit_amount, charge_amount and net_amount are Credit for unused time, Charge for the new plan and Due now. credit_estimate is the credit a downgrade pays out over creditable_days. change_type follows the sign of net_amount, so it can say downgrade for a switch that is billed as an upgrade, as it does here.

POST /services/{service_ref}/change-plan takes new_pricing_id in the body:

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

The quarterly plan has the higher price, so Coritan raised an invoice for its full price, $13.47, and the account's credit did not cover it:

JSON
{
  "change_type": "upgrade",
  "net_amount": -0.29,
  "credit_amount": 2.49,
  "charge_amount": 2.2,
  "credit_issued": 0.0,
  "days_remaining": 15,
  "invoice_id": 5120,
  "status": "payment_required",
  "message": "Pay the upgrade invoice to apply the plan change"
}

status is applied when the new plan applies now, and payment_required when it waits for the invoice in invoice_id. Read the amount owed from GET /billing/invoices/{invoice_id} and pay it as Pay an invoice describes. credit_issued is the credit a downgrade added to your balance, in US dollars.

While a plan-change invoice is open, asking again for the same plan returns that invoice. Asking for another plan with a higher price cancels it and raises a new one.

Status detail Cause
400 Service is not active The service is not active.
400 Already on this plan new_pricing_id is the current plan.
400 New pricing must belong to the same product The plan belongs to another product.
400 Plan changes must stay within the same hardware tier The plan belongs to a product on another hardware tier.
404 Pricing tier not found No plan has that ID.
404 Target product not found The plan's product no longer exists.

API operations on this page

MethodPathWhat it does
GET/api/v1/services/{service_ref}/upgrade-previewPreview plan change
POST/api/v1/services/{service_ref}/change-planChange plan