Logo Medcloud Horizontal

Medcloud RIS

API Documentation

InteroperabilidadeSelecionar Integração

API RIS

Endpoints para gerenciamento completo do fluxo clínico: autenticação, cadastro de pacientes, salas, parceiros, unidades, médicos, procedimentos e agendamentos. Todas as requisições utilizam Bearer Token JWT obtido via /authenticate.
Base URL: api.ris.medcloud.co
POST
/authenticate
Autenticar Usuário
  • Valida as credenciais e retorna um JWT Bearer Token necessário em todas as demais chamadas. O token deve ser enviado no header Authorization: Bearer <token>.
  • Parâmetros de Body
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    curl -X POST https://replace.com/authenticate \ -H "Content-Type: application/json" \ -d '{ "username": "john.doe", "password": "securePassword123", "clinicIdToAccess": 42 }'
    Response · 200
    { "token": "eyJhbGciOiJIUzI1NiIsInR5..."
    }
    Response · Error
    { "token": "eyJhbGciOiJIUzI1NiIsInR5..."
    }
    POST
    /patient
    Criar Paciente

    Registra um novo paciente na clínica. personalIdentification e email devem ser únicos — duplicatas retornam erro. Nota: Se já existir paciente com o mesmo personalIdentification ou email, a API retorna DUPLICATED_PATIENT.

    Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "patient": { "name": "Michael Robert", "personalIdentification": "132333957839", "email": "nomail@gmail.com", "birthDate": "1990-05-15", "gender": "MALE", "cellPhone": "111 9844422" }
    }
    Response · 200
    { "patientId": 101 }
    Response · Error
    { "errorMessage": "VALIDATION_ERROR", "errorType": "VALIDATION_ERROR", "validationsErrors": [ { "message": "DUPLICATED_PATIENT", "path": "patient.email" } ]
    }
    GET
    /patient/{id}
    Buscar Paciente
  • Retorna os dados completos de um paciente pelo seu identificador único.
  • Parâmetros de Header
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    curl https://replace.com/patient/101 \ -H "Authorization: Bearer "
    Response · 200
    curl https://replace.com/patient/101 \ -H "Authorization: Bearer "
    Response · Error
    PUT
    /patient/{id}
    Atualizar Paciente
  • Atualiza dados de um paciente. Todos os campos são opcionais, mas ao menos um deve ser enviado. Mesmas regras de unicidade do POST.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "patient": { "cellPhone": "111 99999999", "socialName": "Michael" }
    }
    Response · 200
    // 204 No Content — sem corpo
    Response · Error
    POST
    /room
    Criar Sala
  • Registra uma sala de procedimentos. O período de funcionamento deve comportar slots completos da duração definida. Se startTime não couber no slot, retorna ROOM_START_TIME_DOES_NOT_FIT_INTO_PROCEDURE_DURATION_SPOT.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "room": { "name": "Room 1", "number": 15, "startTime": "08:00", "endTime": "18:00", "procedureDuration": 30, "modality": "CT", "status": "AVAILABLE" }
    }
    Response · 200
    { "roomId": 7 }
    Response · Error
    { "errorMessage": "VALIDATION_ERROR", "errorType": "VALIDATION_ERROR", "validationsErrors": [{ "message": "startTime does not fit slot", "path": "room.startTime" }]
    }
    GET
    /room/{id}
    Buscar Sala
  • Retorna os dados de uma sala pelo seu ID.
  • Parâmetros de Header
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    curl https://replace.com/room/7 \ -H "Authorization: Bearer "
    Response · 200
    { "room": { "name": "Room 1", "number": 15, "startTime": "08:00", "endTime": "18:00", "procedureDuration": 30, "status": "AVAILABLE" }
    }
    Response · Error
    PUT
    /room/{id}
    Atualizar Sala

    Atualiza dados de uma sala. Todos os campos são opcionais, mas ao menos um deve ser enviado. Mesma validação de slot do POST.

    Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "room": { "status": "MAINTENANCE" }
    }
    Response · 200
    // 204 No Content
    Response · Error
    POST
    /partner
    Criar Parceiro

    Registra um parceiro (convênio, seguradora ou clínica parceira) com suas regras de pagamento.

    Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    201: Parceiro criado. Retorna { partnerId }. 400 (VALIDATION_ERROR): Schema inválido. 401 (UNAUTHORIZED): Token inválido. 500 (INTERNAL_SERVER_ERROR): Erro interno.
    Response · 200
    { "partnerId": 12 }
    Response · Error
    GET
    /partner/{id}
    Buscar Parceiro
  • Retorna dados de um parceiro pelo ID.
  • Parâmetros de Header
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    curl https://replace.com/partner/12 \ -H "Authorization: Bearer "
    Response · 200
    { "partner": { "name": "Robert Clinic", "paymentType": "COPARTICIPATION", "status": "AVAILABLE" }
    }
    Response · Error
    PUT
    /partner/{id
    Atualizar Parceiro
  • Atualiza dados de um parceiro. Todos os campos são opcionais.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "partner": { "status": "UNAVAILABLE" }
    }
    Response · 200
    // 204 No Content
    Response · Error
    POST
    /unit
    Criar Unidade
  • Registra uma unidade clínica com seus dados de identificação e endereço.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "unit": { "name": "Downtown Unit", "identificationDocument": "103958503", "corporateName": "Downtown Unit LTDA", "address": { "zipCode": "97297", "street": "Main Street", "number": "201", "city": "Los Angeles", "state": "California", "country": "Brazil", "district": "Hollywood" } }
    }
    Response · 200
    { "unitId": 3 }
    Response · Error
    GET
    /unit/{id}
    Buscar Unidade
  • Retorna dados de uma unidade pelo ID.
  • Parâmetros de Header
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    curl https://replace.com/unit/3 \ -H "Authorization: Bearer "
    Response · 200
    Response · Error
    PUT
    /unit/{id}
    Atualizar Unidade
  • Atualiza dados de uma unidade. Todos os campos são opcionais.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "unit": { "cnes": "1234567890" }
    }
    Response · 200
    // 204 No Content
    Response · Error
    GET
    /doctor/{id}
    Buscar Médico
  • Retorna dados de um médico pelo ID.
  • Parâmetros de Header
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    curl https://replace.com/doctor/55 \ -H "Authorization: Bearer "
    Response · 200
    Response · Error
    PUT
    /doctor/{id}
    Atualizar Médico
  • Atualiza dados de um médico. CRM ou e-mail duplicado retorna INVALID_CRM ou INVALID_EMAIL.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "doctor": { "status": "UNAVAILABLE" }
    }
    Response · 200
    // 204 No Content
    Response · Error
    POST
    /medical-procedure
    Criar Procedimento Médico
  • Registra um procedimento e opcionalmente vincula parceiros autorizados para realizá-lo.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "medicalProcedure": { "price": 255.55, "name": "Lasik Surgery", "modality": "CT", "instructions": "Evitar lentes de contato 5 dias antes" }, "linkedPartnerIds": [12, 15]
    }
    Response · 200
    { "medicalProcedureId": 3 }
    Response · Error
    GET
    /medical-procedure/{id}
    Buscar Procedimento Médico
  • Retorna dados de um procedimento e seus parceiros vinculados.
  • Parâmetros de Header
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    Response · 200
    { "medicalProcedure": { "price": 255.55, "name": "Lasik Surgery", "modality": "CT" }, "linkedPartnerIds": [12, 15]
    }
    Response · Error
    PUT
    /medical-procedure/{id}
    Atualizar Procedimento Médico
  • Atualiza dados de um procedimento e/ou seus parceiros vinculados.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "medicalProcedure": { "price": 299.90 }, "linkedPartnerIds": [12]
    }
    Response · 200
    // 204 No Content
    Response · Error
    POST
    /schedule
    Criar Agendamento
  • Agenda um procedimento médico para um paciente em uma sala. Aceita informações de pagamento do paciente e coparticipação do parceiro. Se o parceiro tiver paymentType "PARTIAL" ou "TOTAL" e o body incluir patientPayment, então coparticipationPayment é obrigatório.
  • Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "schedule": { "date": "2026-07-10", "startTime": "09:00", "medicalProcedureId": 3, "patientId": 101, "roomId": 7, "partnerId": 12 }, "patientPayment": { "status": "PAID", "value": 255.55, "method": "PIX" }
    }
    Response · 200
    { "scheduleId": 528 }
    Response · Error
    { "errorMessage": "VALIDATION_ERROR", "errorType": "VALIDATION_ERROR", "validationsErrors": [{ "message": "coparticipationPayment required", "path": "coparticipationPayment" }]
    }
    GET
    /schedule/{id}
    Buscar Agendamento

    Retorna dados completos de um agendamento, incluindo status e status de pagamento.Valores aceitos em schedule.status:CANCELED · CONCLUDED · CONFIRMED · ONLINE_CANCELED · ONLINE_CONFIRMED · ONLINE_SCHEDULED · IN_PROGRESS · NOT_CONFIRMED · WAITING_FOR_BILLING · WAITING_FOR_CHECKOUT · GIVE_UP · DELETED.

    Parâmetros de Header
    Códigos de Resposta (200)
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    Response · 200
    { "schedule": { "date": "2026-07-10", "startTime": "09:00", "medicalProcedureId": 3, "patientId": 101, "status": "CONFIRMED", "paymentStatus": "PAID" }
    }
    Response · Error
    PUT
    /schedule/{id}
    Atualizar Agendamento

    Atualiza dados de um agendamento. Agendamentos com pagamento confirmado (paymentStatus: PAID) não podem ser alterados. Mesma regra de coparticipação do POST se aplica.

    Parâmetros de Header
    Parâmetros de Body
    Códigos de Resposta (Erro/Status)
    cURL / JSON
    { "schedule": { "date": "2026-07-15", "startTime": "10:00" }
    }
    Response · 200
    // 204 No Content
    Response · Error