curl --request PUT \
--url https://nexus.ticto.com.br/api/v1/products/{product_hash} \
--header 'Content-Type: application/json' \
--header 'X-Api-Client-Token: <api-key>' \
--data '
{
"name": "<string>",
"category_id": 500000,
"description": "<string>",
"support_email": "jsmith@example.com",
"support_phone": "11999999999",
"soft_descriptor": "MEUPRODUTO",
"image_stock": "<string>",
"cover_picture": "<string>",
"has_auto_affiliation": false,
"allow_affiliation": true,
"affiliate_percentage": 40.5,
"first_click_percentage": 60,
"last_click_percentage": 40,
"affiliation_description": "<string>",
"affiliation_terms": "<string>",
"metadata": {
"links": {
"sales_page_url": "<string>",
"sales_page_absence_reason": "<string>",
"page_released": "<string>",
"without_sales_page": true
}
}
}
'import requests
url = "https://nexus.ticto.com.br/api/v1/products/{product_hash}"
payload = {
"name": "<string>",
"category_id": 500000,
"description": "<string>",
"support_email": "jsmith@example.com",
"support_phone": "11999999999",
"soft_descriptor": "MEUPRODUTO",
"image_stock": "<string>",
"cover_picture": "<string>",
"has_auto_affiliation": False,
"allow_affiliation": True,
"affiliate_percentage": 40.5,
"first_click_percentage": 60,
"last_click_percentage": 40,
"affiliation_description": "<string>",
"affiliation_terms": "<string>",
"metadata": { "links": {
"sales_page_url": "<string>",
"sales_page_absence_reason": "<string>",
"page_released": "<string>",
"without_sales_page": True
} }
}
headers = {
"X-Api-Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Api-Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category_id: 500000,
description: '<string>',
support_email: 'jsmith@example.com',
support_phone: '11999999999',
soft_descriptor: 'MEUPRODUTO',
image_stock: '<string>',
cover_picture: '<string>',
has_auto_affiliation: false,
allow_affiliation: true,
affiliate_percentage: 40.5,
first_click_percentage: 60,
last_click_percentage: 40,
affiliation_description: '<string>',
affiliation_terms: '<string>',
metadata: {
links: {
sales_page_url: '<string>',
sales_page_absence_reason: '<string>',
page_released: '<string>',
without_sales_page: true
}
}
})
};
fetch('https://nexus.ticto.com.br/api/v1/products/{product_hash}', 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://nexus.ticto.com.br/api/v1/products/{product_hash}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'category_id' => 500000,
'description' => '<string>',
'support_email' => 'jsmith@example.com',
'support_phone' => '11999999999',
'soft_descriptor' => 'MEUPRODUTO',
'image_stock' => '<string>',
'cover_picture' => '<string>',
'has_auto_affiliation' => false,
'allow_affiliation' => true,
'affiliate_percentage' => 40.5,
'first_click_percentage' => 60,
'last_click_percentage' => 40,
'affiliation_description' => '<string>',
'affiliation_terms' => '<string>',
'metadata' => [
'links' => [
'sales_page_url' => '<string>',
'sales_page_absence_reason' => '<string>',
'page_released' => '<string>',
'without_sales_page' => true
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Client-Token: <api-key>"
],
]);
$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://nexus.ticto.com.br/api/v1/products/{product_hash}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"category_id\": 500000,\n \"description\": \"<string>\",\n \"support_email\": \"jsmith@example.com\",\n \"support_phone\": \"11999999999\",\n \"soft_descriptor\": \"MEUPRODUTO\",\n \"image_stock\": \"<string>\",\n \"cover_picture\": \"<string>\",\n \"has_auto_affiliation\": false,\n \"allow_affiliation\": true,\n \"affiliate_percentage\": 40.5,\n \"first_click_percentage\": 60,\n \"last_click_percentage\": 40,\n \"affiliation_description\": \"<string>\",\n \"affiliation_terms\": \"<string>\",\n \"metadata\": {\n \"links\": {\n \"sales_page_url\": \"<string>\",\n \"sales_page_absence_reason\": \"<string>\",\n \"page_released\": \"<string>\",\n \"without_sales_page\": true\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Api-Client-Token", "<api-key>")
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.put("https://nexus.ticto.com.br/api/v1/products/{product_hash}")
.header("X-Api-Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"category_id\": 500000,\n \"description\": \"<string>\",\n \"support_email\": \"jsmith@example.com\",\n \"support_phone\": \"11999999999\",\n \"soft_descriptor\": \"MEUPRODUTO\",\n \"image_stock\": \"<string>\",\n \"cover_picture\": \"<string>\",\n \"has_auto_affiliation\": false,\n \"allow_affiliation\": true,\n \"affiliate_percentage\": 40.5,\n \"first_click_percentage\": 60,\n \"last_click_percentage\": 40,\n \"affiliation_description\": \"<string>\",\n \"affiliation_terms\": \"<string>\",\n \"metadata\": {\n \"links\": {\n \"sales_page_url\": \"<string>\",\n \"sales_page_absence_reason\": \"<string>\",\n \"page_released\": \"<string>\",\n \"without_sales_page\": true\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.ticto.com.br/api/v1/products/{product_hash}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Api-Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"category_id\": 500000,\n \"description\": \"<string>\",\n \"support_email\": \"jsmith@example.com\",\n \"support_phone\": \"11999999999\",\n \"soft_descriptor\": \"MEUPRODUTO\",\n \"image_stock\": \"<string>\",\n \"cover_picture\": \"<string>\",\n \"has_auto_affiliation\": false,\n \"allow_affiliation\": true,\n \"affiliate_percentage\": 40.5,\n \"first_click_percentage\": 60,\n \"last_click_percentage\": 40,\n \"affiliation_description\": \"<string>\",\n \"affiliation_terms\": \"<string>\",\n \"metadata\": {\n \"links\": {\n \"sales_page_url\": \"<string>\",\n \"sales_page_absence_reason\": \"<string>\",\n \"page_released\": \"<string>\",\n \"without_sales_page\": true\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"hash": "<string>",
"name": "<string>",
"category_id": 500000,
"description": "<string>",
"type": "course",
"support_email": "jsmith@example.com",
"support_phone": "11999999999",
"refund_deadline": 7,
"status": "draft",
"created_at": "2026-01-15 14:30:00",
"updated_at": "2026-01-15 14:30:00",
"soft_descriptor": "MEUPRODUTO",
"image_stock": "<string>",
"cover_picture": "<string>",
"is_active": true,
"has_auto_affiliation": true,
"allow_affiliation": true,
"affiliate_commission_type": "first",
"first_click_percentage": 60,
"last_click_percentage": 40,
"metadata": {
"links": {
"sales_page_url": "<string>",
"sales_page_absence_reason": "<string>",
"page_released": "<string>",
"without_sales_page": true
}
}
}Atualizar produto
Atualiza os dados de um produto existente.
Campos atualizáveis:
name- Nome do produtodescription- Descrição do produtoprice- Preço do produtocategory_id- ID da categoriastatus- Status do produtohas_auto_affiliation- Se permite afiliação automática para este produtoallow_affiliation- Se permite afiliação para este produtoaffiliate_percentage,affiliation_description,affiliation_terms- Quandoallow_affiliation= true
curl --request PUT \
--url https://nexus.ticto.com.br/api/v1/products/{product_hash} \
--header 'Content-Type: application/json' \
--header 'X-Api-Client-Token: <api-key>' \
--data '
{
"name": "<string>",
"category_id": 500000,
"description": "<string>",
"support_email": "jsmith@example.com",
"support_phone": "11999999999",
"soft_descriptor": "MEUPRODUTO",
"image_stock": "<string>",
"cover_picture": "<string>",
"has_auto_affiliation": false,
"allow_affiliation": true,
"affiliate_percentage": 40.5,
"first_click_percentage": 60,
"last_click_percentage": 40,
"affiliation_description": "<string>",
"affiliation_terms": "<string>",
"metadata": {
"links": {
"sales_page_url": "<string>",
"sales_page_absence_reason": "<string>",
"page_released": "<string>",
"without_sales_page": true
}
}
}
'import requests
url = "https://nexus.ticto.com.br/api/v1/products/{product_hash}"
payload = {
"name": "<string>",
"category_id": 500000,
"description": "<string>",
"support_email": "jsmith@example.com",
"support_phone": "11999999999",
"soft_descriptor": "MEUPRODUTO",
"image_stock": "<string>",
"cover_picture": "<string>",
"has_auto_affiliation": False,
"allow_affiliation": True,
"affiliate_percentage": 40.5,
"first_click_percentage": 60,
"last_click_percentage": 40,
"affiliation_description": "<string>",
"affiliation_terms": "<string>",
"metadata": { "links": {
"sales_page_url": "<string>",
"sales_page_absence_reason": "<string>",
"page_released": "<string>",
"without_sales_page": True
} }
}
headers = {
"X-Api-Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Api-Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
category_id: 500000,
description: '<string>',
support_email: 'jsmith@example.com',
support_phone: '11999999999',
soft_descriptor: 'MEUPRODUTO',
image_stock: '<string>',
cover_picture: '<string>',
has_auto_affiliation: false,
allow_affiliation: true,
affiliate_percentage: 40.5,
first_click_percentage: 60,
last_click_percentage: 40,
affiliation_description: '<string>',
affiliation_terms: '<string>',
metadata: {
links: {
sales_page_url: '<string>',
sales_page_absence_reason: '<string>',
page_released: '<string>',
without_sales_page: true
}
}
})
};
fetch('https://nexus.ticto.com.br/api/v1/products/{product_hash}', 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://nexus.ticto.com.br/api/v1/products/{product_hash}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'category_id' => 500000,
'description' => '<string>',
'support_email' => 'jsmith@example.com',
'support_phone' => '11999999999',
'soft_descriptor' => 'MEUPRODUTO',
'image_stock' => '<string>',
'cover_picture' => '<string>',
'has_auto_affiliation' => false,
'allow_affiliation' => true,
'affiliate_percentage' => 40.5,
'first_click_percentage' => 60,
'last_click_percentage' => 40,
'affiliation_description' => '<string>',
'affiliation_terms' => '<string>',
'metadata' => [
'links' => [
'sales_page_url' => '<string>',
'sales_page_absence_reason' => '<string>',
'page_released' => '<string>',
'without_sales_page' => true
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Client-Token: <api-key>"
],
]);
$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://nexus.ticto.com.br/api/v1/products/{product_hash}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"category_id\": 500000,\n \"description\": \"<string>\",\n \"support_email\": \"jsmith@example.com\",\n \"support_phone\": \"11999999999\",\n \"soft_descriptor\": \"MEUPRODUTO\",\n \"image_stock\": \"<string>\",\n \"cover_picture\": \"<string>\",\n \"has_auto_affiliation\": false,\n \"allow_affiliation\": true,\n \"affiliate_percentage\": 40.5,\n \"first_click_percentage\": 60,\n \"last_click_percentage\": 40,\n \"affiliation_description\": \"<string>\",\n \"affiliation_terms\": \"<string>\",\n \"metadata\": {\n \"links\": {\n \"sales_page_url\": \"<string>\",\n \"sales_page_absence_reason\": \"<string>\",\n \"page_released\": \"<string>\",\n \"without_sales_page\": true\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Api-Client-Token", "<api-key>")
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.put("https://nexus.ticto.com.br/api/v1/products/{product_hash}")
.header("X-Api-Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"category_id\": 500000,\n \"description\": \"<string>\",\n \"support_email\": \"jsmith@example.com\",\n \"support_phone\": \"11999999999\",\n \"soft_descriptor\": \"MEUPRODUTO\",\n \"image_stock\": \"<string>\",\n \"cover_picture\": \"<string>\",\n \"has_auto_affiliation\": false,\n \"allow_affiliation\": true,\n \"affiliate_percentage\": 40.5,\n \"first_click_percentage\": 60,\n \"last_click_percentage\": 40,\n \"affiliation_description\": \"<string>\",\n \"affiliation_terms\": \"<string>\",\n \"metadata\": {\n \"links\": {\n \"sales_page_url\": \"<string>\",\n \"sales_page_absence_reason\": \"<string>\",\n \"page_released\": \"<string>\",\n \"without_sales_page\": true\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.ticto.com.br/api/v1/products/{product_hash}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Api-Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"category_id\": 500000,\n \"description\": \"<string>\",\n \"support_email\": \"jsmith@example.com\",\n \"support_phone\": \"11999999999\",\n \"soft_descriptor\": \"MEUPRODUTO\",\n \"image_stock\": \"<string>\",\n \"cover_picture\": \"<string>\",\n \"has_auto_affiliation\": false,\n \"allow_affiliation\": true,\n \"affiliate_percentage\": 40.5,\n \"first_click_percentage\": 60,\n \"last_click_percentage\": 40,\n \"affiliation_description\": \"<string>\",\n \"affiliation_terms\": \"<string>\",\n \"metadata\": {\n \"links\": {\n \"sales_page_url\": \"<string>\",\n \"sales_page_absence_reason\": \"<string>\",\n \"page_released\": \"<string>\",\n \"without_sales_page\": true\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"hash": "<string>",
"name": "<string>",
"category_id": 500000,
"description": "<string>",
"type": "course",
"support_email": "jsmith@example.com",
"support_phone": "11999999999",
"refund_deadline": 7,
"status": "draft",
"created_at": "2026-01-15 14:30:00",
"updated_at": "2026-01-15 14:30:00",
"soft_descriptor": "MEUPRODUTO",
"image_stock": "<string>",
"cover_picture": "<string>",
"is_active": true,
"has_auto_affiliation": true,
"allow_affiliation": true,
"affiliate_commission_type": "first",
"first_click_percentage": 60,
"last_click_percentage": 40,
"metadata": {
"links": {
"sales_page_url": "<string>",
"sales_page_absence_reason": "<string>",
"page_released": "<string>",
"without_sales_page": true
}
}
}Authorizations
Token de autenticação do cliente obtido via endpoint /auth
Path Parameters
Hash do produto
Body
Nome do produto.
3 - 191ID da categoria.
1 <= x <= 999999Descrição do produto.
3 - 1000Tipo do produto.
course, ebook, physical E-mail de suporte.
191Telefone de suporte (opcional).
20"11999999999"
Prazo de reembolso em dias.
7, 15, 30 7 <= x <= 30Descritor que aparece na fatura do cartão do comprador (apenas alfanumérico, até 13 caracteres).
13^[a-zA-Z0-9]+$"MEUPRODUTO"
Documento de garantia do produto.
- Obrigatório apenas para produtos do tipo 'physical'
- Formatos aceitos: PNG, JPG, JPEG
- Tamanho máximo: 10MB
- Para produtos físicos, enviar via multipart/form-data
URL da imagem de capa (opcional).
Status do produto.
draft, pre-approved, approved, pending, pending-correction, reproved Se permite afiliação automática para este produto.
Se permite afiliação (campo do produto).
Percentual de comissão do afiliado. Obrigatório quando allow_affiliation é true.
1 <= x <= 80Tipo de atribuição de comissão do afiliado.
single_click— comissão vai para um único afiliadomulti_click— comissão é dividida entre primeiro e último clique
single_click, multi_click Percentual de comissão atribuído ao afiliado do primeiro clique (multiclick).
Aceita até 2 casas decimais. Se informado sem last_click_percentage,
o complemento para 100% é calculado automaticamente.
0.01 <= x <= 99.9960
Percentual de comissão atribuído ao afiliado do último clique (multiclick).
Aceita até 2 casas decimais. Se informado sem first_click_percentage,
o complemento para 100% é calculado automaticamente.
A soma de first_click_percentage + last_click_percentage deve ser 100.
0.01 <= x <= 99.9940
Descrição do programa de afiliados. Obrigatório quando allow_affiliation é true.
50 - 1000Termos do programa de afiliados. Obrigatório quando allow_affiliation é true.
50 - 1000Metadados complementares do produto.
Show child attributes
Show child attributes
Response
Produto atualizado com sucesso
Objeto de retorno com os dados do produto.
Hash único do produto.
Nome do produto.
ID da categoria do produto.
1 <= x <= 999999Descrição do produto.
Tipo do produto.
course, ebook, physical E-mail de suporte do produto.
Telefone de suporte do produto.
20"11999999999"
Prazo para reembolso (em dias).
7, 15, 30 7 <= x <= 30Status do produto.
draft, pre-approved, approved, pending, pending-correction, reproved Data de criação (formato YYYY-MM-DD HH:mm:ss)
"2026-01-15 14:30:00"
Data de atualização (formato YYYY-MM-DD HH:mm:ss)
"2026-01-15 14:30:00"
Descritor que aparece na fatura do cartão do comprador.
13"MEUPRODUTO"
URL do documento de garantia do produto (obrigatório para produtos físicos).
URL da imagem de capa (opcional).
Indica se o produto está ativo.
Se permite afiliação automática para este produto.
Se permite afiliação (campo do produto).
Tipo de atribuição de comissão do afiliado (first = primeiro clique, last = último clique, multi = dividido).
first, last, multi Percentual de comissão do primeiro clique (multiclick).
60
Percentual de comissão do último clique (multiclick).
40
Metadados complementares do produto.
Show child attributes
Show child attributes