MinSalud.SIIFA.API.Contrato (v1.0.5)

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
}

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.

Authorizations:
Bearer
path Parameters
IdContrato
required
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

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í (opcional).
  • Valor: Valor económico 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,
    "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>
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,
  • "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).

Campos actualizables:

  • Nombre: Nombre o descripción del otrosí.
  • Valor: Valor económico del otrosí.
  • FechaFinalizacion: Fecha de fin de vigencia.
  • TipoAdicion, TipoModificacion, TipoProrroga: Indicadores de tipo de otrosí.

Validaciones:

  • 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,
    "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>
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,
  • "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,
  • "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:

  • 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
}

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