MinSalud.SIIFA.API.Contrato (v2.0.0)

Download OpenAPI specification:Download

CodigoReferencia

Obtiene la lista de códigos de referencia filtrados por nombre de dominio.

Este endpoint permite consultar códigos de referencia asociados a un dominio específico mediante su nombre. Los resultados incluyen el identificador y la descripción de cada código de referencia.

Sample request:

GET /api/CodigoReferencia/GetByNombreDominio/TipoContrato
Authorizations:
Bearer
path Parameters
NombreDominio
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Obtiene la lista de códigos de referencia filtrados por identificador de dominio.

Este endpoint permite consultar códigos de referencia asociados a un dominio específico mediante su ID. Los resultados incluyen el identificador y la descripción de cada código de referencia.

Sample request:

GET /api/CodigoReferencia/GetByIdDominio/6
Authorizations:
Bearer
path Parameters
IdDominio
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

CodigoReferenciaDominio

Obtiene la lista de todos los dominios de código de referencia activos.

Este endpoint permite consultar todos los dominios de código de referencia disponibles en el sistema, incluyendo información como unidad de análisis, nombre, descripción y estado activo.

Los resultados se devuelven ordenados por nombre y solo incluyen dominios activos.

Sample request:

GET /api/CodigoReferenciaDominio
Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Contrato

Obtiene una lista paginada de contratos con filtros opcionales.

Este endpoint permite consultar contratos aplicando múltiples filtros opcionales:

Filtros disponibles:

  • IdContrato: Filtro por identificador específico del contrato
  • NitContratante: Filtro por NIT del contratante (entidad que contrata)
  • NitContratista: Filtro por NIT del contratista (prestador de servicios)
  • Nombre: Búsqueda parcial por nombre del contrato
  • CodigoEstado: Filtro por estado del contrato (102001=En creación, 102002=Activo, etc.)
  • AnioSuscripcion: Filtro por año de suscripción del contrato
  • NumeroPagina: Número de página para paginación (debe ser mayor a 0, default: 1)
  • RegistrosPorPagina: Cantidad de registros por página (debe ser mayor a 0 y menor o igual a 100, default: 10)

Seguridad y roles:

  • SIIFA_Admin: Acceso a todos los contratos sin restricciones
  • SIIFA_IPS: Solo puede consultar contratos donde sea el contratista (NitContratista filtrado automáticamente)
  • SIIFA_ERP: Solo puede consultar contratos donde sea el contratante (NitContratante filtrado automáticamente)

Los resultados se devuelven paginados con metadatos que incluyen:

  • Total de registros encontrados
  • Total de páginas disponibles
  • Página actual
  • Registros por página

Validaciones:

  • NumeroPagina debe ser mayor a 0
  • RegistrosPorPagina debe ser mayor a 0 y no superar 100

Sample request:

GET /api/Contrato?NumeroPagina=1&RegistrosPorPagina=10&CodigoEstado=102001
GET /api/Contrato?NitContratista=800123456&AnioSuscripcion=2025
GET /api/Contrato?Nombre=Servicios%20de%20Salud
Authorizations:
Bearer
query Parameters
IdContrato
integer <int32>
NitContratante
string
NitContratista
string
Nombre
string
CodigoEstado
integer <int32>
AnioSuscripcion
integer <int32>
NumeroPagina
integer <int32>
RegistrosPorPagina
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Registra un nuevo contrato en el sistema SIIFA.

Este endpoint permite crear un nuevo contrato con validaciones automáticas de integridad. El contrato se crea en estado "En creación" (102001) por defecto.

Datos requeridos:

  • CodigoTipoContrato: Tipo de contrato (104001 = Contrato de prestación de servicios)
  • NitContratante: NIT del contratante (debe existir en tabla Empresa)
  • NitContratista: NIT del contratista (debe existir en tabla Empresa)
  • Nombre: Nombre descriptivo del contrato
  • FechaSuscripcion: Fecha de firma del contrato
  • FechaInicio: Fecha de inicio de vigencia
  • FechaFin: Fecha de finalización (opcional)
  • Valor: Valor total del contrato (debe ser mayor a 0)

Datos condicionales (requeridos para contratos tipo 104001):

  • CodigoReferenciaModalidadPago: Lista de modalidades de pago (ej: [1, 2])
  • CodigoReferenciaAgrupador: Lista de agrupadores poblacionales (ej: [5, 6])
  • CodigoReferenciaRegimen: Lista de regímenes aplicables (ej: [3])

Validaciones automáticas aplicadas:

  1. Validación de NITs:

    • NitContratante debe existir en dbo.Empresa
    • NitContratista debe existir en dbo.Empresa
  2. Validación de fechas:

    • FechaSuscripcion debe ser menor o igual a FechaInicio
    • FechaInicio debe ser menor que FechaFin (si FechaFin está presente)
  3. Validación de duplicidad:

    • No puede existir otro contrato con el mismo hash CUCON
    • El hash se genera con: SHA256(TipoContrato + NitContratante + NitContratista + Nombre + FechaSuscripcion)
  4. Validaciones condicionales (tipo 104001):

    • ModalidadPago es obligatoria
    • Agrupador es obligatorio
    • Regimen es obligatorio
  5. Validaciones de datos:

    • Valor debe ser mayor a 0
    • Nombre no puede estar vacío
    • CodigoTipoContrato debe existir en CodigoReferencia

Registros creados:

  • 1 registro en tabla Contrato
  • 1 registro en tabla ContratoEstado (estado inicial 102001)
  • N registros en tabla ContratoModalidadPago (si aplica)
  • N registros en tabla ContratoRegimen (si aplica)
  • N registros en tabla ContratoAgrupador (si aplica)

Sample request:

POST /api/Contrato
{
    "codigoTipoContrato": 104001,
    "nitContratante": 900123456,
    "nitContratista": 800654321,
    "nombre": "Contrato de Prestación de Servicios de Salud 2025",
    "fechaSuscripcion": "2025-01-15",
    "fechaInicio": "2025-02-01",
    "fechaFin": "2025-12-31",
    "valor": 500000000,
    "codigoReferenciaModalidadPago": [1, 2],
    "codigoReferenciaAgrupador": [5, 6],
    "codigoReferenciaRegimen": [3]
}
Authorizations:
Bearer
Request Body schema:

Comando con los datos del contrato a registrar.

codigoTipoContrato
integer <int32>
nitContratante
integer <int32>
nitContratista
integer <int32>
nombre
string or null
fechaSuscripcion
string <date-time>
fechaInicio
string <date-time>
fechaFin
string or null <date-time>
valor
number <double>
codigoReferenciaModalidadPago
Array of integers or null <int32>
codigoReferenciaAgrupador
Array of integers or null <int32>
codigoReferenciaRegimen
Array of integers or null <int32>

Responses

Request samples

Content type
{
  • "codigoTipoContrato": 0,
  • "nitContratante": 0,
  • "nitContratista": 0,
  • "nombre": "string",
  • "fechaSuscripcion": "2019-08-24T14:15:22Z",
  • "fechaInicio": "2019-08-24T14:15:22Z",
  • "fechaFin": "2019-08-24T14:15:22Z",
  • "valor": 0,
  • "codigoReferenciaModalidadPago": [
    ],
  • "codigoReferenciaAgrupador": [
    ],
  • "codigoReferenciaRegimen": [
    ]
}

Response samples

Content type
application/json
{
  • "idContrato": 0
}

Actualiza la información de un contrato existente.

Este endpoint permite modificar los datos de un contrato existente aplicando las mismas validaciones que en la creación del contrato.

Restricciones importantes:

  • Solo se permiten actualizaciones en contratos que estén en estado "En creación" (102001)
  • Los contratos en estados Activo (102002), Terminado (102003) o Inactivo (102004) no pueden modificarse
  • El contrato debe existir en la base de datos

Campos actualizables:

  • CodigoTipoContrato: Tipo de contrato
  • NitContratante: NIT del contratante (debe existir en tabla Empresa)
  • NitContratista: NIT del contratista (debe existir en tabla Empresa)
  • Nombre: Nombre descriptivo del contrato
  • FechaSuscripcion: Fecha de firma del contrato
  • FechaInicio: Fecha de inicio de vigencia
  • FechaFin: Fecha de finalización (opcional)
  • Valor: Valor total del contrato
  • CodigoReferenciaModalidadPago: Lista de modalidades de pago (para tipo 104001)
  • CodigoReferenciaAgrupador: Lista de agrupadores (para tipo 104001)
  • CodigoReferenciaRegimen: Lista de regímenes (para tipo 104001)

Validaciones automáticas aplicadas:

  1. Validación de existencia:

    • El IdContrato debe existir en la base de datos
  2. Validación de NITs:

    • NitContratante debe existir en dbo.Empresa
    • NitContratista debe existir en dbo.Empresa
  3. Validación de fechas:

    • FechaSuscripcion debe ser menor o igual a FechaInicio
    • FechaInicio debe ser menor que FechaFin (si FechaFin está presente)
  4. Validación de duplicidad:

    • No puede existir otro contrato (diferente al actual) con el mismo hash CUCON
    • El hash se recalcula con los nuevos datos
  5. Validaciones condicionales (tipo 104001):

    • ModalidadPago es obligatoria
    • Agrupador es obligatorio
    • Regimen es obligatorio

Operaciones realizadas:

  • Actualización del registro en tabla Contrato
  • Eliminación de registros antiguos en ContratoModalidadPago, ContratoRegimen, ContratoAgrupador
  • Creación de nuevos registros según los datos proporcionados
  • Recálculo del hash CUCON

Nota importante: Si se eliminan valores de las listas (ModalidadPago, Regimen, Agrupador), los registros relacionados se eliminarán automáticamente de la base de datos.

Sample request:

PUT /api/Contrato
{
    "idContrato": 1,
    "codigoTipoContrato": 104001,
    "nitContratante": 900123456,
    "nitContratista": 800654321,
    "nombre": "Contrato Actualizado 2025",
    "fechaSuscripcion": "2025-01-15",
    "fechaInicio": "2025-02-01",
    "fechaFin": "2025-12-31",
    "valor": 550000000,
    "codigoReferenciaModalidadPago": [1, 2, 3],
    "codigoReferenciaAgrupador": [5],
    "codigoReferenciaRegimen": [3, 4]
}
Authorizations:
Bearer
Request Body schema:

Comando con los datos actualizados del contrato. Debe incluir el IdContrato.

idContrato
integer <int32>
codigoTipoContrato
integer <int32>
nitContratante
integer <int32>
nitContratista
integer <int32>
nombre
string or null
fechaSuscripcion
string <date-time>
fechaInicio
string <date-time>
fechaFin
string or null <date-time>
valor
number <double>
codigoReferenciaModalidadPago
Array of integers or null <int32>
codigoReferenciaAgrupador
Array of integers or null <int32>
codigoReferenciaRegimen
Array of integers or null <int32>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoTipoContrato": 0,
  • "nitContratante": 0,
  • "nitContratista": 0,
  • "nombre": "string",
  • "fechaSuscripcion": "2019-08-24T14:15:22Z",
  • "fechaInicio": "2019-08-24T14:15:22Z",
  • "fechaFin": "2019-08-24T14:15:22Z",
  • "valor": 0,
  • "codigoReferenciaModalidadPago": [
    ],
  • "codigoReferenciaAgrupador": [
    ],
  • "codigoReferenciaRegimen": [
    ]
}

Response samples

Content type
application/json
{
  • "idContrato": 0
}

Obtiene los detalles completos de un contrato específico por su identificador.

Este endpoint devuelve información detallada y completa de un contrato específico, incluyendo:

Información básica:

  • Identificador del contrato (IdContrato)
  • Tipo de contrato (CodigoTipoContrato y descripción)
  • Nombre del contrato
  • Fechas: suscripción, inicio y fin
  • Valor total del contrato
  • Código CUCON (hash único del contrato)
  • Estado actual y código de estado

Información de las partes:

  • Datos del contratante (NIT y razón social)
  • Datos del contratista (NIT y razón social)

Información de configuración:

  • Modalidades de pago asociadas (si aplica)
  • Regímenes aplicables al contrato
  • Agrupadores relacionados (para contratos tipo 104001)

Información complementaria:

  • Lista de otros sí (modificaciones contractuales)
  • Número de servicios asociados
  • Número de medicamentos (CUMS) asociados
  • Número de procedimientos (CUPS) asociados

Validaciones:

  • El IdContrato debe ser un número positivo mayor a 0
  • El contrato debe existir en la base de datos

Sample request:

GET /api/Contrato/1
GET /api/Contrato/150
Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "idContrato": 0,
  • "codigoTipoContrato": 0,
  • "tipoContrato": {
    },
  • "nitContratante": 0,
  • "empresaContratante": {
    },
  • "nitContratista": 0,
  • "empresaContratista": {
    },
  • "nombre": "string",
  • "fechaSuscripcion": "2019-08-24T14:15:22Z",
  • "fechaInicio": "2019-08-24T14:15:22Z",
  • "fechaFin": "2019-08-24T14:15:22Z",
  • "valor": 0,
  • "cucon": "string",
  • "codigoReferenciaModalidadPago": [
    ],
  • "contratoModalidadPago": [
    ],
  • "codigoReferenciaAgrupador": [
    ],
  • "contratoAgrupador": [
    ],
  • "codigoReferenciaRegimen": [
    ],
  • "contratoRegimen": [
    ],
  • "otrosis": [
    ],
  • "estado": "string",
  • "codigoEstado": 0,
  • "numeroServicios": 0,
  • "numeroMedicamentos": 0,
  • "numeroProcedimientos": 0
}

Elimina permanentemente un contrato del sistema por su identificador.

Este endpoint permite eliminar un contrato específico del sistema de forma permanente. Esta operación es irreversible y debe usarse con precaución.

Restricciones importantes:

  • Solo se permiten eliminaciones de contratos que estén en estado "En creación" (102001)
  • Los contratos en estados Activo (102002), Terminado (102003) o Inactivo (102004) no pueden eliminarse
  • El contrato debe existir en la base de datos
  • El IdContrato debe ser un número positivo mayor a 0

Validaciones automáticas:

  1. El IdContrato debe ser mayor a 0
  2. El contrato debe existir en la base de datos

Eliminaciones en cascada:

Al eliminar un contrato, se eliminarán automáticamente todos los registros relacionados:

  • ContratoEstado: Todos los estados históricos del contrato
  • ContratoModalidadPago: Todas las modalidades de pago asociadas
  • ContratoAgrupador: Todos los agrupadores poblacionales relacionados
  • ContratoRegimen: Todos los regímenes aplicables al contrato
  • ContratoOperacion: Todas las operaciones de cobertura poblacional
  • ContratoPrestadorServicio: Todos los servicios asociados
  • ContratoCums: Todos los medicamentos asociados
  • ContratoCups: Todos los procedimientos asociados
  • ContratoOtrosi: Todos los otros sí (modificaciones) del contrato
  • ContratoAnticipo: Todos los anticipos registrados
  • ContratoLiquidacion: Todas las liquidaciones asociadas

Nota importante: Esta operación elimina el contrato y TODOS sus datos relacionados de forma permanente. No es posible recuperar la información después de la eliminación. Para contratos que ya están activos o han sido utilizados, considere usar cambio de estado en lugar de eliminación física.

Sample request:

DELETE /api/Contrato/1
DELETE /api/Contrato/150
Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "idContrato": 0
}

ContratoAgrupador

Obtiene la lista de agrupadores asociados a un contrato específico.

Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de un agrupador de contrato por su identificador.

Authorizations:
Bearer
path Parameters
IdContratoAgrupador
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina un agrupador de contrato por su identificador.

Authorizations:
Bearer
path Parameters
IdContratoAgrupador
required
integer <int64>

Responses

Response samples

Content type
No sample

Registra un nuevo agrupador para un contrato.

Authorizations:
Bearer
Request Body schema:

Datos del agrupador a registrar.

idContrato
integer <int32>
codigoAgrupador
required
integer <int32>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoAgrupador": 0
}

Response samples

Content type
No sample

Actualiza la información de un agrupador de contrato existente.

Authorizations:
Bearer
Request Body schema:

Datos actualizados del agrupador.

idContratoAgrupador
integer <int64>
codigoAgrupador
integer <int32>

Responses

Request samples

Content type
{
  • "idContratoAgrupador": 0,
  • "codigoAgrupador": 0
}

Response samples

Content type
No sample

ContratoAnticipo

Obtiene la lista de anticipos asociados a un contrato específico.

Este endpoint permite consultar todos los anticipos registrados para un contrato, filtrando por el identificador del contrato.

Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de un anticipo de contrato por su identificador.

Este endpoint devuelve la información detallada de un anticipo de contrato específico, incluyendo valores, fechas y referencias.

Authorizations:
Bearer
path Parameters
IdContratoAnticipo
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina un anticipo de contrato por su identificador.

Este endpoint permite eliminar un anticipo de contrato existente, identificándolo por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoAnticipo
required
integer <int64>

Responses

Response samples

Content type
No sample

Registra un nuevo anticipo para un contrato.

Este endpoint permite crear un nuevo registro de anticipo asociado a un contrato, especificando los datos requeridos como valor, fecha y referencia.

Authorizations:
Bearer
Request Body schema:

Datos del anticipo a registrar.

idContrato
integer <int32>
codigoFuente
integer <int32>
referencia
string or null
valorAnticipo
number <double>
fechaAnticipo
string <date-time>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoFuente": 0,
  • "referencia": "string",
  • "valorAnticipo": 0,
  • "fechaAnticipo": "2019-08-24T14:15:22Z"
}

Response samples

Content type
No sample

Actualiza la información de un anticipo de contrato existente.

Este endpoint permite modificar los datos de un anticipo previamente registrado, como el valor, la fecha o la referencia.

Authorizations:
Bearer
Request Body schema:

Datos actualizados del anticipo.

idContratoAnticipo
integer <int32>
codigoFuente
integer <int32>
referencia
string or null
valorAnticipo
number <double>
fechaAnticipo
string <date-time>

Responses

Request samples

Content type
{
  • "idContratoAnticipo": 0,
  • "codigoFuente": 0,
  • "referencia": "string",
  • "valorAnticipo": 0,
  • "fechaAnticipo": "2019-08-24T14:15:22Z"
}

Response samples

Content type
No sample

ContratoCums

Obtiene la lista de CUMS (medicamentos y suministros) asociados a un contrato específico.

Este endpoint permite consultar todos los CUMS registrados para un contrato, filtrando por el identificador del contrato.

Información retornada:

  • Código CUMS del medicamento o suministro
  • Descripción y nombre comercial
  • Principio activo
  • Concentración y forma farmacéutica
  • Valor unitario y modalidades de pago asociadas
  • Cantidad contratada

Validaciones:

  • El IdContrato debe ser un número positivo mayor a 0
  • El contrato debe existir en la base de datos

Sample request:

GET /api/ContratoCums/ByIdContrato/1
GET /api/ContratoCums/ByIdContrato/150
Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "idContratoCums": 0,
  • "idContrato": 0,
  • "idCums": 0,
  • "cantidad": 0,
  • "fechaRegistro": "2019-08-24T14:15:22Z",
  • "cums": {
    }
}

Obtiene el detalle completo de un CUMS de contrato por su identificador.

Este endpoint devuelve información detallada y completa de un CUMS de contrato específico, incluyendo:

Información del medicamento/suministro:

  • Código CUMS completo
  • Nombre genérico y comercial
  • Principio activo y composición
  • Concentración y forma farmacéutica
  • Vía de administración
  • Presentación comercial

Información contractual:

  • Identificador del contrato asociado
  • Valor unitario pactado
  • Cantidad contratada
  • Modalidades de pago aplicables
  • Vigencia de la asociación

Validaciones:

  • El IdContratoCums debe ser un número positivo mayor a 0
  • El registro debe existir en la base de datos

Sample request:

GET /api/ContratoCums/1
GET /api/ContratoCums/250
Authorizations:
Bearer
path Parameters
IdContratoCums
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "idContratoCums": 0,
  • "idContrato": 0,
  • "idCums": 0,
  • "cantidad": 0,
  • "fechaRegistro": "2019-08-24T14:15:22Z",
  • "cums": {
    }
}

Elimina permanentemente un CUMS de contrato del sistema por su identificador.

Este endpoint permite eliminar un CUMS de contrato específico del sistema de forma permanente. Esta operación es irreversible y debe usarse con precaución.

Restricciones importantes:

  • Solo se permiten eliminaciones de CUMS en contratos que estén en estado "En creación" (102001)
  • Los CUMS de contratos en estados Activo, Terminado o Inactivo no pueden eliminarse
  • El CUMS debe existir en la base de datos
  • El IdContratoCums debe ser un número positivo mayor a 0

Validaciones automáticas:

  1. El IdContratoCums debe ser mayor a 0
  2. El CUMS debe existir en la base de datos
  3. El contrato asociado debe estar en estado "En creación" (102001)

Eliminaciones en cascada:

Al eliminar un CUMS de contrato, se eliminarán automáticamente todos los registros relacionados:

  • ContratoCumsModalidadPago: Todas las modalidades de pago asociadas al CUMS

Nota importante: Esta operación elimina el CUMS y TODOS sus datos relacionados de forma permanente. No es posible recuperar la información después de la eliminación. Para contratos que ya están activos, considere usar cambio de estado en lugar de eliminación física.

Sample request:

DELETE /api/ContratoCums/1
DELETE /api/ContratoCums/250
Authorizations:
Bearer
path Parameters
IdContratoCums
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "idContratoCums": 0
}

Registra un nuevo CUMS (medicamento o suministro) asociado a un contrato.

Este endpoint permite crear un nuevo registro de CUMS vinculado a un contrato con validaciones automáticas de integridad.

Datos requeridos:

  • IdContrato: Identificador del contrato (debe existir)
  • CodigoCums: Código único del medicamento o suministro (debe existir en ReferenciaCums)
  • ValorUnitario: Valor unitario del CUMS (debe ser mayor a 0)
  • Cantidad: Cantidad contratada (debe ser mayor a 0)

Datos opcionales:

  • CodigoReferenciaModalidadPago: Lista de modalidades de pago aplicables
  • Observaciones: Notas adicionales sobre el CUMS contratado

Validaciones automáticas aplicadas:

  1. Validación de existencia:

    • El IdContrato debe existir en la tabla Contrato
    • El CodigoCums debe existir en la tabla ReferenciaCums
  2. Validación de valores:

    • ValorUnitario debe ser mayor a 0
    • Cantidad debe ser mayor a 0
  3. Validación de duplicidad:

    • No puede existir el mismo CodigoCums asociado al mismo IdContrato
  4. Validación de estado del contrato:

    • El contrato debe estar en estado "En creación" (102001) para permitir agregar CUMS

Registros creados:

  • 1 registro en tabla ContratoCums
  • N registros en tabla ContratoCumsModalidadPago (si se especifican modalidades)

Sample request:

POST /api/ContratoCums
{
    "idContrato": 1,
    "codigoCums": "19934455-1",
    "valorUnitario": 15000.50,
    "cantidad": 1000,
    "codigoReferenciaModalidadPago": [1, 2],
    "observaciones": "Medicamento de alto costo"
}
Authorizations:
Bearer
Request Body schema:

Comando con los datos del CUMS a registrar.

idContrato
integer <int32>
idCums
integer <int32>
cantidad
integer <int32>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "idCums": 0,
  • "cantidad": 0
}

Response samples

Content type
application/json
{
  • "idContratoCums": 0,
  • "idContrato": 0
}

Actualiza la información de un CUMS de contrato existente.

Este endpoint permite modificar los datos de un CUMS previamente registrado aplicando las mismas validaciones que en la creación del CUMS.

Restricciones importantes:

  • Solo se permiten actualizaciones en contratos que estén en estado "En creación" (102001)
  • Los contratos en estados Activo, Terminado o Inactivo no pueden modificar sus CUMS
  • El CUMS debe existir en la base de datos

Campos actualizables:

  • CodigoCums: Código del medicamento o suministro (debe existir en ReferenciaCums)
  • ValorUnitario: Valor unitario del CUMS (debe ser mayor a 0)
  • Cantidad: Cantidad contratada (debe ser mayor a 0)
  • CodigoReferenciaModalidadPago: Lista de modalidades de pago
  • Observaciones: Notas adicionales

Validaciones automáticas aplicadas:

  1. Validación de existencia:

    • El IdContratoCums debe existir en la base de datos
    • El CodigoCums debe existir en ReferenciaCums
  2. Validación de valores:

    • ValorUnitario debe ser mayor a 0
    • Cantidad debe ser mayor a 0
  3. Validación de duplicidad:

    • No puede existir otro registro (diferente al actual) con el mismo CodigoCums para el mismo contrato
  4. Validación de estado:

    • El contrato asociado debe estar en estado "En creación" (102001)

Operaciones realizadas:

  • Actualización del registro en tabla ContratoCums
  • Eliminación de registros antiguos en ContratoCumsModalidadPago
  • Creación de nuevos registros de modalidades de pago según los datos proporcionados

Sample request:

PUT /api/ContratoCums
{
    "idContratoCums": 1,
    "idContrato": 1,
    "codigoCums": "19934455-1",
    "valorUnitario": 16500.00,
    "cantidad": 1500,
    "codigoReferenciaModalidadPago": [1, 2, 3],
    "observaciones": "Actualización de precio y cantidad"
}
Authorizations:
Bearer
Request Body schema:

Comando con los datos actualizados del CUMS. Debe incluir el IdContratoCums.

idContratoCums
integer <int32>
idContrato
integer <int32>
idCums
integer <int32>
cantidad
integer <int32>

Responses

Request samples

Content type
{
  • "idContratoCums": 0,
  • "idContrato": 0,
  • "idCums": 0,
  • "cantidad": 0
}

Response samples

Content type
application/json
{
  • "idContratoCums": 0,
  • "idContrato": 0
}

ContratoCumsModalidadPago

Obtiene el detalle de una modalidad de pago de CUMS de contrato por su identificador.

Este endpoint devuelve la información detallada de una modalidad de pago asociada a un CUMS de contrato específico.

Authorizations:
Bearer
path Parameters
IdContratoCumsModalidadPago
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina una modalidad de pago de CUMS de contrato por su identificador.

Este endpoint permite eliminar una modalidad de pago asociada a un CUMS de contrato, identificándola por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoCumsModalidadPago
required
integer <int32>

Responses

Response samples

Content type
No sample

Registra una nueva modalidad de pago para un CUMS de contrato.

Este endpoint permite crear un nuevo registro de modalidad de pago asociada a un CUMS de contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos de la modalidad de pago a registrar.

idContratoCums
integer <int32>
idContratoModalidadPago
integer <int64>
valor
number <double>

Responses

Request samples

Content type
{
  • "idContratoCums": 0,
  • "idContratoModalidadPago": 0,
  • "valor": 0
}

Response samples

Content type
No sample

Actualiza la información de una modalidad de pago de CUMS de contrato existente.

Este endpoint permite modificar los datos de una modalidad de pago previamente registrada para un CUMS de contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados de la modalidad de pago.

idContratoCumsModalidaPago
integer <int64>
idContratoModalidadPago
integer <int64>
valor
number <double>

Responses

Request samples

Content type
{
  • "idContratoCumsModalidaPago": 0,
  • "idContratoModalidadPago": 0,
  • "valor": 0
}

Response samples

Content type
No sample

ContratoCups

Obtiene la lista de CUPS asociados a un contrato específico.

Este endpoint permite consultar todos los CUPS registrados para un contrato, filtrando por el identificador del contrato.

Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de un CUPS de contrato por su identificador.

Este endpoint devuelve la información detallada de un CUPS de contrato específico, incluyendo datos del procedimiento o servicio.

Authorizations:
Bearer
path Parameters
IdContratoCups
required
integer <int32>

Responses

Response samples

Content type
No sample

Elimina un CUPS de contrato por su identificador.

Este endpoint permite eliminar un CUPS de contrato existente, identificándolo por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoCups
required
integer <int32>

Responses

Response samples

Content type
No sample

Registra un nuevo CUPS para un contrato.

Este endpoint permite crear un nuevo registro de CUPS asociado a un contrato, especificando los datos requeridos como código, descripción y valor.

Authorizations:
Bearer
Request Body schema:

Datos del CUPS a registrar.

idContrato
integer <int32>
codigoCupsSispro
string or null
cantidad
integer <int32>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoCupsSispro": "string",
  • "cantidad": 0
}

Response samples

Content type
No sample

Actualiza la información de un CUPS de contrato existente.

Este endpoint permite modificar los datos de un CUPS previamente registrado, como el código, la descripción o el valor.

Authorizations:
Bearer
Request Body schema:

Datos actualizados del CUPS.

idContratoCups
integer <int32>
idContrato
integer <int32>
codigoCupsSispro
string or null
cantidad
integer <int32>

Responses

Request samples

Content type
{
  • "idContratoCups": 0,
  • "idContrato": 0,
  • "codigoCupsSispro": "string",
  • "cantidad": 0
}

Response samples

Content type
No sample

ContratoCupsModalidadPago

Obtiene el detalle de una modalidad de pago de CUPS de contrato por su identificador.

Este endpoint devuelve la información detallada de una modalidad de pago asociada a un procedimiento (CUPS) de contrato específico.

Authorizations:
Bearer
path Parameters
IdContratoCupsModalidadPago
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina una modalidad de pago de CUPS de contrato por su identificador.

Este endpoint permite eliminar una modalidad de pago asociada a un procedimiento (CUPS) de contrato, identificándola por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoCupsModalidadPago
required
integer <int32>

Responses

Response samples

Content type
No sample

Registra una nueva modalidad de pago para un CUPS de contrato.

Este endpoint permite crear un nuevo registro de modalidad de pago asociada a un procedimiento (CUPS) de contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos de la modalidad de pago a registrar.

idContratoCups
integer <int32>
idContratoModalidadPago
integer <int64>
valor
number <double>

Responses

Request samples

Content type
{
  • "idContratoCups": 0,
  • "idContratoModalidadPago": 0,
  • "valor": 0
}

Response samples

Content type
No sample

Actualiza la información de una modalidad de pago de CUPS de contrato existente.

Este endpoint permite modificar los datos de una modalidad de pago previamente registrada para un procedimiento (CUPS) de contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados de la modalidad de pago.

idContratoCupsModalidaPago
integer <int64>
idContratoModalidadPago
integer <int64>
valor
number <double>

Responses

Request samples

Content type
{
  • "idContratoCupsModalidaPago": 0,
  • "idContratoModalidadPago": 0,
  • "valor": 0
}

Response samples

Content type
No sample

ContratoEstado

Obtiene el historial de estados asociados a un contrato específico.

Este endpoint permite consultar todos los estados registrados para un contrato, filtrando por el identificador del contrato. El resultado incluye información detallada de cada cambio de estado, como fechas, observaciones y descripción del estado.

Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
No sample

Registra un nuevo cambio de estado para un contrato.

Este endpoint permite crear un nuevo registro de cambio de estado asociado a un contrato, especificando los datos requeridos como el código de estado, observación y fecha.

Authorizations:
Bearer
Request Body schema:

Datos del cambio de estado a registrar.

idContrato
integer <int32>
codigoEstado
integer <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoEstado": 0,
  • "observacion": "string"
}

Response samples

Content type
No sample

ContratoLiquidacion

Obtiene la lista de liquidaciones asociadas a un contrato específico.

Este endpoint permite consultar todas las liquidaciones registradas para un contrato filtrando por el identificador del contrato y además, aplicando múltiples filtros opcionales:

Filtros disponibles:

  • IdContratoLiquidacion: Filtro por identificador específico de la liquidación asociada al contrato
  • CodigoCausal: Filtro por código de causal de la liquidación (103001=Mutuo acuerdo, 103002=Vencimiento del plazo y 103004=Liquidación Judicial)
Authorizations:
Bearer
query Parameters
IdContrato
integer <int32>
CodigoCausal
string
IdContratoLiquidacion
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de una liquidación de contrato por su identificador.

Este endpoint devuelve la información detallada de una liquidación de contrato específica, incluyendo valores, fechas y observaciones.

Authorizations:
Bearer
path Parameters
IdContratoLiquidacion
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina una liquidación de contrato por su identificador.

Este endpoint permite eliminar una liquidación de contrato existente, identificándola por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoLiquidacion
required
integer <int64>

Responses

Response samples

Content type
No sample

Registra una nueva liquidación para un contrato.

Este endpoint permite crear un nuevo registro de liquidación asociada a un contrato, especificando los datos requeridos como valores, fechas y observaciones.

Authorizations:
Bearer
Request Body schema:

Datos de la liquidación a registrar.

idContrato
integer <int32>
codigoCausal
integer <int32>
fechaLiquidacion
string <date-time>
valorTotalContrato
number <double>
valorTotalEjecutado
number <double>
valorTotalPagado
number <double>
valorSaldoFavorContratista
number <double>
valorSaldoFavorContratatante
number <double>
valorIndemnizacion
number <double>
valorDeducciones
number <double>
valorNetoPagar
number <double>
valorMultas
number <double>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoCausal": 0,
  • "fechaLiquidacion": "2019-08-24T14:15:22Z",
  • "valorTotalContrato": 0,
  • "valorTotalEjecutado": 0,
  • "valorTotalPagado": 0,
  • "valorSaldoFavorContratista": 0,
  • "valorSaldoFavorContratatante": 0,
  • "valorIndemnizacion": 0,
  • "valorDeducciones": 0,
  • "valorNetoPagar": 0,
  • "valorMultas": 0
}

Response samples

Content type
No sample

Actualiza la información de una liquidación de contrato existente.

Este endpoint permite modificar los datos de una liquidación previamente registrada, como valores, fechas u observaciones.

Authorizations:
Bearer
Request Body schema:

Datos actualizados de la liquidación.

idContratoLiquidacion
integer <int64>
codigoCausal
integer <int32>
fechaLiquidacion
string <date-time>
valorTotalContrato
number <double>
valorTotalEjecutado
number <double>
valorTotalPagado
number <double>
valorSaldoFavorContratista
number <double>
valorSaldoFavorContratatante
number <double>
valorIndemnizacion
number <double>
valorDeducciones
number <double>
valorNetoPagar
number <double>
valorMultas
number <double>

Responses

Request samples

Content type
{
  • "idContratoLiquidacion": 0,
  • "codigoCausal": 0,
  • "fechaLiquidacion": "2019-08-24T14:15:22Z",
  • "valorTotalContrato": 0,
  • "valorTotalEjecutado": 0,
  • "valorTotalPagado": 0,
  • "valorSaldoFavorContratista": 0,
  • "valorSaldoFavorContratatante": 0,
  • "valorIndemnizacion": 0,
  • "valorDeducciones": 0,
  • "valorNetoPagar": 0,
  • "valorMultas": 0
}

Response samples

Content type
No sample

ContratoLiquidacionEstado

Obtiene el historial completo de estados de una liquidación específica.

Retorna todos los registros de transición de estado de la liquidación indicada, ordenados cronológicamente por FechaRegistro. Cada elemento incluye el código de estado, su descripción obtenida desde CodigoReferencia mediante navegación EF Core, y las fechas de estado y registro.

Estados del ciclo de vida de la liquidación:

Código Descripción
102001 En creación
102002 En verificación contratista
102003 Rechazado
102004 Aprobado

Validaciones:

  • IdContratoLiquidacion debe ser un número entero positivo mayor a 0.

Seguridad y roles:

  • Requiere autenticación JWT válida. Cualquier rol autenticado puede consultar el historial.

Sample request:

GET /api/ContratoLiquidacionEstado/ByIdContratoLiquidacion/15
Authorizations:
Bearer
path Parameters
IdContratoLiquidacion
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Registra una nueva transición de estado para una liquidación.

Aplica un cambio de estado a la liquidación indicada siguiendo la máquina de estados definida. El sistema valida que la transición sea permitida desde el estado actual y que el usuario cuente con el rol requerido para ejecutarla.

Máquina de estados y transiciones permitidas:

Estado actual Estado destino Roles permitidos
102001 - En creación 102002 - En verificación contratista SIIFA_ERP, SIIFA_ERP_Gestor, SIIFA_Admin
102002 - En verificación contratista 102003 - Rechazado SIIFA_IPS, SIIFA_IPS_Gestor, SIIFA_FITS, SIIFA_FITS_Gestor, SIIFA_Admin
102002 - En verificación contratista 102004 - Aprobado SIIFA_IPS, SIIFA_IPS_Gestor, SIIFA_FITS, SIIFA_FITS_Gestor, SIIFA_Admin
102003 - Rechazado 102002 - En verificación contratista SIIFA_ERP, SIIFA_ERP_Gestor, SIIFA_Admin

Validaciones adicionales al pasar a 102002 (En verificación contratista):

  • Para roles SIIFA_ERP / SIIFA_ERP_Gestor, el NIT del contratante del contrato padre debe coincidir con el NIT de la empresa del usuario autenticado (claim del token JWT).

Validaciones adicionales al pasar a 102003 o 102004:

  • Para roles SIIFA_IPS / SIIFA_IPS_Gestor / SIIFA_FITS / SIIFA_FITS_Gestor, el NIT del contratista del contrato padre debe coincidir con el NIT del usuario.

Datos requeridos:

  • IdContratoLiquidacion: Identificador de la liquidación a la que se aplica el cambio.
  • CodigoEstado: Código del estado destino según la tabla de transiciones.

Sample request:

POST /api/ContratoLiquidacionEstado
{
    "idContratoLiquidacion": 15,
    "codigoEstado": 102002
}
Authorizations:
Bearer
Request Body schema:

Comando con el identificador de la liquidación y el código del estado destino.

idContratoLiquidacion
integer <int64>
codigoEstado
integer <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idContratoLiquidacion": 0,
  • "codigoEstado": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idContratoLiquidacionEstado": 0,
  • "idContratoLiquidacion": 0
}

ContratoModalidadPago

Obtiene la lista de modalidades de pago asociadas a un contrato específico.

Este endpoint permite consultar todas las modalidades de pago registradas para un contrato, filtrando por el identificador del contrato.

Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de una modalidad de pago de contrato por su identificador.

Este endpoint devuelve la información detallada de una modalidad de pago asociada a un contrato específico.

Authorizations:
Bearer
path Parameters
IdContratoModalidadPago
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina una modalidad de pago de contrato por su identificador.

Este endpoint permite eliminar una modalidad de pago asociada a un contrato, identificándola por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoModalidadPago
required
integer <int64>

Responses

Response samples

Content type
No sample

Registra una nueva modalidad de pago para un contrato.

Este endpoint permite crear un nuevo registro de modalidad de pago asociada a un contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos de la modalidad de pago a registrar.

idContrato
integer <int32>
codigoModalidad
required
integer <int32>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoModalidad": 0
}

Response samples

Content type
No sample

Actualiza la información de una modalidad de pago de contrato existente.

Este endpoint permite modificar los datos de una modalidad de pago previamente registrada para un contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados de la modalidad de pago.

idContratoModalidadPago
integer <int64>
codigoModalidad
integer <int32>

Responses

Request samples

Content type
{
  • "idContratoModalidadPago": 0,
  • "codigoModalidad": 0
}

Response samples

Content type
No sample

ContratoOperacion

Obtiene una lista paginada de operaciones asociadas a un contrato específico con filtros opcionales.

Este endpoint permite consultar las operaciones de cobertura geográfica y poblacional registradas para un contrato.

Filtros disponibles:

  • IdContrato: Identificador del contrato (obligatorio en el query string)
  • CodigoMunicipio: Filtro opcional por código de municipio
  • CodigoDepartamento: Filtro opcional por código de departamento
  • NumeroPagina: Número de página para paginación (debe ser mayor a 0, default: 1)
  • RegistrosPorPagina: Cantidad de registros por página (debe ser mayor a 0 y menor o igual a 100, default: 10)

Información devuelta por cada operación:

  • Identificador de la operación (IdContratoOperacion)
  • Identificador del contrato (IdContrato)
  • Código y nombre del municipio (si aplica según el alcance)
  • Código y nombre del departamento (si aplica según el alcance)
  • Población cubierta (número de personas)
  • Fecha de registro de la operación

Los resultados se ordenan por fecha de registro descendente y se devuelven paginados con metadatos que incluyen:

  • Total de registros encontrados
  • Total de páginas disponibles
  • Página actual
  • Registros por página

Validaciones:

  • IdContrato es obligatorio y debe ser mayor a 0
  • NumeroPagina debe ser mayor a 0 (si se proporciona)
  • RegistrosPorPagina debe ser mayor a 0 y no superar 100 (si se proporciona)

Sample request:

GET /api/ContratoOperacion/ByIdContrato?IdContrato=1&NumeroPagina=1&RegistrosPorPagina=10
GET /api/ContratoOperacion/ByIdContrato?IdContrato=1&CodigoDepartamento=25
GET /api/ContratoOperacion/ByIdContrato?IdContrato=1&CodigoMunicipio=25001
Authorizations:
Bearer
query Parameters
IdContrato
integer <int32>
CodigoMunicipio
string
CodigoDepartamento
string
NumeroPagina
integer <int32>
RegistrosPorPagina
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Obtiene los detalles completos de una operación de contrato por su identificador.

Este endpoint devuelve información detallada de una operación de contrato específica, incluyendo:

Información básica:

  • Identificador de la operación (IdContratoOperacion)
  • Identificador del contrato asociado (IdContrato)
  • Código de alcance (CodigoAlcance)
  • Descripción del tipo de alcance (Nacional, Departamental o Municipal)

Información geográfica:

  • Código y nombre del municipio (para alcance municipal)
  • Código y nombre del departamento (para alcance departamental o municipal)

Información de cobertura:

  • Población cubierta (número de personas)
  • Fecha de registro de la operación

Validaciones:

  • El IdContratoOperacion debe ser un número positivo mayor a 0
  • La operación debe existir en la base de datos

Sample request:

GET /api/ContratoOperacion/1
GET /api/ContratoOperacion/150
Authorizations:
Bearer
path Parameters
IdContratoOperacion
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "idContratoOperacion": 0,
  • "idContrato": 0,
  • "codigoAlcance": 0,
  • "alcance": {
    },
  • "codigoMunicipio": "string",
  • "nombreMunicipio": "string",
  • "codigoDepartamento": "string",
  • "nombreDepartamento": "string",
  • "poblacionCubierta": 0,
  • "fechaRegistro": "2019-08-24T14:15:22Z"
}

Elimina una operación de contrato por su identificador.

Este endpoint permite eliminar una operación de cobertura geográfica y poblacional de un contrato. Solo se pueden eliminar operaciones de contratos en estado "En creación" (102001).

Restricciones:

  • El contrato asociado debe estar en estado 102001 (En creación)
  • La operación debe existir en la base de datos

Validaciones automáticas aplicadas:

  1. Validación de existencia:

    • El IdContratoOperacion debe corresponder a una operación existente
  2. Validación de estado:

    • El contrato asociado debe estar en estado 102001
    • No se pueden eliminar operaciones de contratos en otros estados

Nota importante:

  • La eliminación es permanente y no se puede deshacer
  • Al eliminar una operación, se libera la restricción de duplicados (ej: se puede volver a registrar el mismo municipio o alcance nacional)

Sample request:

DELETE /api/ContratoOperacion/1
DELETE /api/ContratoOperacion/150
Authorizations:
Bearer
path Parameters
IdContratoOperacion
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "idContratoOperacion": 0
}

Registra una nueva operación de cobertura geográfica y poblacional para un contrato.

Este endpoint permite crear un nuevo registro de operación que define el alcance de cobertura de un contrato. El contrato debe estar en estado "En creación" (102001) para permitir el registro.

Datos requeridos:

  • IdContrato: Identificador del contrato (debe existir y estar en estado 102001)
  • CodigoAlcance: Código del tipo de alcance del dominio 7 (107001, 107002 o 107003)

Datos condicionales según el tipo de alcance:

Para alcance Nacional (107001):

  • CodigoDepartamento: Debe ser NULL
  • CodigoMunicipio: Debe ser NULL
  • PoblacionCubierta: Debe ser NULL
  • Solo se permite UN registro de alcance nacional por contrato

Para alcance Departamental (107002):

  • CodigoDepartamento: OBLIGATORIO (debe existir en dbo.ReferenciaDepartamento)
  • CodigoMunicipio: Debe ser NULL
  • PoblacionCubierta: Debe ser NULL

Para alcance Municipal (107003):

  • CodigoDepartamento: OBLIGATORIO (debe existir en dbo.ReferenciaDepartamento)
  • CodigoMunicipio: OBLIGATORIO (debe existir en dbo.ReferenciaMunicipio)
  • PoblacionCubierta: OBLIGATORIO (debe ser mayor a 0)
  • No se permiten duplicados del mismo municipio en el contrato

Validaciones automáticas aplicadas:

  1. Validación de alcance:

    • El CodigoAlcance debe existir en el dominio 7 de CODIGO_REFERENCIA
    • El código debe estar activo
  2. Validación de estado:

    • El contrato debe estar en estado 102001 (En creación)
  3. Validación de duplicados:

    • Para alcance nacional: solo un registro por contrato
    • Para alcance municipal: no duplicar mismo municipio
  4. Validación de población:

    • Si se proporciona PoblacionCubierta, debe ser mayor a 0

Sample request:

POST /api/ContratoOperacion
{
  "idContrato": 1,
  "codigoAlcance": 107003,
  "codigoDepartamento": "25",
  "codigoMunicipio": "25001",
  "poblacionCubierta": 100000
}
Authorizations:
Bearer
Request Body schema:

Objeto con los datos de la operación a registrar.

idContrato
integer <int32>
codigoAlcance
integer <int32>
codigoDepartamento
string or null
codigoMunicipio
string or null
poblacionCubierta
integer or null <int32>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoAlcance": 0,
  • "codigoDepartamento": "string",
  • "codigoMunicipio": "string",
  • "poblacionCubierta": 0
}

Response samples

Content type
application/json
{
  • "idContratoOperacion": 0,
  • "idContrato": 0
}

Actualiza la información de una operación de contrato existente.

Este endpoint permite modificar los datos de una operación de cobertura previamente registrada. El contrato debe estar en estado "En creación" (102001) para permitir modificaciones.

Datos requeridos:

  • IdContratoOperacion: Identificador de la operación a actualizar (debe existir)
  • CodigoAlcance: Código del tipo de alcance del dominio 7 (107001, 107002 o 107003)

Datos condicionales según el tipo de alcance: (Aplican las mismas reglas que en el registro, ver documentación de POST)

Restricciones:

  • Solo se pueden modificar operaciones de contratos en estado 102001 (En creación)
  • No se permiten duplicados al actualizar (excepto el registro actual)
  • Para alcance nacional: solo puede existir un registro por contrato
  • Para alcance municipal: no puede duplicar municipios existentes

Validaciones automáticas aplicadas:

  1. Validación de existencia:

    • La operación debe existir en la base de datos
  2. Validación de alcance:

    • El CodigoAlcance debe existir en el dominio 7 y estar activo
  3. Validación de estado:

    • El contrato asociado debe estar en estado 102001
  4. Validación de campos según alcance:

    • Nacional: departamento, municipio y población deben ser NULL
    • Departamental: departamento obligatorio, municipio y población NULL
    • Municipal: departamento, municipio y población obligatorios (población > 0)

Sample request:

PUT /api/ContratoOperacion
{
  "idContratoOperacion": 1,
  "codigoAlcance": 107003,
  "codigoDepartamento": "25",
  "codigoMunicipio": "25754",
  "poblacionCubierta": 150000
}
Authorizations:
Bearer
Request Body schema:

Objeto con los datos actualizados de la operación.

idContratoOperacion
integer <int64>
codigoAlcance
integer <int32>
codigoDepartamento
string or null
codigoMunicipio
string or null
poblacionCubierta
integer or null <int32>

Responses

Request samples

Content type
{
  • "idContratoOperacion": 0,
  • "codigoAlcance": 0,
  • "codigoDepartamento": "string",
  • "codigoMunicipio": "string",
  • "poblacionCubierta": 0
}

Response samples

Content type
application/json
{
  • "idContratoOperacion": 0,
  • "idContrato": 0
}

ContratoOtrosi

Obtiene la lista de todos los otrosí registrados en el sistema.

Este endpoint retorna todos los otrosí existentes sin filtros adicionales. Se recomienda usar el endpoint filtrado por contrato (ByIdContrato) para consultas más eficientes en entornos con alto volumen de datos.

Seguridad y roles:

  • SIIFA_Admin: Acceso a todos los otrosí sin restricciones.
  • SIIFA_ERP / SIIFA_ERP_Gestor: Puede consultar otrosí de contratos donde sea el contratante.
  • SIIFA_IPS / SIIFA_IPS_Gestor / SIIFA_FITS / SIIFA_FITS_Gestor: Puede consultar otrosí de contratos donde sea el contratista.

Sample request:

GET /api/ContratoOtrosi
Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Registra un nuevo otrosí para un contrato existente.

Crea un nuevo otrosí vinculado al contrato indicado. El otrosí se crea automáticamente en estado inicial En creación (102001) y genera un registro en la tabla CONTRATO_OTROSI_ESTADO.

Datos requeridos:

  • IdContrato: Identificador del contrato padre al que se asocia el otrosí.
  • Nombre: Nombre o descripción del otrosí.
  • Valor: Valor económico del otrosí (opcional).
  • FechaInicio: Fecha de inicio de vigencia del otrosí (opcional).
  • FechaFinalizacion: Fecha de fin de vigencia del otrosí (opcional).
  • TipoAdicion: Indica si es una adición al contrato (booleano, opcional).
  • TipoModificacion: Indica si es una modificación al contrato (booleano, opcional).
  • TipoProrroga: Indica si es una prórroga al contrato (booleano, opcional).

Validaciones automáticas aplicadas:

  1. El usuario debe tener alguno de los roles: SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.
  2. Para roles SIIFA_ERP / SIIFA_ERP_Gestor, el NIT del contratante del contrato padre debe coincidir con el NIT de la empresa del usuario autenticado (claim del token JWT).

Registros creados:

  • 1 registro en tabla CONTRATO_OTROSI.
  • 1 registro en tabla CONTRATO_OTROSI_ESTADO con estado inicial 102001.

Sample request:

POST /api/ContratoOtrosi
{
    "idContrato": 42,
    "nombre": "Otrosí N°1 - Adición de valor",
    "valor": 50000000,
    "fechaInicio": "2025-01-01",
    "fechaFinalizacion": "2025-12-31",
    "tipoAdicion": true,
    "tipoModificacion": false,
    "tipoProrroga": false
}
Authorizations:
Bearer
Request Body schema:

Comando con los datos del otrosí a registrar.

idContrato
integer <int32>
nombre
string or null
valor
number or null <double>
fechaInicio
string or null <date-time>
fechaFinalizacion
string or null <date-time>
tipoAdicion
boolean or null
tipoModificacion
boolean or null
tipoProrroga
boolean or null

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "nombre": "string",
  • "valor": 0,
  • "fechaInicio": "2019-08-24T14:15:22Z",
  • "fechaFinalizacion": "2019-08-24T14:15:22Z",
  • "tipoAdicion": true,
  • "tipoModificacion": true,
  • "tipoProrroga": true
}

Response samples

Content type
application/json
{
  • "idContratoOtroSi": 0,
  • "idContrato": 0
}

Actualiza la información de un otrosí existente.

Permite modificar los datos de un otrosí previamente registrado. Solo es posible actualizar otrosí que se encuentren en estado En creación (102001) o Rechazado (102003).

Campos actualizables:

  • Nombre: Nombre o descripción del otrosí.
  • Valor: Valor económico del otrosí (opcional).
  • FechaInicio: Fecha de inicio de vigencia del otrosí (opcional).
  • FechaFinalizacion: Fecha de fin de vigencia (opcional).
  • TipoAdicion: Indica si es una adición al contrato (booleano, opcional).
  • TipoModificacion: Indica si es una modificación al contrato (booleano, opcional).
  • TipoProrroga: Indica si es una prórroga al contrato (booleano, opcional).

Validaciones:

  • El usuario debe tener alguno de los roles: SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.
  • IdContratoOtrosi debe existir en la base de datos.
  • El otrosí debe estar en estado 102001 (En creación) para poder ser modificado.

Sample request:

PUT /api/ContratoOtrosi
{
    "idContratoOtrosi": 15,
    "idContrato": 42,
    "nombre": "Otrosí N°1 - Adición de valor actualizado",
    "valor": 75000000,
    "fechaInicio": "2025-01-01",
    "fechaFinalizacion": "2026-06-30",
    "tipoAdicion": true,
    "tipoModificacion": true,
    "tipoProrroga": false
}
Authorizations:
Bearer
Request Body schema:

Comando con los datos actualizados del otrosí. Debe incluir el IdContratoOtrosi.

idContratoOtrosi
integer <int64>
idContrato
integer <int32>
nombre
string or null
valor
number or null <double>
fechaInicio
string or null <date-time>
fechaFinalizacion
string or null <date-time>
tipoAdicion
boolean or null
tipoModificacion
boolean or null
tipoProrroga
boolean or null

Responses

Request samples

Content type
{
  • "idContratoOtrosi": 0,
  • "idContrato": 0,
  • "nombre": "string",
  • "valor": 0,
  • "fechaInicio": "2019-08-24T14:15:22Z",
  • "fechaFinalizacion": "2019-08-24T14:15:22Z",
  • "tipoAdicion": true,
  • "tipoModificacion": true,
  • "tipoProrroga": true
}

Response samples

Content type
application/json
{
  • "idContratoOtrosi": 0,
  • "idContrato": 0,
  • "nombre": "string",
  • "valor": 0,
  • "fechaFinalizacion": "2019-08-24T14:15:22Z",
  • "tipoAdicion": true,
  • "tipoModificacion": true,
  • "tipoProrroga": true
}

Obtiene la lista de otrosí asociados a un contrato específico.

Filtra los otrosí por el identificador del contrato padre, retornando todas las modificaciones, adiciones o prórrogas vinculadas a ese contrato. Los resultados incluyen el estado actual de cada otrosí y sus datos principales.

Validaciones:

  • IdContrato debe ser un número entero positivo mayor a 0.

Seguridad y roles:

  • SIIFA_Admin: Acceso sin restricciones.
  • SIIFA_ERP / SIIFA_ERP_Gestor: Solo contratos donde sea el contratante.
  • SIIFA_IPS / SIIFA_IPS_Gestor / SIIFA_FITS / SIIFA_FITS_Gestor: Solo contratos donde sea el contratista.

Sample request:

GET /api/ContratoOtrosi/ByIdContrato/42
Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Obtiene el detalle completo de un otrosí de contrato por su identificador.

Retorna la información detallada del otrosí incluyendo sus datos principales, el estado actual y la información completa del contrato padre asociado.

Información retornada:

  • Identificador, nombre, valor y fechas del otrosí.
  • Indicadores de tipo: adición (TipoAdicion), modificación (TipoModificacion), prórroga (TipoProrroga).
  • Estado actual del otrosí (código y descripción).
  • Datos del contrato padre: NITs, razón social del contratante y contratista, modalidad de pago, regímenes.

Validaciones:

  • IdContratoOtrosi debe ser un número entero positivo mayor a 0.

Sample request:

GET /api/ContratoOtrosi/15
Authorizations:
Bearer
path Parameters
IdContratoOtrosi
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "idContratoOtrosi": 0,
  • "idContrato": 0,
  • "nombre": "string",
  • "valor": 0,
  • "fechaInicio": "2019-08-24T14:15:22Z",
  • "fechaFinalizacion": "2019-08-24T14:15:22Z",
  • "fechaRegistro": "2019-08-24T14:15:22Z",
  • "tipoAdicion": true,
  • "tipoModificacion": true,
  • "tipoProrroga": true,
  • "estado": "string",
  • "codigoEstado": 0,
  • "contrato": {
    }
}

Elimina permanentemente un otrosí de contrato por su identificador.

Elimina de forma definitiva el otrosí especificado junto con sus registros de estado asociados en la tabla CONTRATO_OTROSI_ESTADO. Esta operación es irreversible y solo debe ejecutarse en otrosí que estén en estado En creación (102001).

Validaciones:

  • El usuario debe tener alguno de los roles: SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.
  • IdContratoOtrosi debe existir en la base de datos.
  • Se recomienda verificar el estado del otrosí antes de eliminarlo.

Sample request:

DELETE /api/ContratoOtrosi/15
Authorizations:
Bearer
path Parameters
IdContratoOtrosi
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "idContratoOtroSi": 0
}

ContratoOtrosiCums

Obtiene la lista de CUMS asociados a un otrosí específico.

Este endpoint permite consultar todos los CUMS registrados para un otrosí, filtrando por el identificador del otrosí.

Authorizations:
Bearer
path Parameters
IdContratoOtrosi
required
integer <int64>

Responses

Response samples

Content type
No sample

Obtiene el detalle de un CUMS de otrosí de contrato por su identificador.

Este endpoint devuelve la información detallada de un CUMS de otrosí de contrato específico, incluyendo datos de medicamento o insumo.

Authorizations:
Bearer
path Parameters
IdContratoOtrosiCums
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina un CUMS de otrosí de contrato por su identificador.

Este endpoint permite eliminar un CUMS de otrosí de contrato existente, identificándolo por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoOtrosiCums
required
integer <int64>

Responses

Response samples

Content type
No sample

Registra un nuevo CUMS para un otrosí de contrato.

Este endpoint permite crear un nuevo registro de CUMS asociado a un otrosí de contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos del CUMS a registrar.

idContratoOtrosi
integer <int64>
idContratoCums
integer or null <int32>
idCums
integer or null <int32>
cantidad
integer <int32>

Responses

Request samples

Content type
{
  • "idContratoOtrosi": 0,
  • "idContratoCums": 0,
  • "idCums": 0,
  • "cantidad": 0
}

Response samples

Content type
No sample

Actualiza la información de un CUMS de otrosí de contrato existente.

Este endpoint permite modificar los datos de un CUMS previamente registrado para un otrosí de contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados del CUMS.

idContratoOtrosiCums
integer <int64>
idContratoOtrosi
integer <int64>
idContratoCums
integer or null <int32>
idCums
integer or null <int32>
cantidad
integer <int32>

Responses

Request samples

Content type
{
  • "idContratoOtrosiCums": 0,
  • "idContratoOtrosi": 0,
  • "idContratoCums": 0,
  • "idCums": 0,
  • "cantidad": 0
}

Response samples

Content type
No sample

ContratoOtrosiEstado

Obtiene el historial completo de estados de un otrosí específico.

Retorna todos los registros de transición de estado del otrosí indicado, ordenados cronológicamente por FechaRegistro. Cada elemento incluye el código de estado, su descripción obtenida desde CodigoReferencia mediante navegación EF Core, y las fechas de estado y registro.

Estados del ciclo de vida del otrosí:

Código Descripción
102001 En creación
102002 En verificación contratista
102003 Rechazado
102004 Aprobado
102005 Liquidado

Validaciones:

  • IdContratoOtrosi debe ser un número entero positivo mayor a 0.

Seguridad y roles:

  • Requiere autenticación JWT válida. Cualquier rol autenticado puede consultar el historial.

Sample request:

GET /api/ContratoOtrosiEstado/ByIdContratoOtrosi/15
Authorizations:
Bearer
path Parameters
IdContratoOtrosi
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Registra una nueva transición de estado para un otrosí.

Aplica un cambio de estado al otrosí indicado siguiendo la máquina de estados definida. El sistema valida que la transición sea permitida desde el estado actual y que el usuario cuente con el rol requerido para ejecutarla.

Máquina de estados y transiciones permitidas:

Estado actual Estado destino Roles permitidos
102001 - En creación 102002 - En verificación contratista SIIFA_ERP, SIIFA_ERP_Gestor, SIIFA_Admin
102002 - En verificación contratista 102003 - Rechazado SIIFA_IPS, SIIFA_IPS_Gestor, SIIFA_FITS, SIIFA_FITS_Gestor, SIIFA_Admin
102002 - En verificación contratista 102004 - Aprobado SIIFA_IPS, SIIFA_IPS_Gestor, SIIFA_FITS, SIIFA_FITS_Gestor, SIIFA_Admin
102003 - Rechazado 102002 - En verificación contratista SIIFA_ERP, SIIFA_ERP_Gestor, SIIFA_Admin
102004 - Aprobado 102005 - Liquidado SIIFA_ERP, SIIFA_ERP_Gestor, SIIFA_FITS, SIIFA_FITS_Gestor, SIIFA_Admin
102005 - Liquidado (ninguno) Estado final, no permite más transiciones

Validaciones adicionales al pasar a 102002 (En verificación contratista):

  • Para roles SIIFA_ERP / SIIFA_ERP_Gestor, el NIT del contratante del contrato padre debe coincidir con el NIT de la empresa del usuario autenticado (claim del token JWT).
  • Si el contrato padre es de tipo 104001, debe tener al menos un registro en la tabla CONTRATO_OPERACION (información de población cubierta).

Validaciones adicionales al pasar a 102003 o 102004:

  • Para roles SIIFA_IPS / SIIFA_IPS_Gestor / SIIFA_FITS / SIIFA_FITS_Gestor, el NIT del contratista del contrato padre debe coincidir con el NIT del usuario.

Datos requeridos:

  • IdContratoOtrosi: Identificador del otrosí al que se aplica el cambio.
  • CodigoEstado: Código del estado destino según la tabla de transiciones.

Sample request:

POST /api/ContratoOtrosiEstado
{
    "idContratoOtrosi": 15,
    "codigoEstado": 102002
}
Authorizations:
Bearer
Request Body schema:

Comando con el identificador del otrosí y el código del estado destino.

idContratoOtrosi
integer <int64>
codigoEstado
integer <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idContratoOtrosi": 0,
  • "codigoEstado": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idContratoOtrosiEstado": 0,
  • "idContratoOtrosi": 0
}

ContratoOtrosiPrestadorServicio

Obtiene la lista de prestadores de servicio asociados a un otrosí específico.

Este endpoint permite consultar todos los prestadores de servicio registrados para un otrosí, filtrando por el identificador del otrosí.

Authorizations:
Bearer
path Parameters
IdContratoOtrosi
required
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de un prestador de servicio de otrosí de contrato por su identificador.

Este endpoint devuelve la información detallada de un prestador de servicio de otrosí de contrato específico, incluyendo datos de la entidad o profesional.

Authorizations:
Bearer
path Parameters
IdContratoOtrosiPrestadorServicio
required
integer <int32>

Responses

Response samples

Content type
No sample

Elimina un prestador de servicio de otrosí de contrato por su identificador.

Este endpoint permite eliminar un prestador de servicio de otrosí de contrato existente, identificándolo por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoOtrosiPrestadorServicio
required
integer <int32>

Responses

Response samples

Content type
No sample

Registra un nuevo prestador de servicio para un otrosí de contrato.

Este endpoint permite crear un nuevo registro de prestador de servicio asociado a un otrosí de contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos del prestador de servicio a registrar.

idContratoOtrosi
integer <int32>
idContratoPrestadorServicio
integer or null <int32>
codigoServicio
integer <int32>
codigoHabilitacion
string or null
numeroSede
string or null

Responses

Request samples

Content type
{
  • "idContratoOtrosi": 0,
  • "idContratoPrestadorServicio": 0,
  • "codigoServicio": 0,
  • "codigoHabilitacion": "string",
  • "numeroSede": "string"
}

Response samples

Content type
No sample

Actualiza la información de un prestador de servicio de otrosí de contrato existente.

Este endpoint permite modificar los datos de un prestador de servicio previamente registrado para un otrosí de contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados del prestador de servicio.

idContratoOtrosiPrestadorServicio
integer <int32>
codigoServicio
integer <int32>
codigoHabilitacion
string or null
numeroSede
string or null
modalidadBaja
boolean
modalidadMedia
boolean
modalidadAlta
boolean

Responses

Request samples

Content type
{
  • "idContratoOtrosiPrestadorServicio": 0,
  • "codigoServicio": 0,
  • "codigoHabilitacion": "string",
  • "numeroSede": "string",
  • "modalidadBaja": true,
  • "modalidadMedia": true,
  • "modalidadAlta": true
}

Response samples

Content type
No sample

ContratoPrestadorServicio

Obtiene la lista de prestadores de servicio asociados a un contrato específico.

Este endpoint permite consultar todos los prestadores de servicio registrados para un contrato, filtrando por el identificador del contrato.

Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de un prestador de servicio de contrato por su identificador.

Este endpoint devuelve la información detallada de un prestador de servicio de contrato específico, incluyendo datos de la entidad o profesional.

Authorizations:
Bearer
path Parameters
IdContratoPrestadorServicio
required
integer <int32>

Responses

Response samples

Content type
No sample

Elimina un prestador de servicio de contrato por su identificador.

Este endpoint permite eliminar un prestador de servicio de contrato existente, identificándolo por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoPrestadorServicio
required
integer <int32>

Responses

Response samples

Content type
No sample

Registra un nuevo prestador de servicio para un contrato.

Este endpoint permite crear un nuevo registro de prestador de servicio asociado a un contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos del prestador de servicio a registrar.

idContrato
integer <int32>
codigoHabilitacion
string or null
numeroSede
string or null
codigoServicio
integer <int32>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoHabilitacion": "string",
  • "numeroSede": "string",
  • "codigoServicio": 0
}

Response samples

Content type
No sample

Actualiza la información de un prestador de servicio de contrato existente.

Este endpoint permite modificar los datos de un prestador de servicio previamente registrado para un contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados del prestador de servicio.

idContratoPrestadorServicio
integer <int32>
codigoServicio
integer <int32>
codigoHabilitacion
string or null
numeroSede
string or null

Responses

Request samples

Content type
{
  • "idContratoPrestadorServicio": 0,
  • "codigoServicio": 0,
  • "codigoHabilitacion": "string",
  • "numeroSede": "string"
}

Response samples

Content type
No sample

ContratoPrestadorServicioModalidadPago

Obtiene el detalle de una modalidad de pago de prestador de servicio de contrato por su identificador.

Este endpoint devuelve la información detallada de una modalidad de pago asociada a un prestador de servicio de contrato específico.

Authorizations:
Bearer
path Parameters
IdContratoPrestadorServicioModalidadPago
required
integer <int64>

Responses

Response samples

Content type
No sample

Elimina una modalidad de pago de prestador de servicio de contrato por su identificador.

Este endpoint permite eliminar una modalidad de pago asociada a un prestador de servicio de contrato, identificándola por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoPrestadorServicioModalidadPago
required
integer <int32>

Responses

Response samples

Content type
No sample

Registra una nueva modalidad de pago para un prestador de servicio de contrato.

Este endpoint permite crear un nuevo registro de modalidad de pago asociada a un prestador de servicio de contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos de la modalidad de pago a registrar.

idContratoPrestadorServicio
integer <int32>
idContratoModalidadPago
integer <int64>
valor
number <double>

Responses

Request samples

Content type
{
  • "idContratoPrestadorServicio": 0,
  • "idContratoModalidadPago": 0,
  • "valor": 0
}

Response samples

Content type
No sample

Actualiza la información de una modalidad de pago de prestador de servicio de contrato existente.

Este endpoint permite modificar los datos de una modalidad de pago previamente registrada para un prestador de servicio de contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados de la modalidad de pago.

idContratoPrestadorServicioModalidaPago
integer <int64>
idContratoModalidadPago
integer <int64>
valor
number <double>

Responses

Request samples

Content type
{
  • "idContratoPrestadorServicioModalidaPago": 0,
  • "idContratoModalidadPago": 0,
  • "valor": 0
}

Response samples

Content type
No sample

ContratoRegimen

Obtiene la lista de regímenes asociados a un contrato específico.

Este endpoint permite consultar todos los regímenes registrados para un contrato, filtrando por el identificador del contrato.

Authorizations:
Bearer
path Parameters
IdContrato
required
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de un régimen de contrato por su identificador.

Este endpoint devuelve la información detallada de un régimen de contrato específico, incluyendo tipo, vigencia y condiciones.

Authorizations:
Bearer
path Parameters
IdContratoRegimen
required
integer <int32>

Responses

Response samples

Content type
No sample

Elimina un régimen de contrato por su identificador.

Este endpoint permite eliminar un régimen de contrato existente, identificándolo por su ID único.

Authorizations:
Bearer
path Parameters
IdContratoRegimen
required
integer <int64>

Responses

Response samples

Content type
No sample

Registra un nuevo régimen para un contrato.

Este endpoint permite crear un nuevo registro de régimen asociado a un contrato, especificando los datos requeridos.

Authorizations:
Bearer
Request Body schema:

Datos del régimen a registrar.

idContrato
integer <int32>
codigoRegimen
integer <int32>
fechaInicioAplicacion
string <date-time>
fechaFinalizacionAplicacion
string or null <date-time>

Responses

Request samples

Content type
{
  • "idContrato": 0,
  • "codigoRegimen": 0,
  • "fechaInicioAplicacion": "2019-08-24T14:15:22Z",
  • "fechaFinalizacionAplicacion": "2019-08-24T14:15:22Z"
}

Response samples

Content type
No sample

Actualiza la información de un régimen de contrato existente.

Este endpoint permite modificar los datos de un régimen previamente registrado para un contrato.

Authorizations:
Bearer
Request Body schema:

Datos actualizados del régimen.

idContratoRegimen
integer <int32>
codigoRegimen
integer <int32>
fechaInicioAplicacion
string <date-time>
fechaFinalizacionAplicacion
string or null <date-time>

Responses

Request samples

Content type
{
  • "idContratoRegimen": 0,
  • "codigoRegimen": 0,
  • "fechaInicioAplicacion": "2019-08-24T14:15:22Z",
  • "fechaFinalizacionAplicacion": "2019-08-24T14:15:22Z"
}

Response samples

Content type
No sample

Empresa

Obtiene una lista paginada de empresas con filtros opcionales y ordenamiento personalizable.

Este endpoint permite consultar el catálogo completo de empresas registradas en el sistema con capacidades avanzadas de filtrado, ordenamiento y paginación mediante IQueryable.

Filtros disponibles:

  • Nit: Filtro por número de identificación tributaria exacto
  • RazonSocial: Filtro por razón social (búsqueda parcial, case-insensitive)
  • Estado: Filtro por estado (0: Inactiva, 1: Activa)
  • ClprCodigoReps: Filtro por código REPS

Ordenamiento:

  • OrdenarPor: Campo por el cual ordenar (Nit, RazonSocial, FechaRegistro). Default: FechaRegistro
  • DireccionOrden: Dirección del orden (asc, desc). Default: desc

Paginación:

  • NumeroPagina: Número de página (debe ser mayor a 0, default: 1)
  • RegistrosPorPagina: Cantidad de registros por página (debe ser mayor a 0 y menor o igual a 100, default: 10)

Información devuelta por cada empresa:

  • NIT y dígito de verificación
  • Razón social completa
  • Estado actual y su descripción
  • Código REPS
  • Fecha de registro en el sistema

Los resultados incluyen metadatos de paginación:

  • Total de registros encontrados
  • Total de páginas disponibles
  • Página actual
  • Registros por página

Sample request:

GET /api/Empresa/List?NumeroPagina=1&RegistrosPorPagina=10&OrdenarPor=RazonSocial&DireccionOrden=asc
GET /api/Empresa/List?Estado=1&RazonSocial=salud
GET /api/Empresa/List?Nit=800197268
Authorizations:
Bearer
query Parameters
Nit
integer <int32>

Filtro opcional por NIT de la empresa.

RazonSocial
string

Filtro opcional por razón social de la empresa (búsqueda parcial).

Estado
integer <int32>

Filtro opcional por estado de la empresa. 1: Activa, 0: Inactiva.

ClprCodigoReps
integer <int32>

Filtro opcional por código REPS.

OrdenarPor
string

Campo por el cual ordenar los resultados. Valores permitidos: Nit, RazonSocial, FechaRegistro. Por defecto: FechaRegistro.

DireccionOrden
string

Dirección del ordenamiento. Valores permitidos: asc, desc. Por defecto: desc.

NumeroPagina
integer <int32>

Número de página para la paginación. Debe ser mayor a 0. Por defecto: 1.

RegistrosPorPagina
integer <int32>

Cantidad de registros por página. Debe ser mayor a 0 y menor o igual a 100. Por defecto: 10.

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Obtiene el detalle completo de una empresa específica por su NIT.

Este endpoint permite consultar toda la información de una empresa registrada, incluyendo estadísticas de contratos asociados.

Información devuelta:

  • NIT y dígito de verificación
  • Razón social completa
  • Estado actual y su descripción (Activa/Inactiva)
  • Código REPS
  • Usuario que realizó el registro
  • Fecha de registro en el sistema
  • Cantidad de contratos como contratante
  • Cantidad de contratos como contratista

Sample request:

GET /api/Empresa/Detail/800197268
Authorizations:
Bearer
path Parameters
nit
required
integer <int32>

Número de Identificación Tributaria (NIT) de la empresa.

Responses

Response samples

Content type
application/json
{
  • "nit": 0,
  • "razonSocial": "string",
  • "digitoVerificacion": 0,
  • "estado": 0,
  • "estadoDescripcion": "string",
  • "clprCodigoReps": 0,
  • "usuarioRegistro": "f86b90be-beab-434d-8ec1-f39f2d36b029",
  • "fechaRegistro": "2019-08-24T14:15:22Z",
  • "cantidadContratosComoContratante": 0,
  • "cantidadContratosComoContratista": 0
}

Crea una nueva empresa en el sistema.

Este endpoint permite registrar una nueva empresa en el catálogo del sistema SIIFA.

Validaciones aplicadas:

  • El NIT debe ser único en el sistema
  • El NIT debe ser un número positivo
  • La razón social es obligatoria (máximo 250 caracteres)
  • El dígito de verificación debe estar entre 0 y 9
  • El estado debe ser 0 (Inactiva) o 1 (Activa)
  • El código REPS debe ser un número positivo

Datos requeridos:

  • Nit: Número de Identificación Tributaria
  • RazonSocial: Nombre legal de la empresa
  • DigitoVerificacion: Dígito de verificación del NIT (0-9)
  • Estado: 0 (Inactiva) o 1 (Activa)
  • ClprCodigoReps: Código del Registro Especial de Prestadores de Servicios de Salud

Sample request:

POST /api/Empresa/Add
{
   "nit": 800197268,
   "razonSocial": "IPS SALUD TOTAL S.A.",
   "digitoVerificacion": 5,
   "estado": 1,
   "clprCodigoReps": 25001234
}
Authorizations:
Bearer
Request Body schema:

Objeto con los datos de la empresa a crear.

nit
integer <int32>

Número de Identificación Tributaria (NIT) de la empresa. Debe ser único en el sistema y tener entre 6 y 9 dígitos.

razonSocial
string or null

Razón social de la empresa. Es obligatorio y no puede superar los 250 caracteres.

digitoVerificacion
integer <int32>

Dígito de verificación del NIT. Valor entre 0 y 9 que valida la autenticidad del NIT.

estado
integer <int32>

Estado de la empresa. 1: Activa, 0: Inactiva.

clprCodigoReps
integer <int32>

Código REPS (Registro Especial de Prestadores de Servicios de Salud). Identificador único del prestador en el sistema REPS.

Responses

Request samples

Content type
{
  • "nit": 0,
  • "razonSocial": "string",
  • "digitoVerificacion": 0,
  • "estado": 0,
  • "clprCodigoReps": 0
}

Response samples

Content type
application/json
{
  • "nit": 0
}

Actualiza la información de una empresa existente.

Este endpoint permite modificar los datos de una empresa previamente registrada en el sistema. El NIT no puede ser modificado ya que es el identificador único de la empresa.

Validaciones aplicadas:

  • La empresa debe existir en el sistema
  • La razón social es obligatoria (máximo 250 caracteres)
  • El dígito de verificación debe estar entre 0 y 9
  • El estado debe ser 0 (Inactiva) o 1 (Activa)
  • El código REPS debe ser un número positivo

Datos requeridos:

  • Nit: Identificador de la empresa (no modificable)
  • RazonSocial: Nueva razón social
  • DigitoVerificacion: Nuevo dígito de verificación (0-9)
  • Estado: Nuevo estado (0 o 1)
  • ClprCodigoReps: Nuevo código REPS

Sample request:

PUT /api/Empresa/Update
{
   "nit": 800197268,
   "razonSocial": "IPS SALUD TOTAL S.A.S.",
   "digitoVerificacion": 5,
   "estado": 1,
   "clprCodigoReps": 25001234
}
Authorizations:
Bearer
Request Body schema:

Objeto con los datos actualizados de la empresa.

nit
integer <int32>

Número de Identificación Tributaria (NIT) de la empresa a actualizar. Identifica de forma única la empresa en el sistema.

razonSocial
string or null

Nueva razón social de la empresa. No puede estar vacía ni superar los 250 caracteres.

digitoVerificacion
integer <int32>

Nuevo dígito de verificación del NIT. Debe estar entre 0 y 9.

estado
integer <int32>

Nuevo estado de la empresa. 1: Activa, 0: Inactiva.

clprCodigoReps
integer <int32>

Nuevo código REPS de la empresa. Identificador del prestador en el Registro Especial de Prestadores de Servicios de Salud.

Responses

Request samples

Content type
{
  • "nit": 0,
  • "razonSocial": "string",
  • "digitoVerificacion": 0,
  • "estado": 0,
  • "clprCodigoReps": 0
}

Response samples

Content type
application/json
{
  • "nit": 0
}

Elimina una empresa del sistema.

Este endpoint permite eliminar una empresa del catálogo del sistema. Solo se permite la eliminación si la empresa no tiene contratos asociados.

Validaciones aplicadas:

  • La empresa debe existir en el sistema
  • La empresa no debe tener contratos como contratante
  • La empresa no debe tener contratos como contratista

Si la empresa tiene contratos asociados, no podrá ser eliminada y se retornará un error de validación. En ese caso, considere cambiar el estado a Inactiva (0) en lugar de eliminarla.

Sample request:

DELETE /api/Empresa/Delete/800197268
Authorizations:
Bearer
path Parameters
nit
required
integer <int32>

Número de Identificación Tributaria (NIT) de la empresa a eliminar.

Responses

Response samples

Content type
application/json
{
  • "nit": 0
}

NovedadContrato

Obtiene una lista paginada de novedades operativas con filtros opcionales.

Este endpoint permite consultar novedades aplicando múltiples filtros opcionales:

Filtros disponibles:

  • IdContrato: Filtro por identificador del contrato asociado
  • IdSeguimientoFacturaGlosa: Filtro por ID de glosa asociada
  • IdSeguimientoFacturaPago: Filtro por ID de pago asociado
  • CodigoEstado: Filtro por estado de la novedad:
    • 150001 = BORRADOR
    • 150002 = ENVIADA
    • 150003 = EN_REVISION
    • 150004 = APROBADA
    • 150005 = RECHAZADA
    • 150006 = APLICADA
    • 150007 = CANCELADA
  • NumeroPagina: Número de página para paginación (debe ser mayor a 0, default: 1)
  • CantidadRegistros: Cantidad de registros por página (entre 1 y 1000, default: 100)

Seguridad y roles:

  • SIIFA_Admin: Acceso a todas las novedades sin restricciones
  • SIIFA_IPS, SIIFA_IPS_Gestor, SIIFA_IPS_Consulta: Solo pueden consultar novedades de contratos donde sean el contratista (NitContratista filtrado automáticamente)
  • SIIFA_ERP, SIIFA_ERP_Gestor, SIIFA_ERP_Consulta: Solo pueden consultar novedades de contratos donde sean el contratante (NitContratante filtrado automáticamente)

Los resultados se devuelven paginados con metadatos que incluyen:

  • Total de registros encontrados
  • Número de página actual
  • Cantidad de registros por página

Validaciones:

  • NumeroPagina debe ser mayor a 0
  • CantidadRegistros debe estar entre 1 y 1000

Sample request:

GET /api/NovedadContrato?NumeroPagina=1&CantidadRegistros=10&CodigoEstado=150001
GET /api/NovedadContrato?IdContrato=123&CodigoEstado=150004
GET /api/NovedadContrato?NumeroPagina=2&CantidadRegistros=50
Authorizations:
Bearer
query Parameters
IdNovedad
integer <int64>
NumeroInternoNovedad
string
Nombre
string
IdContrato
integer <int32>
IdSeguimientoFacturaGlosa
integer <int64>
IdSeguimientoFacturaPago
integer <int64>
CodigoEstado
integer <int32>
FechaRegistroDesde
string <date-time>
FechaRegistroHasta
string <date-time>
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Registra una nueva novedad operativa en el sistema SIIFA.

Este endpoint permite crear una nueva novedad con validaciones automáticas de integridad. La novedad se crea automáticamente en estado BORRADOR (150001).

Datos requeridos:

  • Nombre: Nombre descriptivo de la novedad
  • Descripción: Descripción detallada de los cambios que incluye la novedad
  • Justificación: Justificación o razón de ser de la novedad
  • FechaInicioVigencia: Fecha desde la cual la novedad tiene efecto
  • FechaFinVigencia: Fecha hasta la cual la novedad tiene efecto (opcional)

Entidad afectada (debe especificar EXACTAMENTE UNA):

  • IdContrato: ID del contrato al que se aplica la novedad (para novedades contractuales)
  • IdSeguimientoFacturaGlosa: ID de la glosa afectada (para novedades de glosas)
  • IdSeguimientoFacturaPago: ID del pago afectado (para novedades de pagos)

Datos opcionales:

  • NumeroInternoNovedad: Número interno de la novedad (debe ser único si se proporciona)

Validaciones automáticas aplicadas:

  1. Validación de entidad afectada:

    • Debe especificar exactamente UNA entidad: IdContrato, IdSeguimientoFacturaGlosa o IdSeguimientoFacturaPago
    • No se permite especificar más de una entidad simultáneamente
    • La entidad especificada debe existir en la base de datos
  2. Validación de fechas:

    • FechaFinVigencia debe ser posterior a FechaInicioVigencia (si se especifica)
  3. Validación de número interno:

    • Si se especifica NumeroInternoNovedad, debe ser único en el sistema
  4. Estado inicial:

    • La novedad se crea automáticamente con estado BORRADOR (150001)
    • Se registra automáticamente un primer estado en la tabla NOVEDAD_ESTADO

Roles permitidos para crear novedades:

  • SIIFA_Admin: Puede crear cualquier novedad
  • SIIFA_ERP, SIIFA_ERP_Gestor: Puede crear novedades (filtradas por NIT del contratante)
  • SIIFA_IPS, SIIFA_IPS_Gestor: Puede crear novedades (filtradas por NIT del contratista)

Sample request:

POST /api/NovedadContrato
{
  "nombre": "Inclusión de nuevos medicamentos POS",
  "descripcion": "Se incluyen 10 nuevos medicamentos al catálogo POS según resolución ministerial",
  "justificacion": "Actualización según resolución MSPS 2023-XXX del 15 de enero de 2023",
  "fechaInicioVigencia": "2024-01-01T00:00:00",
  "fechaFinVigencia": "2024-12-31T23:59:59",
  "idContrato": 123,
  "numeroInternoNovedad": "NOV-2024-001"
}
Authorizations:
Bearer
Request Body schema:

Objeto que contiene los datos de la novedad a crear.

numeroInternoNovedad
string or null
nombre
string or null
descripcion
string or null
justificacion
string or null
idContrato
integer or null <int32>
idSeguimientoFacturaGlosa
integer or null <int64>
idSeguimientoFacturaPago
integer or null <int64>

Responses

Request samples

Content type
{
  • "numeroInternoNovedad": "string",
  • "nombre": "string",
  • "descripcion": "string",
  • "justificacion": "string",
  • "idContrato": 0,
  • "idSeguimientoFacturaGlosa": 0,
  • "idSeguimientoFacturaPago": 0
}

Response samples

Content type
application/json
{
  • "idNovedad": 0,
  • "codigoEstado": 0,
  • "estado": "string"
}

Obtiene los detalles completos de una novedad específica por su identificador.

Este endpoint devuelve información detallada y completa de una novedad específica, incluyendo:

Información básica:

  • Identificador de la novedad (IdNovedad)
  • Nombre y descripción de la novedad
  • Justificación de la novedad
  • Número interno de novedad (opcional)
  • Fechas de vigencia (inicio y fin)
  • Estado actual con código y descripción

Información de la entidad afectada:

  • Contrato asociado (si aplica): IdContrato, código, nombre
  • Glosa asociada (si aplica): IdSeguimientoFacturaGlosa
  • Pago asociado (si aplica): IdSeguimientoFacturaPago

Historial de estados:

  • Lista completa de cambios de estado ordenados cronológicamente
  • Fechas de cambio de estado
  • Usuarios que realizaron cada cambio
  • Observaciones de cada transición

Resumen de elementos por tipo:

  • CUMS (medicamentos): Total y cantidad aplicados
  • CUPS (procedimientos): Total y cantidad aplicados
  • Régimen: Total y cantidad aplicados
  • Modalidad de Pago: Total y cantidad aplicados
  • Agrupador: Total y cantidad aplicados
  • Prestador de Servicio: Total y cantidad aplicados

Validaciones:

  • El IdNovedad debe ser un número positivo mayor a 0
  • La novedad debe existir en la base de datos
  • El usuario debe tener permisos para ver la novedad según su rol y NIT

Sample request:

GET /api/NovedadContrato/1
GET /api/NovedadContrato/250
Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único de la novedad a consultar.

Responses

Response samples

Content type
application/json
{
  • "idNovedad": 0,
  • "numeroInternoNovedad": "string",
  • "nombre": "string",
  • "descripcion": "string",
  • "justificacion": "string",
  • "fechaRegistro": "2019-08-24T14:15:22Z",
  • "usuarioRegistro": "f86b90be-beab-434d-8ec1-f39f2d36b029",
  • "idContrato": 0,
  • "contrato": {
    },
  • "idSeguimientoFacturaGlosa": 0,
  • "idSeguimientoFacturaPago": 0,
  • "codigoEstadoActual": 0,
  • "estadoActual": "string",
  • "fechaEstadoActual": "2019-08-24T14:15:22Z",
  • "historialEstados": [
    ],
  • "resumen": {
    }
}

Actualiza los datos de una novedad existente.

Este endpoint permite modificar los datos de una novedad previamente creada, pero SOLO si la novedad está en estado BORRADOR (150001).

Campos modificables:

  • Nombre: Nombre descriptivo de la novedad
  • Descripción: Descripción detallada de los cambios
  • Justificación: Justificación o razón de ser de la novedad
  • NumeroInternoNovedad: Número interno (debe ser único si se cambia)
  • FechaInicioVigencia: Fecha de inicio de vigencia
  • FechaFinVigencia: Fecha de fin de vigencia (opcional)

Campos NO modificables:

  • IdContrato, IdSeguimientoFacturaGlosa, IdSeguimientoFacturaPago: No se permite cambiar la entidad afectada una vez creada la novedad
  • Estado: El estado solo se cambia mediante el endpoint dedicado en /api/NovedadContratoEstado

Restricciones importantes:

  1. Estado BORRADOR requerido:

    • Solo se pueden actualizar novedades en estado BORRADOR (150001)
    • Si la novedad está en cualquier otro estado (ENVIADA, EN_REVISION, APROBADA, etc.), se rechaza la actualización
    • Esta restricción previene modificaciones en novedades que ya están en proceso de aprobación o aplicadas
  2. Validación de fechas:

    • FechaFinVigencia debe ser posterior a FechaInicioVigencia (si se especifica)
  3. Número interno único:

    • Si se modifica NumeroInternoNovedad, el nuevo valor debe ser único en el sistema
  4. Concurrencia de ID:

    • El ID en la URL debe coincidir con el IdNovedad en el cuerpo del request

Roles permitidos:

  • SIIFA_Admin: Puede actualizar cualquier novedad en BORRADOR
  • SIIFA_ERP, SIIFA_ERP_Gestor: Puede actualizar novedades propias en BORRADOR
  • SIIFA_IPS, SIIFA_IPS_Gestor: Puede actualizar novedades propias en BORRADOR

Sample request:

PUT /api/NovedadContrato/123
{
  "idNovedad": 123,
  "nombre": "Inclusión de nuevos medicamentos POS - Actualizado",
  "descripcion": "Se incluyen 15 nuevos medicamentos al catálogo POS (ampliado)",
  "justificacion": "Actualización según resoluciones MSPS 2023-XXX y 2023-YYY",
  "fechaInicioVigencia": "2024-01-01T00:00:00",
  "fechaFinVigencia": "2024-12-31T23:59:59",
  "numeroInternoNovedad": "NOV-2024-001-V2"
}
Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único de la novedad a actualizar (debe coincidir con IdNovedad en el cuerpo).

Request Body schema:

Objeto que contiene los datos actualizados de la novedad.

idNovedad
integer <int64>
numeroInternoNovedad
string or null
nombre
string or null
descripcion
string or null
justificacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "numeroInternoNovedad": "string",
  • "nombre": "string",
  • "descripcion": "string",
  • "justificacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedad": 0,
  • "actualizado": true
}

Aplica todos los elementos de una novedad a las tablas operativas de forma iterativa.

Este endpoint orquesta la aplicación completa de una novedad, ejecutando iterativamente cada aplicador específico (CUMS, CUPS, Régimen, Modalidad de Pago, Agrupador, Prestador de Servicio). Cada aplicador maneja su propia transacción para garantizar atomicidad individual.

Requisitos previos:

  • La novedad debe existir en el sistema
  • La novedad debe estar en estado APROBADO (150004)
  • El usuario debe tener uno de los siguientes roles:
    • SIIFA_Admin
    • SIIFA_ERP_Gestor
    • SIIFA_IPS_Gestor

Proceso de aplicación:

  1. Validación inicial:

    • Verifica que la novedad existe
    • Verifica que está en estado APROBADO
    • Verifica permisos del usuario
  2. Aplicación secuencial por tipo:

    • Aplica elementos CUMS → tabla CONTRATO_CUMS (cada uno en su propia transacción)
    • Aplica elementos CUPS → tabla CONTRATO_CUPS (cada uno en su propia transacción)
    • Aplica elementos Régimen → tabla CONTRATO_REGIMEN (cada uno en su propia transacción)
    • Aplica elementos Modalidad de Pago → tabla CONTRATO_MODALIDAD_PAGO (cada uno en su propia transacción)
    • Aplica elementos Agrupador → tabla CONTRATO_AGRUPADOR (cada uno en su propia transacción)
    • Aplica elementos Prestador de Servicio → tabla CONTRATO_PRESTADOR_SERVICIO (cada uno en su propia transacción)
    • Actualiza estado de la novedad a APLICADO (150005)
  3. Resultado:

    • Si todo es exitoso: Retorna resumen de elementos aplicados
    • Si hay error: Se detiene la ejecución y se lanza excepción

Tipos de acciones aplicadas por elemento:

  • INCLUIR (160001): Crea nuevo registro en tabla operativa
  • MODIFICAR (160002): Actualiza registro existente en tabla operativa
  • INACTIVAR (160003): Marca registro como eliminado en tabla operativa
  • REACTIVAR (160004): Reactiva registro previamente eliminado

Resumen retornado:

  • Cantidad de elementos CUMS aplicados
  • Cantidad de elementos CUPS aplicados
  • Cantidad de elementos Régimen aplicados
  • Cantidad de elementos Modalidad de Pago aplicados
  • Cantidad de elementos Agrupador aplicados
  • Cantidad de elementos Prestador de Servicio aplicados
  • Total de elementos procesados

Importante:

  • Cada elemento se aplica en su propia transacción atómica
  • Si un elemento falla, se detiene la ejecución y los elementos posteriores no se aplican
  • Los elementos ya aplicados previamente permanecen aplicados
  • Una vez aplicada, la novedad queda en estado APLICADO y no puede modificarse
  • Los elementos ya aplicados individualmente se omiten automáticamente

Sample request:

POST /api/NovedadContrato/{id}/aplicar

Ejemplo: POST /api/NovedadContrato/123/aplicar

Authorizations:
Bearer
Request Body schema:
idNovedad
integer <int64>

Responses

Request samples

Content type
{
  • "idNovedad": 0
}

Response samples

Content type
application/json
{
  • "idNovedad": 0,
  • "aplicado": true,
  • "mensaje": "string",
  • "resumen": {
    }
}

NovedadContratoAgrupador

Obtiene una lista paginada de elementos de agrupador asociados a una novedad.

Authorizations:
Bearer
query Parameters
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>
IdNovedad
integer <int64>
CodigoAccion
integer <int32>
Aplicado
boolean

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Registra un nuevo elemento de agrupador en una novedad operativa.

Authorizations:
Bearer
Request Body schema:

Comando con los datos del elemento de agrupador a crear.

idNovedad
integer <int64>
codigoAccion
integer <int32>
idContratoAgrupador
integer or null <int32>
codigoAgrupadorAnterior
integer or null <int32>
codigoAgrupadorNuevo
integer or null <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "idContratoAgrupador": 0,
  • "codigoAgrupadorAnterior": 0,
  • "codigoAgrupadorNuevo": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoAgrupador": 0,
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "accion": "string"
}

Actualiza un elemento de agrupador existente en una novedad.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de agrupador a actualizar.

Request Body schema:

Comando con los datos actualizados del elemento.

idNovedadContratoAgrupador
integer <int64>
codigoAgrupadorAnterior
integer or null <int32>
codigoAgrupadorNuevo
integer or null <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedadContratoAgrupador": 0,
  • "codigoAgrupadorAnterior": 0,
  • "codigoAgrupadorNuevo": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoAgrupador": 0,
  • "actualizado": true
}

Elimina un elemento de agrupador de novedad.

Solo se permite eliminar cuando la novedad está en estado BORRADOR (150001) o RECHAZADA (150005), el elemento no ha sido aplicado y el usuario tiene rol SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de agrupador de novedad a eliminar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoAgrupador": 0,
  • "eliminado": true
}

Aplica un elemento de agrupador de novedad a la tabla operativa.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador del elemento de agrupador a aplicar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoAgrupador": 0,
  • "aplicado": true,
  • "idContratoAgrupadorAfectado": 0,
  • "mensaje": "string"
}

NovedadContratoCums

Obtiene una lista paginada de elementos CUMS (medicamentos) asociados a una novedad específica.

Este endpoint permite consultar todos los elementos CUMS (Código Único de Medicamentos) incluidos en una novedad, mostrando tanto los valores ANTERIORES como NUEVOS según el código de acción aplicado. Los datos se devuelven siguiendo el patrón ANTERIOR/NUEVO para facilitar la auditoría de cambios.

Filtros disponibles:

  • IdNovedad: (Requerido) Identificador de la novedad de la cual se consultan los elementos CUMS
  • Aplicado: Filtro opcional para mostrar solo elementos aplicados (true) o no aplicados (false)
  • CodigoAccion: Filtro opcional por tipo de acción (160001=INCLUIR, 160002=MODIFICAR, 160003=INACTIVAR, 160004=REACTIVAR)
  • NumeroPagina: Número de página para paginación (debe ser mayor a 0, default: 1)
  • CantidadRegistros: Cantidad de registros por página (debe ser mayor a 0 y menor o igual a 100, default: 10)

Patrón ANTERIOR/NUEVO por código de acción:

  • INCLUIR (160001): Solo muestra valores NUEVO

    • Campos NUEVO: IdReferenciaCumsNuevo, CodigoCumsNuevo, NombreCumsNuevo, CantidadNuevo, ActivoNuevo
    • Campos ANTERIOR: null (no aplican para inclusiones)
  • MODIFICAR (160002): Muestra valores ANTERIOR y NUEVO para comparación

    • Permite ver qué valores tenía el medicamento antes y después del cambio
    • Útil para auditoría de modificaciones de cantidad o estado activo
  • INACTIVAR (160003): Solo muestra valores ANTERIOR

    • Muestra los datos del medicamento que se está inactivando
    • Campos NUEVO: null (no aplican para inactivaciones)
  • REACTIVAR (160004): Solo muestra valores ANTERIOR

    • Muestra los datos del medicamento que se está reactivando
    • Campos NUEVO: null (no aplican para reactivaciones)

Campos retornados en cada elemento:

  • IdNovedadContratoCums: Identificador único del elemento
  • IdNovedad: Identificador de la novedad padre
  • CodigoAccion: Código del tipo de acción (160001-160004)
  • Accion: Descripción de la acción (INCLUIR, MODIFICAR, etc.)
  • Aplicado: Indica si el elemento ya fue aplicado a la tabla operativa
  • FechaAplicacion: Fecha y hora de aplicación (si aplica)
  • Observacion: Comentarios o justificación del cambio
  • Valores ANTERIOR y NUEVO según corresponda al código de acción

Validaciones:

  • IdNovedad es obligatorio y debe corresponder a una novedad existente
  • NumeroPagina debe ser mayor a 0
  • CantidadRegistros debe ser mayor a 0 y no superar 100

Sample request:

GET /api/NovedadContratoCums?IdNovedad=123&Aplicado=false&NumeroPagina=1&CantidadRegistros=10
GET /api/NovedadContratoCums?IdNovedad=150&CodigoAccion=160001
GET /api/NovedadContratoCums?IdNovedad=200&Aplicado=true
Authorizations:
Bearer
query Parameters
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>
IdNovedad
integer <int64>
CodigoAccion
integer <int32>
Aplicado
boolean

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Registra un nuevo elemento CUMS (medicamento) en una novedad operativa existente.

Este endpoint permite agregar medicamentos a una novedad siguiendo el patrón ANTERIOR/NUEVO versión 7.0. Las validaciones y campos requeridos varían según el código de acción especificado. Solo se pueden agregar elementos a novedades en estado BORRADOR (150001).

Códigos de acción disponibles:

INCLUIR (160001) - Agregar nuevo medicamento al contrato:

  • Campos requeridos:

    • IdNovedad: ID de la novedad (debe estar en estado BORRADOR)
    • CodigoAccion: 160001
    • IdReferenciaCumsNuevo: ID del medicamento en tabla REFERENCIA_CUMS
    • CantidadNuevo: Cantidad de unidades a incluir (debe ser mayor a 0)
    • ActivoDespues: Estado activo deseado del registro (true/false)
    • Observacion: Justificación de la inclusión (opcional)
  • Campos NO requeridos:

    • IdContratoCums: No aplica (se creará uno nuevo al aplicar)
    • Valores ANTERIOR: No aplican para inclusiones nuevas
  • Validaciones específicas:

    • El IdReferenciaCumsNuevo debe existir en tabla REFERENCIA_CUMS
    • La cantidad debe ser un número positivo
    • No debe haber valores ANTERIOR definidos

MODIFICAR (160002) - Cambiar datos de un medicamento existente:

  • Campos requeridos:

    • IdNovedad: ID de la novedad (debe estar en estado BORRADOR)
    • CodigoAccion: 160002
    • IdContratoCums: ID del elemento en tabla CONTRATO_CUMS a modificar
    • Valores NUEVO (estado deseado):
      • IdReferenciaCumsNuevo: Nuevo CUMS (puede ser el mismo)
      • CantidadNuevo: Nueva cantidad
      • ActivoDespues: Nuevo estado activo
    • Observacion: Justificación del cambio (opcional)
  • Campos NO requeridos (se obtienen automáticamente):

    • Valores ANTERIOR: Se extraen automáticamente de CONTRATO_CUMS usando IdContratoCums
      • IdReferenciaCumsAnterior: Obtenido automáticamente
      • CantidadAnterior: Obtenido automáticamente
      • ActivoAnterior: Obtenido automáticamente
    • IMPORTANTE: NO enviar valores ANTERIOR en el request (serán rechazados por validación)
  • Validaciones específicas:

    • El IdContratoCums debe existir en tabla CONTRATO_CUMS
    • El IdReferenciaCumsNuevo debe existir en tabla REFERENCIA_CUMS
    • La cantidad debe ser positiva
    • Los valores ANTERIOR NO deben estar presentes en el request

INACTIVAR (160003) - Eliminar medicamento del contrato:

  • Campos requeridos:

    • IdNovedad: ID de la novedad (debe estar en estado BORRADOR)
    • CodigoAccion: 160003
    • IdContratoCums: ID del elemento en tabla CONTRATO_CUMS a inactivar
    • Observacion: Justificación de la inactivación (opcional)
  • Campos NO requeridos (se obtienen automáticamente):

    • Valores ANTERIOR: Se extraen automáticamente de CONTRATO_CUMS usando IdContratoCums
      • IdReferenciaCumsAnterior: Obtenido automáticamente
      • CantidadAnterior: Obtenido automáticamente
      • ActivoAnterior: Obtenido automáticamente
    • Valores NUEVO: No aplican para inactivaciones
    • IMPORTANTE: NO enviar valores ANTERIOR ni NUEVO en el request (serán rechazados por validación)
  • Validaciones específicas:

    • El IdContratoCums debe existir en tabla CONTRATO_CUMS
    • No debe haber valores ANTERIOR ni NUEVO definidos en el request
    • El elemento no debe estar ya inactivo

REACTIVAR (160004) - Reactivar medicamento previamente inactivado:

  • Campos requeridos:

    • IdNovedad: ID de la novedad (debe estar en estado BORRADOR)
    • CodigoAccion: 160004
    • IdContratoCums: ID del elemento a reactivar en tabla CONTRATO_CUMS
    • Observacion: Justificación de la reactivación (opcional)
  • Campos NO requeridos:

    • Valores ANTERIOR: Se obtienen automáticamente desde CONTRATO_CUMS
    • Valores NUEVO: No aplican para reactivaciones (el estado activo se calcula automáticamente)
    • IMPORTANTE: NO enviar valores ANTERIOR ni NUEVO en el request (serán rechazados por validación)
  • Validaciones específicas:

    • El IdContratoCums debe existir en tabla CONTRATO_CUMS
    • No debe haber valores ANTERIOR ni NUEVO definidos en el request
    • El elemento debe estar inactivo para reactivarlo

Validaciones generales aplicadas a todas las acciones:

  1. La novedad debe existir y estar en estado BORRADOR (150001)
  2. El usuario debe tener permisos sobre la novedad (según NIT para roles IPS/ERP)
  3. El CodigoAccion debe ser válido (160001-160004)
  4. Las referencias a CUMS deben existir en tabla REFERENCIA_CUMS
  5. Las cantidades deben ser números enteros positivos
  6. ActivoDespues debe ser un valor booleano (true/false) cuando aplique
  7. El elemento se crea con Aplicado = false

Efecto de la creación:

  • Se crea 1 registro en tabla NOVEDAD_CONTRATO_CUMS
  • El elemento queda pendiente de aplicación (Aplicado = false)
  • No se modifica aún la tabla operativa CONTRATO_CUMS
  • La aplicación a tabla operativa se realiza posteriormente mediante el endpoint de aplicación

Sample request INCLUIR:

POST /api/NovedadContratoCums
{
    "idNovedad": 123,
    "codigoAccion": 160001,
    "idReferenciaCumsNuevo": 456,
    "cantidadNuevo": 100,
    "activoDespues": true,
    "observacion": "Nuevo medicamento oncológico incluido en POS - Aprobación comité técnico 2025-01-15"
}

Sample request MODIFICAR:

POST /api/NovedadContratoCums
{
    "idNovedad": 123,
    "codigoAccion": 160002,
    "idContratoCums": 789,
    "idReferenciaCumsNuevo": 456,
    "cantidadNuevo": 200,
    "activoDespues": true,
    "observacion": "Aumento de cantidad de 100 a 200 unidades por incremento de demanda - Resolución MinSalud 001-2025"
}

Sample request INACTIVAR:

POST /api/NovedadContratoCums
{
    "idNovedad": 123,
    "codigoAccion": 160003,
    "idContratoCums": 789,
    "observacion": "Medicamento descontinuado por laboratorio - Comunicado oficial 2025-02-01"
}
Authorizations:
Bearer
Request Body schema:

Comando con los datos del elemento CUMS a agregar a la novedad.

idNovedad
integer <int64>
codigoAccion
integer <int32>
idContratoCums
integer or null <int32>
idReferenciaCumsAnterior
integer or null <int32>
idReferenciaCumsNuevo
integer or null <int32>
cantidadNuevo
integer or null <int32>
activoDespues
boolean or null
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "idContratoCums": 0,
  • "idReferenciaCumsAnterior": 0,
  • "idReferenciaCumsNuevo": 0,
  • "cantidadNuevo": 0,
  • "activoDespues": true,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoCums": 0,
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "accion": "string"
}

Actualiza los datos de un elemento CUMS existente en una novedad operativa.

Este endpoint permite modificar los datos de un elemento CUMS previamente registrado en una novedad. Solo se pueden actualizar elementos que pertenezcan a novedades en estado BORRADOR y que no hayan sido aplicados.

Restricciones de actualización:

  1. Estado de la novedad:

    • La novedad padre debe estar en estado BORRADOR (150001)
    • No se pueden actualizar elementos de novedades en otros estados (ENVIADA, EN_REVISION, APROBADA, etc.)
  2. Estado de aplicación:

    • El elemento no debe haber sido aplicado (Aplicado = false)
    • Una vez aplicado un elemento, no se puede modificar
  3. Validación de ID:

    • El ID del elemento en la URL debe coincidir con el ID en el cuerpo del comando
    • El elemento debe existir en la base de datos

Campos actualizables:

Todos los campos del patrón ANTERIOR/NUEVO pueden ser actualizados según el código de acción:

  • CodigoAccion: Se puede cambiar el tipo de acción (con las validaciones correspondientes)
  • IdContratoCums: Solo para MODIFICAR, INACTIVAR y REACTIVAR
  • Valores ANTERIOR: IdReferenciaCumsAnterior, CantidadAnterior, ActivoAnterior
  • Valores NUEVO: IdReferenciaCumsNuevo, CantidadNuevo, ActivoNuevo
  • Observacion: Comentarios o justificación actualizada

Validaciones aplicadas:

Las mismas validaciones del patrón ANTERIOR/NUEVO que se aplican en la creación:

  • INCLUIR (160001): Solo valores NUEVO requeridos
  • MODIFICAR (160002): Solo IdContratoCums y valores NUEVO requeridos (ANTERIOR se obtienen automáticamente)
  • INACTIVAR (160003): Solo IdContratoCums requerido (ANTERIOR se obtienen automáticamente)
  • REACTIVAR (160004): Solo IdContratoCums requerido (ANTERIOR se obtienen automáticamente, NUEVO no aplican)

Además:

  • Las referencias a CUMS deben existir en tabla REFERENCIA_CUMS
  • Las cantidades deben ser números positivos

Caso de uso típico:

Un usuario crea un elemento con acción MODIFICAR pero se equivoca en la cantidad nueva. Puede actualizar el elemento antes de enviar la novedad a revisión, corrigiendo los valores sin necesidad de eliminarlo y crearlo nuevamente.

Sample request:

PUT /api/NovedadContratoCums/456
{
    "idNovedadContratoCums": 456,
    "codigoAccion": 160002,
    "idContratoCums": 789,
    "idReferenciaCumsAnterior": 123,
    "cantidadAnterior": 100,
    "activoAnterior": true,
    "idReferenciaCumsNuevo": 123,
    "cantidadNuevo": 250,
    "activoNuevo": true,
    "observacion": "Corrección: Aumento de 100 a 250 unidades por error de digitación en solicitud inicial"
}
Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento CUMS de novedad a actualizar. Debe coincidir con el ID en el cuerpo del comando.

Request Body schema:

Comando con los datos actualizados del elemento CUMS. Incluye todas las propiedades del patrón ANTERIOR/NUEVO.

idNovedadContratoCums
integer <int64>
idReferenciaCumsNuevo
integer or null <int32>
cantidadNuevo
integer or null <int32>
activoNuevo
boolean or null
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedadContratoCums": 0,
  • "idReferenciaCumsNuevo": 0,
  • "cantidadNuevo": 0,
  • "activoNuevo": true,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoCums": 0,
  • "actualizado": true
}

Aplica un elemento CUMS de novedad a la tabla operativa CONTRATO_CUMS, ejecutando la acción correspondiente.

Este endpoint ejecuta la aplicación de un elemento CUMS de novedad a la tabla operativa CONTRATO_CUMS, materializando el cambio solicitado según el código de acción. Este es el paso final del flujo de novedades, donde los cambios aprobados se hacen efectivos en las tablas operativas del sistema.

Control de acceso y roles permitidos:

Solo los siguientes roles pueden aplicar novedades:

  • SIIFA_Admin: Acceso completo sin restricciones
  • SIIFA_ERP_Gestor: Solo puede aplicar novedades de contratos donde la ERP es contratante
  • SIIFA_IPS_Gestor: Solo puede aplicar novedades de contratos donde la IPS es contratista

Roles de solo consulta NO tienen permiso:

  • SIIFA_ERP_Consulta
  • SIIFA_IPS_Consulta
  • SIIFA_FITS
  • SIIFA_FITS_Gestor

Requisitos previos para la aplicación:

  1. Estado de la novedad:

    • La novedad padre debe estar en estado APROBADA (150004)
    • No se pueden aplicar elementos de novedades en otros estados
  2. Estado del elemento:

    • El elemento no debe haber sido aplicado previamente (Aplicado = false)
    • Una vez aplicado, no se puede volver a aplicar
  3. Permisos del usuario:

    • El usuario debe tener rol gestor o admin
    • Para roles IPS/ERP, el NIT debe coincidir con el contrato de la novedad

Acciones ejecutadas según código de acción:

INCLUIR (160001) - Crear nuevo medicamento en CONTRATO_CUMS:

  • Crea un nuevo registro en tabla CONTRATO_CUMS con:

    • IdContrato: Tomado de la novedad padre
    • IdCums: Valor de IdReferenciaCumsNuevo del elemento
    • Cantidad: Valor de CantidadNuevo del elemento
    • Activo: Valor de ActivoNuevo del elemento
    • FechaRegistro: Fecha/hora de aplicación
    • UsuarioRegistro: Usuario que ejecuta la aplicación
    • IdNovedadOrigen: ID de la novedad (trazabilidad)
    • FechaNovedadAplicacion: Fecha/hora de aplicación
  • Resultado: Nuevo ID de CONTRATO_CUMS generado

MODIFICAR (160002) - Actualizar medicamento existente:

  • Busca el registro en CONTRATO_CUMS usando IdContratoCums del elemento

  • Actualiza los campos con los valores NUEVO:

    • IdCums = IdReferenciaCumsNuevo
    • Cantidad = CantidadNuevo
    • Activo = ActivoNuevo
    • IdNovedadOrigen = ID de la novedad
    • FechaNovedadAplicacion = Fecha/hora de aplicación
  • Resultado: ID del registro modificado en CONTRATO_CUMS

INACTIVAR (160003) - Eliminar medicamento del contrato:

  • Busca el registro en CONTRATO_CUMS usando IdContratoCums del elemento

  • Elimina físicamente el registro de la tabla CONTRATO_CUMS

  • La trazabilidad se mantiene a través del elemento de novedad

  • Resultado: ID del registro inactivado

REACTIVAR (160004) - Reactivar medicamento previamente inactivado:

  • Busca el registro en CONTRATO_CUMS usando IdContratoCums del elemento

  • Marca el campo Activo = true

  • Actualiza IdNovedadOrigen y FechaNovedadAplicacion con datos de esta novedad

  • El registro mantiene su ID original y toda su información histórica

  • Resultado: ID del CONTRATO_CUMS reactivado (mismo ID original)

Trazabilidad y auditoría:

Después de aplicar exitosamente, se actualiza el elemento de novedad:

  • Aplicado = true
  • FechaAplicacion = Fecha y hora actual del servidor
  • UsuarioAplicacion = GUID del usuario autenticado

Esto permite:

  • Rastrear qué usuario aplicó cada cambio
  • Conocer la fecha exacta de aplicación
  • Identificar qué cambios ya fueron aplicados
  • Mantener historia completa de modificaciones

Proceso transaccional:

Toda la operación se ejecuta en una transacción de base de datos:

  1. Se valida el elemento y la novedad
  2. Se ejecuta la acción en CONTRATO_CUMS
  3. Se marca el elemento como aplicado
  4. Se confirma la transacción (commit)

Si ocurre un error en cualquier paso, se hace rollback completo.

Validaciones automáticas:

  • El elemento debe existir en tabla NOVEDAD_CONTRATO_CUMS
  • El elemento no debe estar ya aplicado
  • La novedad padre debe estar en estado APROBADA (150004)
  • El usuario debe tener permisos según su rol
  • Para MODIFICAR/INACTIVAR: El IdContratoCums debe existir
  • Para INCLUIR/REACTIVAR: Las referencias CUMS deben ser válidas

Sample request:

POST /api/NovedadContratoCums/aplicar
{
    "idNovedadContratoCums": 456
}

Sample response exitoso:

{
    "idNovedadContratoCums": 456,
    "aplicado": true,
    "idContratoCumsAfectado": 789,
    "mensaje": "CUMS modificado en contrato (ID: 789)"
}
Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoCums": 0,
  • "eliminado": true
}

/api/NovedadContratoCums/aplicar

Authorizations:
Bearer
Request Body schema:
idNovedadContratoCums
integer <int64>

Responses

Request samples

Content type
{
  • "idNovedadContratoCums": 0
}

Response samples

Content type
application/json
{
  • "idNovedadContratoCums": 0,
  • "aplicado": true,
  • "idContratoCumsAfectado": 0,
  • "mensaje": "string"
}

NovedadContratoCups

Obtiene un listado paginado de elementos CUPS de una novedad.

Consulta los procedimientos/servicios CUPS incluidos en una novedad. Los datos se devuelven siguiendo el patrón ANTERIOR/NUEVO según el código de acción:

  • INCLUIR (160001): Solo valores NUEVO
  • MODIFICAR (160002): Valores ANTERIOR y NUEVO
  • INACTIVAR (160003): Solo valores ANTERIOR
  • REACTIVAR (160004): Solo valores ANTERIOR
Authorizations:
Bearer
query Parameters
IdNovedad
integer <int64>
CodigoAccion
integer <int32>
Aplicado
boolean
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Agrega un nuevo elemento CUPS a una novedad.

Este endpoint permite agregar procedimientos/servicios CUPS a una novedad siguiendo el patrón ANTERIOR/NUEVO. Las validaciones y campos requeridos varían según el código de acción especificado. Solo se pueden agregar elementos a novedades en estado BORRADOR (150001).

Códigos de acción:

  • INCLUIR (160001): Requiere solo valores NUEVO
  • MODIFICAR (160002): Requiere IdContratoCups + valores NUEVO. Los valores ANTERIOR se obtienen automáticamente
  • INACTIVAR (160003): Requiere solo IdContratoCups. Los valores ANTERIOR se obtienen automáticamente
  • REACTIVAR (160004): Requiere solo IdContratoCups. Los valores ANTERIOR se obtienen automáticamente y el estado activo se calcula en backend

IMPORTANTE para MODIFICAR, INACTIVAR y REACTIVAR:

  • Los valores ANTERIOR se extraen automáticamente de CONTRATO_CUPS
  • NO enviar valores ANTERIOR ni NUEVO en el request para INACTIVAR/REACTIVAR (serán rechazados)
  • Esto garantiza integridad de datos y previene falsificación
Authorizations:
Bearer
Request Body schema:

Comando con los datos del elemento CUPS a agregar a la novedad.

idNovedad
integer <int64>
codigoAccion
integer <int32>
idContratoCups
integer or null <int32>
idReferenciaCupsAnterior
string or null
idReferenciaCupsNuevo
string or null
cantidadNuevo
integer or null <int32>
activoDespues
boolean or null
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "idContratoCups": 0,
  • "idReferenciaCupsAnterior": "string",
  • "idReferenciaCupsNuevo": "string",
  • "cantidadNuevo": 0,
  • "activoDespues": true,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoCups": 0,
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "accion": "string"
}

Actualiza un elemento CUPS de una novedad (solo en estado BORRADOR).

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento CUPS a actualizar.

Request Body schema:

Comando con los datos actualizados del elemento CUPS.

idNovedadContratoCups
integer <int64>
idReferenciaCupsNuevo
string or null
cantidadNuevo
integer or null <int32>
activoNuevo
boolean or null
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedadContratoCups": 0,
  • "idReferenciaCupsNuevo": "string",
  • "cantidadNuevo": 0,
  • "activoNuevo": true,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoCups": 0,
  • "actualizado": true
}

Elimina un elemento CUPS de novedad.

Solo se permite eliminar cuando la novedad está en estado BORRADOR (150001) o RECHAZADA (150005), el elemento no ha sido aplicado y el usuario tiene rol SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento CUPS de novedad a eliminar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoCups": 0,
  • "eliminado": true
}

Aplica un elemento CUPS de novedad a la tabla operativa CONTRATO_CUPS.

Authorizations:
Bearer
Request Body schema:

Comando con el identificador del elemento CUPS a aplicar.

idNovedadContratoCups
integer <int64>

Responses

Request samples

Content type
{
  • "idNovedadContratoCups": 0
}

Response samples

Content type
application/json
{
  • "idNovedadContratoCups": 0,
  • "aplicado": true,
  • "idContratoCupsAfectado": 0,
  • "mensaje": "string"
}

NovedadContratoEstado

Obtiene el historial de estados de una novedad.

Retorna todos los cambios de estado de una novedad ordenados por fecha descendente (más reciente primero).

Estados disponibles:

  • BORRADOR (150001): Estado inicial al crear la novedad
  • ENVIADA (150002): Novedad enviada para revisión
  • EN_REVISION (150003): Novedad en proceso de revisión
  • APROBADA (150004): Novedad aprobada, lista para aplicar
  • RECHAZADA (150005): Novedad rechazada
  • APLICADA (150006): Novedad aplicada a las tablas operativas (estado final)
  • CANCELADA (150007): Novedad cancelada (estado final)

Sample request:

GET /api/NovedadContratoEstado?IdNovedad=123
Authorizations:
Bearer
query Parameters
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>
IdNovedad
integer <int64>
CodigoEstado
integer <int32>

Responses

Response samples

Content type
No sample

Registra un cambio de estado en una novedad según el flujo definido.

Flujo de estados permitidos:

  • BORRADOR (150001) → ENVIADA (150002)
  • ENVIADA (150002) → EN_REVISION (150003), RECHAZADA (150005), CANCELADA (150007)
  • EN_REVISION (150003) → APROBADA (150004), RECHAZADA (150005)
  • APROBADA (150004) → APLICADA (150006)
  • RECHAZADA (150005) → BORRADOR (150001)
  • APLICADA (150006) y CANCELADA (150007) son estados finales

Sample request:

{
  "idNovedad": 123,
  "codigoEstado": 150002,
  "observacion": "Enviando novedad para revisión del contratista"
}
Authorizations:
Bearer
Request Body schema:

Datos del cambio de estado

idNovedad
integer <int64>
codigoEstado
integer <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "codigoEstado": 0,
  • "observacion": "string"
}

Response samples

Content type
No sample

NovedadContratoModalidadPago

Obtiene una lista paginada de elementos de modalidad de pago asociados a una novedad.

Authorizations:
Bearer
query Parameters
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>
IdNovedad
integer <int64>
CodigoAccion
integer <int32>
Aplicado
boolean

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Registra un nuevo elemento de modalidad de pago en una novedad operativa.

Authorizations:
Bearer
Request Body schema:

Comando con los datos del elemento de modalidad de pago a crear.

idNovedad
integer <int64>
codigoAccion
integer <int32>
idContratoModalidadPago
integer or null <int32>
codigoModalidadPagoAnterior
integer or null <int32>
codigoModalidadPagoNuevo
integer or null <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "idContratoModalidadPago": 0,
  • "codigoModalidadPagoAnterior": 0,
  • "codigoModalidadPagoNuevo": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoModalidadPago": 0,
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "accion": "string"
}

Actualiza un elemento de modalidad de pago existente en una novedad.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de modalidad de pago a actualizar.

Request Body schema:

Comando con los datos actualizados del elemento.

idNovedadContratoModalidadPago
integer <int64>
codigoModalidadPagoAnterior
integer or null <int32>
codigoModalidadPagoNuevo
integer or null <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedadContratoModalidadPago": 0,
  • "codigoModalidadPagoAnterior": 0,
  • "codigoModalidadPagoNuevo": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoModalidadPago": 0,
  • "actualizado": true
}

Elimina un elemento de modalidad de pago de novedad.

Solo se permite eliminar cuando la novedad está en estado BORRADOR (150001) o RECHAZADA (150005), el elemento no ha sido aplicado y el usuario tiene rol SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de modalidad de pago a eliminar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoModalidadPago": 0,
  • "eliminado": true
}

Aplica un elemento de modalidad de pago de novedad a la tabla operativa.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador del elemento de modalidad de pago a aplicar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoModalidadPago": 0,
  • "aplicado": true,
  • "idContratoModalidadPagoAfectado": 0,
  • "mensaje": "string"
}

NovedadContratoPrestadorServicio

Obtiene un listado paginado de elementos de prestador de servicio asociados a una novedad.

Retorna la información ANTERIOR/NUEVO según el código de acción:

  • INCLUIR (160001): solo valores NUEVO.
  • MODIFICAR (160002): valores ANTERIOR y NUEVO.
  • INACTIVAR (160003): solo valores ANTERIOR.
  • REACTIVAR (160004): solo valores ANTERIOR.
Authorizations:
Bearer
query Parameters
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>
IdNovedad
integer <int64>
CodigoAccion
integer <int32>
Aplicado
boolean

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Registra un nuevo elemento de prestador de servicio en una novedad.

Para MODIFICAR, INACTIVAR y REACTIVAR se debe enviar IdContratoPrestadorServicio. El valor ANTERIOR se obtiene automáticamente desde el registro operativo, por lo que no debe enviarse en el request.

Authorizations:
Bearer
Request Body schema:

Comando con los datos del elemento de prestador a crear.

idNovedad
integer <int64>
codigoAccion
integer <int32>
idContratoPrestadorServicio
integer or null <int32>
idReferenciaRepsNuevo
integer or null <int64>
activoDespues
boolean or null
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "idContratoPrestadorServicio": 0,
  • "idReferenciaRepsNuevo": 0,
  • "activoDespues": true,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoPrestadorServicio": 0,
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "accion": "string"
}

Actualiza un elemento de prestador de servicio de una novedad en estado BORRADOR.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de prestador a actualizar.

Request Body schema:

Comando con los datos actualizados del elemento.

idNovedadContratoPrestadorServicio
integer <int64>
idReferenciaRepsAnterior
integer or null <int64>
idReferenciaRepsNuevo
integer or null <int64>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedadContratoPrestadorServicio": 0,
  • "idReferenciaRepsAnterior": 0,
  • "idReferenciaRepsNuevo": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoPrestadorServicio": 0,
  • "actualizado": true
}

Elimina un elemento de prestador de servicio de novedad.

Solo se permite eliminar cuando la novedad está en estado BORRADOR (150001) o RECHAZADA (150005), el elemento no ha sido aplicado y el usuario tiene rol SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de prestador de novedad a eliminar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoPrestadorServicio": 0,
  • "eliminado": true
}

Aplica un elemento de prestador de servicio de novedad a la tabla operativa.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador del elemento de prestador a aplicar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoPrestadorServicio": 0,
  • "aplicado": true,
  • "idContratoPrestadorServicioAfectado": 0,
  • "mensaje": "string"
}

NovedadContratoRegimen

Obtiene una lista paginada de elementos de régimen asociados a una novedad.

Authorizations:
Bearer
query Parameters
NumeroPagina
integer <int32>
CantidadRegistros
integer <int32>
IdNovedad
integer <int64>
CodigoAccion
integer <int32>
Aplicado
boolean

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

Registra un nuevo elemento de régimen en una novedad operativa.

Authorizations:
Bearer
Request Body schema:

Comando con los datos del elemento de régimen a crear.

idNovedad
integer <int64>
codigoAccion
integer <int32>
idContratoRegimen
integer or null <int32>
codigoRegimenAnterior
integer or null <int32>
codigoRegimenNuevo
integer or null <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "idContratoRegimen": 0,
  • "codigoRegimenAnterior": 0,
  • "codigoRegimenNuevo": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoRegimen": 0,
  • "idNovedad": 0,
  • "codigoAccion": 0,
  • "accion": "string"
}

Actualiza un elemento de régimen existente en una novedad.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de régimen a actualizar.

Request Body schema:

Comando con los datos actualizados del elemento.

idNovedadContratoRegimen
integer <int64>
codigoRegimenAnterior
integer or null <int32>
codigoRegimenNuevo
integer or null <int32>
observacion
string or null

Responses

Request samples

Content type
{
  • "idNovedadContratoRegimen": 0,
  • "codigoRegimenAnterior": 0,
  • "codigoRegimenNuevo": 0,
  • "observacion": "string"
}

Response samples

Content type
application/json
{
  • "idNovedadContratoRegimen": 0,
  • "actualizado": true
}

Elimina un elemento de régimen de novedad.

Solo se permite eliminar cuando la novedad está en estado BORRADOR (150001) o RECHAZADA (150005), el elemento no ha sido aplicado y el usuario tiene rol SIIFA_Admin, SIIFA_ERP o SIIFA_ERP_Gestor.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador único del elemento de régimen de novedad a eliminar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoRegimen": 0,
  • "eliminado": true
}

Aplica un elemento de régimen de novedad a la tabla operativa.

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Identificador del elemento de régimen a aplicar.

Responses

Response samples

Content type
application/json
{
  • "idNovedadContratoRegimen": 0,
  • "aplicado": true,
  • "idContratoRegimenAfectado": 0,
  • "mensaje": "string"
}

ReferenciaBanco

Obtiene la lista de todos los bancos disponibles en el sistema con paginación.

Este endpoint retorna todos los bancos registrados en la tabla REFERENCIA_BANCO. Soporta filtros por código, estado y nombre, además de paginación.

Parámetros de consulta:

  • CodigoBanrep (opcional): Filtrar por código específico del banco
  • Estado (opcional): Filtrar por estado (ACTIVO, INACTIVO)
  • Nombre (opcional): Buscar bancos que contengan el texto especificado en el nombre
  • NumeroPagina (opcional): Número de página (por defecto: 1)
  • RegistrosPorPagina (opcional): Cantidad de registros por página (por defecto: 10, máximo: 100)

Información retornada:

  • Lista paginada ordenada alfabéticamente por nombre
  • Incluye código Banrep, código Superfinanciera, NIT, razón social, convenio ADRES
  • Fechas de registro, actualización y convenio ADRES
  • Metadatos de paginación: total de registros, página actual, registros por página

Casos de uso:

  • Llenar catálogos/listas desplegables de bancos en el frontend
  • Consultar información de bancos para validaciones
  • Obtener información del convenio ADRES de un banco
  • Listar bancos con paginación para tablas

Sample requests:

GET /api/ReferenciaBanco
GET /api/ReferenciaBanco?estado=ACTIVO
GET /api/ReferenciaBanco?nombre=Bancolombia
GET /api/ReferenciaBanco?codigoBanrep=1
GET /api/ReferenciaBanco?estado=ACTIVO&numeroPagina=1&registrosPorPagina=20
GET /api/ReferenciaBanco?nombre=Banco&numeroPagina=2&registrosPorPagina=10
Authorizations:
Bearer
query Parameters
CodigoBanrep
integer <int32>
Estado
string
Nombre
string
NumeroPagina
integer <int32>
RegistrosPorPagina
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "paginaActual": 0,
  • "registrosPorPagina": 0,
  • "totalRegistros": 0,
  • "totalPaginas": 0,
  • "resultado": [
    ]
}

ReferenciaCums

Obtiene una lista de referencias CUMS filtradas por los parámetros de búsqueda proporcionados.

Este endpoint permite buscar referencias CUMS utilizando texto libre, expediente CUM o código ATC. El resultado incluye información relevante como el nombre, descripción, código ATC y si está incluido en el PBS.

Authorizations:
Bearer
query Parameters
TextoConsulta
string
NumeroRegistros
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de una referencia CUMS por su identificador único.

Este endpoint permite consultar toda la información asociada a una referencia CUMS específica, identificada por su IdCums.

Authorizations:
Bearer
path Parameters
IdCums
required
integer <int32>

Responses

Response samples

Content type
No sample

ReferenciaCups

Obtiene la lista de referencias CUPS según los parámetros de consulta.

Este endpoint permite consultar todas las referencias CUPS disponibles, filtrando según los criterios definidos en el parámetro de consulta. Es útil para procesos de integración, auditoría y soporte a la toma de decisiones clínicas y administrativas.

Authorizations:
Bearer
query Parameters
TextoConsulta
string
NumeroRegistros
integer <int32>

Responses

Response samples

Content type
No sample

Obtiene el detalle de una referencia CUPS a partir de su identificador único.

Este endpoint permite consultar toda la información relevante de un procedimiento específico, identificado por su IdCups. Es útil para validación, auditoría y análisis detallado de procedimientos en el sistema.

Authorizations:
Bearer
path Parameters
IdCups
required
string

Responses

Response samples

Content type
No sample

ReferenciaMunicipio

Obtiene la lista de municipios de referencia según los parámetros de consulta.

Este endpoint permite consultar todos los municipios de referencia disponibles, filtrando según los criterios definidos en el parámetro de consulta. El resultado incluye información del municipio y su departamento asociado.

Authorizations:
Bearer
query Parameters
object (Minsalud_SIIFA_API_Features_ReferenciaMunicipio_Queries_ListReferenciaMunicipio_Query)

Parámetro que contiene los criterios de búsqueda para los municipios de referencia.

Responses

Response samples

Content type
No sample

ReferenciaReps

Obtiene la lista de referencias REPS asociadas a un prestador según su NIT.

Este endpoint permite consultar todas las referencias REPS disponibles para un prestador de servicios de salud, filtrando por el NIT del prestador.

Authorizations:
Bearer
path Parameters
Nit
required
string

Responses

Response samples

Content type
No sample

WeatherForecast

GetWeatherForecast

Authorizations:
Bearer

Responses

Response samples

Content type
No sample