Usuário atual e permissões
GET /me
Escopo do token: qualquer token. Recurso: Conta.
Exemplo de requisição
Seção intitulada “Exemplo de requisição”Os exemplos leem o token da variável de ambiente HALVER_API_TOKEN (um token sc_live_… criado em Desenvolvedores › Tokens de API). Nunca escreva o token no código.
curl "https://dash.halver.com.br/api/v1/me" \ -H "Authorization: Bearer $HALVER_API_TOKEN"package main
import ( "fmt" "io" "net/http" "os" "time")
func main() { req, err := http.NewRequest(http.MethodGet, "https://dash.halver.com.br/api/v1/me", nil) if err != nil { panic(err) } req.Header.Set("Authorization", "Bearer "+os.Getenv("HALVER_API_TOKEN")) client := &http.Client{Timeout: 30 * time.Second} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, err := io.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Println(resp.Status) fmt.Println(string(out))}import os
import requests
resp = requests.get( "https://dash.halver.com.br/api/v1/me", headers={ "Authorization": f"Bearer {os.environ['HALVER_API_TOKEN']}", }, timeout=30,)resp.raise_for_status()print(resp.json())Respostas
Seção intitulada “Respostas”Usuário autenticado.
Campos da resposta
-
permissionsarray de string obrigatórioUm de:
customers:read,customers:write,contracts:read,contracts:write,billing:read,billing:write,finance:read,finance:write,reports:read,users:manage,jobs:run,portal:read,portal:payments,cloud:read,cloud:write,cloud:operate,support:read,support:write,support:manage,portal:support,discounts:write,discounts:approve,customers:internal,cloud:terminate,apidocs:read. -
userobject obrigatório-
activeboolean obrigatório -
created_atstring (date-time) obrigatório -
customer_idstring (uuid) obrigatório pode ser nuloCliente do usuário do portal;
nullpara staff. -
emailstring obrigatório -
email_verified_atstring (date-time) obrigatório pode ser nuloQuando o usuário confirmou o e-mail (abriu um link ou digitou um código enviado a ele).
-
idstring (uuid) obrigatório -
kindstring obrigatórioUm de:
staff,customer. -
last_login_atstring (date-time) obrigatório pode ser nulo -
namestring obrigatório -
pending_accessboolean obrigatóriotrueenquanto o usuário não ativou o acesso (cliente: não confirmou o e-mail; equipe: não criou a senha). -
rolestring obrigatórioPapel do usuário. Staff - director, finance, sales, support. Portal - owner, viewer. Um de:
director,finance,sales,support,owner,viewer. -
updated_atstring (date-time) obrigatório
-
{ "permissions": [ "portal:read", "portal:payments", "cloud:operate", "portal:support" ], "user": { "active": true, "created_at": "2026-10-20T18:00:00Z", "customer_id": "38c54167-ea0a-48dd-84bf-459deb34cae8", "email": "ana@exemplo.com.br", "email_verified_at": "2026-10-01T12:00:00Z", "id": "57f03ce6-f16e-4f97-a32a-418adfbf6517", "kind": "customer", "last_login_at": "2026-10-20T17:55:00Z", "name": "Ana Souza", "pending_access": false, "role": "owner", "updated_at": "2026-10-20T18:00:00Z" }}Todo erro vem como application/problem+json (RFC 9457), com um code estável, a mensagem em português em detail, o motivo de cada campo em errors (nos erros de validação) e o request_id, que você informa ao suporte. Veja a lista completa de códigos.
| Status | Quando | Códigos |
|---|---|---|
| 401 | Não autenticado (token ausente, inválido ou expirado; credenciais inválidas). | auth.unauthorized |
{ "type": "about:blank", "title": "Unauthorized", "status": 401, "detail": "token de API inválido, expirado ou revogado", "code": "auth.unauthorized", "request_id": "6f1c0b2a9e4d7c3b5a8f0e1d"}