Guarde os códigos do campo delivered_codes — eles são únicos e não podem ser recuperados depois.
GET
Meus Dados
/api/reseller/me
Retorna seu perfil, saldo atual, tier e estatísticas de compras.
name— Seu nome
balance— Saldo atual
tier— Seu tier de revendedor
stats— Total gasto e número de compras
GET
Histórico de Compras
/api/reseller/purchases
Lista suas compras anteriores com paginação. Use ?page=1&limit=20 como parâmetros URL.
page— Página (padrão: 1)
limit— Itens por página (padrão: 20)
Código Pronto — Copie e Use
JavaScript (Node.js / Browser)
// configconst KEY = 'sua_chave_aqui';
const BASE = 'https://knthub.com.br';
const h = { 'xkey': KEY, 'Content-Type': 'application/json' };
// puxa estoque separando por tipoasync functiongetEstoque() {
const r = awaitfetch(`${BASE}/api/reseller/stock`, { headers: h });
const { success, products, message } = await r.json();
if (!success) throw new Error(message);
return {
api: products.filter(p => p.delivery_type === 'api'),
code: products.filter(p => p.delivery_type === 'code')
};
}
// envia presente (tipo api — vai direto pro jogador)async functionenviarPresente(prodId, jogadorId, qtd = 1, msg = '') {
const r = awaitfetch(`${BASE}/api/reseller/send-gift`, {
method: 'POST', headers: h,
body: JSON.stringify({
product_id: prodId,
player_id: jogadorId,
quantity: qtd,
gift_message: msg,
custom_key: `PED-${Date.now()}`
})
});
return await r.json();
}
// compra codigo (tipo code — retorna os codigos na resposta)async functioncomprarCodigo(prodId, qtd = 1) {
const r = awaitfetch(`${BASE}/api/reseller/send-gift`, {
method: 'POST', headers: h,
body: JSON.stringify({
product_id: prodId,
player_id: '0', // qualquer valor, so referencia
quantity: qtd,
custom_key: `COD-${Date.now()}`
})
});
const data = await r.json();
if (data.success) return data.purchase.delivered_codes;
throw new Error(data.message);
}
// exemplo de uso completo
(async () => {
const { api, code } = awaitgetEstoque();
// -- produtos API: envia direto pro jogador --if (api.length) {
console.log('Produtos API (envio direto):', api.map(p => p.name));
const res = awaitenviarPresente(api[0].id, '123456789');
console.log(res.success ? 'enviado pro jogador!' : res.message);
}
// -- produtos CODE: pega os codigos --if (code.length) {
console.log('Produtos Código:', code.map(p => p.name));
const codigos = awaitcomprarCodigo(code[0].id, 2);
console.log('Códigos recebidos:', codigos);
// ex: ["GC50-AB12-CD34-EF56", "GC50-GH78-IJ90-KL12"]
}
})();
Python (pip install requests)
import requests
from time import time
# config
KEY = 'sua_chave_aqui'
BASE = 'https://knthub.com.br'
H = {'xkey': KEY, 'Content-Type': 'application/json'}
defestoque():
r = requests.get(f'{BASE}/api/reseller/stock', headers=H)
data = r.json()
if not data['success']: raise Exception(data['message'])
prods = data['products']
return {
'api': [p for p in prods if p['delivery_type'] == 'api'],
'code': [p for p in prods if p['delivery_type'] == 'code']
}
# envia presente direto pro jogador (tipo api)defenviar_presente(prod_id, player, qtd=1, msg=''):
r = requests.post(f'{BASE}/api/reseller/send-gift', headers=H, json={
'product_id': prod_id, 'player_id': player,
'quantity': qtd, 'gift_message': msg,
'custom_key': f'PED-{int(time())}'
})
return r.json()
# compra codigos/chaves (tipo code)defcomprar_codigo(prod_id, qtd=1):
r = requests.post(f'{BASE}/api/reseller/send-gift', headers=H, json={
'product_id': prod_id, 'player_id': '0',
'quantity': qtd,
'custom_key': f'COD-{int(time())}'
})
data = r.json()
if data['success']: return data['purchase']['delivered_codes']
raise Exception(data['message'])
# exemplo completo
prods = estoque()
# lista tudoprint('=== Produtos API (envio direto) ===')
for p in prods['api']:
print(f" {p['name']} R${p['price']} ({p['stock']}x)")
print('=== Produtos Código ===')
for p in prods['code']:
print(f" {p['name']} R${p['price']} ({p['stock']}x)")
# envia passe pro jogadorif prods['api']:
res = enviar_presente(prods['api'][0]['id'], '123456789')
print('Enviado!'if res['success'] else res['message'])
# compra 2 gift cards e pega os codigosif prods['code']:
codigos = comprar_codigo(prods['code'][0]['id'], 2)
print('Códigos:', codigos)
# ex: ["GC50-AB12-CD34-EF56", "GC50-GH78-IJ90-KL12"]
Painel Administrativo
Gerencie produtos, configurações e vendas
Gerenciar Categorias
Gerenciar Produtos
Nenhum produto cadastrado
Gerenciar Usuários
ID
Nome/Email
Saldo
Status
Tier
Ações
Nenhum usuário encontrado
Gerenciar Telegram
Pendentes de Aprovação
Nenhum usuário pendente
Usuários Aprovados
Usuário
Telegram ID
Username
Saldo
Ações
Nenhum usuário com Telegram aprovado
Últimos Logs do Bot
Enviar Mensagem em Massa
Envie uma mensagem para todos que já usaram o bot do Telegram.
Suporta formatação Markdown do Telegram
Pré-visualização:
0 usuários receberão esta mensagem
Enviando...
Estoque da API
0
Diamantes Totais
0
Contas Ativas
0
Itens Disponíveis
--:--
Última Atualização
API Desconectada
Seller Key não configurada
ID
Item
Custo
Estoque
Status
Clique em "Atualizar Estoque" para verificar
Contas Conectadas
0 contas
Nenhuma conta encontrada
Configurações da Loja
Configurações da API
As 3 Seller Keys são configuradas no arquivo .env do servidor:
SELLER_KEY_1 - Key 1
SELLER_KEY_2 - Key 2
SELLER_KEY_3 - Key 3
Ao criar um produto, selecione qual key usar (1, 2 ou 3)
Redes Sociais
Link do grupo para suporte/novidades
Link de convite do servidor
Nome de usuário do Instagram
Configurações do Site
Cores do Site
Personalize as cores do site em tempo real. As mudanças são aplicadas para todos os usuários.
Cor de destaque do site (botões, links, badges)
Variação escura da cor principal (hover, bordas)
Cor secundária (detalhes, gradientes)
Fundo geral do site
Fundo dos cards e painéis
Preview
Header
Texto principal
Texto secundário
Configurações de Recarga
Valor mínimo para recarga/depósito
Valor máximo para recarga/depósito
Gateway de Pagamento
Selecione qual gateway de pagamento será usado no site