Skip to content

Usuários e Autenticação ​

Os usuários da loja (contexto user) são os lojistas e administradores que gerenciam o catálogo, os clientes e as configurações da loja. Eles são completamente isolados dos usuários do sistema principal e dos clientes (customers) da loja.

Todos os endpoints desta página ficam sob o prefixo /v1/shop/user e exigem o header X-Shop-Id. Os protegidos exigem também Authorization: Bearer {token}.


Autenticação ​

Login [public] ​

Autentica um usuário da loja e retorna um token de acesso do tipo bearer, válido por 30 dias.

http
POST /v1/shop/user/public/login

Payload (Body) ​

AtributoTipoObrigatórioDescrição
emailstringSimE-mail do usuário (deve estar cadastrado na loja).
passwordstringSimSenha do usuário.

Exemplo de Requisição ​

bash
curl -X POST "https://api.us.basis.tavares.in/v1/shop/user/public/login" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "lojista@exemplo.com",
    "password": "SenhaForte@123"
  }'

Respostas ​

200 OK

Retorna o token de acesso. Use-o no header Authorization: Bearer {token}.

json
{
  "type": "bearer",
  "name": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
  "token": "{token}",
  "abilities": ["*"],
  "lastUsedAt": null,
  "expiresAt": "2026-08-23T21:30:47.241Z"
}

422 Unprocessable Entity

Credenciais inválidas ou usuário não encontrado.

json
{
  "errors": [
    {
      "message": "Email/Senha inválida"
    }
  ]
}

Logout ​

Invalida o token de acesso atual do usuário autenticado.

http
POST /v1/shop/user/users/logout

Exemplo de Requisição ​

bash
curl -X POST "https://api.us.basis.tavares.in/v1/shop/user/users/logout" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer {token}"

Respostas ​

204 No Content

Sessão encerrada com sucesso.

Esqueci a Senha [public] ​

Inicia o fluxo de recuperação de senha. Um código de redefinição é gerado e enviado por e-mail (quando há um servidor SMTP configurado no Workspace).

http
POST /v1/shop/user/public/forgot-password

Payload (Body) ​

AtributoTipoObrigatórioDescrição
emailstringSimE-mail cadastrado na loja.

Exemplo de Requisição ​

bash
curl -X POST "https://api.us.basis.tavares.in/v1/shop/user/public/forgot-password" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "lojista@exemplo.com"
  }'

Respostas ​

201 Created

Código de redefinição gerado com sucesso.

422 Unprocessable Entity

E-mail não encontrado na loja.

json
{
  "errors": [
    {
      "message": "Email inválido",
      "rule": "database.exists",
      "field": "email"
    }
  ]
}

Redefinir Senha [public] ​

Conclui a recuperação de senha usando o código recebido por e-mail.

http
PATCH /v1/shop/user/public/reset-password

Payload (Body) ​

AtributoTipoObrigatórioDescrição
emailstringSimE-mail cadastrado na loja.
codestringSimCódigo de redefinição recebido por e-mail (máx. 20 caracteres).
passwordstringSimNova senha (mín. 8, máx. 32 caracteres).

Exemplo de Requisição ​

bash
curl -X PATCH "https://api.us.basis.tavares.in/v1/shop/user/public/reset-password" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "lojista@exemplo.com",
    "code": "a1b2c3d",
    "password": "SenhaForte@123"
  }'

Respostas ​

204 No Content

Senha redefinida com sucesso.

422 Unprocessable Entity

Código inválido ou e-mail não encontrado.


Conta do Usuário Autenticado ​

Minha Conta ​

Retorna os dados do usuário autenticado pelo token.

http
GET /v1/shop/user/users/account

Respostas ​

200 OK

Retorna os dados da conta autenticada.

json
{
  "id": "8",
  "hash": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
  "shopImageId": null,
  "firstName": "Maria",
  "lastName": "Silva",
  "email": "lojista@exemplo.com",
  "createdAt": "2026-06-04T14:25:49.192+00:00",
  "updatedAt": "2026-06-04T19:25:17.610+00:00",
  "shopImage": null
}

Atualizar Minha Conta ​

Atualiza os dados do usuário autenticado pelo token.

http
PUT /v1/shop/user/users/update-account

Payload (Body) ​

AtributoTipoObrigatórioDescrição
firstNamestringSimNome do usuário (máx. 100 caracteres).
lastNamestringSimSobrenome do usuário (máx. 100 caracteres).
emailstringSimE-mail único na loja (máx. 250 caracteres).
shopImageIdnumberNãoID da imagem de perfil (deve pertencer à loja). Aceita null.

Exemplo de Requisição ​

bash
curl -X PUT "https://api.us.basis.tavares.in/v1/shop/user/users/update-account" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Maria",
    "lastName": "Silva",
    "email": "lojista@exemplo.com",
    "shopImageId": null
  }'

Respostas ​

204 No Content

Conta atualizada com sucesso.

422 Unprocessable Entity

Erro de validação nos campos enviados (ex.: e-mail já em uso por outro usuário da loja).

Alterar Senha ​

Altera a senha do usuário autenticado.

http
PATCH /v1/shop/user/users/change-password

Payload (Body) ​

AtributoTipoObrigatórioDescrição
passwordstringSimNova senha (mín. 8, máx. 32 caracteres).

Exemplo de Requisição ​

bash
curl -X PATCH "https://api.us.basis.tavares.in/v1/shop/user/users/change-password" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "password": "SenhaForte@123"
  }'

Respostas ​

204 No Content

Senha alterada com sucesso.


Gerenciamento de Usuários ​

Listar Usuários ​

Retorna uma lista paginada dos usuários da loja.

http
GET /v1/shop/user/users

Parâmetros de Query ​

NomeTipoObrigatórioDescrição
pagenumberNãoO número da página (padrão: 1).
perPagenumberNãoItens por página (padrão: 25, máx: 100).
searchstringNãoBusca por termo no nome ou e-mail (máx. 150 caracteres).
orderByenumNãoOrdena por id, firstName, email ou createdAt.
orderDirectionenumNãoDireção da ordenação: asc ou desc.

Exemplo de Requisição ​

bash
curl -X GET "https://api.us.basis.tavares.in/v1/shop/user/users?page=1&perPage=25" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer {token}" \
  -H "Accept: application/json"

Respostas ​

200 OK

Retorna um objeto de paginação com a lista de usuários.

json
{
  "meta": {
    "currentPage": 1,
    "perPage": 25
  },
  "data": [
    {
      "id": "12",
      "shopImageId": "2",
      "firstName": "Maria",
      "lastName": "Silva",
      "email": "lojista@exemplo.com",
      "createdAt": "2026-06-04T18:38:04.173+00:00",
      "updatedAt": "2026-06-23T23:58:11.392+00:00",
      "hash": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
      "shopImage": {
        "id": "2",
        "name": "avatar.jpg",
        "uri": "https://cdn.exemplo.com/images/avatar.jpg"
      }
    },
    {
      "id": "10",
      "shopImageId": null,
      "firstName": "João",
      "lastName": "Souza",
      "email": "usuario@exemplo.com",
      "createdAt": "2026-06-04T18:36:10.351+00:00",
      "updatedAt": "2026-06-04T18:36:10.351+00:00",
      "hash": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
      "shopImage": null
    }
  ]
}

Listar Usuários (Seleção) ​

Retorna uma lista simplificada no formato label / value, ideal para componentes de seleção.

http
GET /v1/shop/user/users/list

Respostas ​

200 OK

Retorna a lista simplificada de usuários.

json
[
  {
    "label": "lojista@exemplo.com",
    "value": "8"
  },
  {
    "label": "usuario@exemplo.com",
    "value": "10"
  }
]

Criar Usuário ​

Cadastra um novo usuário administrador na loja.

http
POST /v1/shop/user/users

Payload (Body) ​

AtributoTipoObrigatórioDescrição
firstNamestringSimNome (máx. 100 caracteres).
lastNamestringSimSobrenome (máx. 100 caracteres).
emailstringSimE-mail único na loja (máx. 250 caracteres).
passwordstringSimSenha (mín. 8, máx. 32 caracteres).
shopImageIdnumberNãoID de uma imagem da loja para o avatar. Aceita null.

Exemplo de Requisição ​

bash
curl -X POST "https://api.us.basis.tavares.in/v1/shop/user/users" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "shopImageId": null,
    "firstName": "Maria",
    "lastName": "Silva",
    "email": "usuario@exemplo.com",
    "password": "SenhaForte@123"
  }'

Respostas ​

201 Created

Retorna o ID do usuário criado.

json
{
  "id": 13
}

422 Unprocessable Entity

Erro de validação nos campos enviados.

json
{
  "errors": [
    {
      "message": "Email já cadastrado",
      "rule": "database.unique",
      "field": "email"
    }
  ]
}

Obter Usuário por ID ​

Recupera os detalhes de um usuário específico.

http
GET /v1/shop/user/users/:id

Parâmetros de Rota ​

NomeTipoObrigatórioDescrição
idnumberSimO ID do usuário.

Respostas ​

200 OK

Retorna os dados do usuário.

json
{
  "id": "12",
  "hash": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
  "shopImageId": "2",
  "firstName": "Maria",
  "lastName": "Silva",
  "email": "lojista@exemplo.com",
  "createdAt": "2026-06-04T18:38:04.173+00:00",
  "updatedAt": "2026-06-23T23:58:11.392+00:00",
  "shopImage": {
    "id": "2",
    "name": "avatar.jpg",
    "uri": "https://cdn.exemplo.com/images/avatar.jpg"
  }
}

404 Not Found

Ocorre quando o usuário não existe na loja.

Atualizar Usuário ​

Atualiza os dados de um usuário existente. A senha só é alterada se enviada.

http
PUT /v1/shop/user/users/:id

Payload (Body) ​

AtributoTipoObrigatórioDescrição
firstNamestringSimNome (máx. 100 caracteres).
lastNamestringSimSobrenome (máx. 100 caracteres).
emailstringSimE-mail único na loja (máx. 250 caracteres).
passwordstringNãoNova senha (mín. 8, máx. 32 caracteres).
shopImageIdnumberNãoID de uma imagem da loja para o avatar. Aceita null.

Exemplo de Requisição ​

bash
curl -X PUT "https://api.us.basis.tavares.in/v1/shop/user/users/12" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "shopImageId": null,
    "firstName": "Maria",
    "lastName": "Silva",
    "email": "usuario@exemplo.com"
  }'

Respostas ​

204 No Content

Usuário atualizado com sucesso.

Remover Usuário ​

Remove um usuário da loja permanentemente.

http
DELETE /v1/shop/user/users/:id

Exemplo de Requisição ​

bash
curl -X DELETE "https://api.us.basis.tavares.in/v1/shop/user/users/13" \
  -H "X-Shop-Id: 123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer {token}"

Respostas ​

204 No Content

Remoção concluída com sucesso.