curl --request POST \
--url https://api.storiza.store/vps/order \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"datacenterId": "<string>",
"planId": "<string>",
"templateId": "<string>",
"duration": 48.5,
"method": "<string>",
"description": "<string>",
"templateImageSlug": "<string>",
"inputs": {},
"vmPassword": "<string>",
"sshKeyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberIds": [],
"currency": "USD",
"couponCode": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
datacenterId: '<string>',
planId: '<string>',
templateId: '<string>',
duration: 48.5,
method: '<string>',
description: '<string>',
templateImageSlug: '<string>',
inputs: {},
vmPassword: '<string>',
sshKeyId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
memberIds: [],
currency: 'USD',
couponCode: '<string>'
})
};
fetch('https://api.storiza.store/vps/order', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.storiza.store/vps/order"
payload = {
"name": "<string>",
"datacenterId": "<string>",
"planId": "<string>",
"templateId": "<string>",
"duration": 48.5,
"method": "<string>",
"description": "<string>",
"templateImageSlug": "<string>",
"inputs": {},
"vmPassword": "<string>",
"sshKeyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberIds": [],
"currency": "USD",
"couponCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"message": "VPS order created successfully",
"data": {
"id": 1042,
"type": "topup",
"status": "pending",
"direction": "deposit",
"method": "credit-cards",
"provider": "polar",
"currency": null,
"conversionRate": "1",
"subtotalAmount": "100",
"discountAmount": "10",
"netAmount": "90",
"taxAmount": "0",
"totalAmount": "90",
"user": {
"id": "00000000-0000-4000-8000-000000000000"
},
"coupon": null,
"supportsIframes": false,
"applePaySession": null,
"expiresAt": "2026-10-09T15:57:33.916Z"
}
}Order a VPS and pay for it externally
Raises a transaction for a new VPS and returns where to pay it. No server is created here — the whole request is stored on the transaction and built only once the payment settles, so an abandoned checkout leaves nothing behind.
This is the counterpart to POST /vps, which charges the account balance instead and provisions immediately.
Poll GET /payments/transactions/:id/status for settlement; once settled, provisionId on the transaction is the created VPS id.
Required API key permission: vps:write
curl --request POST \
--url https://api.storiza.store/vps/order \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"datacenterId": "<string>",
"planId": "<string>",
"templateId": "<string>",
"duration": 48.5,
"method": "<string>",
"description": "<string>",
"templateImageSlug": "<string>",
"inputs": {},
"vmPassword": "<string>",
"sshKeyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberIds": [],
"currency": "USD",
"couponCode": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
datacenterId: '<string>',
planId: '<string>',
templateId: '<string>',
duration: 48.5,
method: '<string>',
description: '<string>',
templateImageSlug: '<string>',
inputs: {},
vmPassword: '<string>',
sshKeyId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
memberIds: [],
currency: 'USD',
couponCode: '<string>'
})
};
fetch('https://api.storiza.store/vps/order', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.storiza.store/vps/order"
payload = {
"name": "<string>",
"datacenterId": "<string>",
"planId": "<string>",
"templateId": "<string>",
"duration": 48.5,
"method": "<string>",
"description": "<string>",
"templateImageSlug": "<string>",
"inputs": {},
"vmPassword": "<string>",
"sshKeyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberIds": [],
"currency": "USD",
"couponCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"message": "VPS order created successfully",
"data": {
"id": 1042,
"type": "topup",
"status": "pending",
"direction": "deposit",
"method": "credit-cards",
"provider": "polar",
"currency": null,
"conversionRate": "1",
"subtotalAmount": "100",
"discountAmount": "10",
"netAmount": "90",
"taxAmount": "0",
"totalAmount": "90",
"user": {
"id": "00000000-0000-4000-8000-000000000000"
},
"coupon": null,
"supportsIframes": false,
"applePaySession": null,
"expiresAt": "2026-10-09T15:57:33.916Z"
}
}Authorizations
An API key from the Storiza dashboard (API & Integrations), sent as Authorization: Bearer stz_….
Body
1 - 1001117 <= x <= 90Payment method slug, e.g. credit_cards. See GET /payments/methods
110001Show child attributes
Show child attributes
831 - 64Response
VPS order created successfully
true VPS order created successfully Schema for Transaction model
Show child attributes
Show child attributes
{
"id": 1042,
"type": "topup",
"status": "pending",
"direction": "deposit",
"method": "credit-cards",
"provider": "polar",
"currency": null,
"conversionRate": "1",
"subtotalAmount": "100",
"discountAmount": "10",
"netAmount": "90",
"taxAmount": "0",
"totalAmount": "90",
"user": {
"id": "00000000-0000-4000-8000-000000000000"
},
"coupon": null,
"supportsIframes": false,
"applePaySession": null,
"expiresAt": "2026-10-09T15:57:33.916Z"
}
Was this page helpful?