---
title: 'API - Creating a service | Zomro'
description: 'This instruction describes the method of activating the service using a promo code and paying for the service from the personal account.'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a54%40server-panel.net/2024/06/04/screenshot-from-2024-06-04-10-25-16_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/)
  * [Useful articles](https://zomro.com/blog/articles/)
  * API - Creating a service 



# API - Creating a service

24-05-2024

When ordering a service on the Zomro platform, it is necessary to follow several important steps: adding the service to the cart, activating a promo code (if available), and directly purchasing the service. These steps allow for effective use of the promo code functionality during the order. To place an order, it is necessary to pass certain parameters of the service, the details of which are presented below.  
  
The process of creating an order consists of the following stages:

  * Adding the service to the cart
  * Activating the promo code
  * Purchasing the service from the cart



Using these specific stages of purchase allows for the use of a promo code during the order.  
  
To create an order, you need to pass the parameters of the service that interest us. How to obtain the available parameters is described [here](https://zomro.com/blog/articles/464-api-obtaining-information-about-available-tariffs-and-their-parameters). 

## Request structure for placing an order for the Cloud VPS service from Zomro:  


URL: 
    
    
    https://api.zomro.com/

Method: POST

Request body (Form-data):  


Parameter | Example value | Required parameter | Description of the value  
---|---|---|---  
func | v2.instances.order.param | Yes | Function for ordering the service  
auth | 21fc199...c43f71 | No | Session token. This is one of the authorization options. More details on other options are described [here](https://ispsystem.com/docs/b6c/developer-section/working-with-api/guide-to-ispsystem-software-api)  
out | json | No | In what format to expect a response from the API  
sok | ok | Yes | Confirmation of the operation  
order_period | -50 | Yes | For cloudvps services, daily billing is used. To purchase the service, use the value: -50, 1, 3, 6, 12.  
-50 - daily billing, 1 - ordering the service for 1 month, 3 - ordering for 3 months, and so on.  
licence_agreement | on | Yes | Corresponds to the agreement with the license for use  
pricelist | 6740 | Yes | ID of the tariff to be ordered. The tariff ID can be obtained from the function v2.instances.order.pricelist. More details on how to use it are described [here](https://zomro.com/rus/blog/articles/464-api-obtaining-information-about-available-tariffs-and-their-parameters)  
order_count | 1 | Yes | The number of services that can be ordered in one request  
force_use_new_cart | on | Yes | Adding the service to a new billmanager cart  
instances_ssh_keys | 490 | No | ID of the SSH key to be added to the server after the OS installation. Do not pass if the parameter use_ssh_key=off  
password | Mypassword1 | No | Access password to the server. In the case of Linux - password for the root user. In the case of Windows - password for the Administrator user. Do not pass if the parameter use_ssh_key=on.  
Also, the password must contain at least 1 uppercase English letter, 1 numeric character, and a minimum of 8 characters.   
servername | MyServer | No | Custom server name  
instances_os | 18d0ee2e-4d57-4f40-9b56-03c1773b5831 | Yes | UID of the operating system to be installed. The UID of the operating system can be obtained from the function v2.instances.order.pricelist. More details on how to use it are described [here](https://zomro.com/rus/blog/articles/464-api-obtaining-information-about-available-tariffs-and-their-parameters)  
use_ssh_key | off | No | Whether to use an SSH key or not. Can take values off or on.  
addon_xxx |  260 | No | Additional parameters of the service. Can be RAM, number of CPUs, disk size, traffic volume, type of IPv4 or IPv6. Available parameters depend on the tariff. To find out which options are available, you can refer to the example described [here](https://zomro.com/rus/blog/articles/464-api-obtaining-information-about-available-tariffs-and-their-parameters)  
datacenter |  13 | Yes | Datacenter number. To find out which options are available, you can refer to the example described [here](https://zomro.com/rus/blog/articles/464-api-obtaining-information-about-available-tariffs-and-their-parameters)  
backups_schedule | on | No | Creating a backup schedule at the time of creating a backup  
backups_schedule_name | MyBackup | Yes, if the value backups_schedule is used | Name of the backup creation schedule  
backups_schedule_rotation_days | 1,2,3,4,5,6,0 | Yes, if the value backups_schedule is used | On which days to create backups. The week starts on Sunday, which has ID - 0. Accordingly, Monday has the value 1. The other days of the week have corresponding values.  
backups_schedule_rotation_time | 04:20 | Yes, if the value backups_schedule is used | At what time to create a backup  
  
Example of ordering a service

For example, we will use the Cloud Essential tariff with the Linux Ubuntu 20.04 OS, a server only with IPv6, and using the root user password.

URL: 
    
    
    https://api.zomro.com/

Method: POST

Request body (Form-data):

Parameter | Value  
---|---  
func | v2.instances.order.param  
auth | 21fc199...c43f71  
out | json  
sok | ok  
order_period | -50  
licence_agreement | on  
pricelist |  6740  
order_count | 1  
password | MyPassword1  
servername | MyServer-1  
instances_os |  479c96f1-ccc6-47a2-952c-c9e3bbdc8d07  
use_ssh_key | off  
addon_6746 |  260  
force_use_new_cart | on  
datacenter | 13  
  
Here is an example of a request that can be executed from the console:
    
    
    curl --location 'https://api.zomro.com/' \
    --form 'func="v2.instances.order.param"' \
    --form 'auth="211a9ac6309a9f0c340bdebf"' \
    --form 'out="json"' \
    --form 'sok="ok"' \
    --form 'order_period="-50"' \
    --form 'licence_agreement="on"' \
    --form 'use_ssh_key="off"' \
    --form 'pricelist="6740"' \
    --form 'servername="MyServer-1"' \
    --form 'password="Mypassword1"' \
    --form 'instances_os="479c96f1-ccc6-47a2-952c-c9e3bbdc8d07"' \
    --form 'order_count="1"' \
    --form 'addon_6746="260"' \
    --form 'datacenter="13"' \
    --form 'force_use_new_cart="on"'

After executing the request, we need the data that is located in the following nesting:
    
    
    doc

Here are the values obtained as a result of executing the request:
    
    
    ...,
    
    "lineitem.id": {
        "$": "1818"
    },
    ...
    

This value "1818", which is the order number in the cart, is needed for further activation of the service. We will remember it for future use.

After executing this request, the existing product can also be seen in the cart.

![API - Creating a service - 1](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a54%40server-panel.net/2024/06/04/screenshot-from-2024-06-04-10-25-16_q50.jpg)  


The next step will be to activate the promo code, if one is present. This step is not mandatory, but if the client has a promo code, it would be great to have the opportunity to use it.

URL: 
    
    
    https://api.zomro.com/

Method: POST

Request body (Form-data):

Parameter | Example value | Required parameter | Description of the value  
---|---|---|---  
func | cart | Yes | Function name for working with the cart  
auth | 21fc199...c43f71 | No | Session token. This is one of the authorization options. More details on other options are described [here](https://ispsystem.com/docs/b6c/developer-section/working-with-api/guide-to-ispsystem-software-api)  
out | json | No | In what format to expect a response from the API  
sok | ok | Yes | Confirmation of the operation  
promocode | PROMO_2024 | Yes | The promo code that is planned to be used.   
clicked_button | apply_promocode | Yes | Confirmation of the promo code activation  
  
Here is an example of a request that can be executed from the console:
    
    
    curl --location 'https://api.zomro.com/' \
    --form 'out="json"' \
    --form 'auth="46ffb314c8d46ec1f2f1df16"' \
    --form 'func="cart"' \
    --form 'promocode="PROMO_2024"' \
    --form 'sok="ok"' \
    --form 'clicked_button="apply_promocode"'

After executing this request, the result of the promo code activation can be seen in the cart:

![API - Creating a service - 2](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a54%40server-panel.net/2024/06/04/image_l5RjZkX_q50.jpg)

In the image, it can be seen that the promo code _**PROMO_2024**_ has been successfully activated.   
PS: In reality, the promo code _**PROMO_2024**_ is not valid in your case; it was created solely for writing this instruction.

The next step will be to activate the service.

In case the promo code does not provide a 100% discount, it is necessary to additionally pay for the service from the personal account. 

Let's consider the situation where the promo code does not cover 100% of the service cost. The API request will look as follows:

URL: 
    
    
    https://api.zomro.com/

Method: POST

Request body (Form-data):

Parameter | Example value | Required parameter | Description of the value  
---|---|---|---  
func | cartorder.create.confirm | Yes | Function for working with the cart  
auth | 21fc199...c43f71 | No | Session token. This is one of the authorization options. More details on other options are described [here](https://ispsystem.com/docs/b6c/developer-section/working-with-api/guide-to-ispsystem-software-api)  
out | json | No | In what format to expect a response from the API  
sok | ok | Yes | Confirmation of the operation  
elid | 1818 | Yes | Order ID. This value is obtained when adding the service to the cart  
paymethod_id | 0 | Yes | Payment method ID. The value 0 is standard and corresponds to the method of paying for the order from the personal account  
  
Here is an example of a request that can be executed from the console:
    
    
    curl --location 'https://api.zomro.com/' \
    --form 'out="json"' \
    --form 'auth="cd63c7832f0ae5947c49ac06"' \
    --form 'func="cartorder.create.confirm"' \
    --form 'sok="ok"' \
    --form 'elid="1818"' \
    --form 'paymethod_id="0"'

After executing this request, the cart for this service should be empty, and in the general list of CloudVPS services, we see our service in the status "Activation in progress":

![API - Creating a service - 3](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/a54%40server-panel.net/2024/06/04/image_1aUdIvD_q50.jpg)

During the activation process of the service, there are no additional actions with the service. After the service is activated, we will have a list of available actions to manage the services, such as: Start, Stop, Delete, Resize, and others.  


We also recommend studying articles that may be useful for interacting with the [Cloud VPS](https://zomro.com/vps) products via the API:

  * [_API - Obtaining information about available tariffs and their parameters_](https://zomro.com/blog/articles/464-api-obtaining-information-about-available-tariffs-and-their-parameters)
  * [_API - Start & Stop Operation_](https://zomro.com/blog/articles/468-api-operation-start-and-stop)
  * [_API - Reboot Operation_](https://zomro.com/blog/articles/465-api-operation-reboot)
  * [_API - Rebuild Operation_](https://zomro.com/blog/articles/466-api-operation-rebuild)
  * [_API - Delete Operation_](https://zomro.com/blog/articles/467-api-operation-delete)
  * [_API - Interaction with Image_](https://zomro.com/blog/faq/487-api-interaction-with-image)
  * [_API - Interaction with Backup Schedule_](https://zomro.com/blog/faq/486-api-interaction-with-backup-schedule)
  * [_API - Interaction with Rescue_](https://zomro.com/blog/faq/485-api-interacting-with-rescue)
  * [_API - Interaction with Backup_](https://zomro.com/blog/faq/482-api-interaction-with-backup)
  * [_API - Interaction with Snapshots_](https://zomro.com/blog/faq/483-api-interacting-with-snapshots)
  * [_API - Interaction with Boot From ISO_](https://zomro.com/blog/faq/484-api-interacting-with-boot-from-iso)



Similar articles:

[Five Best Free Web Hosting Control Panels for Linux VPS](https://zomro.com/blog/articles/637-five-best-free-web-hosting-control-panels-for-vps-on-linux) [What is subdomain?](https://zomro.com/blog/articles/297-chto-takoe-subdomen) [How to create an adult-themed website: choosing a server, domain, and data protection](https://zomro.com/blog/articles/508-how-to-create-an-adult-website) [Why is it important to make backups?](https://zomro.com/blog/articles/210-pochemu-vazhno-delat-rezervnoe-kopirovanie) [Zomro - reliable adult hosting in the Netherlands](https://zomro.com/blog/articles/497-zomro-reliable-adult-hosting-in-the-netherlands)

[ Premium Cloud VPS from €7.95/mon ](/vps)
