Desenvolvedores · Documentação técnica
Arena Upya
API Users
CRUD de usuários da empresa e código externo (external_code) para o CRM.
users.readusers.write
external_code é único por empresa. User de outra empresa → 404.
Roles via API ficam para fase 2.
Endpoints
| Método | Rota | Escopo | Descrição |
|---|---|---|---|
GET |
/api/v1/users |
users.read |
Listar (ou ?external_code= lookup) |
GET |
/api/v1/users/{id} |
users.read |
Obter usuário |
POST |
/api/v1/users |
users.write |
Criar usuário (role vendedor) |
PATCH |
/api/v1/users/{id} |
users.write |
Atualizar (incl. external_code) |
Por endpoint — assinaturas e exemplos
Parâmetros
| Campo | Em | Tipo | Obrig. | Descrição |
|---|---|---|---|---|
external_code |
query |
string |
não | Se informado, retorna data.user (lookup) em vez de data.items |
User
Usuário da empresa (gestor ou vendedor) retornado pela API.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id |
integer |
não |
ID interno do usuário. ex.: 42
|
email |
string (email) |
não |
E-mail de login (único na empresa). ex.: "ana@empresa.com"
|
name |
string |
não |
Nome de exibição. ex.: "Ana Silva"
|
external_code |
string | null |
não |
Código do CRM (único por empresa). `null` se não vinculado. ex.: "CRM-8841"
|
is_active |
integer |
não |
`1` ativo, `0` inativo. ex.: 1
|
created_at |
string |
não |
Data/hora de criação (MySQL datetime). ex.: "2026-03-01 10:00:00"
|
updated_at |
string | null |
não |
Última atualização, ou `null`. ex.: "2026-03-20 15:30:00"
|
Lista: data.items[]; lookup: data.user
Exemplo
Response 2xx
{
"status": "success",
"data": {
"items": [
{
"id": 42,
"email": "ana@empresa.com",
"name": "Ana Silva",
"external_code": "CRM-8841",
"is_active": 1,
"created_at": "2026-03-01 10:00:00",
"updated_at": "2026-03-20 15:30:00"
}
]
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
Parâmetros
| Campo | Em | Tipo | Obrig. | Descrição |
|---|---|---|---|---|
id |
path |
integer |
sim | ID do usuário |
User
Usuário da empresa (gestor ou vendedor) retornado pela API.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id |
integer |
não |
ID interno do usuário. ex.: 42
|
email |
string (email) |
não |
E-mail de login (único na empresa). ex.: "ana@empresa.com"
|
name |
string |
não |
Nome de exibição. ex.: "Ana Silva"
|
external_code |
string | null |
não |
Código do CRM (único por empresa). `null` se não vinculado. ex.: "CRM-8841"
|
is_active |
integer |
não |
`1` ativo, `0` inativo. ex.: 1
|
created_at |
string |
não |
Data/hora de criação (MySQL datetime). ex.: "2026-03-01 10:00:00"
|
updated_at |
string | null |
não |
Última atualização, ou `null`. ex.: "2026-03-20 15:30:00"
|
data.user
Exemplo
Response 2xx
{
"status": "success",
"data": {
"user": {
"id": 42,
"email": "ana@empresa.com",
"name": "Ana Silva",
"external_code": "CRM-8841",
"is_active": 1,
"created_at": "2026-03-01 10:00:00",
"updated_at": "2026-03-20 15:30:00"
}
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
UserCreate — body
Body para criar usuário. Role `vendedor` é atribuída automaticamente.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
name |
string |
sim |
Nome de exibição. ex.: "Ana Silva"
|
email |
string (email) |
sim |
E-mail válido, único na empresa. ex.: "ana@empresa.com"
|
password |
string · mín. 6 |
sim |
Senha (mín. 6 caracteres). Não é devolvida na resposta. ex.: "senhaSegura1"
|
external_code |
string · máx. 120 |
não |
Código do CRM (opcional). Único por empresa. ex.: "CRM-8841"
|
is_active |
boolean |
não |
Default `true` se omitido. ex.: true
|
User
Usuário da empresa (gestor ou vendedor) retornado pela API.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id |
integer |
não |
ID interno do usuário. ex.: 42
|
email |
string (email) |
não |
E-mail de login (único na empresa). ex.: "ana@empresa.com"
|
name |
string |
não |
Nome de exibição. ex.: "Ana Silva"
|
external_code |
string | null |
não |
Código do CRM (único por empresa). `null` se não vinculado. ex.: "CRM-8841"
|
is_active |
integer |
não |
`1` ativo, `0` inativo. ex.: 1
|
created_at |
string |
não |
Data/hora de criação (MySQL datetime). ex.: "2026-03-01 10:00:00"
|
updated_at |
string | null |
não |
Última atualização, ou `null`. ex.: "2026-03-20 15:30:00"
|
data.user · HTTP 201
Exemplo
Request POST (body)
{
"name": "Ana Silva",
"email": "ana@empresa.com",
"password": "senhaSegura1",
"external_code": "CRM-8841"
}
Response 2xx
{
"status": "success",
"data": {
"user": {
"id": 42,
"email": "ana@empresa.com",
"name": "Ana Silva",
"external_code": "CRM-8841",
"is_active": 1,
"created_at": "2026-03-01 10:00:00",
"updated_at": "2026-03-20 15:30:00"
}
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
external_code: "" limpa o código. Duplicata → 400.Parâmetros
| Campo | Em | Tipo | Obrig. | Descrição |
|---|---|---|---|---|
id |
path |
integer |
sim | ID do usuário |
UserPatch — body
Body parcial. Envie só os campos a alterar. `external_code: ""` limpa o código.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
name |
string |
não | Novo nome. |
email |
string (email) |
não | Novo e-mail (único na empresa). |
password |
string · mín. 6 |
não | Nova senha (mín. 6). Omita para manter. |
external_code |
string | null |
não | Novo código CRM, ou string vazia para limpar. |
is_active |
boolean |
não | Ativar/desativar usuário. |
User
Usuário da empresa (gestor ou vendedor) retornado pela API.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id |
integer |
não |
ID interno do usuário. ex.: 42
|
email |
string (email) |
não |
E-mail de login (único na empresa). ex.: "ana@empresa.com"
|
name |
string |
não |
Nome de exibição. ex.: "Ana Silva"
|
external_code |
string | null |
não |
Código do CRM (único por empresa). `null` se não vinculado. ex.: "CRM-8841"
|
is_active |
integer |
não |
`1` ativo, `0` inativo. ex.: 1
|
created_at |
string |
não |
Data/hora de criação (MySQL datetime). ex.: "2026-03-01 10:00:00"
|
updated_at |
string | null |
não |
Última atualização, ou `null`. ex.: "2026-03-20 15:30:00"
|
Exemplo
Request PATCH (body)
{
"name": "Ana Silva",
"external_code": "CRM-8841"
}
Response 2xx
{
"status": "success",
"data": {
"user": {
"id": 42,
"email": "ana@empresa.com",
"name": "Ana Silva",
"external_code": "CRM-8841",
"is_active": 1,
"created_at": "2026-03-01 10:00:00",
"updated_at": "2026-03-20 15:30:00"
}
},
"meta": {
"request_id": "a1b2c3d4e5f6789012345678"
}
}
curl — criar
curl -X POST "https://arenaupya.com.br/api/v1/users" \
-H "Authorization: Bearer arena_live_SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Ana Silva","email":"ana@empresa.com","password":"senhaSegura1","external_code":"CRM-8841"}'