Live ordering: no test environmentEDIS Global does not provide a sandbox or test environment. Submitting a valid order to POST /kvm/v2/add/order creates a real VPS order and invoice.If account credit is applied and covers the invoice, provisioning can begin automatically.Setting "applycredit": false prevents account credit from being used for that order. It does not prevent the order from being created or make the request a test.Requests that retrieve plans, locations, or account balances do not place orders.
Before you automate
Keep account credentials and session values in your server-side integration; do not expose them to subscribers or browser code. See API access and Management API authentication.
From order to a ready VPS
- Fetch current locations with
POST /kvm/v2/get/locations, check out_of_stock, then retrieve the available products. Availability is not a reservation.
- Submit the order once and retain the returned
orderid, serviceids and invoiceid. Order creation, payment and provisioning are separate stages; invoicepaid: false alone does not mean the order failed.
- After provisioning starts, use a returned service ID with
POST /kvm/v2/get/kvmid. The response field is kvmid; obtaining it does not mean OS installation has completed.
- Allow for Linux installation, normally another 3–5 minutes after provisioning, then verify OS and application readiness. Configure a standard image over SSH, or supply
cloudinit_user_data through the Management API’s set/reinstall operation with a supported image. Custom Cloud-Init user data is not supported in the initial order.
A timeout or HTTP 500 can leave the order outcome unknown. Do not automatically submit the order again. Reconcile orders, invoices and services using any returned identifiers, and contact support if the outcome remains unclear. A single service-list response without the VPS is not proof that no order was created.
For a practical VPN workflow, see Deploying a VPN endpoint.
Simple guide
Developer version
Full example
Let’s keep this simple
If you want to order a VPS using the EDIS Global API, think of it like this:👉 You don’t start by ordering
👉 You first collect all the pieces you needOnly after that, you send one final request.
The basic idea
Imagine ordering a VPS like ordering food:You need to decide:
- where (location)
- what (plan)
- how often you pay (billing cycle)
- how you pay (payment method)
- extras (RAM, IPs, etc.)
The API works exactly the same way.
Step-by-step overview
Login
Use your EDIS Global email + password (same as Client Portal)
Get available options
Ask the API:
- what billing cycles exist
- what payment methods exist
- what locations exist
Pick a location
Select where to deploy your VPS
Get plans for that location
This gives you:
- product IDs (pid)
- OS IDs
- addon IDs
Build your order
Put everything together into one JSON request
Send the order
Call the order endpoint
Step 1: Get billing cycles
Just ask the API what billing cycles exist.You’ll get something like:👉 Pick one.
Step 2: Get payment methods
Example result:👉 Pick one.
Step 3: Get VPS locations
You’ll see something like:👉 Important:
- use the id
- ignore locations where
out_of_stock = true
Step 4: Get VPS plans (this is the important one)
Now you ask:👉 “What can I buy in this location?”Now you get everything:
- plan IDs →
pid
- OS IDs →
os
- addon IDs → RAM, IPs, etc.
Step 5: Select what you want
From that response, select:
- plan →
pid
- OS →
os
- optional:
- RAM
- CPU
- IPs
- disk 👉 Everything is just IDs.
Final step: Send the order
This sends a real VPS order. The example omits applycredit, so available account credit is applied automatically:
What happens next?
If everything is correct, you get:That means:✅ Order created
✅ Invoice createdOrder creation does not by itself confirm payment or provisioning. If available account credit covers the invoice, provisioning can begin automatically. If the invoice remains unpaid, complete payment using the selected payment method.
Key takeaway
👉 The API is simple once you understand this:
- Ask for options
- Pick IDs
- Send order
That’s it.
Pro tip
Always fetch locations and products dynamically.IDs can change, new locations can appear, stock can change, and new plans can appear.Available account credit is applied automatically when you omit applycredit or set it to true, regardless of the selected payment method. To place an order without using account credit, explicitly set "applycredit": false inside the order JSON.
If you get stuck
Think of it like this:👉 “What values do I still NOT have?”Then go back and call the endpoint that gives you that value.That’s the whole workflow.Order a VPS the right way
When ordering a VPS through the EDIS Global Order API, the most important step is not sending the final request first.👉 First collect all required values
👉 Then send one clean order requestThis approach avoids errors and ensures successful provisioning.This guide uses curl examples for clarity. The same workflow works with Python, PHP, JavaScript, Postman, or any HTTP client.
API workflow
Authenticate
Use your EDIS Global Client Portal email and password
Collect values
Retrieve billing cycles, payment methods, locations, products, and addon IDs
Build payload
Combine all selected values into one JSON structure
Submit order
Send the final request to the order endpoint
Important: Payment method behavior
The selected paymentmethod defines how the first invoice and all renewal invoices are issued.Available account credit is applied automatically when applycredit is omitted or true. Explicitly setting false prevents account credit from being applied to this order. If applied credit covers the invoice, provisioning can begin automatically.
The optional applycredit field belongs inside the order JSON:applycredit controls credit use for this order only. It does not change how credit is applied to future renewal invoices. To disable automatic credit application during scheduled invoice creation, contact support about the account-level billing arrangement. To opt out of using account credit, add this field to your order JSON. Use the JSON boolean false:This is a field example, not a complete order payload. Setting false does not make an order a test.
Try the API directly in the documentation
The documentation portal sends requests to the production API. There is no sandbox or test environment.You can execute live requests and switch between multiple programming languages such as cURL, Python, JavaScript, PHP, Go, Java, and Ruby.
Use discovery endpoints to inspect plans, locations, and other available options. Order, upgrade, and cancellation requests perform real actions on your account.Available endpoints
Final order endpoint
This endpoint creates a real VPS order and invoice. The example omits applycredit to use the default automatic credit behavior:
Example: Successful response
Example when available account credit covers the invoice:
Best practices
Always fetch locations, products, and addon IDs dynamically.Inventory, availability, and IDs can change at any time.
Before submitting an order, verify:
- location is not out of stock
- product exists in that location
- OS is valid for that product
- addon IDs belong to the same product response
Summary
To order a VPS:
- get billing cycles
- get payment methods
- get locations
- get products
- collect IDs
- submit order
👉 Collect first. Order last.Full example (end-to-end)
Order one KVM SMART in Schiphol-Rijk (Amsterdam), Netherlands, with Debian 13 (Trixie) 64Bit, monthly billing and Credit Card payment. The base configuration is 1 GB RAM, 1 vCPU, 15 GB disk and 1 TB traffic, with no paid upgrades.The location, product, OS, no-upgrade options and payment-method values below were verified through read-only discovery calls on 6 October 2026. The final order request was not executed during verification. Re-fetch the options before ordering: IDs, prices and availability can change.
Replace YOUR_EMAIL and YOUR_PASSWORD with your Client Portal credentials locally. All credentials shown here are placeholders. Use --data-urlencode so characters such as + in email addresses and & in passwords are encoded correctly.Steps 1–4 are read-only. Preparing the payload in step 5 also makes no account changes. Only step 6 submits a real order.Step 1: Get billing cycle
Choose monthly from the returned billing cycles. If it is not available, stop and check the current options.Step 2: Get payment method
Verified response:Choose creditcard for Credit Card. Always use an identifier returned by this endpoint.Step 3: Get VPS locations
Response excerpt (other locations omitted):Use location_id=157 for the next lookup. Check that out_of_stock is false; this lookup does not reserve capacity.Step 4: Get VPS products in location
Response excerpt showing only the selected product, monthly product price and relevant options. Other products, billing cycles, OS choices and upgrade options are omitted; optional option-price details are also omitted.The OS mapping is products["KVM SMART"].addons["operating system"]["626"].id. Its description is Debian 13 (Trixie) 64Bit, so the order uses os: 626 alongside pid: 1502. This is an Order API option ID; do not substitute a Management API image ID.These add-on values are option IDs, not quantities. In particular, additional_ip: 8 selects “no additional IPs”; it does not request eight IP addresses. The response group additional drive boost maps to the order field additional_diskboost.EUR 4.99 is the listed monthly product price in this response, not an account-specific, tax-inclusive final quote. This lookup alone does not establish the total first charge, applicable tax or any other mandatory charges. Confirm the complete payable amount before submitting an order if you have a fixed spending limit.
Step 5: Build order payload
Prepare the following JSON using the values from your current discovery responses. One entry in item requests one VPS. hostname is your chosen server name.This example explicitly sets applycredit: false to prevent available account credit from being applied to this order. It does not make the request a test. Omitting this field or setting it to true enables automatic credit application, which can start provisioning if the credit covers the invoice.Step 6: Submit order
Live order: Run the command below only when you intend to buy this VPS. It creates a real order and invoice. There is no sandbox or dry-run mode. For read-only inspection, stop before this step.
Submit once and retain the response. If the request times out or returns an ambiguous error, do not automatically repeat it: an order may already exist. Contact support if you cannot reconcile the result.Successful response
Illustrative response for a created order whose invoice is still unpaid. The IDs below are fictional; use the IDs from your own response.status: "success" confirms order creation. invoicepaid: false means the invoice remains unpaid; it does not mean the order failed. Complete payment through the Client Portal as required. Order creation, payment, provisioning and OS installation are separate stages.After provisioning starts, use the returned service ID with Get KVM ID, then follow the order-to-ready workflow.See Order VPS for the endpoint reference and Get VPS plans for the product-to-OS mapping.