Platform Management API
POST /services/platforms/v1/domain-upgrade/checkout Auth

Domain Upgrade Checkout

Request Body

FieldTypeRequiredDescriptionExample
domain_choice string No Only block when the user has custom-domain access AND is trying to upgrade their plan without registering a new domain. Users who already have access can still buy or transfer additional domains — they just shouldn't be charged for the plan they already have. The plan price is excluded downstream when canUseCustomDomain is true (the checkout session is built with the domain line item only).
redirect_url string No

Responses

500
200
422
404
400
403
401
429
Internal server error
Headers
HeaderTypeDescriptionExample
X-RateLimit-Limit integer Maximum number of requests allowed per minute 60
X-RateLimit-Remaining integer Number of requests remaining in the current window 57
FieldTypeDescription
error boolean
message string
data mixed[]
Successful response
Headers
HeaderTypeDescriptionExample
X-RateLimit-Limit integer Maximum number of requests allowed per minute 60
X-RateLimit-Remaining integer Number of requests remaining in the current window 57
FieldTypeDescription
error boolean
message string
data object
data.checkout_url string
data.session_id string|null
data.subscription_id integer
data.requires_payment boolean
Validation error
FieldTypeDescription
message string Errors overview.
errors object A detailed description of each field that failed validation.
Resource not found
Headers
HeaderTypeDescriptionExample
X-RateLimit-Limit integer Maximum number of requests allowed per minute 60
X-RateLimit-Remaining integer Number of requests remaining in the current window 57
FieldTypeDescription
error boolean
message string
data mixed[]
Bad request
Headers
HeaderTypeDescriptionExample
X-RateLimit-Limit integer Maximum number of requests allowed per minute 60
X-RateLimit-Remaining integer Number of requests remaining in the current window 57
FieldTypeDescription
error boolean
message string
data mixed[]
Forbidden — insufficient permissions
Headers
HeaderTypeDescriptionExample
X-RateLimit-Limit integer Maximum number of requests allowed per minute 60
X-RateLimit-Remaining integer Number of requests remaining in the current window 57
FieldTypeDescription
error boolean
message string
data mixed[]
Unauthenticated
FieldTypeDescription
message string Error overview.
Too Many Requests — rate limit exceeded
Headers
HeaderTypeDescriptionExample
X-RateLimit-Limit integer Maximum number of requests allowed per minute 60
X-RateLimit-Remaining integer Number of requests remaining in the current window 57
Retry-After integer Seconds until the rate limit resets 60
FieldTypeDescription
error boolean
message string
Base URL
https://api.wemasy.nl/api
Authentication

Request Sample
cURL
JS
PHP
Python
curl -X POST "https://api.wemasy.nl/api/services/platforms/v1/domain-upgrade/checkout" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "domain_choice": "string",
    "redirect_url": "string"
}'
fetch('https://api.wemasy.nl/api/services/platforms/v1/domain-upgrade/checkout', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "domain_choice": "string",
    "redirect_url": "string"
})})
.then(r => r.json())
.then(data => console.log(data));
$response = Http::withToken('YOUR_API_TOKEN')
    ->accept('application/json')
    ->post('https://api.wemasy.nl/api/services/platforms/v1/domain-upgrade/checkout', {
    "domain_choice": "string",
    "redirect_url": "string"
});
$data = $response->json();
import requests

headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Accept": "application/json"
}
data = {
    "domain_choice": "string",
    "redirect_url": "string"
}
r = requests.post("https://api.wemasy.nl/api/services/platforms/v1/domain-upgrade/checkout", headers=headers, json=data)
print(r.json())
Response Example
{
    "error": false,
    "message": "string",
    "data": {
        "checkout_url": "string",
        "session_id": "string",
        "subscription_id": 0,
        "requires_payment": true
    }
}

Try It
Request Body Optional

Export