Saltar al contenido principal
Método y ruta: POST {BASE_URL}/consultations Crea una nueva consulta de telemedicina, ya sea programada (con fecha/hora) o inmediata (sin fecha; el paciente y el proveedor pueden entrar en breve).

Cuerpo de la petición (JSON)

CampoTipoObligatorioDescripción
providerobjetoDatos del profesional.
provider.namestringNombre completo (entre 10 y 50 caracteres).
provider.documentTypestringCC, TI, CE, RC o PAS.
provider.documentNumberstringNúmero de documento (entre 8 y 20 caracteres).
provider.professionalTypestringEj: MedicoGeneral, MedicoEspecialista, Psicologo.
provider.medicalSpecialtyCodestringCondicionalObligatorio solo si professionalType es MedicoEspecialista. No enviar para MedicoGeneral, Psicologo, etc. Ver Especialidades médicas.
provider.phonestringTeléfono en formato internacional (ej. +573001234567).
provider.emailstringEmail válido.
provider.professionalLicensestringNoNúmero de matrícula (opcional).
patientobjetoDatos del paciente.
patient.documentTypestringCC, TI, CE, RC o PAS.
patient.documentNumberstringEntre 8 y 20 caracteres.
patient.namestringNombre completo.
patient.phonestringFormato internacional.
patient.emailstringEmail válido.
consultationTypestringTipo de consulta (ej. ConsultaGeneral, ConsultaUrgencias). Ver Tipos de consulta para el catálogo completo.
durationMinutesnúmeroDuración en minutos. Valores permitidos: 10, 15, 20, 25, 30, 35, 40, 45, 50, 60. Ver Duraciones de consulta.
scheduledAtstringNoFecha y hora en formato yyyy-MM-dd HH:mm. Si no se envía, se crea consulta inmediata. Si se envía, debe ser futura y con al menos 15 minutos de anticipación (zona horaria de la organización).

Referencia de catálogos

Para los campos consultationType, medicalSpecialtyCode y durationMinutes consulte las tablas oficiales:

Ejemplo – Consulta programada (médico especialista)

{
  "provider": {
    "name": "Dr. Juan Pérez",
    "documentType": "CC",
    "documentNumber": "1234567890",
    "professionalType": "MedicoEspecialista",
    "medicalSpecialtyCode": "CA003",
    "phone": "+573001234567",
    "email": "[email protected]",
    "professionalLicense": "12345"
  },
  "patient": {
    "documentType": "CC",
    "documentNumber": "1234567890",
    "name": "María García López",
    "phone": "+573009876543",
    "email": "[email protected]"
  },
  "consultationType": "ConsultaGeneral",
  "scheduledAt": "2024-12-15 14:30",
  "durationMinutes": 30
}

Ejemplo – Consulta inmediata (médico general)

Sin scheduledAt ni medicalSpecialtyCode:
{
  "provider": {
    "name": "Dr. Ana Martínez",
    "documentType": "CC",
    "documentNumber": "9876543210",
    "professionalType": "MedicoGeneral",
    "phone": "+573009876543",
    "email": "[email protected]"
  },
  "patient": {
    "documentType": "CC",
    "documentNumber": "1234567890",
    "name": "María García López",
    "phone": "+573009876543",
    "email": "[email protected]"
  },
  "consultationType": "ConsultaUrgencias",
  "durationMinutes": 20
}

Respuesta exitosa (200)

{
  "success": true,
  "data": {
    "consultationId": "550e8400-e29b-41d4-a716-446655440001",
    "accessPin": "123456",
    "participantAccess": {
      "patientUrl": "https://meet.kairoconnect.com/join/abc123def456?type=patient",
      "providerUrl": "https://meet.kairoconnect.com/join/abc123def456?type=provider"
    },
    "expiredAt": "2024-12-15 15:00",
    "provider": { "name": "Dr. Ana Martínez", "professionalType": "Médico General" },
    "patient": {
      "documentType": "CC",
      "documentNumber": "1234567890",
      "name": "María García López"
    },
    "scheduledAt": "2024-12-15 14:30",
    "durationMinutes": 30,
    "status": "Pending",
    "createdAt": "2024-12-15 10:30"
  },
  "metadata": {
    "requestId": "a1b2c3d4e5",
    "timestamp": "2024-12-15T10:30:00Z",
    "version": "v1"
  }
}
Para Médico Especialista, data.provider incluirá además specialtyId, specialtyCode y specialtyName. Para Médico General no se envían esos campos.

Errores típicos

  • 400 – Validación: formato, duración no permitida, especialidad requerida/no permitida.
  • 409 – Conflicto de agenda: provider o patient no disponible a esa hora.

Ver también