Aller au contenu principal

CLIENTXCMS New Gen API (1.0.2)

Download OpenAPI specification:Download

This is the API documentation for the CLIENTXCMS New Gen API.

Authentication

Authentication endpoints for client API

Login to client account

Authorizations:
sanctum
Request Body schema: application/json
required
email
required
string <email>
password
required
string <password>

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "token": "string",
  • "token_type": "Bearer",
  • "requires_2fa": true,
  • "customer": { }
}

Verify 2FA code after login

Authorizations:
None
Request Body schema: application/json
required
code
required
string

Responses

Request samples

Content type
application/json
{
  • "code": "123456"
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "token_type": "Bearer"
}

Register a new client account

Authorizations:
sanctum
Request Body schema: application/json
required
email
required
string <email>
password
required
string <password>
password_confirmation
required
string <password>
firstname
required
string
lastname
required
string
address
string
address2
string
city
string
zipcode
string
region
string
phone
string
country
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "[email protected]",
  • "password": "pa$$word",
  • "password_confirmation": "pa$$word",
  • "firstname": "string",
  • "lastname": "string",
  • "address": "string",
  • "address2": "string",
  • "city": "string",
  • "zipcode": "string",
  • "region": "string",
  • "phone": "string",
  • "country": "FR"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "token": "string",
  • "customer": { }
}

Request password reset link

Authorizations:
sanctum
Request Body schema: application/json
required
email
required
string <email>

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "string"
}

Reset password with token

Authorizations:
sanctum
Request Body schema: application/json
required
token
required
string
email
required
string <email>
password
required
string <password>
password_confirmation
required
string <password>

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "email": "[email protected]",
  • "password": "pa$$word",
  • "password_confirmation": "pa$$word"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Logout and revoke token

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Customer Invoices

Invoice endpoints for customer API

List customer's invoices

Authorizations:
None
query Parameters
filter
string

Filter by status (pending, paid, cancelled, refunded)

per_page
integer
Default: 10

Items per page

Responses

Get invoice details

Authorizations:
None
path Parameters
invoice
required
integer

Responses

Stream invoice PDF

Authorizations:
None
path Parameters
invoice
required
integer

Responses

Download invoice PDF

Authorizations:
None
path Parameters
invoice
required
integer

Responses

Pay an invoice

Authorizations:
None
path Parameters
invoice
required
integer
gateway
required
string

Responses

Response samples

Content type
application/json
{
  • "redirect_url": "string",
  • "message": "string"
}

Add balance to invoice

Authorizations:
None
path Parameters
invoice
required
integer
Request Body schema: application/json
required
amount
required
number

Responses

Request samples

Content type
application/json
{
  • "amount": 0
}

Customer Payment Methods

Payment method endpoints for client API

List customer's payment methods

Authorizations:
None

Responses

List available gateways that support payment methods

Authorizations:
None

Responses

Add a new payment method

Authorizations:
None
path Parameters
gateway
required
string

Responses

Set default payment method

Authorizations:
None
path Parameters
source
required
string

Responses

Delete a payment method

Authorizations:
None
path Parameters
source
required
string

Responses

Customer Profile

Profile management endpoints for customer API

Get current user profile

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update profile information

Authorizations:
None
Request Body schema: application/json
required
firstname
string
lastname
string
address
string
address2
string
city
string
zipcode
string
region
string
country
string
phone
string

Responses

Request samples

Content type
application/json
{
  • "firstname": "string",
  • "lastname": "string",
  • "address": "string",
  • "address2": "string",
  • "city": "string",
  • "zipcode": "string",
  • "region": "string",
  • "country": "string",
  • "phone": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": { }
}

Delete account

Authorizations:
None
Request Body schema: application/json
required
password
required
string

Responses

Request samples

Content type
application/json
{
  • "password": "string"
}

Change password

Authorizations:
None
Request Body schema: application/json
required
current_password
required
string
password
required
string
password_confirmation
required
string

Responses

Request samples

Content type
application/json
{
  • "current_password": "string",
  • "password": "string",
  • "password_confirmation": "string"
}

Enable or disable 2FA

Authorizations:
None
Request Body schema: application/json
required
code
required
string
secret
string

Required when enabling 2FA

Responses

Request samples

Content type
application/json
{
  • "code": "123456",
  • "secret": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "enabled": true,
  • "recovery_codes": [
    ]
}

Get 2FA setup information (secret and QR code)

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "secret": "string",
  • "qr_code": "string"
}

Get 2FA recovery codes

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "recovery_codes": [
    ]
}

Save security question

Authorizations:
None
Request Body schema: application/json
required
security_question_id
required
integer
security_answer
required
string
current_password
required
string

Responses

Request samples

Content type
application/json
{
  • "security_question_id": 0,
  • "security_answer": "string",
  • "current_password": "string"
}

Customer Services

Service endpoints for customer API

List customer's services

Authorizations:
None
query Parameters
status
string

Filter by status (active, suspended, cancelled, expired, pending)

per_page
integer
Default: 10

Items per page

Responses

Get service details

Authorizations:
None
path Parameters
service
required
integer

Responses

Customer Tickets

Support ticket endpoints for customer API

List customer's tickets

Authorizations:
None
query Parameters
filter
string

Filter by status (open, answered, customer_reply, closed)

per_page
integer
Default: 10

Items per page

Responses

Response samples

Content type
application/json
{ }

Create a new ticket

Authorizations:
None
Request Body schema: application/json
required
department_id
required
integer
subject
required
string
content
required
string
priority
required
string
Enum: "low" "medium" "high"
related_id
integer
related_type
string

Responses

Request samples

Content type
application/json
{
  • "department_id": 0,
  • "subject": "string",
  • "content": "string",
  • "priority": "low",
  • "related_id": 0,
  • "related_type": "string"
}

Response samples

Content type
application/json
{ }

List available departments

Authorizations:
None

Responses

Get ticket details

Authorizations:
None
path Parameters
ticket
required
integer

Responses

Response samples

Content type
application/json
{ }

Reply to a ticket

Authorizations:
None
path Parameters
ticket
required
integer
Request Body schema: application/json
required
content
required
string

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Close a ticket

Authorizations:
None
path Parameters
ticket
required
integer

Responses

Reopen a closed ticket

Authorizations:
None
path Parameters
ticket
required
integer

Responses

Download an attachment

Authorizations:
None
path Parameters
ticket
required
integer
attachment
required
integer

Responses

Products

API Endpoints for store products

List all pricings

Returns a paginated list of pricing entries with optional filtering and sorting.

Authorizations:
sanctum
query Parameters
per_page
integer
Default: 15

Number of results per page

filter[related_id]
integer

Filter by related ID

filter[related_type]
string

Filter by related type (e.g. product, config_option)

filter[currency]
string
Example: filter[currency]=EUR

Filter by currency

filter[monthly]
number <float>

Filter by monthly price ou can replace this with any other pricing field

sort[]
Array of strings
Example: sort[]=monthly

Sort fields (use - for descending)

Responses

Response samples

Content type
application/json
{
  • "related_id": 123,
  • "related_type": "product",
  • "currency": "USD",
  • "onetime": 99.99,
  • "monthly": 9.99,
  • "quarterly": 24.99,
  • "semiannually": 49.99,
  • "annually": 99.99,
  • "biennially": 199.99,
  • "triennially": 299.99,
  • "setup_onetime": 19.99,
  • "setup_monthly": 4.99,
  • "setup_quarterly": 9.99,
  • "setup_semiannually": 14.99,
  • "setup_annually": 29.99,
  • "setup_biennially": 49.99,
  • "setup_triennially": 69.99
}

Create a pricing

Creates a new pricing entry for a product or config option

Authorizations:
sanctum
Request Body schema: application/json
required
related_id
required
integer

ID of the related product/service

related_type
required
string

Type of the related entity (e.g. product, config_option)

currency
required
string

Currency code (ISO 4217)

onetime
number or null <float>
monthly
number or null <float>
quarterly
number or null <float>
semiannually
number or null <float>
annually
number or null <float>
biennially
number or null <float>
triennially
number or null <float>
setup_onetime
number or null <float>
setup_monthly
number or null <float>
setup_quarterly
number or null <float>
setup_semiannually
number or null <float>
setup_annually
number or null <float>
setup_biennially
number or null <float>
setup_triennially
number or null <float>

Responses

Request samples

Content type
application/json
{
  • "related_id": 123,
  • "related_type": "product",
  • "currency": "EUR",
  • "onetime": 99.99,
  • "monthly": 9.99,
  • "quarterly": 27.99,
  • "semiannually": 55.99,
  • "annually": 99.99,
  • "biennially": 189.99,
  • "triennially": 279.99,
  • "setup_onetime": 9.99,
  • "setup_monthly": 2.99,
  • "setup_quarterly": 5.99,
  • "setup_semiannually": 8.99,
  • "setup_annually": 12.99,
  • "setup_biennially": 22.99,
  • "setup_triennially": 32.99
}

Response samples

Content type
application/json
{
  • "related_id": 123,
  • "related_type": "product",
  • "currency": "USD",
  • "onetime": 99.99,
  • "monthly": 9.99,
  • "quarterly": 24.99,
  • "semiannually": 49.99,
  • "annually": 99.99,
  • "biennially": 199.99,
  • "triennially": 299.99,
  • "setup_onetime": 19.99,
  • "setup_monthly": 4.99,
  • "setup_quarterly": 9.99,
  • "setup_semiannually": 14.99,
  • "setup_annually": 29.99,
  • "setup_biennially": 49.99,
  • "setup_triennially": 69.99
}

Get a specific pricing

Returns the pricing identified by id

Authorizations:
sanctum
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "related_id": 123,
  • "related_type": "product",
  • "currency": "USD",
  • "onetime": 99.99,
  • "monthly": 9.99,
  • "quarterly": 24.99,
  • "semiannually": 49.99,
  • "annually": 99.99,
  • "biennially": 199.99,
  • "triennially": 299.99,
  • "setup_onetime": 19.99,
  • "setup_monthly": 4.99,
  • "setup_quarterly": 9.99,
  • "setup_semiannually": 14.99,
  • "setup_annually": 29.99,
  • "setup_biennially": 49.99,
  • "setup_triennially": 69.99
}

Update pricing

Updates an existing pricing record

Authorizations:
sanctum
path Parameters
id
required
integer
Request Body schema: application/json
required
related_id
required
integer

ID of the related product/service

related_type
required
string

Type of the related entity (e.g. product, config_option)

currency
required
string

Currency code (ISO 4217)

onetime
number or null <float>
monthly
number or null <float>
quarterly
number or null <float>
semiannually
number or null <float>
annually
number or null <float>
biennially
number or null <float>
triennially
number or null <float>
setup_onetime
number or null <float>
setup_monthly
number or null <float>
setup_quarterly
number or null <float>
setup_semiannually
number or null <float>
setup_annually
number or null <float>
setup_biennially
number or null <float>
setup_triennially
number or null <float>

Responses

Request samples

Content type
application/json
{
  • "related_id": 123,
  • "related_type": "product",
  • "currency": "EUR",
  • "onetime": 99.99,
  • "monthly": 9.99,
  • "quarterly": 27.99,
  • "semiannually": 55.99,
  • "annually": 99.99,
  • "biennially": 189.99,
  • "triennially": 279.99,
  • "setup_onetime": 9.99,
  • "setup_monthly": 2.99,
  • "setup_quarterly": 5.99,
  • "setup_semiannually": 8.99,
  • "setup_annually": 12.99,
  • "setup_biennially": 22.99,
  • "setup_triennially": 32.99
}

Response samples

Content type
application/json
{
  • "related_id": 123,
  • "related_type": "product",
  • "currency": "USD",
  • "onetime": 99.99,
  • "monthly": 9.99,
  • "quarterly": 24.99,
  • "semiannually": 49.99,
  • "annually": 99.99,
  • "biennially": 199.99,
  • "triennially": 299.99,
  • "setup_onetime": 19.99,
  • "setup_monthly": 4.99,
  • "setup_quarterly": 9.99,
  • "setup_semiannually": 14.99,
  • "setup_annually": 29.99,
  • "setup_biennially": 49.99,
  • "setup_triennially": 69.99
}

Delete a pricing

Deletes a pricing from the system

Authorizations:
sanctum
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "related_id": 123,
  • "related_type": "product",
  • "currency": "USD",
  • "onetime": 99.99,
  • "monthly": 9.99,
  • "quarterly": 24.99,
  • "semiannually": 49.99,
  • "annually": 99.99,
  • "biennially": 199.99,
  • "triennially": 299.99,
  • "setup_onetime": 19.99,
  • "setup_monthly": 4.99,
  • "setup_quarterly": 9.99,
  • "setup_semiannually": 14.99,
  • "setup_annually": 29.99,
  • "setup_biennially": 49.99,
  • "setup_triennially": 69.99
}

Get list of products

Returns list of products with optional filters, sorting, relations and pagination.

Authorizations:
sanctum
query Parameters
filter[id]
integer

Filter by product ID

filter[name]
string

Filter by product name

filter[status]
string
Enum: "active" "hidden" "unreferenced"

Filter by product status

filter[description]
string

Filter by description

filter[group_id]
integer

Filter by group ID

filter[stock]
integer

Filter by stock

filter[type]
string

Filter by product type

filter[pinned]
boolean

Filter by pinned status

sort
string
Enum: "id" "name" "status" "description" "sort_order" "group_id" "stock" "type" "pinned"

Sort field (e.g. sort=name or sort=-name for descending)

include
string
Example: include=metadata,pricing,group

Include relations (e.g. metadata, pricing, group)

per_page
integer
Default: 12

Number of items per page

Responses

Create a new product

Creates a new product and its pricing.

Authorizations:
sanctum
Request Body schema: application/json
required
name
required
string
description
string
status
required
string
Enum: "active" "hidden" "unreferenced"
group_id
required
integer
stock
required
integer
type
required
string
pinned
boolean
Array of objects (Shop pricing)

Array of pricing definitions for the product

image
string or null <binary>

Product image file (jpeg, png, jpg, gif, svg)

remove_image
string
Enum: "true" "false"

Flag to remove existing product image

Responses

Request samples

Content type
application/json
{
  • "name": "VPS SSD 2 vCPU",
  • "description": "High performance VPS with SSD storage",
  • "status": "active",
  • "group_id": 1,
  • "stock": 20,
  • "type": "vps",
  • "pinned": true,
  • "pricing": [
    ],
  • "image": "string",
  • "remove_image": "false"
}

Response samples

Content type
application/json
{
  • "id": "10",
  • "name": "Sample Item",
  • "status": "active",
  • "description": "This is a sample item description.",
  • "sort_order": 1,
  • "group_id": 123,
  • "stock": 50,
  • "type": "pterodactyl",
  • "pinned": true,
  • "image": "storage/products/sample.jpg"
}

Get product information

Returns product data

Authorizations:
sanctum
path Parameters
id
required
integer

product id

query Parameters
include
string
Example: include=metadata,pricing,group

Include relations (e.g. metadata, pricing, group)

Responses

Response samples

Content type
application/json
{
  • "id": "10",
  • "name": "Sample Item",
  • "status": "active",
  • "description": "This is a sample item description.",
  • "sort_order": 1,
  • "group_id": 123,
  • "stock": 50,
  • "type": "pterodactyl",
  • "pinned": true,
  • "image": "storage/products/sample.jpg"
}

Update product by ID

Updates product details including pricing and image.

Authorizations:
sanctum
path Parameters
id
required
integer

ID of the product to update

Request Body schema: application/json
required
name
required
string
description
string
status
required
string
Enum: "active" "hidden" "unreferenced"
group_id
required
integer
stock
required
integer
type
required
string
pinned
boolean
Array of objects (Shop pricing)

Array of pricing definitions for the product

image
string or null <binary>

Product image file (jpeg, png, jpg, gif, svg)

remove_image
string
Enum: "true" "false"

Flag to remove existing product image

Responses

Request samples

Content type
application/json
{
  • "name": "VPS SSD 2 vCPU",
  • "description": "High performance VPS with SSD storage",
  • "status": "active",
  • "group_id": 1,
  • "stock": 20,
  • "type": "vps",
  • "pinned": true,
  • "pricing": [
    ],
  • "image": "string",
  • "remove_image": "false"
}

Response samples

Content type
application/json
{
  • "id": "10",
  • "name": "Sample Item",
  • "status": "active",
  • "description": "This is a sample item description.",
  • "sort_order": 1,
  • "group_id": 123,
  • "stock": 50,
  • "type": "pterodactyl",
  • "pinned": true,
  • "image": "storage/products/sample.jpg"
}

Delete product by ID

Deletes the specified product.

Authorizations:
sanctum
path Parameters
id
required
integer

ID of the product to delete

Responses

Response samples

Content type
application/json
{
  • "id": "10",
  • "name": "Sample Item",
  • "status": "active",
  • "description": "This is a sample item description.",
  • "sort_order": 1,
  • "group_id": 123,
  • "stock": 50,
  • "type": "pterodactyl",
  • "pinned": true,
  • "image": "storage/products/sample.jpg"
}

Get product configuration

Returns the product configuration as JSON, including metadata and pricing.

Authorizations:
sanctum
path Parameters
id
required
integer

ID of the product

Responses

Update product configuration

Updates the product configuration.

Authorizations:
sanctum
path Parameters
id
required
integer

ID of the product

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{ }

Groups

API Endpoints for store groups

Get list of groups

Returns list of groups with optional filters, sorting and relations

Authorizations:
sanctum
query Parameters
filter[name]
string

Filter by name

filter[slug]
string

Filter by slug

sort
string

Sort by field, e.g. sort=name or sort=-name for descending

include
string
Example: include=products,groups

Include relations (products, groups, metadata)

per_page
integer
Default: 12

Number of results per page

Responses

Create a new group

Authorizations:
sanctum
Request Body schema: application/json
required
name
required
string <= 255 characters
description
required
string
status
required
string
Enum: "active" "hidden" "unreferenced"
slug
required
string <= 255 characters
sort_order
required
integer
pinned
boolean or null
image
string or null <binary>
parent_id
integer or null
use_image_as_background
boolean or null

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "active",
  • "slug": "string",
  • "sort_order": 0,
  • "pinned": true,
  • "image": "string",
  • "parent_id": 0,
  • "use_image_as_background": true
}

Get group information

Returns group data

Authorizations:
sanctum
path Parameters
id
required
integer

Group id

query Parameters
include
string
Example: include=products,groups

Include relations (products, groups, metadata)

Responses

Response samples

Content type
application/json
{
  • "id": "10",
  • "name": "Sample Item",
  • "slug": "sample-item",
  • "status": "active",
  • "description": "This is a sample item description.",
  • "sort_order": 1,
  • "group_id": 1,
  • "pinned": true,
  • "image": "groups/filename.jpg",
  • "parent_id": 1
}

Update an existing group

Authorizations:
sanctum
path Parameters
id
required
integer

Group ID

Request Body schema: application/json
required
name
string <= 255 characters
description
string <= 1000 characters
status
string
Enum: "active" "hidden" "unreferenced"
slug
string <= 255 characters
sort_order
integer
pinned
boolean or null
image
string or null <binary>
remove_image
string or null
Enum: "true" "false"
parent_id
integer or null
use_image_as_background
string or null
Enum: "true" "false"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "active",
  • "slug": "string",
  • "sort_order": 0,
  • "pinned": true,
  • "image": "string",
  • "remove_image": "true",
  • "parent_id": 0,
  • "use_image_as_background": "true"
}

Delete group information

Delete group data

Authorizations:
sanctum
path Parameters
id
required
integer

group id

Responses

Response samples

Content type
application/json
{
  • "id": "10",
  • "name": "Sample Item",
  • "slug": "sample-item",
  • "status": "active",
  • "description": "This is a sample item description.",
  • "sort_order": 1,
  • "group_id": 1,
  • "pinned": true,
  • "image": "groups/filename.jpg",
  • "parent_id": 1
}

Core

API Endpoints for core

get heath status

Return health status

Authorizations:
sanctum

Responses

get license

Return license

Authorizations:
sanctum

Responses

Services

API Endpoints for services

Get a list of services

Returns a list of services

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

page
integer
Default: 1

Page number

per_page
integer
Default: 10

Number of items per page

sort
string
Default: "created_at"

Sort order

filter
string

Filter services

include
string
Default: "customer,metadata,pricings,configoptions"

Related resources to include

Responses

Get service information

Returns service data

Authorizations:
sanctum
path Parameters
id
required
string

service id or uuid

Responses

Response samples

Content type
application/json
{
  • "customer_id": 123,
  • "uuid": "550e8400-e29b-41d4-a716-446655440000",
  • "name": "Service name",
  • "type": "proxmox",
  • "billing": "monthly",
  • "server_id": 1,
  • "product_id": 1,
  • "invoice_id": 123,
  • "status": "active",
  • "expires_at": "2021-01-01 00:00:00",
  • "suspended_at": "2021-01-01 00:00:00",
  • "cancelled_at": "2021-01-01 00:00:00",
  • "cancelled_reason": "Service cancelled",
  • "notes": "Service notes",
  • "delivery_errors": "Delivery errors",
  • "delivery_attempts": 1,
  • "renewals": 1,
  • "trial_ends_at": "2021-01-01 00:00:00",
  • "max_renewals": 1,
  • "data": {
    },
  • "currency": "USD",
  • "suspend_reason": "Service suspended"
}

Delete service information

Delete service data

Authorizations:
sanctum
path Parameters
id
required
string

service id or uuid

Responses

Response samples

Content type
application/json
{
  • "customer_id": 123,
  • "uuid": "550e8400-e29b-41d4-a716-446655440000",
  • "name": "Service name",
  • "type": "proxmox",
  • "billing": "monthly",
  • "server_id": 1,
  • "product_id": 1,
  • "invoice_id": 123,
  • "status": "active",
  • "expires_at": "2021-01-01 00:00:00",
  • "suspended_at": "2021-01-01 00:00:00",
  • "cancelled_at": "2021-01-01 00:00:00",
  • "cancelled_reason": "Service cancelled",
  • "notes": "Service notes",
  • "delivery_errors": "Delivery errors",
  • "delivery_attempts": 1,
  • "renewals": 1,
  • "trial_ends_at": "2021-01-01 00:00:00",
  • "max_renewals": 1,
  • "data": {
    },
  • "currency": "USD",
  • "suspend_reason": "Service suspended"
}

expire service

Returns service data and result

Authorizations:
sanctum
path Parameters
id
required
string

service id or uuid

Request Body schema: application/json
force
boolean

Responses

Request samples

Content type
application/json
{
  • "force": false
}

Response samples

Content type
application/json
{
  • "customer_id": 123,
  • "uuid": "550e8400-e29b-41d4-a716-446655440000",
  • "name": "Service name",
  • "type": "proxmox",
  • "billing": "monthly",
  • "server_id": 1,
  • "product_id": 1,
  • "invoice_id": 123,
  • "status": "active",
  • "expires_at": "2021-01-01 00:00:00",
  • "suspended_at": "2021-01-01 00:00:00",
  • "cancelled_at": "2021-01-01 00:00:00",
  • "cancelled_reason": "Service cancelled",
  • "notes": "Service notes",
  • "delivery_errors": "Delivery errors",
  • "delivery_attempts": 1,
  • "renewals": 1,
  • "trial_ends_at": "2021-01-01 00:00:00",
  • "max_renewals": 1,
  • "data": {
    },
  • "currency": "USD",
  • "suspend_reason": "Service suspended"
}

suspend service

Returns service data and result

Authorizations:
sanctum
path Parameters
id
required
string

service id or uuid

Request Body schema: application/json
reason
string
notify
boolean

Responses

Request samples

Content type
application/json
{
  • "reason": "unpaid",
  • "notify": false
}

Response samples

Content type
application/json
{
  • "customer_id": 123,
  • "uuid": "550e8400-e29b-41d4-a716-446655440000",
  • "name": "Service name",
  • "type": "proxmox",
  • "billing": "monthly",
  • "server_id": 1,
  • "product_id": 1,
  • "invoice_id": 123,
  • "status": "active",
  • "expires_at": "2021-01-01 00:00:00",
  • "suspended_at": "2021-01-01 00:00:00",
  • "cancelled_at": "2021-01-01 00:00:00",
  • "cancelled_reason": "Service cancelled",
  • "notes": "Service notes",
  • "delivery_errors": "Delivery errors",
  • "delivery_attempts": 1,
  • "renewals": 1,
  • "trial_ends_at": "2021-01-01 00:00:00",
  • "max_renewals": 1,
  • "data": {
    },
  • "currency": "USD",
  • "suspend_reason": "Service suspended"
}

unsuspend service

Returns service data and result

Authorizations:
sanctum
path Parameters
id
required
string

service id or uuid

Responses

Response samples

Content type
application/json
{
  • "customer_id": 123,
  • "uuid": "550e8400-e29b-41d4-a716-446655440000",
  • "name": "Service name",
  • "type": "proxmox",
  • "billing": "monthly",
  • "server_id": 1,
  • "product_id": 1,
  • "invoice_id": 123,
  • "status": "active",
  • "expires_at": "2021-01-01 00:00:00",
  • "suspended_at": "2021-01-01 00:00:00",
  • "cancelled_at": "2021-01-01 00:00:00",
  • "cancelled_reason": "Service cancelled",
  • "notes": "Service notes",
  • "delivery_errors": "Delivery errors",
  • "delivery_attempts": 1,
  • "renewals": 1,
  • "trial_ends_at": "2021-01-01 00:00:00",
  • "max_renewals": 1,
  • "data": {
    },
  • "currency": "USD",
  • "suspend_reason": "Service suspended"
}

Customers

API Endpoints for customers

List customers

Authorizations:
sanctum
query Parameters
filter[email]
string
filter[firstname]
string
filter[lastname]
string
sort
string

Sort fields, e.g. sort=id or sort=-id

include
string
Example: include=invoices,metadata

Include relations (invoices, metadata, services)

Responses

Create customer

Authorizations:
sanctum
Request Body schema: application/json
required
email
required
string <email>
password
string or null <password>
firstname
required
string <= 255 characters
lastname
required
string <= 255 characters
address
required
string <= 255 characters
address2
string or null <= 255 characters
city
required
string <= 255 characters
zipcode
required
string <= 255 characters
phone
string or null <= 15 characters
region
required
string <= 255 characters
verified
boolean or null
balance
number <float>
locale
required
string
country
required
string
confirmed
boolean or null
company_name
string or null <= 255 characters
billing_details
string or null <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "email": "[email protected]",
  • "password": "MyS3cretPwd!",
  • "firstname": "John",
  • "lastname": "Doe",
  • "address": "123 Rue Principale",
  • "address2": "Appartement 4B",
  • "city": "Paris",
  • "zipcode": "75000",
  • "phone": "+33600000000",
  • "region": "Île-de-France",
  • "verified": true,
  • "balance": 99.99,
  • "locale": "fr",
  • "country": "FR",
  • "confirmed": true,
  • "company_name": "Doe Enterprises",
  • "billing_details": "Billing details here"
}

Get customer

Authorizations:
sanctum
path Parameters
id
required
integer

Responses

Update customer

Authorizations:
sanctum
path Parameters
id
required
integer
Request Body schema: application/json
required
email
string <email>
password
string or null <password>
firstname
string <= 50 characters
lastname
string <= 50 characters
address
string <= 250 characters
address2
string or null <= 250 characters
city
string <= 250 characters
zipcode
string <= 255 characters
phone
string or null <= 255 characters
region
string <= 250 characters
verified
boolean or null
balance
number <float>
country
string <= 255 characters
locale
string <= 255 characters
company_name
string or null <= 255 characters
billing_details
string or null <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "email": "[email protected]",
  • "password": "MyN3wS3cret!",
  • "firstname": "John",
  • "lastname": "Doe",
  • "address": "456 Avenue République",
  • "address2": "Bâtiment B",
  • "city": "Lyon",
  • "zipcode": "69000",
  • "phone": "+33700000000",
  • "region": "Auvergne-Rhône-Alpes",
  • "verified": false,
  • "balance": 250.5,
  • "country": "FR",
  • "locale": "fr",
  • "company_name": "Doe Industries",
  • "billing_details": "Details de facturation ici"
}

Delete customer

Authorizations:
sanctum
path Parameters
id
required
integer
query Parameters
force
boolean

Force deletion even with active services

Responses

Confirm email of a customer

Authorizations:
sanctum
path Parameters
id
required
integer

Responses

Send password reset link

Authorizations:
sanctum
path Parameters
id
required
integer

Responses

Resend email confirmation

Authorizations:
sanctum
path Parameters
id
required
integer

Responses

Perform action on customer (suspend, reactivate, ban, disable2FA)

Authorizations:
sanctum
path Parameters
id
required
integer
action
required
string
Enum: "suspend" "reactivate" "ban" "disable2FA"

Action name

Request Body schema: application/json
reason
string
notify
boolean
force
boolean

Responses

Request samples

Content type
application/json
{
  • "reason": "Violation of terms",
  • "notify": true,
  • "force": false
}

Invoices

Invoices

Get a list of invoices

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 10

Number of items per page

sort
string
Default: "created_at"

Sort order

filter
string

Filter invoices

include
string
Default: "customer,items"

Related resources to include

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new invoice

Authorizations:
sanctum
Request Body schema: application/json
required
customer_id
integer

The ID of the customer

currency
string

The currency of the invoice

Responses

Request samples

Content type
application/json
{
  • "customer_id": 0,
  • "currency": "string"
}

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Get a single invoice

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Update an existing invoice

Authorizations:
sanctum
Request Body schema: application/json
required
status
string
Enum: "draft" "sent" "paid" "cancelled"

The status of the invoice

notes
string

Additional notes for the invoice

paymethod
string

The payment method used for the invoice

fees
number <float>

Any additional fees for the invoice

tax
number <float>

The tax amount for the invoice

currency
string

The currency of the invoice

due_date
string <date>

The due date for the invoice

paid_at
string <date>

The date the invoice was paid

balance
number <float>

The remaining balance for the invoice

payment_method_id
integer

The ID of the payment method used

billing_address
Array of strings

The billing address for the invoice

external_id
string

An external ID for the invoice

Responses

Request samples

Content type
application/json
{
  • "status": "draft",
  • "notes": "string",
  • "paymethod": "string",
  • "fees": 0.1,
  • "tax": 0.1,
  • "currency": "string",
  • "due_date": "2019-08-24",
  • "paid_at": "2019-08-24",
  • "balance": 0.1,
  • "payment_method_id": 0,
  • "billing_address": [
    ],
  • "external_id": "string"
}

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Delete an existing invoice

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Get the PDF of a single invoice

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Get the Excel of a single invoice

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Validate an invoice

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Edit an invoice

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Notify about an invoice

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Response samples

Content type
application/json
{
  • "id": 1001,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "customer_id": 5,
  • "billing_address": "",
  • "due_date": "2024-05-15T00:00:00Z",
  • "total": 99.99,
  • "subtotal": 83.33,
  • "tax": 16.66,
  • "setupfees": 10,
  • "currency": "EUR",
  • "status": "pending",
  • "external_id": "ext-123456",
  • "notes": "Payment pending confirmation.",
  • "paymethod": "stripe",
  • "fees": 2.5,
  • "invoice_number": "CTX-2024-05-0001",
  • "paid_at": "2024-05-10T08:00:00Z",
  • "payment_method_id": "pm_1J2Y3Z4A5B6C7D8E9F0G",
  • "balance": 0,
  • "created_at": "2024-05-01T12:00:00Z",
  • "updated_at": "2024-05-10T09:00:00Z",
  • "items": [
    ],
  • "customer": {
    }
}

Download an invoice as PDF

Authorizations:
sanctum
path Parameters
invoice
required
string

ID or UUID of the invoice

Responses

Departments

Departments

Get a list of support departments

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 10

Number of items per page

sort
string
Default: "created_at"

Sort order

filter
string

Filter departments

include
string
Default: "tickets"

Related resources to include

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new support department

Authorizations:
sanctum
Request Body schema: application/json
required
name
required
string
description
required
string
icon
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Technical Support",
  • "description": "Handles all technical issues",
  • "icon": "bi bi-question-circle"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Technical Support",
  • "description": "Handles all technical issues related to services.",
  • "icon": "bi bi-question-circle",
  • "staff_subscribers": [
    ],
  • "created_at": "2024-03-01T10:00:00Z",
  • "updated_at": "2024-04-01T15:30:00Z",
  • "deleted_at": null,
  • "tickets": [
    ]
}

Get a single support department

Authorizations:
sanctum
path Parameters
department
required
integer

ID of the department

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Technical Support",
  • "description": "Handles all technical issues related to services.",
  • "icon": "bi bi-question-circle",
  • "staff_subscribers": [
    ],
  • "created_at": "2024-03-01T10:00:00Z",
  • "updated_at": "2024-04-01T15:30:00Z",
  • "deleted_at": null,
  • "tickets": [
    ]
}

Update an existing support department

Authorizations:
sanctum
path Parameters
department
required
integer

ID of the department

Request Body schema: application/json
required
name
required
string
description
required
string
icon
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Technical Support",
  • "description": "Handles all technical issues",
  • "icon": "bi bi-question-circle"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Technical Support",
  • "description": "Handles all technical issues related to services.",
  • "icon": "bi bi-question-circle",
  • "staff_subscribers": [
    ],
  • "created_at": "2024-03-01T10:00:00Z",
  • "updated_at": "2024-04-01T15:30:00Z",
  • "deleted_at": null,
  • "tickets": [
    ]
}

Delete an existing support department

Authorizations:
sanctum
path Parameters
department
required
integer

ID of the department

Responses

Tickets

Tickets

Get a list of support tickets

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 10

Number of items per page

sort
string
Default: "created_at"

Sort order

filter[status]
string

Filter by status (open, closed, answered)

filter[priority]
string

Filter by priority (low, medium, high)

filter[department_id]
integer

Filter by department ID

filter[customer_id]
integer

Filter by customer ID

include
string
Default: "customer,department,messages"

Related resources to include

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new support ticket

Authorizations:
sanctum
Request Body schema: application/json
required
department_id
required
integer
customer_id
required
integer
subject
required
string
priority
required
string
Enum: "low" "medium" "high"
content
required
string
related_type
string or null
Enum: "service" "invoice"
related_id
integer or null

Responses

Request samples

Content type
application/json
{
  • "department_id": 1,
  • "customer_id": 1,
  • "subject": "Issue with my service",
  • "priority": "medium",
  • "content": "I'm having issues with my service...",
  • "related_type": "service",
  • "related_id": 0
}

Response samples

Content type
application/json
{
  • "id": 101,
  • "subject": "Problème de facturation",
  • "priority": "medium",
  • "status": "open",
  • "department_id": 3,
  • "customer_id": 5,
  • "assigned_to": 12,
  • "staff_subscribers": [
    ],
  • "closed_at": "2019-08-24T14:15:22Z",
  • "close_reason": "Demande résolue",
  • "closed_by": "admin",
  • "closed_by_id": 2,
  • "related_type": "service",
  • "related_id": 41,
  • "created_at": "2019-08-24T14:15:22Z",
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "customer": {
    },
  • "assignedTo": {
    },
  • "department": {
    },
  • "attachments": [
    ],
  • "messages": [
    ],
  • "comments": [
    ]
}

Get a single support ticket

Authorizations:
sanctum
path Parameters
ticket
required
string

ID or UUID of the ticket

Responses

Response samples

Content type
application/json
{
  • "id": 101,
  • "subject": "Problème de facturation",
  • "priority": "medium",
  • "status": "open",
  • "department_id": 3,
  • "customer_id": 5,
  • "assigned_to": 12,
  • "staff_subscribers": [
    ],
  • "closed_at": "2019-08-24T14:15:22Z",
  • "close_reason": "Demande résolue",
  • "closed_by": "admin",
  • "closed_by_id": 2,
  • "related_type": "service",
  • "related_id": 41,
  • "created_at": "2019-08-24T14:15:22Z",
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "customer": {
    },
  • "assignedTo": {
    },
  • "department": {
    },
  • "attachments": [
    ],
  • "messages": [
    ],
  • "comments": [
    ]
}

Update an existing support ticket

Authorizations:
sanctum
path Parameters
ticket
required
string

ID or UUID of the ticket

Request Body schema: application/json
required
department_id
required
integer
subject
required
string
priority
required
string
Enum: "low" "medium" "high"
assigned_to
integer or null
close_reason
string or null

Responses

Request samples

Content type
application/json
{
  • "department_id": 1,
  • "subject": "Updated subject",
  • "priority": "high",
  • "assigned_to": 0,
  • "close_reason": "string"
}

Response samples

Content type
application/json
{
  • "id": 101,
  • "subject": "Problème de facturation",
  • "priority": "medium",
  • "status": "open",
  • "department_id": 3,
  • "customer_id": 5,
  • "assigned_to": 12,
  • "staff_subscribers": [
    ],
  • "closed_at": "2019-08-24T14:15:22Z",
  • "close_reason": "Demande résolue",
  • "closed_by": "admin",
  • "closed_by_id": 2,
  • "related_type": "service",
  • "related_id": 41,
  • "created_at": "2019-08-24T14:15:22Z",
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "customer": {
    },
  • "assignedTo": {
    },
  • "department": {
    },
  • "attachments": [
    ],
  • "messages": [
    ],
  • "comments": [
    ]
}

Delete/Close an existing support ticket

Authorizations:
sanctum
path Parameters
ticket
required
string

ID or UUID of the ticket

Responses

Reply to a support ticket

Authorizations:
sanctum
path Parameters
ticket
required
string

ID or UUID of the ticket

Request Body schema: application/json
required
content
required
string

Responses

Request samples

Content type
application/json
{
  • "content": "Thank you for contacting us..."
}

Response samples

Content type
application/json
{
  • "id": 101,
  • "subject": "Problème de facturation",
  • "priority": "medium",
  • "status": "open",
  • "department_id": 3,
  • "customer_id": 5,
  • "assigned_to": 12,
  • "staff_subscribers": [
    ],
  • "closed_at": "2019-08-24T14:15:22Z",
  • "close_reason": "Demande résolue",
  • "closed_by": "admin",
  • "closed_by_id": 2,
  • "related_type": "service",
  • "related_id": 41,
  • "created_at": "2019-08-24T14:15:22Z",
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "customer": {
    },
  • "assignedTo": {
    },
  • "department": {
    },
  • "attachments": [
    ],
  • "messages": [
    ],
  • "comments": [
    ]
}

Close a support ticket

Authorizations:
sanctum
path Parameters
ticket
required
string

ID or UUID of the ticket

Request Body schema: application/json
optional
reason
string or null

Responses

Request samples

Content type
application/json
{
  • "reason": "Issue resolved"
}

Response samples

Content type
application/json
{
  • "id": 101,
  • "subject": "Problème de facturation",
  • "priority": "medium",
  • "status": "open",
  • "department_id": 3,
  • "customer_id": 5,
  • "assigned_to": 12,
  • "staff_subscribers": [
    ],
  • "closed_at": "2019-08-24T14:15:22Z",
  • "close_reason": "Demande résolue",
  • "closed_by": "admin",
  • "closed_by_id": 2,
  • "related_type": "service",
  • "related_id": 41,
  • "created_at": "2019-08-24T14:15:22Z",
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "customer": {
    },
  • "assignedTo": {
    },
  • "department": {
    },
  • "attachments": [
    ],
  • "messages": [
    ],
  • "comments": [
    ]
}

Reopen a closed support ticket

Authorizations:
sanctum
path Parameters
ticket
required
string

ID or UUID of the ticket

Responses

Response samples

Content type
application/json
{
  • "id": 101,
  • "subject": "Problème de facturation",
  • "priority": "medium",
  • "status": "open",
  • "department_id": 3,
  • "customer_id": 5,
  • "assigned_to": 12,
  • "staff_subscribers": [
    ],
  • "closed_at": "2019-08-24T14:15:22Z",
  • "close_reason": "Demande résolue",
  • "closed_by": "admin",
  • "closed_by_id": 2,
  • "related_type": "service",
  • "related_id": 41,
  • "created_at": "2019-08-24T14:15:22Z",
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "customer": {
    },
  • "assignedTo": {
    },
  • "department": {
    },
  • "attachments": [
    ],
  • "messages": [
    ],
  • "comments": [
    ]
}

Cancellation Reasons

Cancellation Reasons

List all cancellation reasons

Authorizations:
sanctum

Responses

Create a new cancellation reason

Authorizations:
sanctum

Responses

Get a specific cancellation reason

Authorizations:
sanctum

Responses

Update a cancellation reason

Authorizations:
sanctum

Responses

Delete a cancellation reason

Authorizations:
sanctum

Responses

Get cancellation analytics data

Authorizations:
sanctum

Responses

Servers

Servers

Get a list of servers

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 10

Number of items per page

sort
string

Sort order

filter[type]
string

Filter by server type (pterodactyl, plesk, etc.)

filter[status]
string

Filter by status

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new server

Authorizations:
sanctum
Request Body schema: application/json
required
name
required
string
hostname
string
address
required
string
port
integer
username
string or null
password
string or null
type
required
string
status
string
Enum: "active" "hidden" "unreferenced"
maxaccounts
integer or null

Responses

Request samples

Content type
application/json
{
  • "name": "Node-Paris-01",
  • "hostname": "paris01.example.com",
  • "address": "192.168.0.10",
  • "port": 443,
  • "username": "string",
  • "password": "string",
  • "type": "pterodactyl",
  • "status": "active",
  • "maxaccounts": 100
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Node-Paris-01",
  • "hostname": "paris01.clientx.local",
  • "address": "192.168.0.10",
  • "port": 443,
  • "username": "root",
  • "password": "s3cur3",
  • "type": "pterodactyl",
  • "status": "active",
  • "maxaccounts": 100,
  • "created_at": "2024-01-01T10:00:00Z",
  • "updated_at": "2024-01-02T12:00:00Z"
}

Get a single server

Authorizations:
sanctum
path Parameters
server
required
integer

ID of the server

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Node-Paris-01",
  • "hostname": "paris01.clientx.local",
  • "address": "192.168.0.10",
  • "port": 443,
  • "username": "root",
  • "password": "s3cur3",
  • "type": "pterodactyl",
  • "status": "active",
  • "maxaccounts": 100,
  • "created_at": "2024-01-01T10:00:00Z",
  • "updated_at": "2024-01-02T12:00:00Z"
}

Update an existing server

Authorizations:
sanctum
path Parameters
server
required
integer

ID of the server

Request Body schema: application/json
required
name
string
hostname
string
address
string
port
integer
username
string
password
string
type
string
status
string
maxaccounts
integer

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "hostname": "string",
  • "address": "string",
  • "port": 0,
  • "username": "string",
  • "password": "string",
  • "type": "string",
  • "status": "string",
  • "maxaccounts": 0
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Node-Paris-01",
  • "hostname": "paris01.clientx.local",
  • "address": "192.168.0.10",
  • "port": 443,
  • "username": "root",
  • "password": "s3cur3",
  • "type": "pterodactyl",
  • "status": "active",
  • "maxaccounts": 100,
  • "created_at": "2024-01-01T10:00:00Z",
  • "updated_at": "2024-01-02T12:00:00Z"
}

Delete an existing server

Authorizations:
sanctum
path Parameters
server
required
integer

ID of the server

Responses

Test server connection

Authorizations:
sanctum
Request Body schema: application/json
required
address
required
string
port
integer
type
required
string
username
string
password
string
hostname
string
server_id
integer

Existing server ID to use credentials from

Responses

Request samples

Content type
application/json
{
  • "address": "string",
  • "port": 0,
  • "type": "string",
  • "username": "string",
  • "password": "string",
  • "hostname": "string",
  • "server_id": 0
}

Subdomain Hosts

Subdomain Hosts

Get a list of subdomain hosts

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 10

Number of items per page

sort
string

Sort order

Responses

Create a new subdomain host

Authorizations:
sanctum
Request Body schema: application/json
required
domain
required
string

Responses

Request samples

Content type
application/json
{
  • "domain": ".example.com"
}

Get a single subdomain host

Authorizations:
sanctum
path Parameters
subdomain
required
integer

ID of the subdomain host

Responses

Update an existing subdomain host

Authorizations:
sanctum
path Parameters
subdomain
required
integer

ID of the subdomain host

Request Body schema: application/json
required
domain
required
string

Responses

Request samples

Content type
application/json
{
  • "domain": ".newdomain.com"
}

Delete an existing subdomain host

Authorizations:
sanctum
path Parameters
subdomain
required
integer

ID of the subdomain host

Responses

Action Logs

Action Logs

Get a list of action logs

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 50

Number of items per page

sort
string

Sort order (default: -created_at)

filter[action]
string

Filter by action type

filter[model]
string

Filter by model name

filter[staff_id]
integer

Filter by staff ID

filter[customer_id]
integer

Filter by customer ID

include
string
Default: "customer,staff,entries"

Related resources to include

Responses

Get a single action log

Authorizations:
sanctum
path Parameters
log
required
integer

ID of the action log

Responses

Coupons

Coupons

Get a list of coupons

Authorizations:
sanctum
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 10

Number of items per page

sort
string

Sort order

include
string
Default: "products,pricing"

Related resources to include

Responses

Create a new coupon

Authorizations:
sanctum
Request Body schema: application/json
required
code
required
string
type
required
string
Enum: "fixed" "percent"
applied_month
integer
free_setup
boolean
start_at
string or null <date-time>
end_at
string or null <date-time>
first_order_only
boolean
max_uses
integer
max_uses_per_customer
integer
minimum_order_amount
number
is_global
boolean
products
Array of integers
pricing
object

Responses

Request samples

Content type
application/json
{
  • "code": "SUMMER25",
  • "type": "percent",
  • "applied_month": -1,
  • "free_setup": false,
  • "start_at": "2019-08-24T14:15:22Z",
  • "end_at": "2019-08-24T14:15:22Z",
  • "first_order_only": false,
  • "max_uses": 0,
  • "max_uses_per_customer": 0,
  • "minimum_order_amount": 0,
  • "is_global": true,
  • "products": [
    ],
  • "pricing": { }
}

Get a single coupon

Authorizations:
sanctum
path Parameters
coupon
required
integer

ID of the coupon

Responses

Update an existing coupon

Authorizations:
sanctum
path Parameters
coupon
required
integer

ID of the coupon

Request Body schema: application/json
required
code
string
type
string
Enum: "fixed" "percent"
is_global
boolean
products
Array of integers

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "type": "fixed",
  • "is_global": true,
  • "products": [
    ]
}

Delete an existing coupon

Authorizations:
sanctum
path Parameters
coupon
required
integer

ID of the coupon

Responses