Comercios
Usuarios de Comercio
Gestionar usuarios, roles y contactos de un comercio.
POST /api/commerces/:cId/users
Crea un usuario para un comercio.
Auth: Requerida — permiso commerce:manage
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | No | Nombre completo del usuario de comercio |
external_id | string | No | Identificador en el sistema externo |
source | string | No | Origen del contacto: RETEN o INTEGRATION |
roles | string[] | No | Roles iniciales: OWNER, ORDERS, FINANCE, ATTENTION, ADMIN, COMMERCE_REP, OTHER |
Ejemplo
curl -X POST https://api.reten.ai/api/commerces/<cId>/users \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>" \
-H "Content-Type: application/json" \
-d '{
"name": "Maria Garcia",
"external_id": "usr-001",
"source": "RETEN",
"roles": ["OWNER"]
}'import axios from 'axios';
const response = await axios.post(
'https://api.reten.ai/api/commerces/<cId>/users',
{
name: 'Maria Garcia',
external_id: 'usr-001',
source: 'RETEN',
roles: ['OWNER'],
},
{
headers: {
Authorization: 'Bearer <token>',
'x-tenant-id': '<tenant-id>',
},
}
);
const user = response.data;Respuesta 201 Created
Devuelve el objeto del usuario creado.
PATCH /api/commerces/:cId/users/:uId
Actualiza un usuario de comercio.
POST /api/commerces/:cId/users/:uId/roles
Agrega un rol a un usuario de comercio.
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
role | string | Sí | Uno de: OWNER, ORDERS, FINANCE, ATTENTION, ADMIN, COMMERCE_REP, OTHER |
Respuesta 201 Created
DELETE /api/commerces/:cId/users/:uId/roles/:role
Elimina un rol de un usuario de comercio.
Respuesta 204 No Content
POST /api/commerces/:cId/users/:uId/contacts
Agrega un contacto a un usuario de comercio.
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
contact_type | string | Sí | EMAIL, PHONE, WHATSAPP u OTHER |
value | string | Sí | Valor del contacto (validado según el tipo) |
source | string | Sí | Origen del contacto: RETEN o INTEGRATION |
is_primary | boolean | No | Establecer como contacto principal para este tipo |
Validación
| Tipo | Formato |
|---|---|
EMAIL | Expresión regular de correo electrónico válido |
PHONE | Formato E.164 (ej., +56912345678) |
WHATSAPP | Formato E.164 |
Respuesta 201 Created
PATCH /api/commerces/:cId/users/:uId/contacts/:contactId
Actualiza un contacto.
POST /api/commerces/:cId/users/:uId/contacts/:contactId/set-primary
Establece un contacto como principal para su tipo.
Notas
- Solo puede haber un contacto principal por tipo por usuario de comercio (entre los contactos activos)
- Establecer un nuevo contacto principal desestablece automáticamente el anterior para ese tipo