POST
https://api.myidvirtual.com
/
auth
/
signup
Registro de Usuário
curl --request POST \
  --url https://api.myidvirtual.com/auth/signup \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "<string>",
  "role": "<string>",
  "language": "<string>",
  "name": "<string>",
  "nickname": "<string>",
  "password": "<string>",
  "passwordConfirmation": "<string>",
  "cellphone": "<string>",
  "gender": "<string>",
  "birthday": "<string>",
  "mac_address": "<string>",
  "latitude": 123,
  "longitude": 123,
  "credits": 123,
  "master": "<string>",
  "sub_partner_id": "<string>",
  "yapi_id": "<string>",
  "avatar": "<string>",
  "notes": "<string>",
  "isAppManager": true,
  "first_recharge": true,
  "isSupplier": true,
  "creatorId": "<string>",
  "isTrial": true
}
'
{
  "user": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "[email protected]",
    "name": "João Silva",
    "nickname": "joao",
    "role": "CUSTOMER",
    "language": "pt-BR",
    "cellphone": "+5511999999999",
    "gender": "MASCULINO",
    "credits": 0,
    "status": true,
    "isAppManager": false,
    "createdAt": "2024-01-15T10:30:00.000Z",
    "customer": {
      "id": "456e7890-e89b-12d3-a456-426614174000",
      "isTrial": false,
      "exp_date": "2025-01-15T10:30:00.000Z",
      "createdAt": "2024-01-15T10:30:00.000Z"
    }
  },
  "message": "Usuário criado com sucesso"
}

Registro de Usuário

Endpoint para registro de novos usuários no sistema, com suporte a diferentes tipos de usuário e configurações específicas.

Autenticação

auth
string
CustomerAuthGuard - Token JWT opcional para associar criador

Parâmetros

Query Parameters

system
string
Especifica o sistema de origem (ex: “ios” para email de boas-vindas específico do iOS)

Headers

userId
string
ID do usuário criador (definido automaticamente se autenticado)

Request Body

email
string
required
Email válido do usuário (único no sistema)
role
string
required
Papel do usuário: ADMIN, CUSTOMER, RESALE, MASTER
language
string
required
Idioma do usuário (máximo 5 caracteres, ex: “pt-BR”)
name
string
Nome completo do usuário (máximo 200 caracteres)
nickname
string
Apelido do usuário (máximo 200 caracteres)
password
string
Senha do usuário (máximo 32 caracteres)
passwordConfirmation
string
Confirmação da senha (deve ser igual à senha)
cellphone
string
Número de telefone celular
gender
string
Gênero: MASCULINO ou FEMININO
birthday
string
Data de nascimento (formato ISO: YYYY-MM-DD)
mac_address
string
Endereço MAC do dispositivo
latitude
number
Coordenada de latitude
longitude
number
Coordenada de longitude
credits
number
Créditos iniciais do usuário
master
string
ID do usuário master (para hierarquia)
sub_partner_id
string
ID do sub-parceiro
yapi_id
string
ID da integração YAPI
avatar
string
URL do avatar do usuário
notes
string
Notas administrativas
isAppManager
boolean
Define se é gerente de aplicativo
first_recharge
boolean
Indica se já fez primeiro recarregamento
isSupplier
boolean
Define se é fornecedor
creatorId
string
ID do usuário que está criando (Customer specific)
isTrial
boolean
Define se é conta trial (Customer specific)

Responses

{
  "user": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "[email protected]",
    "name": "João Silva",
    "nickname": "joao",
    "role": "CUSTOMER",
    "language": "pt-BR",
    "cellphone": "+5511999999999",
    "gender": "MASCULINO",
    "credits": 0,
    "status": true,
    "isAppManager": false,
    "createdAt": "2024-01-15T10:30:00.000Z",
    "customer": {
      "id": "456e7890-e89b-12d3-a456-426614174000",
      "isTrial": false,
      "exp_date": "2025-01-15T10:30:00.000Z",
      "createdAt": "2024-01-15T10:30:00.000Z"
    }
  },
  "message": "Usuário criado com sucesso"
}

Exemplo de Requisição

curl --location --request POST 'http://localhost:3333/auth/signup' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token_opcional>' \
--data-raw '{
  "email": "[email protected]",
  "role": "CUSTOMER",
  "language": "pt-BR",
  "name": "João Silva",
  "nickname": "joao",
  "password": "minhasenha123",
  "passwordConfirmation": "minhasenha123",
  "cellphone": "+5511999999999",
  "gender": "MASCULINO"
}'

Tipos de Usuário

CUSTOMER (Cliente)

  • Usuário final do serviço VPN
  • Acesso limitado aos próprios recursos
  • Pode ser trial ou pago

RESALE (Revendedor)

  • Pode criar e gerenciar clientes
  • Acesso a painel de revenda
  • Comissões por vendas

MASTER (Master)

  • Gerencia revendedores
  • Acesso administrativo limitado
  • Hierarquia de usuários

ADMIN (Administrador)

  • Acesso completo ao sistema
  • Gerencia todos os recursos
  • Configurações globais

Funcionalidades Especiais

Email de Boas-vindas

Usuários registrados recebem email de boas-vindas automático:
  • Instruções de configuração
  • Links para download de apps

Sistema de Hierarquia

{
  "master": "id_do_master",
  "sub_partner_id": "id_do_parceiro"
}

Geolocalização

{
  "latitude": -23.5505199,
  "longitude": -46.6333094
}

Contas Trial

{
  "isTrial": true,
  "exp_date": "2024-02-15T10:30:00.000Z"
}

Validações

Email

  • Deve ser único no sistema
  • Formato de email válido
  • Confirmação automática opcional

Senha

  • Mínimo 6 caracteres (configurável)
  • Confirmação obrigatória
  • Hash automático (bcrypt)

Telefone

  • Formato internacional recomendado
  • Validação opcional por SMS

Workflows Automáticos

  1. Criação de Customer: Registro automático na tabela de clientes
  2. Email de Confirmação: Envio automático se configurado
  3. Créditos Iniciais: Atribuição automática se especificado
  4. Logs de Auditoria: Registro automático da ação
Senhas são automaticamente criptografadas. Nunca armazene senhas em texto plano.
Use o parâmetro system=ios para enviar email de boas-vindas específico para usuários iOS.

Próximos Passos

Após registro bem-sucedido:
  1. Confirme o email se necessário
  2. Configure perfil adicional
  3. Faça login para obter token
  4. Configure serviços VPN se for cliente
Usuários criados por administradores não precisam confirmar email automaticamente.