VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Clientes do seller

Grupos de clientes do seller

Lista os grupos de clientes que o seller pode gerir, vê quais clientes dele estão em cada grupo e coloca ou tira clientes de um grupo.

Um grupo de clientes (usergroup) reúne clientes que recebem o mesmo tratamento na loja, por exemplo "Atacado" ou "Clientes VIP": preços específicos, condições de pagamento ou visibilidade de produtos. Quem cria o grupo e define suas regras é o administrador da loja. O seller só pode colocar e tirar os próprios clientes de grupos que o administrador marcou como "gerenciáveis pelo seller".

Estas rotas só existem quando a loja liga o módulo vendor-usergroups; sem ele, respondem 403 module_disabled. Também exigem um privilégio de configurações do seller (vendor_settings).

Regras que valem nas quatro rotas:

  • O grupo precisa ser de clientes, estar ativo e ter sido marcado como gerenciável pelo seller. Caso contrário a resposta é 400 com a razão em detail.
  • Um cliente só entra num grupo se já comprou deste seller.
  • O grupo pertence à loja, não ao seller: a entrada vale para o grupo como o administrador o definiu, e o seller só liga ou desliga clientes dele.

Listar os grupos

GET/api/v1/vendor/usergroupsSeller

Lista os grupos de clientes que o seller pode gerir

Devolve só os grupos ativos, de clientes e gerenciáveis pelo seller. Sem paginação.

200Grupos gerenciáveis
json
{
  "usergroups": [
    {
      "id": "b7a5e3c1-2d4f-4a6b-8c9d-0e1f2a3b4c5d",
      "name": "Atacado",
      "description": "Clientes com preço de atacado",
      "type": "C",
      "status": "A",
      "members_count": 12,
      "created_at": "2026-05-29T18:52:13Z",
      "updated_at": "2026-09-15T19:00:17Z"
    }
  ],
  "total": 1
}

Campos da resposta

usergroupsarray
Grupos. Lista vazia ([]) quando o administrador não liberou nenhum.
totalinteger
Quantidade de grupos.
usergroups[].iduuid
Id do grupo.
usergroups[].namestring
Nome do grupo.
usergroups[].descriptionstring
Descrição. Pode ser vazia.
usergroups[].typestring
Tipo do grupo; aqui é sempre C (clientes).
usergroups[].statusstring
Situação; aqui é sempre A (ativo).
usergroups[].members_countinteger
Total de membros ativos do grupo na loja inteira, não só os clientes deste seller.
usergroups[].created_atstring
Criação (RFC 3339).
usergroups[].updated_atstring
Última alteração.

Listar os membros

GET/api/v1/vendor/usergroups/{usergroupId}/membersSeller

Clientes do seller que estão num grupo

Devolve os membros do grupo que também são clientes deste seller (têm pelo menos um pedido com ele), em ordem alfabética. Membros ligados a outros sellers não aparecem, por isso a contagem pode ser menor que members_count.

Parâmetros de caminho

usergroupIduuidobrigatório
Id do grupo.
200Membros do grupo
json
{
  "members": [
    {
      "user_id": "4f44f104-bbe0-4d2e-b497-c1afbe19d7c5",
      "first_name": "Vinícius",
      "last_name": "Nunes",
      "email": "vinicius.nunes@example.com",
      "usergroup_id": "b7a5e3c1-2d4f-4a6b-8c9d-0e1f2a3b4c5d",
      "usergroup_name": "Atacado",
      "status": "A",
      "assigned_at": "2026-09-01T12:00:00Z"
    }
  ],
  "total": 1
}

Campos da resposta

membersarray
Membros. Lista vazia quando não há nenhum.
totalinteger
Quantidade de membros devolvidos.
members[].user_iduuid
Id do cliente.
members[].first_namestring
Nome.
members[].last_namestring
Sobrenome.
members[].emailstring
E-mail.
members[].usergroup_iduuid
Id do grupo.
members[].usergroup_namestring
Nome do grupo.
members[].statusstring
APF
Vínculo: A ativo, P pendente, F disponível para adesão.
members[].assigned_atstring
Quando o vínculo foi criado.

Colocar um cliente no grupo

POST/api/v1/vendor/usergroups/{usergroupId}/members/{customerId}Seller

Coloca um cliente do seller num grupo

Cria (ou reativa) o vínculo com status A. Sem corpo. Repetir não dá erro. O cliente precisa existir, ser do tipo cliente e ter pelo menos um pedido com este seller.

Parâmetros de caminho

usergroupIduuidobrigatório
Id do grupo.
customerIduuidobrigatório
Id do cliente.
200Cliente colocado no grupo
json
{ "message": "customer assigned to usergroup" }

Tirar um cliente do grupo

DELETE/api/v1/vendor/usergroups/{usergroupId}/members/{customerId}Seller

Tira um cliente de um grupo

Remove o vínculo. Se o cliente já não estava no grupo, responde sucesso do mesmo jeito.

Parâmetros de caminho

usergroupIduuidobrigatório
Id do grupo.
customerIduuidobrigatório
Id do cliente.
200Cliente tirado do grupo
json
{ "message": "customer removed from usergroup" }

Exemplo de requisição

bash
GROUP=b7a5e3c1-2d4f-4a6b-8c9d-0e1f2a3b4c5d
CUSTOMER=4f44f104-bbe0-4d2e-b497-c1afbe19d7c5

# grupos que posso gerir
curl "$BASE_URL/api/v1/vendor/usergroups" -H "Authorization: Bearer $TOKEN"

# colocar o cliente no grupo
curl -X POST "$BASE_URL/api/v1/vendor/usergroups/$GROUP/members/$CUSTOMER" \
  -H "Authorization: Bearer $TOKEN"

# tirar o cliente do grupo
curl -X DELETE "$BASE_URL/api/v1/vendor/usergroups/$GROUP/members/$CUSTOMER" \
  -H "Authorization: Bearer $TOKEN"

Erros

StatusQuandoCorpo de exemplo
400Grupo inexistente, inativo, que não é de clientes ou não liberado ao seller.{"error":"VENDOR_USERGROUP_MEMBERS_FAILED","detail":"usergroup 0000... not found"}
400Cliente inexistente, que não é do tipo cliente ou sem pedido neste seller (ao colocar).{"error":"VENDOR_ASSIGN_CUSTOMER_FAILED","detail":"customer ... has no orders with vendor ..."}
400usergroupId ou customerId que não é UUID.{"error":"VENDOR_ASSIGN_CUSTOMER_FAILED","detail":"o valor \"abc\" não é um uuid válido. ..."}
401Sem token.{"error":"AUTH_REQUIRED"}
403Módulo desligado.{"error":"module_disabled","module":"vendor-usergroups"}
403Falta o privilégio de configurações.{"error":"insufficient vendor privileges","privilege_required_any":["vendor_settings","..."]}
404O usuário não tem seller.{"error":"VENDOR_NOT_FOUND"}

O código de error muda conforme a rota (VENDOR_USERGROUP_MEMBERS_FAILED na leitura, VENDOR_ASSIGN_CUSTOMER_FAILED ao colocar, VENDOR_REMOVE_CUSTOMER_FAILED ao tirar); a causa está em detail, em inglês ou português.

Contagem não bate com a lista

members_count na lista de grupos conta os membros de toda a loja; members mostra só os clientes do seu seller. Não use a contagem para conferir a lista.

Verificação na loja de testes

Na loja de testes nenhum grupo está liberado para sellers (lista vazia), então os exemplos de grupo e membro são ilustrativos e as regras de colocar e tirar foram lidas do código.

Veja também

  • Lista e exportação de clientes
  • Carteira, importação e frequência
  • Visão geral
Anterior
Carteira, importação e frequência
Próxima
Grupos de usuários
Nesta página
  • Listar os grupos
  • Listar os membros
  • Colocar um cliente no grupo
  • Tirar um cliente do grupo
  • Exemplo de requisição
  • Erros
  • Veja também