curl --request POST \
--url https://api.centralcart.io/v1/app/package \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"category_id": 123,
"price": 123,
"expiry_days": 123,
"inventory_amount": 123,
"description": "<string>",
"enabled": true,
"compare_at_price": 123,
"per_user_limit": true,
"min_amount": 123,
"image": "<string>",
"images": [
"<string>"
],
"parent_id": 123,
"is_variation_parent": true,
"commands": [
{
"command": "<string>",
"game_server_id": 123,
"offline_execute": true,
"schedule": 123,
"execute_once": true
}
],
"discord_actions": [
{
"parameters": {
"role_id": "<string>",
"channel_id": "<string>",
"message": "<string>"
}
}
],
"variables": [
123
],
"license_keys": [
"<string>"
],
"chat_delivery": {
"enabled": true,
"initial_message": "<string>"
}
}
'import requests
url = "https://api.centralcart.io/v1/app/package"
payload = {
"name": "<string>",
"category_id": 123,
"price": 123,
"expiry_days": 123,
"inventory_amount": 123,
"description": "<string>",
"enabled": True,
"compare_at_price": 123,
"per_user_limit": True,
"min_amount": 123,
"image": "<string>",
"images": ["<string>"],
"parent_id": 123,
"is_variation_parent": True,
"commands": [
{
"command": "<string>",
"game_server_id": 123,
"offline_execute": True,
"schedule": 123,
"execute_once": True
}
],
"discord_actions": [{ "parameters": {
"role_id": "<string>",
"channel_id": "<string>",
"message": "<string>"
} }],
"variables": [123],
"license_keys": ["<string>"],
"chat_delivery": {
"enabled": True,
"initial_message": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category_id: 123,
price: 123,
expiry_days: 123,
inventory_amount: 123,
description: '<string>',
enabled: true,
compare_at_price: 123,
per_user_limit: true,
min_amount: 123,
image: '<string>',
images: ['<string>'],
parent_id: 123,
is_variation_parent: true,
commands: [
{
command: '<string>',
game_server_id: 123,
offline_execute: true,
schedule: 123,
execute_once: true
}
],
discord_actions: [
{parameters: {role_id: '<string>', channel_id: '<string>', message: '<string>'}}
],
variables: [123],
license_keys: ['<string>'],
chat_delivery: {enabled: true, initial_message: '<string>'}
})
};
fetch('https://api.centralcart.io/v1/app/package', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.centralcart.io/v1/app/package",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'category_id' => 123,
'price' => 123,
'expiry_days' => 123,
'inventory_amount' => 123,
'description' => '<string>',
'enabled' => true,
'compare_at_price' => 123,
'per_user_limit' => true,
'min_amount' => 123,
'image' => '<string>',
'images' => [
'<string>'
],
'parent_id' => 123,
'is_variation_parent' => true,
'commands' => [
[
'command' => '<string>',
'game_server_id' => 123,
'offline_execute' => true,
'schedule' => 123,
'execute_once' => true
]
],
'discord_actions' => [
[
'parameters' => [
'role_id' => '<string>',
'channel_id' => '<string>',
'message' => '<string>'
]
]
],
'variables' => [
123
],
'license_keys' => [
'<string>'
],
'chat_delivery' => [
'enabled' => true,
'initial_message' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.centralcart.io/v1/app/package"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"category_id\": 123,\n \"price\": 123,\n \"expiry_days\": 123,\n \"inventory_amount\": 123,\n \"description\": \"<string>\",\n \"enabled\": true,\n \"compare_at_price\": 123,\n \"per_user_limit\": true,\n \"min_amount\": 123,\n \"image\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"parent_id\": 123,\n \"is_variation_parent\": true,\n \"commands\": [\n {\n \"command\": \"<string>\",\n \"game_server_id\": 123,\n \"offline_execute\": true,\n \"schedule\": 123,\n \"execute_once\": true\n }\n ],\n \"discord_actions\": [\n {\n \"parameters\": {\n \"role_id\": \"<string>\",\n \"channel_id\": \"<string>\",\n \"message\": \"<string>\"\n }\n }\n ],\n \"variables\": [\n 123\n ],\n \"license_keys\": [\n \"<string>\"\n ],\n \"chat_delivery\": {\n \"enabled\": true,\n \"initial_message\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.centralcart.io/v1/app/package")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"category_id\": 123,\n \"price\": 123,\n \"expiry_days\": 123,\n \"inventory_amount\": 123,\n \"description\": \"<string>\",\n \"enabled\": true,\n \"compare_at_price\": 123,\n \"per_user_limit\": true,\n \"min_amount\": 123,\n \"image\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"parent_id\": 123,\n \"is_variation_parent\": true,\n \"commands\": [\n {\n \"command\": \"<string>\",\n \"game_server_id\": 123,\n \"offline_execute\": true,\n \"schedule\": 123,\n \"execute_once\": true\n }\n ],\n \"discord_actions\": [\n {\n \"parameters\": {\n \"role_id\": \"<string>\",\n \"channel_id\": \"<string>\",\n \"message\": \"<string>\"\n }\n }\n ],\n \"variables\": [\n 123\n ],\n \"license_keys\": [\n \"<string>\"\n ],\n \"chat_delivery\": {\n \"enabled\": true,\n \"initial_message\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.centralcart.io/v1/app/package")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"category_id\": 123,\n \"price\": 123,\n \"expiry_days\": 123,\n \"inventory_amount\": 123,\n \"description\": \"<string>\",\n \"enabled\": true,\n \"compare_at_price\": 123,\n \"per_user_limit\": true,\n \"min_amount\": 123,\n \"image\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"parent_id\": 123,\n \"is_variation_parent\": true,\n \"commands\": [\n {\n \"command\": \"<string>\",\n \"game_server_id\": 123,\n \"offline_execute\": true,\n \"schedule\": 123,\n \"execute_once\": true\n }\n ],\n \"discord_actions\": [\n {\n \"parameters\": {\n \"role_id\": \"<string>\",\n \"channel_id\": \"<string>\",\n \"message\": \"<string>\"\n }\n }\n ],\n \"variables\": [\n 123\n ],\n \"license_keys\": [\n \"<string>\"\n ],\n \"chat_delivery\": {\n \"enabled\": true,\n \"initial_message\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 101,
"store_id": 1,
"category_id": 5,
"position": 1,
"enabled": true,
"name": "Pacote VIP",
"slug": "pacote-vip",
"type": "SINGLE",
"price": 50,
"compare_at_price": null,
"expiry_days": 30,
"inventory_amount": 100,
"per_user_limit": false,
"description": null,
"image": null,
"icon": null,
"parent_id": null,
"is_variation_parent": false,
"download_key": null,
"min_amount": null,
"license_key_format": null,
"chat_delivery": null,
"price_display": "R$ 50,00",
"created_at": "2026-04-20T14:00:00.000-03:00",
"updated_at": "2026-04-20T14:00:00.000-03:00"
}Create Package
Cria um novo pacote.
curl --request POST \
--url https://api.centralcart.io/v1/app/package \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"category_id": 123,
"price": 123,
"expiry_days": 123,
"inventory_amount": 123,
"description": "<string>",
"enabled": true,
"compare_at_price": 123,
"per_user_limit": true,
"min_amount": 123,
"image": "<string>",
"images": [
"<string>"
],
"parent_id": 123,
"is_variation_parent": true,
"commands": [
{
"command": "<string>",
"game_server_id": 123,
"offline_execute": true,
"schedule": 123,
"execute_once": true
}
],
"discord_actions": [
{
"parameters": {
"role_id": "<string>",
"channel_id": "<string>",
"message": "<string>"
}
}
],
"variables": [
123
],
"license_keys": [
"<string>"
],
"chat_delivery": {
"enabled": true,
"initial_message": "<string>"
}
}
'import requests
url = "https://api.centralcart.io/v1/app/package"
payload = {
"name": "<string>",
"category_id": 123,
"price": 123,
"expiry_days": 123,
"inventory_amount": 123,
"description": "<string>",
"enabled": True,
"compare_at_price": 123,
"per_user_limit": True,
"min_amount": 123,
"image": "<string>",
"images": ["<string>"],
"parent_id": 123,
"is_variation_parent": True,
"commands": [
{
"command": "<string>",
"game_server_id": 123,
"offline_execute": True,
"schedule": 123,
"execute_once": True
}
],
"discord_actions": [{ "parameters": {
"role_id": "<string>",
"channel_id": "<string>",
"message": "<string>"
} }],
"variables": [123],
"license_keys": ["<string>"],
"chat_delivery": {
"enabled": True,
"initial_message": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category_id: 123,
price: 123,
expiry_days: 123,
inventory_amount: 123,
description: '<string>',
enabled: true,
compare_at_price: 123,
per_user_limit: true,
min_amount: 123,
image: '<string>',
images: ['<string>'],
parent_id: 123,
is_variation_parent: true,
commands: [
{
command: '<string>',
game_server_id: 123,
offline_execute: true,
schedule: 123,
execute_once: true
}
],
discord_actions: [
{parameters: {role_id: '<string>', channel_id: '<string>', message: '<string>'}}
],
variables: [123],
license_keys: ['<string>'],
chat_delivery: {enabled: true, initial_message: '<string>'}
})
};
fetch('https://api.centralcart.io/v1/app/package', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.centralcart.io/v1/app/package",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'category_id' => 123,
'price' => 123,
'expiry_days' => 123,
'inventory_amount' => 123,
'description' => '<string>',
'enabled' => true,
'compare_at_price' => 123,
'per_user_limit' => true,
'min_amount' => 123,
'image' => '<string>',
'images' => [
'<string>'
],
'parent_id' => 123,
'is_variation_parent' => true,
'commands' => [
[
'command' => '<string>',
'game_server_id' => 123,
'offline_execute' => true,
'schedule' => 123,
'execute_once' => true
]
],
'discord_actions' => [
[
'parameters' => [
'role_id' => '<string>',
'channel_id' => '<string>',
'message' => '<string>'
]
]
],
'variables' => [
123
],
'license_keys' => [
'<string>'
],
'chat_delivery' => [
'enabled' => true,
'initial_message' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.centralcart.io/v1/app/package"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"category_id\": 123,\n \"price\": 123,\n \"expiry_days\": 123,\n \"inventory_amount\": 123,\n \"description\": \"<string>\",\n \"enabled\": true,\n \"compare_at_price\": 123,\n \"per_user_limit\": true,\n \"min_amount\": 123,\n \"image\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"parent_id\": 123,\n \"is_variation_parent\": true,\n \"commands\": [\n {\n \"command\": \"<string>\",\n \"game_server_id\": 123,\n \"offline_execute\": true,\n \"schedule\": 123,\n \"execute_once\": true\n }\n ],\n \"discord_actions\": [\n {\n \"parameters\": {\n \"role_id\": \"<string>\",\n \"channel_id\": \"<string>\",\n \"message\": \"<string>\"\n }\n }\n ],\n \"variables\": [\n 123\n ],\n \"license_keys\": [\n \"<string>\"\n ],\n \"chat_delivery\": {\n \"enabled\": true,\n \"initial_message\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.centralcart.io/v1/app/package")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"category_id\": 123,\n \"price\": 123,\n \"expiry_days\": 123,\n \"inventory_amount\": 123,\n \"description\": \"<string>\",\n \"enabled\": true,\n \"compare_at_price\": 123,\n \"per_user_limit\": true,\n \"min_amount\": 123,\n \"image\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"parent_id\": 123,\n \"is_variation_parent\": true,\n \"commands\": [\n {\n \"command\": \"<string>\",\n \"game_server_id\": 123,\n \"offline_execute\": true,\n \"schedule\": 123,\n \"execute_once\": true\n }\n ],\n \"discord_actions\": [\n {\n \"parameters\": {\n \"role_id\": \"<string>\",\n \"channel_id\": \"<string>\",\n \"message\": \"<string>\"\n }\n }\n ],\n \"variables\": [\n 123\n ],\n \"license_keys\": [\n \"<string>\"\n ],\n \"chat_delivery\": {\n \"enabled\": true,\n \"initial_message\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.centralcart.io/v1/app/package")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"category_id\": 123,\n \"price\": 123,\n \"expiry_days\": 123,\n \"inventory_amount\": 123,\n \"description\": \"<string>\",\n \"enabled\": true,\n \"compare_at_price\": 123,\n \"per_user_limit\": true,\n \"min_amount\": 123,\n \"image\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"parent_id\": 123,\n \"is_variation_parent\": true,\n \"commands\": [\n {\n \"command\": \"<string>\",\n \"game_server_id\": 123,\n \"offline_execute\": true,\n \"schedule\": 123,\n \"execute_once\": true\n }\n ],\n \"discord_actions\": [\n {\n \"parameters\": {\n \"role_id\": \"<string>\",\n \"channel_id\": \"<string>\",\n \"message\": \"<string>\"\n }\n }\n ],\n \"variables\": [\n 123\n ],\n \"license_keys\": [\n \"<string>\"\n ],\n \"chat_delivery\": {\n \"enabled\": true,\n \"initial_message\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": 101,
"store_id": 1,
"category_id": 5,
"position": 1,
"enabled": true,
"name": "Pacote VIP",
"slug": "pacote-vip",
"type": "SINGLE",
"price": 50,
"compare_at_price": null,
"expiry_days": 30,
"inventory_amount": 100,
"per_user_limit": false,
"description": null,
"image": null,
"icon": null,
"parent_id": null,
"is_variation_parent": false,
"download_key": null,
"min_amount": null,
"license_key_format": null,
"chat_delivery": null,
"price_display": "R$ 50,00",
"created_at": "2026-04-20T14:00:00.000-03:00",
"updated_at": "2026-04-20T14:00:00.000-03:00"
}Autorizações
Token de API gerado no painel da CentralCart.
Corpo
O nome do pacote
O ID da categoria à qual o pacote pertence
Preço do pacote
Número de dias até a expiração do pacote, entre 1 e 365. Envie null para pacotes sem expiração.
Tipo do pacote: SINGLE (quantidade fixa de 1) ou MULTIPLE (quantidade variável)
SINGLE, MULTIPLE Quantidade em estoque. Envie null para estoque ilimitado.
A descrição detalhada do pacote
Define se o pacote está habilitado (visível na loja)
Preço de comparação (preço original antes do desconto)
Define se o pacote pode ser comprado apenas uma vez por usuário
Quantidade mínima de compra (apenas pacotes MULTIPLE)
URL da imagem principal do pacote (espelha images[0])
URLs das imagens do pacote (até 5). A primeira é a principal e espelha o campo image.
5ID do pacote pai. Informe para criar uma variação de outro pacote. O pacote pai não pode ser uma variação
Indica se este pacote aceita variações (pacote pai de variações)
Lista de comandos associados ao pacote
Show child attributes
Show child attributes
Ações do Discord associadas ao pacote
Show child attributes
Show child attributes
IDs das variáveis (campos de formulário) associadas ao pacote
Conteúdo adicional entregue na compra (ex: instruções, links, credenciais)
Show child attributes
Show child attributes
Lista de chaves de licença adicionadas ao estoque (máximo 5.000 chaves, 3.000 caracteres cada). Ao informar, o inventory_amount é ajustado automaticamente
Aplicar formatação em chaves de licença
Show child attributes
Show child attributes
Configurações de entrega via chat
Show child attributes
Show child attributes
Resposta
OK
Representação de um pacote.
SINGLE, MULTIPLE