Contas de PDV e caixa
Contas operacionais são criadas pela gestão, escopadas a um workspace específico — uma conta de PDV do workspace A não funciona no workspace B, mesmo na mesma organização.
| Endpoint | O que faz |
|---|---|
GET /v1/management/organizations/{organizationId}/workspaces/{workspaceId}/operator-accounts | Lista contas do workspace. owner, admin e auditor podem listar. |
POST /v1/management/organizations/{organizationId}/workspaces/{workspaceId}/operator-accounts | Cria conta imutável de pdv ou cashier. Só owner/admin. A senha gerada é devolvida uma única vez — a API nunca a recupera depois. |
POST .../operator-accounts/{operatorAccountId}/password/rotate | Gera nova senha, invalida a anterior imediatamente. Só owner/admin. |
DELETE .../operator-accounts/{operatorAccountId} | Desativa a conta permanentemente — não existe reativar; se precisar de novo, crie outra. O histórico de vendas/recargas dela é preservado. |
Username e senha nunca são escolhidos manualmente
O username é gerado no formato PDV-00184723 / CX-00921547; a description
(opcional, até 200 caracteres) é o campo livre para a gestão identificar a
conta ("PDV da entrada principal"). A senha segue uma política própria de
caracteres e tamanho fixo — não é configurável.
Listagem: ordenação e paginação
Esse foi um ponto ajustado recentemente a pedido do frontend: a ordenação
agora acontece no banco, antes do LIMIT — ordenar só os itens da
página atual não funciona com paginação por cursor.
Query params:
type=pdv|cashier
status=active|disabled
search=<texto> # busca por username ou description
limit=<1-100, default 50>
cursor=<opaco, vem em nextCursor>
sortBy=status|type|description|username
sortDirection=asc|desc
- Sem
sortBy: ordem fixa — ativos antes de desativados,cashierantes depdv, descrição em ordem alfabética,idcomo desempate. - Com
sortBy: ordena só por aquela coluna;sortDirectioncontrola a direção;idcomo desempate na mesma direção.
:::warning Cursor é amarrado à ordenação que o gerou
O cursor devolvido em nextCursor só é válido para a mesma combinação
de sortBy/sortDirection. Ao trocar de coluna ou direção na tabela, comece
a paginação de novo (sem cursor). Usar um cursor com ordenação diferente da
que o gerou responde 400 OPERATOR_ACCOUNT_CURSOR_SORT_MISMATCH.
:::