{"openapi":"3.1.0","info":{"title":"NATV Revenda API","description":"API para controlar programaticamente sua conta de revendedor NATV.\n\nPara autenticar solicitações, adicione o HTTP Header \"Authorization: Bearer {token}\"\n\nExemplo: \"Authorization: Bearer VgiSRjfoHTCVMsQb\"\n\nTodos os métodos têm uma restrição global de uma solicitação a cada 150 ms, alguns métodos têm restrições adicionais","version":"1.0.0"},"paths":{"/user":{"post":{"tags":["User","User"],"summary":"Createtest","description":"Cria um novo usuário de teste. Retorna o usuário recém-criado.\n\nO corpo da solicitação é opcional.\n\nO nome de usuário é opcional, o padrão é uma sequência numérica aleatória de 11 caracteres.\n\nOs minutos são opcionais, o padrão é 60.\n\nOs limites são 50 solicitações por 30s e 500 solicitações por dia.","operationId":"createTest_user_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CreateTestUserRequest"},{"type":"null"}],"title":"Req"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"exampletestuser","password":"80386332005","max_connections":1,"exp_date":1752530845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1234}}}}},"505":{"description":"HTTP Version Not Supported","content":{"application/json":{"example":{"detail":"Usuario já existe!"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"example":{"detail":"Too many requests"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/activation":{"post":{"tags":["User","User"],"summary":"Activateuser","description":"Ativa (renova) um usuário por um determinado número de meses.\n\nÉ necessário fornecer `username` ou `user_id`.\n\nOs meses são opcionais, o padrão é 1. Pode ser 1, 2, 3, 4, 5, 6 ou 12.","operationId":"activateUser_user_activation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateUserRequest"}}},"required":true},"responses":{"200":{"description":"Usuário ativado com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"exampletestuser","password":"80386332005","max_connections":1,"exp_date":1784066845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1233}}}}},"400":{"description":"É necessário fornecer o nome de usuário ou o user_id.","content":{"application/json":{"example":{"detail":"É necessário fornecer o nome de usuário ou o user_id."}}}},"402":{"description":"Créditos insuficientes.","content":{"application/json":{"example":{"detail":"Você não tem creditos suficientes!"}}}},"404":{"description":"Usuário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"500":{"description":"Erro interno do servidor durante a ativação.","content":{"application/json":{"example":{"detail":"Falha ao ativar o usuário."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/search":{"post":{"tags":["User","User"],"summary":"Searchuser","description":"Busca por usuários de um revendedor pelo nome de usuário.\n\nO corpo da solicitação é opcional. Se nenhum nome de usuário for fornecido, todos os usuários do revendedor serão retornados.\n\nRetorna uma lista de usuários que correspondem ao critério de busca (pode ser vazia).","operationId":"searchUser_user_search_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SearchUserRequest"},{"type":"null"}],"title":"Req"}}}},"responses":{"200":{"description":"Retorna uma lista de usuários que correspondem à busca. A lista pode estar vazia.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":"array","title":"Response Searchuser User Search Post"},"example":[{"id":4240216,"username":"exampletestuser","password":"80386332005","max_connections":1,"exp_date":1752530845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1234}}]}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Erro ao buscar usuário"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/connections":{"post":{"tags":["User","User"],"summary":"Setconnections","description":"Define o número de conexões para um usuário.\n\nAumentar as conexões custa 1 crédito por cada 30 dias restantes na assinatura do usuário, por conexão adicional. \nDiminuir não reembolsa créditos.","operationId":"setConnections_user_connections_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetConnectionsRequest"}}},"required":true},"responses":{"200":{"description":"Conexões do usuário atualizadas com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"exampletestuser","password":"80386332005","max_connections":3,"exp_date":1784066845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1230}}}}},"402":{"description":"Créditos insuficientes.","content":{"application/json":{"example":{"detail":"Você não tem creditos suficientes para adicionar conexões!"}}}},"404":{"description":"Usuário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"409":{"description":"Número de conexões já está definido para este valor.","content":{"application/json":{"example":{"detail":"O usuário já possui este número de conexões."}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Falha ao definir conexões."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/extend_test":{"post":{"tags":["User","User"],"summary":"Extendtest","description":"Estende o tempo de teste de um usuário de teste.\n\nApenas usuários de teste (trials) podem ser estendidos, e apenas uma vez se a expiração for menor que 6 horas após a criação.","operationId":"extendTest_user_extend_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtendTestUserRequest"}}},"required":true},"responses":{"200":{"description":"Teste do usuário estendido com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"exampletestuser","password":"80386332005","max_connections":1,"exp_date":1784066845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1234}}}}},"400":{"description":"Usuário não é um usuário de teste ou não pode ser estendido.","content":{"application/json":{"example":{"detail":"O usuário não é um usuário de teste!"}}}},"404":{"description":"Usuário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Falha ao estender teste."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/username":{"post":{"tags":["User","User"],"summary":"Changeusername","description":"Altera o nome de usuário (login) de um cliente final pertencente ao revendedor autenticado.\n\nLimites: 50 solicitações por 30s e 500 solicitações por dia.","operationId":"changeUsername_user_username_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeEndUserUsernameRequest"}}},"required":true},"responses":{"200":{"description":"Nome de usuário alterado com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"NovoUser1234","password":"80386332005","max_connections":1,"exp_date":1764066845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1234}}}}},"400":{"description":"Nome de usuário inválido ou igual à senha.","content":{"application/json":{"example":{"detail":"Usuario muito curto, deve ter 8 caracteres!"}}}},"404":{"description":"Usuário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"409":{"description":"Nome de usuário já existe.","content":{"application/json":{"example":{"detail":"Usuario já existe!"}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Falha ao alterar nome de usuário."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/password":{"post":{"tags":["User","User"],"summary":"Repassworduser","description":"Gera uma nova senha aleatória para um cliente final pertencente ao revendedor autenticado.\n\nA nova senha é gerada automaticamente pelo sistema e retornada nos dados do usuário.\n\nLimites: 50 solicitações por 30s e 500 solicitações por dia.","operationId":"repasswordUser_user_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepasswordEndUserRequest"}}},"required":true},"responses":{"200":{"description":"Senha do usuário redefinida com sucesso com uma nova senha aleatória.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"exampletestuser","password":"91827364501","max_connections":1,"exp_date":1764066845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1234}}}}},"404":{"description":"Usuário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Falha ao redefinir senha do usuário."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/block":{"post":{"tags":["User","User"],"summary":"Blockuser","description":"Bloqueia o acesso de um cliente final pertencente ao revendedor autenticado.\n\nEncerra conexões ativas do usuário.\n\nLimites: 50 solicitações por 30s e 500 solicitações por dia.","operationId":"blockUser_user_block_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockEndUserRequest"}}},"required":true},"responses":{"200":{"description":"Usuário bloqueado com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"exampletestuser","password":"80386332005","max_connections":1,"exp_date":1764066845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1234}}}}},"404":{"description":"Usuário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Falha ao bloquear usuário."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/user/unblock":{"post":{"tags":["User","User"],"summary":"Unblockuser","description":"Desbloqueia o acesso de um cliente final pertencente ao revendedor autenticado.\n\nLimites: 50 solicitações por 30s e 500 solicitações por dia.","operationId":"unblockUser_user_unblock_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnblockEndUserRequest"}}},"required":true},"responses":{"200":{"description":"Usuário desbloqueado com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"},"example":{"id":4240216,"username":"exampletestuser","password":"80386332005","max_connections":1,"exp_date":1764066845,"domain":"natv.pm","notes":"Some user note","asaas_pix":"000502272...ASA64055B9A","owner":{"id":123421,"username":"revenda123","credits":1234}}}}},"404":{"description":"Usuário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Falha ao desbloquear usuário."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/report/allusers":{"get":{"tags":["Report"],"summary":"Getallusers","description":"Gera um relatório de todos os usuários vinculados ao revendedor autenticado. Os limites são 1 solicitações por 60s","operationId":"getAllUsers_report_allusers_get","responses":{"200":{"description":"Relatório de todos os usuários gerado com sucesso.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserReportItem"},"type":"array","title":"Response Getallusers Report Allusers Get"}}}},"500":{"description":"Erro interno ao gerar o relatório."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/report/onlineusers":{"get":{"tags":["Report"],"summary":"Getonlineusers","description":"Gera um relatório de usuários online vinculados ao revendedor autenticado. Os limites são 1 solicitações por 60s","operationId":"getOnlineUsers_report_onlineusers_get","responses":{"200":{"description":"Relatório de usuários online gerado com sucesso.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OnlineUserReportItem"},"type":"array","title":"Response Getonlineusers Report Onlineusers Get"}}}},"500":{"description":"Erro interno ao gerar o relatório."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/report/actionlog":{"get":{"tags":["Report"],"summary":"Getactionlogself","description":"Gera o log de ações (histórico de créditos) do revendedor autenticado. Os limites são 1 solicitações por 60s","operationId":"getActionLogSelf_report_actionlog_get","responses":{"200":{"description":"Log de ações gerado com sucesso.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ActionLogItem"},"type":"array","title":"Response Getactionlogself Report Actionlog Get"}}}},"500":{"description":"Erro interno ao gerar o relatório."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Report"],"summary":"Getactionlog","description":"Gera o log de ações (histórico de créditos) de um revendedor. Os limites são 1 solicitações por 60s","operationId":"getActionLog_report_actionlog_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ReportRequest"},{"type":"null"}],"title":"Req"}}}},"responses":{"200":{"description":"Log de ações gerado com sucesso.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ActionLogItem"},"type":"array","title":"Response Getactionlog Report Actionlog Post"}}}},"404":{"description":"Revendedor não encontrado."},"500":{"description":"Erro interno ao gerar o relatório."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/report/subresellers":{"get":{"tags":["Report"],"summary":"Getsubresellers","description":"Gera um relatório de sub-revendedores vinculados ao revendedor autenticado. Os limites são 1 solicitações por 60s","operationId":"getSubResellers_report_subresellers_get","responses":{"200":{"description":"Relatório de sub-revendedores gerado com sucesso.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SubResellerReportItem"},"type":"array","title":"Response Getsubresellers Report Subresellers Get"}}}},"500":{"description":"Erro interno ao gerar o relatório."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/report/extrato":{"get":{"tags":["Report"],"summary":"Getextrato","description":"Gera o extrato detalhado de pagamentos do revendedor autenticado. Os limites são 1 solicitações por 60s","operationId":"getExtrato_report_extrato_get","responses":{"200":{"description":"Extrato de pagamentos gerado com sucesso.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ExtratoReportItem"},"type":"array","title":"Response Getextrato Report Extrato Get"}}}},"500":{"description":"Erro interno ao gerar o relatório."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/reseller/me":{"get":{"tags":["Reseller","Reseller"],"summary":"Getresellerme","description":"Retorna os dados cadastrais, saldo e estatísticas do revendedor autenticado.\n\nApenas o próprio revendedor tem acesso ao seu domínio configurado.\n\nLimites: 50 solicitações por 30s e 500 solicitações por dia.","operationId":"getResellerMe_reseller_me_get","responses":{"200":{"description":"Dados do revendedor autenticado retornados com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResellerMeResponse"},"example":{"id":123421,"username":"minharevenda","credits":150.0,"status":1,"date_registered":1728085017,"domain":"natv.pm","user_count":25,"active_user_count":20,"reg_user_count":3}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Erro ao obter dados do revendedor."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/reseller/master":{"get":{"tags":["Reseller","Reseller"],"summary":"Getresellermaster","description":"Retorna dados sobre o master do revendedor autenticado (ID, nome de usuário, data de criação e status).\n\nLimites: 50 solicitações por 30s e 500 solicitações por dia.","operationId":"getResellerMaster_reseller_master_get","responses":{"200":{"description":"Dados do master retornados com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MasterResellerResponse"},"example":{"id":1001,"username":"master123","status":1,"date_registered":1728085017}}}},"404":{"description":"Revendedor não possui master.","content":{"application/json":{"example":{"detail":"Revendedor não possui master."}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Erro ao obter dados do master."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/reseller/subreseller/search":{"post":{"tags":["Reseller","Reseller"],"summary":"Searchsubresellers","description":"Busca apenas os sub-revendedores diretos do revendedor autenticado.\n\nO corpo da solicitação é opcional. Se nenhum nome de usuário for informado, todas as sub-revendas diretas serão retornadas.\n\nLimites: 50 solicitações por 30s e 500 solicitações por dia.","operationId":"searchSubresellers_reseller_subreseller_search_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SearchSubresellerRequest"},{"type":"null"}],"title":"Req"}}}},"responses":{"200":{"description":"Retorna uma lista de sub-revendedores diretos que correspondem à busca.","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SubresellerItem"},"type":"array","title":"Response Searchsubresellers Reseller Subreseller Search Post"},"example":[{"id":123456,"username":"subrevenda123","credits":25.0,"status":1,"date_registered":1728085017,"user_count":15,"active_user_count":12,"reg_user_count":2}]}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Erro ao buscar sub-revendedores."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/reseller/credits":{"post":{"tags":["Reseller","Reseller"],"summary":"Transfercredits","description":"Transfere créditos do revendedor autenticado para o seu master ou para uma de suas sub-revendas diretas.\n\nRegras de validação:\n\n- Mínimo de 4 créditos se o destinatário tiver exatamente 1 crédito;\n\n- Mínimo de 5 créditos nos demais casos.\n\nLimites: 3 solicitações por 5s e 10 solicitações por 60s.","operationId":"transferCredits_reseller_credits_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCreditsRequest"}}},"required":true},"responses":{"200":{"description":"Créditos transferidos com sucesso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferCreditsResponse"},"example":{"caller_id":123421,"recipient_id":123456,"recipient_username":"subrevenda123","amount_sent":10,"caller_credits":140.0,"recipient_credits":35.0}}}},"400":{"description":"Valor de créditos inválido ou regra violada.","content":{"application/json":{"example":{"detail":"Você não pode enviar menos que 5 créditos!"}}}},"402":{"description":"Créditos insuficientes.","content":{"application/json":{"example":{"detail":"Você não tem creditos suficientes!"}}}},"404":{"description":"Destinatário não encontrado.","content":{"application/json":{"example":{"detail":"Usuário não encontrado!"}}}},"500":{"description":"Erro interno do servidor.","content":{"application/json":{"example":{"detail":"Falha ao transferir créditos."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/test":{"get":{"tags":["Test"],"summary":"Test","description":"Usado para fins de teste. Retornará \"Works!\" se tudo funcionar conforme o esperado.","operationId":"test_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","enum":["Works!"],"const":"Works!","title":"Response Test Test Get"}}}}}}}},"components":{"schemas":{"ActionLogItem":{"properties":{"a":{"type":"string","title":"A","description":"Descrição detalhada da ação ou alteração realizada no sistema."},"d":{"type":"string","title":"D","description":"Data e hora em que a ação foi registrada."},"b":{"type":"string","title":"B","description":"Saldo de créditos do revendedor atualizado logo após a execução da ação."}},"type":"object","required":["a","d","b"],"title":"ActionLogItem"},"ActivateUserRequest":{"properties":{"username":{"anyOf":[{"type":"string","maxLength":48,"minLength":8},{"type":"null"}],"title":"Username","example":"Testuser1234"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id","example":4240216},"months":{"type":"integer","enum":[1,2,3,4,5,6,12],"title":"Months","default":1,"example":1}},"type":"object","title":"ActivateUserRequest"},"BlockEndUserRequest":{"properties":{"username":{"type":"string","maxLength":48,"minLength":8,"title":"Username","description":"Nome de usuário do cliente a ser bloqueado.","example":"Testuser1234"}},"type":"object","required":["username"],"title":"BlockEndUserRequest"},"ChangeEndUserUsernameRequest":{"properties":{"username":{"type":"string","maxLength":48,"minLength":8,"title":"Username","description":"Nome de usuário atual do cliente.","example":"Testuser1234"},"new_username":{"type":"string","maxLength":48,"minLength":8,"title":"New Username","description":"Novo nome de usuário para o cliente.","example":"NovoUser1234"}},"type":"object","required":["username","new_username"],"title":"ChangeEndUserUsernameRequest"},"CreateTestUserRequest":{"properties":{"username":{"anyOf":[{"type":"string","maxLength":48,"minLength":8},{"type":"null"}],"title":"Username","example":"Testuser1234"},"minutes":{"anyOf":[{"type":"string","enum":["15","30","60","120","180","240","300","360"]},{"type":"null"}],"title":"Minutes","default":"60","example":60}},"type":"object","title":"CreateTestUserRequest"},"ExtendTestUserRequest":{"properties":{"username":{"type":"string","maxLength":48,"minLength":8,"title":"Username","example":"Testuser1234"}},"type":"object","required":["username"],"title":"ExtendTestUserRequest"},"ExtratoReportItem":{"properties":{"c":{"type":"string","title":"C","description":"Data e hora em que a transação ou pagamento foi criado."},"v":{"type":"string","title":"V","description":"Valor formatado do pagamento recebido (ex: 'R$ 40')."},"g":{"type":"string","title":"G","description":"Nome do gateway de pagamento que intermediou a transação (ex: 'asaas', 'woovi')."},"i":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"I","description":"Documento identificador do pagador (geralmente o CPF)."},"n":{"type":"string","title":"N","description":"Nome completo do pagador da transação."}},"type":"object","required":["c","v","g","i","n"],"title":"ExtratoReportItem"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MasterResellerResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"ID da conta do revendedor master."},"username":{"type":"string","title":"Username","description":"Nome de usuário do master."},"status":{"type":"integer","title":"Status","description":"Status da conta do master (1 = Ativo, 0 = Bloqueado)."},"date_registered":{"type":"integer","title":"Date Registered","description":"Timestamp Unix da data de cadastro do master."}},"type":"object","required":["id","username","status","date_registered"],"title":"MasterResellerResponse"},"OnlineUserReportItem":{"properties":{"u":{"type":"string","title":"U","description":"Nome de usuário (login) do cliente atualmente online."},"t":{"type":"string","title":"T","description":"Indica se a conta atual é de teste (ex: 'Não', 'Sim')."},"r":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"R","description":"Nome de usuário do revendedor responsável por este cliente."},"s":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S","description":"Canal, filme ou transmissão que o usuário está assistindo no momento."},"e":{"type":"string","title":"E","description":"Tempo restante de validade do acesso do cliente formatted (ex: '16 dias 1h 1min')."},"o":{"type":"string","title":"O","description":"Tempo total em que a sessão atual está ativa e online."}},"type":"object","required":["u","t","r","s","e","o"],"title":"OnlineUserReportItem"},"RepasswordEndUserRequest":{"properties":{"username":{"type":"string","maxLength":48,"minLength":8,"title":"Username","description":"Nome de usuário do cliente que terá a senha redefinida.","example":"Testuser1234"}},"type":"object","required":["username"],"title":"RepasswordEndUserRequest"},"ReportRequest":{"properties":{"username":{"anyOf":[{"type":"string","maxLength":48},{"type":"null"}],"title":"Username","example":"subrevenda123"}},"type":"object","title":"ReportRequest"},"ResellerMeResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"ID da sua conta de revenda."},"username":{"type":"string","title":"Username","description":"Nome de usuário da sua conta de revenda."},"credits":{"type":"number","title":"Credits","description":"Saldo atual de créditos disponíveis."},"status":{"type":"integer","title":"Status","description":"Status da conta (1 = Ativo, 0 = Bloqueado)."},"date_registered":{"type":"integer","title":"Date Registered","description":"Timestamp Unix da data de cadastro."},"domain":{"type":"string","title":"Domain","description":"Domínio configurado para sua revenda."},"user_count":{"type":"integer","title":"User Count","description":"Total de clientes finais cadastrados."},"active_user_count":{"type":"integer","title":"Active User Count","description":"Total de clientes finais ativos e não expirados."},"reg_user_count":{"type":"integer","title":"Reg User Count","description":"Total de sub-revendedores diretos abaixo de você."}},"type":"object","required":["id","username","credits","status","date_registered","domain","user_count","active_user_count","reg_user_count"],"title":"ResellerMeResponse"},"SearchSubresellerRequest":{"properties":{"username":{"anyOf":[{"type":"string","maxLength":48},{"type":"null"}],"title":"Username","description":"Nome de usuário ou parte dele para filtrar sub-revendedores diretos.","example":"subrevenda123"}},"type":"object","title":"SearchSubresellerRequest"},"SearchUserRequest":{"properties":{"username":{"anyOf":[{"type":"string","maxLength":48},{"type":"null"}],"title":"Username","example":"Testuser"}},"type":"object","title":"SearchUserRequest"},"SetConnectionsRequest":{"properties":{"username":{"type":"string","maxLength":48,"minLength":8,"title":"Username","example":"Testuser1234"},"connections":{"type":"integer","exclusiveMinimum":0.0,"title":"Connections","description":"Número de conexões para definir"}},"type":"object","required":["username","connections"],"title":"SetConnectionsRequest"},"SubResellerReportItem":{"properties":{"i":{"type":"integer","title":"I","description":"Identificador único da sub-revenda."},"u":{"type":"string","title":"U","description":"Nome de usuário (login) da sub-revenda."},"b":{"type":"number","title":"B","description":"Saldo atual de créditos disponíveis da sub-revenda."},"l":{"type":"string","title":"L","description":"Dias decorridos desde a última compra de créditos realizada por esta sub-revenda."},"a":{"type":"integer","title":"A","description":"Total de clientes ativos gerenciados por esta sub-revenda."},"w":{"type":"string","title":"W","description":"Indica se a sub-revenda está diretamente abaixo de você no organograma ('1' para Sim, '0' para Não)."},"d":{"type":"integer","title":"D","description":"Total de sub-revendas de nível 1 associadas a este sub-revendedor."},"s":{"type":"integer","title":"S","description":"Total recursivo de sub-revendas descendentes deste sub-revendedor."},"3":{"type":"integer","title":"3","description":"Quantidade total de créditos consumidos ou comprados nos últimos 30 dias."},"6":{"type":"integer","title":"6","description":"Quantidade total de créditos consumidos ou comprados nos últimos 60 dias."},"e":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"E","description":"Endereço de e-mail de contato cadastrado para a sub-revenda."}},"type":"object","required":["i","u","b","l","a","w","d","s","3","6"],"title":"SubResellerReportItem"},"SubresellerItem":{"properties":{"id":{"type":"integer","title":"Id","description":"ID da conta do sub-revendedor."},"username":{"type":"string","title":"Username","description":"Nome de usuário do sub-revendedor."},"credits":{"type":"number","title":"Credits","description":"Saldo atual de créditos do sub-revendedor."},"status":{"type":"integer","title":"Status","description":"Status da conta (1 = Ativo, 0 = Bloqueado)."},"date_registered":{"type":"integer","title":"Date Registered","description":"Timestamp Unix da data de cadastro."},"user_count":{"type":"integer","title":"User Count","description":"Total de clientes finais cadastrados pelo sub-revendedor."},"active_user_count":{"type":"integer","title":"Active User Count","description":"Total de clientes finais ativos e não expirados do sub-revendedor."},"reg_user_count":{"type":"integer","title":"Reg User Count","description":"Total de sub-revendedores diretos abaixo deste sub-revendedor."}},"type":"object","required":["id","username","credits","status","date_registered","user_count","active_user_count","reg_user_count"],"title":"SubresellerItem"},"TransferCreditsRequest":{"properties":{"username":{"type":"string","maxLength":48,"minLength":8,"title":"Username","description":"Nome de usuário do destinatário (master ou sub-revenda direta).","example":"subrevenda123"},"amount":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount","description":"Quantidade de créditos a serem transferidos.","example":10}},"type":"object","required":["username","amount"],"title":"TransferCreditsRequest"},"TransferCreditsResponse":{"properties":{"caller_id":{"type":"integer","title":"Caller Id","description":"ID do revendedor que enviou os créditos."},"recipient_id":{"type":"integer","title":"Recipient Id","description":"ID do revendedor que recebeu os créditos."},"recipient_username":{"type":"string","title":"Recipient Username","description":"Nome de usuário do destinatário que recebeu os créditos."},"amount_sent":{"type":"integer","title":"Amount Sent","description":"Quantidade de créditos transferidos."},"caller_credits":{"type":"number","title":"Caller Credits","description":"Novo saldo de créditos do remetente."},"recipient_credits":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Recipient Credits","description":"Novo saldo de créditos do destinatário."}},"type":"object","required":["caller_id","recipient_id","recipient_username","amount_sent","caller_credits"],"title":"TransferCreditsResponse"},"UnblockEndUserRequest":{"properties":{"username":{"type":"string","maxLength":48,"minLength":8,"title":"Username","description":"Nome de usuário do cliente a ser desbloqueado.","example":"Testuser1234"}},"type":"object","required":["username"],"title":"UnblockEndUserRequest"},"User":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"max_connections":{"type":"integer","title":"Max Connections"},"exp_date":{"type":"integer","title":"Exp Date"},"enabled":{"type":"integer","title":"Enabled"},"domain":{"type":"string","title":"Domain"},"notes":{"type":"string","title":"Notes"},"asaas_pix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asaas Pix"},"owner":{"$ref":"#/components/schemas/UserOwner"}},"type":"object","required":["id","username","password","max_connections","exp_date","enabled","domain","notes","asaas_pix","owner"],"title":"User"},"UserOwner":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"type":"string","title":"Username"},"credits":{"type":"number","title":"Credits"}},"type":"object","required":["id","username","credits"],"title":"UserOwner"},"UserReportItem":{"properties":{"i":{"type":"string","title":"I","description":"ID único do usuário no sistema."},"u":{"type":"string","title":"U","description":"Nome de usuário (login) do cliente."},"p":{"type":"string","title":"P","description":"Senha de acesso do cliente."},"n":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"N","description":"Observações gerais associadas ao usuário."},"d":{"type":"string","title":"D","description":"Data e hora em que o usuário foi registrado."},"l":{"type":"string","title":"L","description":"Data e hora do último acesso ou atividade (exibe 'Nunca' se não houver registro)."},"e":{"type":"string","title":"E","description":"Data e hora em que o acesso do usuário expira."},"r":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"R","description":"Nome de usuário do revendedor responsável por este cliente."},"c":{"type":"string","title":"C","description":"Quantidade total de conexões simultâneas permitidas."},"o":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"O","description":"Observações específicas que o revendedor adicionou para este cliente."},"t":{"type":"string","title":"T","description":"Status atual do usuário (ex: 'Ativo', 'Inativo')."},"b":{"type":"string","title":"B","description":"Indicador se o cliente está bloqueado ou não (ex: 'No', 'Yes')."},"x":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X","description":"Código ou chave PIX relacionada a pagamentos deste usuário."}},"type":"object","required":["i","u","p","d","l","e","r","c","t","b"],"title":"UserReportItem"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}