Saltar al contenido principal

Gestia API Core (1.0.0)

Download OpenAPI specification:Download

API principal para lógica de negocio de Gestia Platform

status

Estado de salud del servicio

Responses

auth

AuthController_register

Request Body schema: application/json
required
object (RegisterDto)

Responses

Request samples

Content type
application/json
{ }

AuthController_login

Request Body schema: application/json
required
object (LoginDto)

Responses

Request samples

Content type
application/json
{ }

ApiKeysController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre descriptivo de la integración

scopes
required
Array of strings

Scopes de la API key (formato "recurso:accion")

expiresAt
string

Fecha de expiración (ISO 8601). Debe ser futura.

Responses

Request samples

Content type
application/json
{
  • "name": "POS Caracas",
  • "scopes": [
    ],
  • "expiresAt": "2027-12-31T23:59:59Z"
}

ApiKeysController_findAll

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Página

limit
number [ 1 .. 100 ]
Default: 20

Elementos por página

revoked
string
Default: "false"
Enum: "true" "false"

Filtrar por estado de revocación

Responses

ApiKeysController_rotate

Authorizations:
bearer
path Parameters
id
required
string

Responses

ApiKeysController_revoke

Authorizations:
bearer
path Parameters
id
required
string

Responses

accounting-accounts

AccountsController_create

Authorizations:
bearer
Request Body schema: application/json
required
countryCode
string

Código ISO del país (ej: CO, MX, PE)

code
required
string

Código jerárquico de la cuenta

name
required
string

Nombre descriptivo de la cuenta

nature
required
string
Enum: "DEBIT" "CREDIT"

Naturaleza contable

parentId
string

ID de la cuenta padre en la jerarquía

Responses

Request samples

Content type
application/json
{
  • "countryCode": "CO",
  • "code": "1.1.1.01",
  • "name": "Caja General",
  • "nature": "DEBIT",
  • "parentId": "string"
}

AccountsController_findAll

Authorizations:
bearer
query Parameters
countryCode
string

Código ISO del país para filtrar

parentId
string

ID de la cuenta padre para filtrar hijos

tree
object (Object)

Si es true, devuelve el árbol jerárquico completo

Responses

AccountsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

AccountsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre descriptivo de la cuenta

isActive
boolean

Estado activo o inactivo

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "isActive": true
}

AccountsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

accounting-journal

JournalEntriesController_create

Authorizations:
bearer
Request Body schema: application/json
required
entryDate
required
string

Fecha del asiento contable

concept
required
string

Concepto o descripción general del asiento

entryType
string
Enum: "SALES" "PURCHASE" "PAYMENT" "EXPENSE" "PAYROLL" "MANUAL"

Tipo de asiento

reference
string

Referencia o ID del documento de origen

required
Array of objects (CreateJournalLineDto)

Líneas del asiento contable

Responses

Request samples

Content type
application/json
{
  • "entryDate": "2026-08-05",
  • "concept": "Registro de venta",
  • "entryType": "SALES",
  • "reference": "string",
  • "lines": [
    ]
}

JournalEntriesController_findAll

Authorizations:
bearer
query Parameters
page
number
Example: page=1

Página

limit
number
Example: limit=20

Límite por página

from
string

Fecha inicio (YYYY-MM-DD)

to
string

Fecha fin (YYYY-MM-DD)

entryType
string
Enum: "SALES" "PURCHASE" "PAYMENT" "EXPENSE" "PAYROLL" "MANUAL"

Filtrar por tipo de asiento

Responses

JournalEntriesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

JournalEntriesController_reverse

Authorizations:
bearer
path Parameters
id
required
string

Responses

accounting-expenses

ExpensesController_create

Authorizations:
bearer
Request Body schema: application/json
required
supplierId
string

ID del proveedor

categoryId
string

ID de la categoría del catálogo

description
required
string

Descripción o concepto del gasto

amount
required
number

Monto del gasto

paymentAccountId
required
string

ID de la cuenta contable de pago (caja/banco)

expenseDate
required
string

Fecha del gasto

attachmentUrl
string

URL del comprobante o adjunto

Responses

Request samples

Content type
application/json
{
  • "supplierId": "string",
  • "categoryId": "string",
  • "description": "Pago de servicios públicos",
  • "amount": 150000,
  • "paymentAccountId": "string",
  • "expenseDate": "2026-08-05",
  • "attachmentUrl": "string"
}

ExpensesController_findAll

Authorizations:
bearer
query Parameters
page
number
Example: page=1

Página

limit
number
Example: limit=20

Límite por página

from
string

Fecha inicio (YYYY-MM-DD)

to
string

Fecha fin (YYYY-MM-DD)

supplierId
string

Filtrar por ID de proveedor

Responses

ExpensesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

ExpensesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

accounting-reports

ReportsController_getFinancialStatements

Authorizations:
bearer
query Parameters
from
required
string
to
required
string
type
required
string

Responses

ReportsController_getAgedReceivables

Authorizations:
bearer
query Parameters
asOf
required
string

Responses

crm-customers

CustomersController_create

Authorizations:
bearer
Request Body schema: application/json
required
taxId
required
string

Documento fiscal del cliente (NIT, RUC, RUT, etc.)

name
required
string

Nombre o razón social del cliente

email
string

Correo electrónico de contacto

phone
string

Teléfono de contacto

address
string

Dirección física del cliente

creditLimit
number
Default: 0

Límite de crédito otorgado al cliente

Responses

Request samples

Content type
application/json
{
  • "taxId": "string",
  • "name": "string",
  • "email": "string",
  • "phone": "string",
  • "address": "string",
  • "creditLimit": 0
}

CustomersController_findAll

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

Responses

CustomersController_getCustomer360

Authorizations:
bearer
path Parameters
id
required
string

Responses

CustomersController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

CustomersController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
taxId
string

Documento fiscal del cliente (NIT, RUC, RUT, etc.)

name
string

Nombre o razón social del cliente

email
string

Correo electrónico de contacto

phone
string

Teléfono de contacto

address
string

Dirección física del cliente

creditLimit
number
Default: 0

Límite de crédito otorgado al cliente

Responses

Request samples

Content type
application/json
{
  • "taxId": "string",
  • "name": "string",
  • "email": "string",
  • "phone": "string",
  • "address": "string",
  • "creditLimit": 0
}

CustomersController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

CustomersController_createInteraction

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
type
required
string
Enum: "CALL" "EMAIL" "MEETING" "WHATSAPP" "NOTE"

Tipo de interacción

comment
required
string

Comentario o detalle de la interacción

nextActionDate
string

Fecha tentativa de la próxima acción de seguimiento

Responses

Request samples

Content type
application/json
{
  • "type": "CALL",
  • "comment": "string",
  • "nextActionDate": "string"
}

CustomersController_listInteractions

Authorizations:
bearer
path Parameters
id
required
string

Responses

inventory-categories

CategoriesController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre de la categoría

type
string
Enum: "PRODUCT" "ASSET"

Tipo de categoría (default PRODUCT)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "PRODUCT"
}

CategoriesController_findAll

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

Responses

CategoriesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

CategoriesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre de la categoría

type
string
Enum: "PRODUCT" "ASSET"

Tipo de categoría (default PRODUCT)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "PRODUCT"
}

CategoriesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

inventory-products

ProductsController_create

Authorizations:
bearer
Request Body schema: application/json
required
sku
required
string

Código SKU único por tenant

name
required
string

Nombre del producto o servicio

categoryId
string

ID de la categoría a la que pertenece

costPrice
required
number

Precio de costo del producto

sellingPrice
required
number

Precio de venta del producto

taxRate
number
Default: 0

Porcentaje de impuesto (IVA)

isService
boolean
Default: false

Indica si es un servicio y no un bien tangible

unitOfMeasure
string
Default: "und"

Unidad de medida (und, kg, m, etc.)

barcode
string

Código de barras

minStock
number
Default: 0

Stock mínimo para alertas

isActive
boolean
Default: true

Indica si el producto está activo

Responses

Request samples

Content type
application/json
{
  • "sku": "string",
  • "name": "string",
  • "categoryId": "string",
  • "costPrice": 50,
  • "sellingPrice": 100,
  • "taxRate": 0,
  • "isService": false,
  • "unitOfMeasure": "und",
  • "barcode": "string",
  • "minStock": 0,
  • "isActive": true
}

ProductsController_findAll

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

search
string

Término de búsqueda (name, sku, barcode)

category
string

ID de la categoría para filtrar productos

active
string

Filtrar por estado activo (true/false)

in_stock
string

Filtrar por disponibilidad de stock (true/false)

Responses

ProductsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

ProductsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
sku
string

Código SKU único por tenant

name
string

Nombre del producto o servicio

categoryId
string

ID de la categoría a la que pertenece

costPrice
number

Precio de costo del producto

sellingPrice
number

Precio de venta del producto

taxRate
number
Default: 0

Porcentaje de impuesto (IVA)

isService
boolean
Default: false

Indica si es un servicio y no un bien tangible

unitOfMeasure
string
Default: "und"

Unidad de medida (und, kg, m, etc.)

barcode
string

Código de barras

minStock
number
Default: 0

Stock mínimo para alertas

isActive
boolean
Default: true

Indica si el producto está activo

Responses

Request samples

Content type
application/json
{
  • "sku": "string",
  • "name": "string",
  • "categoryId": "string",
  • "costPrice": 50,
  • "sellingPrice": 100,
  • "taxRate": 0,
  • "isService": false,
  • "unitOfMeasure": "und",
  • "barcode": "string",
  • "minStock": 0,
  • "isActive": true
}

ProductsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

ProductsController_getKardex

Authorizations:
bearer
path Parameters
id
required
string

Responses

inventory-warehouses

WarehousesController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre de la bodega

location
string

Ubicación o dirección de la bodega

parentWarehouseId
string

ID de la bodega padre (jerarquía)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "location": "string",
  • "parentWarehouseId": "string"
}

WarehousesController_findAll

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

Responses

WarehousesController_findTree

Authorizations:
bearer

Responses

WarehousesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

WarehousesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre de la bodega

location
string

Ubicación o dirección de la bodega

parentWarehouseId
string

ID de la bodega padre (jerarquía)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "location": "string",
  • "parentWarehouseId": "string"
}

WarehousesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

inventory-suppliers

SuppliersController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre o razón social del proveedor

taxId
string

Documento de identificación fiscal (NIT, RUC, etc.)

email
string

Correo electrónico de contacto

phone
string

Teléfono de contacto

address
string

Dirección física del proveedor

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "taxId": "string",
  • "email": "string",
  • "phone": "string",
  • "address": "string"
}

SuppliersController_findAll

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

Responses

SuppliersController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

SuppliersController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre o razón social del proveedor

taxId
string

Documento de identificación fiscal (NIT, RUC, etc.)

email
string

Correo electrónico de contacto

phone
string

Teléfono de contacto

address
string

Dirección física del proveedor

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "taxId": "string",
  • "email": "string",
  • "phone": "string",
  • "address": "string"
}

SuppliersController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

inventory-movements

InventoryController_createMovement

Authorizations:
bearer
Request Body schema: application/json
required
productId
required
string

ID del producto

warehouseId
required
string

ID de la bodega destino

fromWarehouseId
string

ID de la bodega origen (obligatorio en TRANSFER)

type
required
string
Enum: "IN" "OUT" "TRANSFER"

Tipo de movimiento (IN, OUT, TRANSFER)

quantity
required
number

Cantidad a mover

reason
required
string
Enum: "PURCHASE" "SALE" "DAMAGE" "ADJUSTMENT" "TRANSFER" "RETURN" "VOID"

Motivo del movimiento

Responses

Request samples

Content type
application/json
{
  • "productId": "string",
  • "warehouseId": "string",
  • "fromWarehouseId": "string",
  • "type": "IN",
  • "quantity": 10,
  • "reason": "PURCHASE"
}

InventoryController_getStockList

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

productId
string

Filtrar stock por ID de producto

warehouseId
string

Filtrar stock por ID de bodega

Responses

inventory-purchases

PurchasesController_create

Authorizations:
bearer
Request Body schema: application/json
required
supplierId
string

ID del proveedor (opcional)

warehouseId
required
string

ID de la bodega de recepción

notes
string

Notas internas de la orden

items
required
Array of strings

Líneas de la orden (mínimo 1)

Responses

Request samples

Content type
application/json
{
  • "supplierId": "string",
  • "warehouseId": "string",
  • "notes": "string",
  • "items": [
    ]
}

PurchasesController_findAll

Authorizations:
bearer

Responses

PurchasesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

PurchasesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
supplierId
string

ID del proveedor (opcional)

warehouseId
string

ID de la bodega de recepción

notes
string

Notas internas de la orden

items
Array of strings

Líneas de la orden (se reemplazan completas)

Responses

Request samples

Content type
application/json
{
  • "supplierId": "string",
  • "warehouseId": "string",
  • "notes": "string",
  • "items": [
    ]
}

PurchasesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

PurchasesController_approve

Authorizations:
bearer
path Parameters
id
required
string

Responses

PurchasesController_receive

Authorizations:
bearer
path Parameters
id
required
string

Responses

PurchasesController_cancel

Authorizations:
bearer
path Parameters
id
required
string

Responses

assets-items

AssetsController_create

Authorizations:
bearer
Request Body schema: application/json
required
assetTag
string

Tag global opcional. Formato GST-XXXX-NNNNN. Si no viene, se auto-genera.

name
required
string

Nombre del activo

modelId
string

ID del modelo (AssetModel)

status
string
Enum: "IN_PRODUCTION" "IN_MAINTENANCE" "STORED" "DECOMMISSIONED" "LOST" "PENDING"

Estado inicial (default PENDING)

serial
string

Número de serie

notes
string

Notas del activo

purchaseDate
string

Fecha de compra (ISO 8601)

purchaseCost
number

Costo de compra

supplierId
string

ID del proveedor (Supplier)

locationId
string

ID de la bodega/ubicación física (Warehouse)

Responses

Request samples

Content type
application/json
{
  • "assetTag": "GST-AC12-00001",
  • "name": "Servidor Mail Prod",
  • "modelId": "string",
  • "status": "IN_PRODUCTION",
  • "serial": "string",
  • "notes": "string",
  • "purchaseDate": "string",
  • "purchaseCost": 5000000,
  • "supplierId": "string",
  • "locationId": "string"
}

AssetsController_findAll

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

status
string
Enum: "IN_PRODUCTION" "IN_MAINTENANCE" "STORED" "DECOMMISSIONED" "LOST" "PENDING"

Filtro por estado

modelId
string

Filtro por modelo (AssetModel)

assignedToType
string
Enum: "CUSTOMER" "USER" "WAREHOUSE" "ASSET" "COMPONENT"

Filtro por tipo de asignatario

locationId
string

Filtro por bodega/ubicación

categoryId
string

Filtro por categoría del modelo

search
string

Búsqueda en name, assetTag y serial

Responses

AssetsController_export

Authorizations:
bearer
query Parameters
page
number >= 1
Default: 1

Número de página

limit
number [ 1 .. 100 ]
Default: 20

Cantidad de elementos por página

sort
string

Criterio de ordenamiento

status
string
Enum: "IN_PRODUCTION" "IN_MAINTENANCE" "STORED" "DECOMMISSIONED" "LOST" "PENDING"

Filtro por estado

modelId
string

Filtro por modelo (AssetModel)

assignedToType
string
Enum: "CUSTOMER" "USER" "WAREHOUSE" "ASSET" "COMPONENT"

Filtro por tipo de asignatario

locationId
string

Filtro por bodega/ubicación

categoryId
string

Filtro por categoría del modelo

search
string

Búsqueda en name, assetTag y serial

Responses

AssetsController_import

Authorizations:
bearer

Responses

AssetsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre del activo

modelId
string

ID del modelo (AssetModel)

status
string
Enum: "IN_PRODUCTION" "IN_MAINTENANCE" "STORED" "DECOMMISSIONED" "LOST" "PENDING"

Estado inicial (default PENDING)

serial
string

Número de serie

notes
string

Notas del activo

purchaseDate
string

Fecha de compra (ISO 8601)

purchaseCost
number

Costo de compra

supplierId
string

ID del proveedor (Supplier)

locationId
string

ID de la bodega/ubicación física (Warehouse)

Responses

Request samples

Content type
application/json
{
  • "name": "Servidor Mail Prod",
  • "modelId": "string",
  • "status": "IN_PRODUCTION",
  • "serial": "string",
  • "notes": "string",
  • "purchaseDate": "string",
  • "purchaseCost": 5000000,
  • "supplierId": "string",
  • "locationId": "string"
}

AssetsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetsController_checkout

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assignedToType
required
string
Enum: "CUSTOMER" "USER" "WAREHOUSE" "ASSET" "COMPONENT"

Tipo de asignatario

assignedToId
required
string

ID del asignatario (cliente, usuario, bodega u otro activo)

expectedCheckinDate
string

Fecha esperada de devolución (debe ser futura)

notes
string

Notas de la asignación

Responses

Request samples

Content type
application/json
{
  • "assignedToType": "CUSTOMER",
  • "assignedToId": "string",
  • "expectedCheckinDate": "string",
  • "notes": "string"
}

AssetsController_checkin

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
notes
string

Notas del retorno

Responses

Request samples

Content type
application/json
{
  • "notes": "string"
}

AssetsController_changeStatus

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
status
required
string
Enum: "IN_PRODUCTION" "IN_MAINTENANCE" "STORED" "DECOMMISSIONED" "LOST" "PENDING"

Nuevo estado del activo

Responses

Request samples

Content type
application/json
{
  • "status": "IN_PRODUCTION"
}

AssetsController_clone

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre de la copia (default "X (copia)")

assetTag
string

Tag de la copia (default auto-generado GST-XXXX-NNNNN)

notes
string

Notas de la copia

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "assetTag": "GST-AC12-00002",
  • "notes": "string"
}

AssetsController_returnAsset

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
notes
string

Notas del retorno

condition
string
Enum: "GOOD" "DAMAGED" "LOST"

Condición del activo al devolverlo

Responses

Request samples

Content type
application/json
{
  • "notes": "string",
  • "condition": "GOOD"
}

AssetsController_audit

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
expectedLocationId
string

Ubicación esperada (Warehouse)

expectedStatus
string
Enum: "IN_PRODUCTION" "IN_MAINTENANCE" "STORED" "DECOMMISSIONED" "LOST" "PENDING"

Estado esperado

Array of objects (AuditMismatchDto)

Discrepancias encontradas en campo

notes
string

Notas de la auditoría

Responses

Request samples

Content type
application/json
{
  • "expectedLocationId": "string",
  • "expectedStatus": "IN_PRODUCTION",
  • "mismatches": [
    ],
  • "notes": "string"
}

AssetsController_getCustomFields

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetsController_setCustomFields

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
required
Array of objects (SetCustomValueItemDto)

Valores a asignar al activo

Array
customFieldId
required
string

UUID del campo custom

value
required
string

Valor serializado a string según el tipo del campo

Responses

Request samples

Content type
application/json
{
  • "values": [
    ]
}

AssetsController_getQr

Authorizations:
bearer
path Parameters
id
required
string
query Parameters
format
required
string

Responses

AssetsController_getHistory

Authorizations:
bearer
path Parameters
id
required
string
query Parameters
page
required
string

Responses

AssetsController_getMaintenances

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetsController_getAccessories

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetsController_getComponents

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetsController_getLicenses

Authorizations:
bearer
path Parameters
id
required
string

Responses

assets-models

AssetModelsController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre del modelo del activo

categoryId
string

ID de la categoría (debe ser type=ASSET)

modelType
string
Enum: "HARDWARE" "DATA" "VIRTUAL" "LICENSE" "OTHER"

Tipo de activo (default HARDWARE): hardware físico, datos o virtual

manufacturer
string

Fabricante

modelNumber
string

Número de modelo del fabricante

notes
string

Notas del modelo

Responses

Request samples

Content type
application/json
{
  • "name": "HP ProLiant DL360 G10",
  • "categoryId": "string",
  • "modelType": "HARDWARE",
  • "manufacturer": "HP",
  • "modelNumber": "DL360G10",
  • "notes": "string"
}

AssetModelsController_findAll

Authorizations:
bearer

Responses

AssetModelsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetModelsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre del modelo del activo

categoryId
string

ID de la categoría (debe ser type=ASSET)

modelType
string
Enum: "HARDWARE" "DATA" "VIRTUAL" "LICENSE" "OTHER"

Tipo de activo (default HARDWARE): hardware físico, datos o virtual

manufacturer
string

Fabricante

modelNumber
string

Número de modelo del fabricante

notes
string

Notas del modelo

Responses

Request samples

Content type
application/json
{
  • "name": "HP ProLiant DL360 G10",
  • "categoryId": "string",
  • "modelType": "HARDWARE",
  • "manufacturer": "HP",
  • "modelNumber": "DL360G10",
  • "notes": "string"
}

AssetModelsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

AssetModelsController_uploadImage

Authorizations:
bearer
path Parameters
id
required
string

Responses

assets-public

PublicAssetsController_findByTag

path Parameters
tag
required
string

Responses

assets-custom-fields

CustomFieldsController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre del campo

appliesToType
required
string
Enum: "MODEL" "CATEGORY"

Entidad a la que aplica: MODEL o CATEGORY

appliesToId
required
string

UUID del AssetModel o Category

fieldType
required
string
Default: "TEXT"
Enum: "TEXT" "NUMBER" "DATE" "SELECT" "BOOLEAN"

Tipo de dato del campo (default TEXT)

options
Array of strings

Opciones válidas (obligatorio si fieldType=SELECT)

required
boolean
Default: false

Indica si el campo es obligatorio en el activo

active
boolean
Default: true

Habilita/deshabilita el campo sin borrarlo (default true)

Responses

Request samples

Content type
application/json
{
  • "name": "Tamaño de RAM",
  • "appliesToType": "MODEL",
  • "appliesToId": "string",
  • "fieldType": "TEXT",
  • "options": [
    ],
  • "required": false,
  • "active": true
}

CustomFieldsController_findAll

Authorizations:
bearer

Responses

CustomFieldsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

CustomFieldsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre del campo

fieldType
string
Default: "TEXT"
Enum: "TEXT" "NUMBER" "DATE" "SELECT" "BOOLEAN"

Tipo de dato del campo (default TEXT)

options
Array of strings

Opciones válidas (obligatorio si fieldType=SELECT)

required
boolean
Default: false

Indica si el campo es obligatorio en el activo

active
boolean
Default: true

Habilita/deshabilita el campo sin borrarlo (default true)

Responses

Request samples

Content type
application/json
{
  • "name": "Tamaño de RAM",
  • "fieldType": "TEXT",
  • "options": [
    ],
  • "required": false,
  • "active": true
}

CustomFieldsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

assets-maintenance

MaintenanceController_create

Authorizations:
bearer
Request Body schema: application/json
required
assetId
required
string

ID del activo a mantener

type
string
Enum: "PREVENTIVO" "CORRECTIVO" "PREDICTIVO"

Tipo de mantenimiento (default CORRECTIVO)

startDate
required
string

Fecha de inicio (ISO 8601)

endDate
string

Fecha de fin (ISO 8601). Si se envía, el activo se restaura.

cost
number

Costo del mantenimiento

technician
string

Técnico responsable (nombre/ID externo)

notes
string

Notas del mantenimiento

Responses

Request samples

Content type
application/json
{
  • "assetId": "string",
  • "type": "PREVENTIVO",
  • "startDate": "string",
  • "endDate": "string",
  • "cost": 250000,
  • "technician": "string",
  • "notes": "string"
}

MaintenanceController_findAll

Authorizations:
bearer

Responses

MaintenanceController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

MaintenanceController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
endDate
string

Fecha de fin (ISO 8601). Completa el mantenimiento y restaura el activo.

cost
number

Costo del mantenimiento

technician
string

Técnico responsable (nombre/ID externo)

notes
string

Notas del mantenimiento

Responses

Request samples

Content type
application/json
{
  • "endDate": "string",
  • "cost": 250000,
  • "technician": "string",
  • "notes": "string"
}

MaintenanceController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

assets-accessories

AccessoriesController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre del accesorio

categoryId
string

ID de la categoría (debe ser type=ASSET)

quantity
number

Cantidad en stock (default 0)

notes
string

Notas del accesorio

Responses

Request samples

Content type
application/json
{
  • "name": "Cargador HP 65W",
  • "categoryId": "string",
  • "quantity": 10,
  • "notes": "string"
}

AccessoriesController_findAll

Authorizations:
bearer

Responses

AccessoriesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

AccessoriesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre del accesorio

categoryId
string

ID de la categoría (debe ser type=ASSET)

quantity
number

Cantidad en stock (default 0)

notes
string

Notas del accesorio

Responses

Request samples

Content type
application/json
{
  • "name": "Cargador HP 65W",
  • "categoryId": "string",
  • "quantity": 10,
  • "notes": "string"
}

AccessoriesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

AccessoriesController_assign

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assetId
required
string

ID del activo destino

quantity
required
number

Cantidad a asignar (mínimo 1)

notes
string

Notas de la asignación

Responses

Request samples

Content type
application/json
{
  • "assetId": "string",
  • "quantity": 1,
  • "notes": "string"
}

AccessoriesController_returnAccessory

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assetId
required
string

ID del activo que devuelve

quantity
required
number

Cantidad a devolver (mínimo 1)

Responses

Request samples

Content type
application/json
{
  • "assetId": "string",
  • "quantity": 1
}

assets-components

ComponentsController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre del componente

categoryId
string

ID de la categoría (debe ser type=ASSET)

serial
string

Número de serie del componente

allocatedToAssetId
string

ID del activo padre al que está allocado (ej. servidor)

notes
string

Notas del componente

Responses

Request samples

Content type
application/json
{
  • "name": "Memoria RAM 16GB DDR4",
  • "categoryId": "string",
  • "serial": "string",
  • "allocatedToAssetId": "string",
  • "notes": "string"
}

ComponentsController_findAll

Authorizations:
bearer

Responses

ComponentsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

ComponentsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre del componente

categoryId
string

ID de la categoría (debe ser type=ASSET)

serial
string

Número de serie del componente

allocatedToAssetId
string

ID del activo padre al que está allocado (ej. servidor)

notes
string

Notas del componente

Responses

Request samples

Content type
application/json
{
  • "name": "Memoria RAM 16GB DDR4",
  • "categoryId": "string",
  • "serial": "string",
  • "allocatedToAssetId": "string",
  • "notes": "string"
}

ComponentsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

ComponentsController_allocate

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assetId
required
string

ID del activo destino (ej. servidor)

Responses

Request samples

Content type
application/json
{
  • "assetId": "string"
}

ComponentsController_deallocate

Authorizations:
bearer
path Parameters
id
required
string

Responses

assets-consumables

ConsumablesController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre del consumible

categoryId
string

ID de la categoría (debe ser type=ASSET)

quantity
number

Cantidad en stock (default 0)

unit
string

Unidad de medida (default "unidades")

notes
string

Notas del consumible

Responses

Request samples

Content type
application/json
{
  • "name": "Tóner HP 85A",
  • "categoryId": "string",
  • "quantity": 20,
  • "unit": "unidades",
  • "notes": "string"
}

ConsumablesController_findAll

Authorizations:
bearer

Responses

ConsumablesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

ConsumablesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre del consumible

categoryId
string

ID de la categoría (debe ser type=ASSET)

quantity
number

Cantidad en stock (default 0)

unit
string

Unidad de medida (default "unidades")

notes
string

Notas del consumible

Responses

Request samples

Content type
application/json
{
  • "name": "Tóner HP 85A",
  • "categoryId": "string",
  • "quantity": 20,
  • "unit": "unidades",
  • "notes": "string"
}

ConsumablesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

ConsumablesController_checkout

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assetId
required
string

ID del activo destino

quantity
required
number

Cantidad a entregar (mínimo 1)

Responses

Request samples

Content type
application/json
{
  • "assetId": "string",
  • "quantity": 1
}

ConsumablesController_returnStock

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
quantity
required
number

Cantidad a devolver (mínimo 1)

Responses

Request samples

Content type
application/json
{
  • "quantity": 1
}

assets-licenses

LicensesController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre de la licencia

categoryId
string

ID de la categoría (debe ser type=ASSET)

seats
number

Total de seats comprados (default 1)

expirationDate
string

Fecha de expiración (ISO 8601)

productKey
string

Clave de producto. Se hashea con argon2id; NUNCA se persiste en claro. Se muestra UNA SOLA VEZ en la respuesta de creación.

purchaseDate
string

Fecha de compra (ISO 8601)

purchaseCost
number

Costo de compra de la licencia

supplierId
string

ID del proveedor

notes
string

Notas de la licencia

Responses

Request samples

Content type
application/json
{
  • "name": "Microsoft Office 365",
  • "categoryId": "string",
  • "seats": 5,
  • "expirationDate": "string",
  • "productKey": "string",
  • "purchaseDate": "string",
  • "purchaseCost": 899000,
  • "supplierId": "string",
  • "notes": "string"
}

LicensesController_findAll

Authorizations:
bearer

Responses

LicensesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

LicensesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre de la licencia

categoryId
string

ID de la categoría (debe ser type=ASSET)

seats
number

Total de seats comprados

expirationDate
string

Fecha de expiración (ISO 8601)

purchaseDate
string

Fecha de compra (ISO 8601)

purchaseCost
number

Costo de compra de la licencia

supplierId
string

ID del proveedor

notes
string

Notas de la licencia

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "categoryId": "string",
  • "seats": 0,
  • "expirationDate": "string",
  • "purchaseDate": "string",
  • "purchaseCost": 0,
  • "supplierId": "string",
  • "notes": "string"
}

LicensesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

LicensesController_assign

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assetId
required
string

ID del activo destino

Responses

Request samples

Content type
application/json
{
  • "assetId": "string"
}

LicensesController_returnLicense

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assetId
required
string

ID del activo que devuelve el seat

Responses

Request samples

Content type
application/json
{
  • "assetId": "string"
}

sales-quotes

QuotesController_create

Authorizations:
bearer
Request Body schema: application/json
required
customerId
required
string

ID del cliente

validUntil
string

Fecha de validez (ISO 8601)

notes
string

Notas de la cotización

items
required
Array of strings

Líneas de la cotización (mínimo 1)

Responses

Request samples

Content type
application/json
{
  • "customerId": "string",
  • "validUntil": "string",
  • "notes": "string",
  • "items": [
    ]
}

QuotesController_findAll

Authorizations:
bearer

Responses

QuotesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

QuotesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
customerId
string

ID del cliente

validUntil
string

Fecha de validez (ISO 8601)

notes
string

Notas de la cotización

items
Array of strings

Líneas de la cotización (si se envían se reemplazan)

Responses

Request samples

Content type
application/json
{
  • "customerId": "string",
  • "validUntil": "string",
  • "notes": "string",
  • "items": [
    ]
}

QuotesController_send

Authorizations:
bearer
path Parameters
id
required
string

Responses

QuotesController_approve

Authorizations:
bearer
path Parameters
id
required
string

Responses

QuotesController_reject

Authorizations:
bearer
path Parameters
id
required
string

Responses

QuotesController_convert

Authorizations:
bearer
path Parameters
id
required
string

Responses

sales-invoices

InvoicesController_create

Authorizations:
bearer
Request Body schema: application/json
required
customerId
required
string

ID del cliente

dueDate
string

Fecha de vencimiento (ISO 8601)

paymentMethod
string
Default: "CASH"
Enum: "CASH" "CARD" "TRANSFER" "CREDIT" "MIXED"
notes
string

Notas de la factura

items
required
Array of strings

Líneas de la factura (mínimo 1)

Responses

Request samples

Content type
application/json
{
  • "customerId": "string",
  • "dueDate": "string",
  • "paymentMethod": "CASH",
  • "notes": "string",
  • "items": [
    ]
}

InvoicesController_findAll

Authorizations:
bearer

Responses

InvoicesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

InvoicesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
customerId
string

ID del cliente

dueDate
string

Fecha de vencimiento (ISO 8601)

paymentMethod
string
Enum: "CASH" "CARD" "TRANSFER" "CREDIT" "MIXED"
notes
string

Notas de la factura

items
Array of strings

Líneas (si se envían se reemplazan y recalculan totales)

Responses

Request samples

Content type
application/json
{
  • "customerId": "string",
  • "dueDate": "string",
  • "paymentMethod": "CASH",
  • "notes": "string",
  • "items": [
    ]
}

InvoicesController_pdf

Authorizations:
bearer
path Parameters
id
required
string

Responses

InvoicesController_issue

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
warehouseId
required
string

Bodega de salida del stock

Responses

Request samples

Content type
application/json
{
  • "warehouseId": "string"
}

InvoicesController_voidInvoice

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
reason
required
string

Motivo de la anulación

Responses

Request samples

Content type
application/json
{
  • "reason": "string"
}

sales-payments

PaymentsController_create

Authorizations:
bearer
Request Body schema: application/json
required
invoiceId
required
string

ID de la factura a la que se aplica el pago

amount
required
number

Monto del pago

paymentMethod
required
string
Enum: "CASH" "CARD" "TRANSFER" "CREDIT" "MIXED"

Medio de pago

bankAccountId
string

ID de la cuenta bancaria/caja a la que entra el dinero

reference
string

Número de transacción (ePayco, transferencia)

notes
string

Notas del pago

Responses

Request samples

Content type
application/json
{
  • "invoiceId": "string",
  • "amount": 50000,
  • "paymentMethod": "CASH",
  • "bankAccountId": "string",
  • "reference": "string",
  • "notes": "string"
}

PaymentsController_findAll

Authorizations:
bearer

Responses

sales-bank-accounts

BankAccountsController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre descriptivo

type
required
string
Default: "BANK"
Enum: "BANK" "CASH_REGISTER"
accountNumber
string

Número de cuenta (opcional para CASH_REGISTER)

bankName
string

Nombre del banco

Responses

Request samples

Content type
application/json
{
  • "name": "Bancolombia Cuenta Corriente",
  • "type": "BANK",
  • "accountNumber": "string",
  • "bankName": "string"
}

BankAccountsController_findAll

Authorizations:
bearer

Responses

BankAccountsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

BankAccountsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre descriptivo

accountNumber
string

Número de cuenta

bankName
string

Nombre del banco

isActive
boolean

Si está activa para recibir pagos

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "accountNumber": "string",
  • "bankName": "string",
  • "isActive": true
}

BankAccountsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-departments

DepartmentsController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre del departamento (único por empresa)

notes
string

Notas u observaciones del departamento

Responses

Request samples

Content type
application/json
{
  • "name": "Ventas",
  • "notes": "string"
}

DepartmentsController_findAll

Authorizations:
bearer
query Parameters
search
string

Filtro de búsqueda por nombre (case-insensitive)

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

DepartmentsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

DepartmentsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre del departamento (único por empresa)

notes
string

Notas u observaciones del departamento

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "notes": "string"
}

DepartmentsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-employees

EmployeesController_create

Authorizations:
bearer
Request Body schema: application/json
required
departmentId
string

Departamento al que pertenece

userId
string

ID de usuario del sistema (del JWT/gateway), opcional y sin FK

firstName
required
string

Primer nombre del empleado

lastName
required
string

Apellido del empleado

documentType
string

Tipo de documento

documentNumber
string

Número de documento

position
string

Cargo o posición del empleado

email
string

Correo electrónico

phone
string

Teléfono de contacto

hireDate
required
string

Fecha de contratación

birthDate
string

Fecha de nacimiento (para el correo de cumpleaños)

baseSalary
required
number

Salario base informativo (el de nómina se toma del contrato)

bankAccountInfo
string

Información bancaria como JSON serializado

Responses

Request samples

Content type
application/json
{
  • "departmentId": "string",
  • "userId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "documentType": "CC",
  • "documentNumber": "string",
  • "position": "string",
  • "email": "string",
  • "phone": "string",
  • "hireDate": "2026-01-15",
  • "birthDate": "1990-05-20",
  • "baseSalary": 2000000,
  • "bankAccountInfo": "{\"bank\":\"Bancolombia\",\"account\":\"1234\",\"type\":\"ahorros\"}"
}

EmployeesController_findAll

Authorizations:
bearer
query Parameters
departmentId
string

Filtrar por departamento

isActive
string
Example: isActive=true

Filtrar por estado activo

search
string

Búsqueda por nombre, apellido, email o documento

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

EmployeesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

EmployeesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
departmentId
string

Departamento al que pertenece

userId
string

ID de usuario del sistema (opcional y sin FK)

firstName
string

Primer nombre del empleado

lastName
string

Apellido del empleado

documentType
string

Tipo de documento

documentNumber
string

Número de documento

position
string

Cargo o posición del empleado

email
string

Correo electrónico

phone
string

Teléfono de contacto

birthDate
string

Fecha de nacimiento (para el correo de cumpleaños)

bankAccountInfo
string

Información bancaria como JSON serializado

Responses

Request samples

Content type
application/json
{
  • "departmentId": "string",
  • "userId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "documentType": "CC",
  • "documentNumber": "string",
  • "position": "string",
  • "email": "string",
  • "phone": "string",
  • "birthDate": "1990-05-20",
  • "bankAccountInfo": "string"
}

EmployeesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

EmployeesController_updateStatus

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
isActive
required
boolean

true = activo, false = liquidado/inactivo

terminationDate
string

Fecha de terminación del contrato (retiro)

Responses

Request samples

Content type
application/json
{
  • "isActive": true,
  • "terminationDate": "string"
}

EmployeesController_uploadPhoto

Authorizations:
bearer
path Parameters
id
required
string

Responses

EmployeesController_removePhoto

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-contracts

ContractsController_create

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado al que pertenece el contrato

type
string
Default: "INDEFINITE"
Enum: "INDEFINITE" "FIXED_TERM" "SERVICE" "APPRENTICESHIP"

Tipo de contrato

salary
required
number

Salario del contrato

startDate
required
string

Fecha de inicio del contrato

endDate
string

Fecha de fin (obligatoria para contrato a término fijo)

notes
string

Notas del contrato

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string",
  • "type": "INDEFINITE",
  • "salary": 2000000,
  • "startDate": "2026-01-15",
  • "endDate": "string",
  • "notes": "string"
}

ContractsController_findAll

Authorizations:
bearer
query Parameters
employeeId
string

Filtrar por empleado

isActive
string
Example: isActive=true

Filtrar por estado activo

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

ContractsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

ContractsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
endDate
string

Fecha de fin del contrato

notes
string

Notas del contrato

isActive
boolean

Estado activo del contrato

Responses

Request samples

Content type
application/json
{
  • "endDate": "string",
  • "notes": "string",
  • "isActive": true
}

ContractsController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-deduction-types

DeductionTypesController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre de la deducción

percentage
number

Porcentaje sobre el salario bruto (ej. 4.00 = 4%). XOR con fixedAmount

fixedAmount
number

Monto fijo en moneda local. XOR con percentage

side
string
Default: "EMPLOYEE"
Enum: "EMPLOYEE" "EMPLOYER"

Lado que paga la deducción

isActive
boolean
Default: true

Activo para la generación de nómina

Responses

Request samples

Content type
application/json
{
  • "name": "Salud",
  • "percentage": 4,
  • "fixedAmount": 50000,
  • "side": "EMPLOYEE",
  • "isActive": true
}

DeductionTypesController_findAll

Authorizations:
bearer
query Parameters
side
string
Enum: "EMPLOYEE" "EMPLOYER"

Filtrar por lado (EMPLEADO/EMPLEADOR)

Responses

DeductionTypesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre de la deducción

percentage
number

Porcentaje sobre el salario bruto. XOR con fixedAmount

fixedAmount
number

Monto fijo en moneda local. XOR con percentage

side
string
Enum: "EMPLOYEE" "EMPLOYER"

Lado que paga la deducción

isActive
boolean

Activo para la generación de nómina

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "percentage": 4,
  • "fixedAmount": 50000,
  • "side": "EMPLOYEE",
  • "isActive": true
}

DeductionTypesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-payroll

PayrollController_generate

Authorizations:
bearer
Request Body schema: application/json
required
period
required
string

Periodo de nómina en formato año-mes

Responses

Request samples

Content type
application/json
{
  • "period": "2026-08"
}

PayrollController_findAll

Authorizations:
bearer
query Parameters
period
string
Example: period=2026-08

Periodo de nómina en formato año-mes

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

PayrollController_approve

Authorizations:
bearer
path Parameters
id
required
string

Responses

PayrollController_pay

Authorizations:
bearer
path Parameters
id
required
string

Responses

PayrollController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-employee-documents

EmployeeDocumentsController_upload

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: multipart/form-data
required
type
required
string
Enum: "CONTRACT" "ID_CARD" "HEALTH_AFFILIATION" "PENSION_AFFILIATION" "OTHER"

Tipo de documento

Responses

EmployeeDocumentsController_findAll

Authorizations:
bearer
path Parameters
id
required
string
query Parameters
type
string
Enum: "CONTRACT" "ID_CARD" "HEALTH_AFFILIATION" "PENSION_AFFILIATION" "OTHER"

Filtrar por tipo de documento

Responses

EmployeeDocumentsController_findOne

Authorizations:
bearer
path Parameters
id
required
string
docId
required
string

Responses

EmployeeDocumentsController_remove

Authorizations:
bearer
path Parameters
id
required
string
docId
required
string

Responses

hr-salary-history

SalaryHistoryController_registerIncrement

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
newSalary
required
number

Nuevo salario mensual

effectiveDate
required
string

Fecha efectiva del incremento

reason
string

Motivo: INCREMENTO_ANUAL, PROMOCION, AJUSTE...

Responses

Request samples

Content type
application/json
{
  • "newSalary": 2500000,
  • "effectiveDate": "2026-09-01",
  • "reason": "PROMOCION"
}

SalaryHistoryController_findAll

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-time-off

TimeOffController_request

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado solicitante

type
required
string
Enum: "VACATION" "PERMISSION" "SICK_LEAVE" "MEDICAL_APPOINTMENT" "MATERNITY_LEAVE" "PATERNITY_LEAVE" "BEREAVEMENT_LEAVE" "MARRIAGE_LEAVE" "OTHER"

Tipo de tiempo libre

startDate
required
string

Fecha de inicio (inclusive)

endDate
required
string

Fecha de fin (inclusive)

reason
string

Motivo de la solicitud

medicalCertificateUrl
string

URL del certificado médico (obligatorio para SICK_LEAVE)

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string",
  • "type": "VACATION",
  • "startDate": "2026-08-10",
  • "endDate": "2026-08-14",
  • "reason": "string",
  • "medicalCertificateUrl": "string"
}

TimeOffController_findAll

Authorizations:
bearer
query Parameters
employeeId
string

Filtrar por empleado

status
string
Enum: "REQUESTED" "APPROVED" "REJECTED" "CANCELLED"

Filtrar por estado

type
string
Enum: "VACATION" "PERMISSION" "SICK_LEAVE" "MEDICAL_APPOINTMENT" "MATERNITY_LEAVE" "PATERNITY_LEAVE" "BEREAVEMENT_LEAVE" "MARRIAGE_LEAVE" "OTHER"

Filtrar por tipo

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

TimeOffController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

TimeOffController_approve

Authorizations:
bearer
path Parameters
id
required
string

Responses

TimeOffController_reject

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
reason
required
string

Motivo del rechazo

Responses

Request samples

Content type
application/json
{
  • "reason": "string"
}

TimeOffBalanceController_vacationBalance

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-attendance

AttendanceController_checkIn

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado que marca asistencia

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string"
}

AttendanceController_checkOut

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado que marca asistencia

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string"
}

AttendanceController_findAll

Authorizations:
bearer
query Parameters
employeeId
string

Filtrar por empleado

from
string
Example: from=2026-08-01

Fecha inicial (inclusive)

to
string
Example: to=2026-08-31

Fecha final (inclusive)

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

AttendanceController_markAbsent

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado ausente

date
required
string

Fecha de la ausencia

notes
string

Nota o justificación

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string",
  • "date": "2026-08-05",
  • "notes": "string"
}

hr-disciplinary

DisciplinaryController_create

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado involucrado

type
required
string
Enum: "VERBAL_WARNING" "WRITTEN_WARNING" "SUSPENSION" "TERMINATION"

Tipo de proceso

subject
required
string

Asunto breve del proceso

description
required
string

Descripción detallada de los hechos

date
required
string

Fecha del proceso

suspensionDays
number

Días de suspensión (obligatorio si type = SUSPENSION)

documentUrl
string

URL del acta o soporte

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string",
  • "type": "WRITTEN_WARNING",
  • "subject": "string",
  • "description": "string",
  • "date": "2026-08-05",
  • "suspensionDays": 0,
  • "documentUrl": "string"
}

DisciplinaryController_findAll

Authorizations:
bearer
query Parameters
employeeId
string

Filtrar por empleado

type
string
Enum: "VERBAL_WARNING" "WRITTEN_WARNING" "SUSPENSION" "TERMINATION"

Filtrar por tipo

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

DisciplinaryController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

DisciplinaryController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

DisciplinaryController_acknowledge

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-work-certificates

WorkCertificatesController_generate

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-overtime

OvertimeController_create

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado que realizó la hora extra

type
required
string
Enum: "DIURNA" "NOCTURNA" "DIURNA_DOMINICAL" "NOCTURNA_DOMINICAL" "RECARGO_NOCTURNO"

Tipo de hora extra/recargo

date
required
string

Fecha de la hora extra

hours
required
number

Cantidad de horas

notes
string

Nota u observación

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string",
  • "type": "DIURNA",
  • "date": "2026-08-12",
  • "hours": 2.5,
  • "notes": "string"
}

OvertimeController_findAll

Authorizations:
bearer
query Parameters
employeeId
string

Filtrar por empleado

from
string
Example: from=2026-08-01

Fecha inicial (inclusive)

to
string
Example: to=2026-08-31

Fecha final (inclusive)

approved
string
Example: approved=true

Filtrar por aprobación (true/false)

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

OvertimeController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

OvertimeController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

OvertimeController_approve

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-bonus

BonusController_create

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado beneficiario

type
required
string
Enum: "PERFORMANCE" "PRODUCTIVITY" "CHRISTMAS_BONUS" "TRANSPORT_ALLOWANCE" "FOOD_ALLOWANCE" "LEGAL_BONUS" "OTHER_TAXABLE" "OTHER_NON_TAXABLE"

Tipo de bonificación (define si es salarial y tributable)

amount
required
number

Monto de la bonificación

period
string

Periodo contable (año-mes)

description
string

Descripción u observación

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string",
  • "type": "PERFORMANCE",
  • "amount": 500000,
  • "period": "2026-08",
  • "description": "string"
}

BonusController_findAll

Authorizations:
bearer
query Parameters
employeeId
string

Filtrar por empleado

type
string
Enum: "PERFORMANCE" "PRODUCTIVITY" "CHRISTMAS_BONUS" "TRANSPORT_ALLOWANCE" "FOOD_ALLOWANCE" "LEGAL_BONUS" "OTHER_TAXABLE" "OTHER_NON_TAXABLE"

Filtrar por tipo

period
string
Example: period=2026-08

Filtrar por periodo (año-mes)

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

BonusController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

BonusController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

BonusController_markPaid

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-email

EmailSendController_send

Authorizations:
bearer
Request Body schema: application/json
required
employeeId
required
string

Empleado destinatario

templateId
required
string

Plantilla a usar

customData
object

Datos personalizados para los placeholders

Responses

Request samples

Content type
application/json
{
  • "employeeId": "string",
  • "templateId": "string",
  • "customData": {
    }
}

hr-email-templates

EmailTemplatesController_create

Authorizations:
bearer
Request Body schema: application/json
required
eventType
required
string
Enum: "BIRTHDAY" "WORK_ANNIVERSARY" "PAYROLL_SLIP" "CONTRACT_RENEWAL" "PROBATION_ENDING" "TIME_OFF_APPROVED" "TIME_OFF_REJECTED" "WELCOME" "FAREWELL" "CUSTOM"

Evento que dispara la plantilla

name
required
string

Nombre interno de la plantilla

subject
required
string

Asunto (soporta placeholders {{employeeName}}, {{date}})

body
required
string

Cuerpo HTML con placeholders: {{employeeName}}, {{date}}, {{amount}}

sendDaysBefore
number

Enviar X días antes del evento (cumpleaños/aniversarios)

Responses

Request samples

Content type
application/json
{
  • "eventType": "WELCOME",
  • "name": "string",
  • "subject": "string",
  • "body": "string",
  • "sendDaysBefore": 3
}

EmailTemplatesController_findAll

Authorizations:
bearer
query Parameters
eventType
string
Enum: "BIRTHDAY" "WORK_ANNIVERSARY" "PAYROLL_SLIP" "CONTRACT_RENEWAL" "PROBATION_ENDING" "TIME_OFF_APPROVED" "TIME_OFF_REJECTED" "WELCOME" "FAREWELL" "CUSTOM"

Filtrar por evento

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

EmailTemplatesController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

EmailTemplatesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre interno de la plantilla

subject
string

Asunto del correo

body
string

Cuerpo HTML de la plantilla

isActive
boolean

Habilitar/deshabilitar la plantilla

sendDaysBefore
number

Enviar X días antes del evento (cumpleaños/aniversarios)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "subject": "string",
  • "body": "string",
  • "isActive": true,
  • "sendDaysBefore": 0
}

EmailTemplatesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

hr-email-logs

EmailLogsController_findAll

Authorizations:
bearer
query Parameters
status
string

Filtrar por estado (SENT/FAILED)

from
string
Example: from=2026-08-01

Fecha inicial (inclusive)

to
string
Example: to=2026-08-31

Fecha final (inclusive)

recipient
string

Correo destinatario (búsqueda parcial)

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

EmailLogsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

support-categories

TicketCategoriesController_create

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string

Nombre de la categoría

description
string

Descripción breve de la categoría

isActive
boolean
Default: true

Habilita/deshabilita la categoría

Responses

Request samples

Content type
application/json
{
  • "name": "Soporte de Equipo",
  • "description": "string",
  • "isActive": true
}

TicketCategoriesController_findAll

Authorizations:
bearer

Responses

TicketCategoriesController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Nombre de la categoría

description
string

Descripción breve de la categoría

isActive
boolean

Habilita/deshabilita la categoría

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "isActive": true
}

TicketCategoriesController_remove

Authorizations:
bearer
path Parameters
id
required
string

Responses

support-tickets

TicketsController_create

Authorizations:
bearer
Request Body schema: application/json
required
categoryId
string

Categoría del ticket (opcional)

subject
required
string

Asunto corto del ticket

description
required
string

Descripción detallada del problema

priority
string
Enum: "LOW" "MEDIUM" "HIGH" "URGENT"

Prioridad (default MEDIUM)

dueDate
string

Fecha límite deseada (ISO)

Responses

Request samples

Content type
application/json
{
  • "categoryId": "string",
  • "subject": "Mi computador no enciende",
  • "description": "string",
  • "priority": "LOW",
  • "dueDate": "2026-08-20"
}

TicketsController_findAll

Authorizations:
bearer
query Parameters
status
string
Enum: "OPEN" "IN_PROGRESS" "RESOLVED" "CLOSED"

Filtrar por estado

priority
string
Enum: "LOW" "MEDIUM" "HIGH" "URGENT"

Filtrar por prioridad

categoryId
string

Filtrar por categoría

page
number
Default: 1

Número de página

limit
number
Default: 20

Cantidad por página

Responses

TicketsController_findOne

Authorizations:
bearer
path Parameters
id
required
string

Responses

TicketsController_update

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
subject
string

Asunto corto del ticket

description
string

Descripción detallada del problema

priority
string
Enum: "LOW" "MEDIUM" "HIGH" "URGENT"

Prioridad

dueDate
string

Fecha límite deseada (ISO)

Responses

Request samples

Content type
application/json
{
  • "subject": "string",
  • "description": "string",
  • "priority": "LOW",
  • "dueDate": "string"
}

TicketsController_changeStatus

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
status
required
string
Enum: "OPEN" "IN_PROGRESS" "RESOLVED" "CLOSED"

Estado destino

Responses

Request samples

Content type
application/json
{
  • "status": "OPEN"
}

TicketsController_assign

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: application/json
required
assignedTo
required
string

ID del usuario (del gateway) que recibe el ticket

Responses

Request samples

Content type
application/json
{
  • "assignedTo": "string"
}

support-comments

TicketCommentsController_create

Authorizations:
bearer
path Parameters
id
required
string
Request Body schema: multipart/form-data
required
commentText
required
string

Texto del comentario

isInternal
boolean
Default: false

Comentario interno (solo visible para MANAGER/ADMIN)

Responses

TicketCommentsController_findAll

Authorizations:
bearer
path Parameters
id
required
string

Responses