Appearance
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/loginPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | E-mail do usuário (deve estar cadastrado na loja). |
password | string | Sim | Senha 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/logoutExemplo 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-passwordPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | E-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-passwordPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | E-mail cadastrado na loja. |
code | string | Sim | Código de redefinição recebido por e-mail (máx. 20 caracteres). |
password | string | Sim | Nova 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/accountRespostas
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-accountPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
firstName | string | Sim | Nome do usuário (máx. 100 caracteres). |
lastName | string | Sim | Sobrenome do usuário (máx. 100 caracteres). |
email | string | Sim | E-mail único na loja (máx. 250 caracteres). |
shopImageId | number | Não | ID 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-passwordPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
password | string | Sim | Nova 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/usersParâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | number | Não | O número da página (padrão: 1). |
perPage | number | Não | Itens por página (padrão: 25, máx: 100). |
search | string | Não | Busca por termo no nome ou e-mail (máx. 150 caracteres). |
orderBy | enum | Não | Ordena por id, firstName, email ou createdAt. |
orderDirection | enum | Não | Direçã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/listRespostas
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/usersPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
firstName | string | Sim | Nome (máx. 100 caracteres). |
lastName | string | Sim | Sobrenome (máx. 100 caracteres). |
email | string | Sim | E-mail único na loja (máx. 250 caracteres). |
password | string | Sim | Senha (mín. 8, máx. 32 caracteres). |
shopImageId | number | Não | ID 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/:idParâmetros de Rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | number | Sim | O 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/:idPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
firstName | string | Sim | Nome (máx. 100 caracteres). |
lastName | string | Sim | Sobrenome (máx. 100 caracteres). |
email | string | Sim | E-mail único na loja (máx. 250 caracteres). |
password | string | Não | Nova senha (mín. 8, máx. 32 caracteres). |
shopImageId | number | Não | ID 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/:idExemplo 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.