Manage customer services
Order a service for a customer, find any service your customers hold, and suspend or restore one.
In the dashboard
A customer service is one product a customer holds at one price. Services appear when customers order on your storefront, and you can also order one for a customer yourself, for example to replace a service or to set up a customer by hand. The Services tab lists every service your customers hold, and lets you suspend one and restore it.
Before you begin
Section titled Before you begin- Any member can see services. Ordering, suspending and unsuspending take the owner or admin role.
- To order, you need an
activecustomer and a product that is available, with at least one active plan. See Set up products and pricing.
Find a service
Section titled Find a service- In the dashboard, open the organization, then the Services tab.
- Type in Search hostname, customer or product, or choose a status in the list next to it. The search also matches the plan name, a tag and the service number.
- Select a service to open it.
The service page shows its Service ID, status, Billing cycle, price, next due date and Platform service: the Coritan service behind a linked product, or Not set up when there is none. The Customer card links to the customer with Open customer.
Service statuses
Section titled Service statuses| Status | Meaning |
|---|---|
pending |
Ordered. For a linked product, Coritan is creating the resource. |
active |
Running and renewing each billing cycle. |
suspended |
Stopped for the customer by you or for an unpaid invoice. |
cancelled |
Ended by a cancellation. |
terminated |
Ended and removed. |
Order a service for a customer
Section titled Order a service for a customer- On the Services tab, select Order for a customer.
- Choose the customer, then a Product and a Plan.
- Enter a Hostname if you want one. It is a label for the service, or the hostname for a server.
- Select Order service.
The dashboard confirms the order, and the service starts as pending. For a linked product, Coritan starts creating the resource straight away, on your Coritan account at Coritan's price. Ordering here does not charge the customer. Your webhooks receive service.ordered.
Suspend or unsuspend a service
Section titled Suspend or unsuspend a service- Select Suspend on the service's row, or on the service page.
- Confirm with Suspend service.
The service stops for the customer, and for a linked product Coritan suspends the resource behind it. Billing continues while it is suspended. The customer receives your organization's suspension email, and your webhooks receive service.suspended.
To restore it, select Unsuspend, then Unsuspend service. The service becomes active again, the resource starts again, and your webhooks receive service.unsuspended.
Troubleshooting
Section titled TroubleshootingCustomer not found or inactive- The customer is suspended or closed. Set their status back to active on the Customers tab first.
Product not found or inactiveorPricing plan not found or inactive- The product is not available, or the plan has been turned off. Check them on the Products tab.
Service limit reached (500/500)- Your organization holds as many services as Coritan allows it. Ask support to raise the limit.
Service is not activeorService is not suspended- Only an
activeservice can be suspended, and only asuspendedone unsuspended. 422witherrors- For a linked server or instance, the location or the configuration cannot be ordered, for example because the location has no capacity. The message names the problem.
Related
Section titled RelatedWith the API
Section titled With the APIList services, newest first. The query takes q, status_filter, customer_id, tag, limit, offset and with_total=true, as the customer list does.
curl "https://api.coritan.com/api/v1/orgs/acme/services?customer_id=812&status_filter=active" \
-H "Authorization: Bearer $CORITAN_TOKEN"
Order a service with customer_id, org_product_id and org_pricing_id, and optionally hostname (up to 100 characters) and config for a linked product that takes options:
curl -X POST https://api.coritan.com/api/v1/orgs/acme/services \
-H "Authorization: Bearer $CORITAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"customer_id": 812, "org_product_id": 5, "org_pricing_id": 11, "hostname": "survival-smp"}'
The answer is 201 with the service, including status, billing_cycle, amount, platform_service_id and next_due_date. Read one with GET /services/{service_id}, and suspend or restore it with POST /services/{service_id}/suspend and POST /services/{service_id}/unsuspend.
Tag services
Section titled Tag servicesTags are short labels your team searches by. Any member can read them; changing them takes Tier 3 support or higher. {source_type} is org_service for a customer service, and the tag API also takes vps and container_server.
GET /tags/vocabulary?source_type=org_servicelists every tag in use.GET /tags/sources/org_service/{service_id}reads a service's tags.POSTon the same path with{"tag": "vip"}adds one, andPUTwith{"tags": ["vip", "eu"]}replaces them all.DELETE /tags/sources/org_service/{service_id}/vipremoves one.
API operations on this page
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/orgs/{org_slug}/services | The org's services, newest first, each naming its product, plan and customer |
POST | /api/v1/orgs/{org_slug}/services | Order service |
GET | /api/v1/orgs/{org_slug}/services/{service_id} | Get service |
POST | /api/v1/orgs/{org_slug}/services/{service_id}/suspend | Suspend service |
POST | /api/v1/orgs/{org_slug}/services/{service_id}/unsuspend | Unsuspend service |
GET | /api/v1/orgs/{org_slug}/tags/vocabulary | List org tag vocabulary |
GET | /api/v1/orgs/{org_slug}/tags/sources/{source_type}/{source_id} | Get org resource tags |
POST | /api/v1/orgs/{org_slug}/tags/sources/{source_type}/{source_id} | Add org resource tag |
PUT | /api/v1/orgs/{org_slug}/tags/sources/{source_type}/{source_id} | Replace org resource tags |
DELETE | /api/v1/orgs/{org_slug}/tags/sources/{source_type}/{source_id}/{tag} | Remove org resource tag |