---
title: "Crear o editar un rol"
method: POST
path: "/roles"
tags: ["Roles"]
---

# Crear o editar un rol

`POST /roles`

## Request

- Base URL: `https://api.pirpos.com`
- URL: `https://api.pirpos.com/roles`
- Auth: HTTP bearer

Crea un nuevo rol o actualiza uno existente según el negocio del usuario autenticado.

- Si el body incluye un campo `_id` válido que coincide con un rol del negocio, **actualiza** el rol.
- Si no se proporciona `_id`, **crea** un nuevo rol.

El campo `business` se asigna automáticamente desde el token del usuario; no es necesario enviarlo.
Se registra historial del cambio (creación o actualización) y se notifica por WebSocket a los
usuarios conectados del negocio.

**Permiso requerido:** `RO_POST`

## Request body

- object
  - `_id` string: ID del rol a actualizar. Si no se envía, se crea uno nuevo.
  - `name` string, required: Nombre del rol
  - `permissions` object[]: Lista de permisos asignados al rol
    - `code` string: Código único del permiso
    - `name` string: Nombre descriptivo del permiso

## Response `200`

Rol creado o actualizado exitosamente

- Role: Modelo de rol de usuario según roleModel.js
  - `_id` string: ID único del rol
  - `business` string: ID del negocio al que pertenece el rol (asignado automáticamente desde el token)
  - `name` string: Nombre del rol
  - `permissions` object[]: Lista de permisos asignados al rol. Cada código corresponde a una acción habilitada en el sistema.
    - `code` string: Código único de la acción permitida (ej: RO_GET_ALL, PR_GET_ALL, IN_DELETE)
    - `name` string: Nombre descriptivo del permiso
  - `deleted` boolean: Indica si el rol fue eliminado lógicamente (soft delete)
  - `modifiedOn` string, date-time: Fecha de última modificación (se actualiza automáticamente al guardar)
  - `createdOn` string, date-time: Fecha de creación del rol

## Other responses

- `401`: Token no proporcionado o inválido
- `403`: Sin permiso para crear/editar roles (requiere RO_POST)
- `500`: Error interno del servidor

---

[API](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar.md) - [All operations](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar/llms.txt) - [OpenAPI document](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar/revisions/9d4431a3cddc?raw)
