Download OpenAPI specification:Download
API principal para lógica de negocio de Gestia Platform
| 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. |
{- "name": "POS Caracas",
- "scopes": [
- "invoices:write",
- "catalog:read"
], - "expiresAt": "2027-12-31T23:59:59Z"
}| 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 |
{- "countryCode": "CO",
- "code": "1.1.1.01",
- "name": "Caja General",
- "nature": "DEBIT",
- "parentId": "string"
}| id required | string |
| name | string Nombre descriptivo de la cuenta |
| isActive | boolean Estado activo o inactivo |
{- "name": "string",
- "isActive": true
}| 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 |
{- "entryDate": "2026-08-05",
- "concept": "Registro de venta",
- "entryType": "SALES",
- "reference": "string",
- "lines": [
- {
- "accountId": "string",
- "debitAmount": 100000,
- "creditAmount": 0,
- "description": "string"
}
]
}| 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 |
| 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 |
{- "supplierId": "string",
- "categoryId": "string",
- "description": "Pago de servicios públicos",
- "amount": 150000,
- "paymentAccountId": "string",
- "expenseDate": "2026-08-05",
- "attachmentUrl": "string"
}| taxId required | string Documento fiscal del cliente (NIT, RUC, RUT, etc.) |
| name required | string Nombre o razón social del cliente |
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 |
{- "taxId": "string",
- "name": "string",
- "email": "string",
- "phone": "string",
- "address": "string",
- "creditLimit": 0
}| id required | string |
| taxId | string Documento fiscal del cliente (NIT, RUC, RUT, etc.) |
| name | string Nombre o razón social del cliente |
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 |
{- "taxId": "string",
- "name": "string",
- "email": "string",
- "phone": "string",
- "address": "string",
- "creditLimit": 0
}| id required | string |
| 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 |
{- "type": "CALL",
- "comment": "string",
- "nextActionDate": "string"
}| name required | string Nombre de la categoría |
| type | string Enum: "PRODUCT" "ASSET" Tipo de categoría (default PRODUCT) |
{- "name": "string",
- "type": "PRODUCT"
}| id required | string |
| name | string Nombre de la categoría |
| type | string Enum: "PRODUCT" "ASSET" Tipo de categoría (default PRODUCT) |
{- "name": "string",
- "type": "PRODUCT"
}| 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 |
{- "sku": "string",
- "name": "string",
- "categoryId": "string",
- "costPrice": 50,
- "sellingPrice": 100,
- "taxRate": 0,
- "isService": false,
- "unitOfMeasure": "und",
- "barcode": "string",
- "minStock": 0,
- "isActive": true
}| 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) |
| id required | string |
| 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 |
{- "sku": "string",
- "name": "string",
- "categoryId": "string",
- "costPrice": 50,
- "sellingPrice": 100,
- "taxRate": 0,
- "isService": false,
- "unitOfMeasure": "und",
- "barcode": "string",
- "minStock": 0,
- "isActive": true
}| 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) |
{- "name": "string",
- "location": "string",
- "parentWarehouseId": "string"
}| id required | string |
| 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) |
{- "name": "string",
- "location": "string",
- "parentWarehouseId": "string"
}| name required | string Nombre o razón social del proveedor |
| taxId | string Documento de identificación fiscal (NIT, RUC, etc.) |
string Correo electrónico de contacto | |
| phone | string Teléfono de contacto |
| address | string Dirección física del proveedor |
{- "name": "string",
- "taxId": "string",
- "email": "string",
- "phone": "string",
- "address": "string"
}| id required | string |
| name | string Nombre o razón social del proveedor |
| taxId | string Documento de identificación fiscal (NIT, RUC, etc.) |
string Correo electrónico de contacto | |
| phone | string Teléfono de contacto |
| address | string Dirección física del proveedor |
{- "name": "string",
- "taxId": "string",
- "email": "string",
- "phone": "string",
- "address": "string"
}| 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 |
{- "productId": "string",
- "warehouseId": "string",
- "fromWarehouseId": "string",
- "type": "IN",
- "quantity": 10,
- "reason": "PURCHASE"
}| 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 |
| 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) |
{- "supplierId": "string",
- "warehouseId": "string",
- "notes": "string",
- "items": [
- "string"
]
}| id required | string |
| 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) |
{- "supplierId": "string",
- "warehouseId": "string",
- "notes": "string",
- "items": [
- "string"
]
}| 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) |
{- "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"
}| 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 |
| 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 |
| id required | string |
| 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) |
{- "name": "Servidor Mail Prod",
- "modelId": "string",
- "status": "IN_PRODUCTION",
- "serial": "string",
- "notes": "string",
- "purchaseDate": "string",
- "purchaseCost": 5000000,
- "supplierId": "string",
- "locationId": "string"
}| id required | string |
| 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 |
{- "assignedToType": "CUSTOMER",
- "assignedToId": "string",
- "expectedCheckinDate": "string",
- "notes": "string"
}| id required | string |
| status required | string Enum: "IN_PRODUCTION" "IN_MAINTENANCE" "STORED" "DECOMMISSIONED" "LOST" "PENDING" Nuevo estado del activo |
{- "status": "IN_PRODUCTION"
}| id required | string |
| 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 |
{- "name": "string",
- "assetTag": "GST-AC12-00002",
- "notes": "string"
}| id required | string |
| notes | string Notas del retorno |
| condition | string Enum: "GOOD" "DAMAGED" "LOST" Condición del activo al devolverlo |
{- "notes": "string",
- "condition": "GOOD"
}| id required | string |
| 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 |
{- "expectedLocationId": "string",
- "expectedStatus": "IN_PRODUCTION",
- "mismatches": [
- {
- "field": "string",
- "expected": "string",
- "actual": "string"
}
], - "notes": "string"
}| id required | string |
required | Array of objects (SetCustomValueItemDto) Valores a asignar al activo | ||||
Array
| |||||
{- "values": [
- {
- "customFieldId": "string",
- "value": "16 GB"
}
]
}| 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 |
{- "name": "HP ProLiant DL360 G10",
- "categoryId": "string",
- "modelType": "HARDWARE",
- "manufacturer": "HP",
- "modelNumber": "DL360G10",
- "notes": "string"
}| id required | string |
| 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 |
{- "name": "HP ProLiant DL360 G10",
- "categoryId": "string",
- "modelType": "HARDWARE",
- "manufacturer": "HP",
- "modelNumber": "DL360G10",
- "notes": "string"
}| 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) |
{- "name": "Tamaño de RAM",
- "appliesToType": "MODEL",
- "appliesToId": "string",
- "fieldType": "TEXT",
- "options": [
- "DDR4",
- "DDR5"
], - "required": false,
- "active": true
}| id required | string |
| 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) |
{- "name": "Tamaño de RAM",
- "fieldType": "TEXT",
- "options": [
- "DDR4",
- "DDR5"
], - "required": false,
- "active": true
}| 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 |
{- "assetId": "string",
- "type": "PREVENTIVO",
- "startDate": "string",
- "endDate": "string",
- "cost": 250000,
- "technician": "string",
- "notes": "string"
}| id required | string |
| 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 |
{- "endDate": "string",
- "cost": 250000,
- "technician": "string",
- "notes": "string"
}| 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 |
{- "name": "Cargador HP 65W",
- "categoryId": "string",
- "quantity": 10,
- "notes": "string"
}| id required | string |
| 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 |
{- "name": "Cargador HP 65W",
- "categoryId": "string",
- "quantity": 10,
- "notes": "string"
}| id required | string |
| assetId required | string ID del activo destino |
| quantity required | number Cantidad a asignar (mínimo 1) |
| notes | string Notas de la asignación |
{- "assetId": "string",
- "quantity": 1,
- "notes": "string"
}| id required | string |
| assetId required | string ID del activo que devuelve |
| quantity required | number Cantidad a devolver (mínimo 1) |
{- "assetId": "string",
- "quantity": 1
}| 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 |
{- "name": "Memoria RAM 16GB DDR4",
- "categoryId": "string",
- "serial": "string",
- "allocatedToAssetId": "string",
- "notes": "string"
}| id required | string |
| 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 |
{- "name": "Memoria RAM 16GB DDR4",
- "categoryId": "string",
- "serial": "string",
- "allocatedToAssetId": "string",
- "notes": "string"
}| 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 |
{- "name": "Tóner HP 85A",
- "categoryId": "string",
- "quantity": 20,
- "unit": "unidades",
- "notes": "string"
}| id required | string |
| 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 |
{- "name": "Tóner HP 85A",
- "categoryId": "string",
- "quantity": 20,
- "unit": "unidades",
- "notes": "string"
}| id required | string |
| assetId required | string ID del activo destino |
| quantity required | number Cantidad a entregar (mínimo 1) |
{- "assetId": "string",
- "quantity": 1
}| 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 |
{- "name": "Microsoft Office 365",
- "categoryId": "string",
- "seats": 5,
- "expirationDate": "string",
- "productKey": "string",
- "purchaseDate": "string",
- "purchaseCost": 899000,
- "supplierId": "string",
- "notes": "string"
}| id required | string |
| 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 |
{- "name": "string",
- "categoryId": "string",
- "seats": 0,
- "expirationDate": "string",
- "purchaseDate": "string",
- "purchaseCost": 0,
- "supplierId": "string",
- "notes": "string"
}| 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) |
{- "customerId": "string",
- "validUntil": "string",
- "notes": "string",
- "items": [
- "string"
]
}| id required | string |
| 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) |
{- "customerId": "string",
- "validUntil": "string",
- "notes": "string",
- "items": [
- "string"
]
}| 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) |
{- "customerId": "string",
- "dueDate": "string",
- "paymentMethod": "CASH",
- "notes": "string",
- "items": [
- "string"
]
}| id required | string |
| 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) |
{- "customerId": "string",
- "dueDate": "string",
- "paymentMethod": "CASH",
- "notes": "string",
- "items": [
- "string"
]
}| 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 |
{- "invoiceId": "string",
- "amount": 50000,
- "paymentMethod": "CASH",
- "bankAccountId": "string",
- "reference": "string",
- "notes": "string"
}| 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 |
{- "name": "Bancolombia Cuenta Corriente",
- "type": "BANK",
- "accountNumber": "string",
- "bankName": "string"
}| id required | string |
| name | string Nombre descriptivo |
| accountNumber | string Número de cuenta |
| bankName | string Nombre del banco |
| isActive | boolean Si está activa para recibir pagos |
{- "name": "string",
- "accountNumber": "string",
- "bankName": "string",
- "isActive": true
}| name required | string Nombre del departamento (único por empresa) |
| notes | string Notas u observaciones del departamento |
{- "name": "Ventas",
- "notes": "string"
}| id required | string |
| name | string Nombre del departamento (único por empresa) |
| notes | string Notas u observaciones del departamento |
{- "name": "string",
- "notes": "string"
}| 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 |
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 |
{- "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\"}"
}| 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 |
| id required | string |
| 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 |
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 |
{- "departmentId": "string",
- "userId": "string",
- "firstName": "string",
- "lastName": "string",
- "documentType": "CC",
- "documentNumber": "string",
- "position": "string",
- "email": "string",
- "phone": "string",
- "birthDate": "1990-05-20",
- "bankAccountInfo": "string"
}| id required | string |
| isActive required | boolean true = activo, false = liquidado/inactivo |
| terminationDate | string Fecha de terminación del contrato (retiro) |
{- "isActive": true,
- "terminationDate": "string"
}| 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 |
{- "employeeId": "string",
- "type": "INDEFINITE",
- "salary": 2000000,
- "startDate": "2026-01-15",
- "endDate": "string",
- "notes": "string"
}| id required | string |
| endDate | string Fecha de fin del contrato |
| notes | string Notas del contrato |
| isActive | boolean Estado activo del contrato |
{- "endDate": "string",
- "notes": "string",
- "isActive": true
}| 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 |
{- "name": "Salud",
- "percentage": 4,
- "fixedAmount": 50000,
- "side": "EMPLOYEE",
- "isActive": true
}| id required | string |
| 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 |
{- "name": "string",
- "percentage": 4,
- "fixedAmount": 50000,
- "side": "EMPLOYEE",
- "isActive": true
}| id required | string |
| newSalary required | number Nuevo salario mensual |
| effectiveDate required | string Fecha efectiva del incremento |
| reason | string Motivo: INCREMENTO_ANUAL, PROMOCION, AJUSTE... |
{- "newSalary": 2500000,
- "effectiveDate": "2026-09-01",
- "reason": "PROMOCION"
}| 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) |
{- "employeeId": "string",
- "type": "VACATION",
- "startDate": "2026-08-10",
- "endDate": "2026-08-14",
- "reason": "string",
- "medicalCertificateUrl": "string"
}| 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 |
| 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 |
| employeeId required | string Empleado ausente |
| date required | string Fecha de la ausencia |
| notes | string Nota o justificación |
{- "employeeId": "string",
- "date": "2026-08-05",
- "notes": "string"
}| 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 |
{- "employeeId": "string",
- "type": "WRITTEN_WARNING",
- "subject": "string",
- "description": "string",
- "date": "2026-08-05",
- "suspensionDays": 0,
- "documentUrl": "string"
}| 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 |
{- "employeeId": "string",
- "type": "DIURNA",
- "date": "2026-08-12",
- "hours": 2.5,
- "notes": "string"
}| 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 |
| 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 |
{- "employeeId": "string",
- "type": "PERFORMANCE",
- "amount": 500000,
- "period": "2026-08",
- "description": "string"
}| 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 |
| employeeId required | string Empleado destinatario |
| templateId required | string Plantilla a usar |
| customData | object Datos personalizados para los placeholders |
{- "employeeId": "string",
- "templateId": "string",
- "customData": {
- "amount": "500000"
}
}| 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) |
{- "eventType": "WELCOME",
- "name": "string",
- "subject": "string",
- "body": "string",
- "sendDaysBefore": 3
}| 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 |
| id required | string |
| 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) |
{- "name": "string",
- "subject": "string",
- "body": "string",
- "isActive": true,
- "sendDaysBefore": 0
}| 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 |
| 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 |
{- "name": "Soporte de Equipo",
- "description": "string",
- "isActive": true
}| id required | string |
| name | string Nombre de la categoría |
| description | string Descripción breve de la categoría |
| isActive | boolean Habilita/deshabilita la categoría |
{- "name": "string",
- "description": "string",
- "isActive": true
}| 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) |
{- "categoryId": "string",
- "subject": "Mi computador no enciende",
- "description": "string",
- "priority": "LOW",
- "dueDate": "2026-08-20"
}| 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 |
| id required | string |
| 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) |
{- "subject": "string",
- "description": "string",
- "priority": "LOW",
- "dueDate": "string"
}