Logo Medcloud Horizontal

Medcloud RIS

API Documentation

API RIS

Endpoints for complete management of clinical flow: authentication, patient registration, rooms, partners, units, physicians, procedures and appointments. All requests use Bearer Token JWT obtained via /authenticate.
Base URL: api.ris.medcloud.co
POST
/authenticate
Authenticate User

Validates the credentials and returns a Bearer JWT token required for all subsequent calls. The token must be sent in the Authorization header as: Bearer <token>.‍

Body Parameters
Response Codes (200)
Response Codes (Error/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
Create Patient

Path ParametersRegisters a new patient at the clinic. personalIdentification and email must be unique — duplicates return an error. Note: If a patient already exists with the same personalIdentification or email, the API returns DUPLICATED_PATIENT.‍‍‍

Header Parameters
Body Parameters
Response Codes (Error/Status)
cURL / JSON
{ "patient": { "name": "Michael Robert", "personalIdentification": "132333957839", "email": "nomail@gmail.com", "birthDate": "1990-05-15", "gender": "MALE", "cellPhone": "111 9844422" }
}
Response · 200
Response · Error
GET
/patient/{id}
Search for a Patient

Returns a patient's complete data based on their unique identifier.‍

Header Parameters
Response Codes (200)
Response Codes (Error/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}
Update Patient

Updates a patient's data. All fields are optional, but at least one must be submitted. Same uniqueness rules as for the POST request.‍

Header Parameters
Response Codes (Error/Status)
cURL / JSON
{ "patient": { "cellPhone": "111 99999999", "socialName": "Michael" }
}
Response · 200
// 204 No Content — sem corpo
Response · Error
POST
/room
Create a Room

Registers a procedure room. The operating period must include full slots of the specified duration. If startTime does not fit within the slot, it returns ROOM_START_TIME_DOES_NOT_FIT_INTO_PROCEDURE_DURATION_SPOT.

Header Parameters
Body Parameters
Response Codes (Error/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}
Search for a Room

Returns the data for a room by its ID.‍

cURL / JSON
curl https://replace.com/room/7 \ -H "Authorization: Bearer "
Response · 200
{ "sala": { "nombre": "Sala 1", "número": 15, "horaInicio": "08:00", "horaFin": "18:00", "duraciónDelProcedimiento": 30, "estado": "DISPONIBLE" }
}
Response · Error
PUT
/room/{id}
Upate Room
Header Parameters
Body Parameters
Response Codes (Error/Status)
cURL / JSON
{ "room": { "status": "MAINTENANCE" }
}
Response · 200
// 204 No Content
Response · Error
POST
/partner
Create Partner

Register a partner (insurance, insurance or partner clinic) with their payment rules.

Header Parameters
Response Codes (200)
Response Codes (Error/Status)
cURL / JSON
201: Partner created. Returns { partnerId }. 400 (VALIDATION_ERROR): Invalid schema. 401 (UNAUTHORIZED): Invalid token. 500 (INTERNAL_SERVER_ERROR): Internal error.
Response · 200
// 204 No Content
Response · Error
GET
/partner/{id}
Find a Partner

Returns data from a partner by ID.

Header Parameters
Response Codes (200)
Response Codes (Error/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
Upgrade Partner
  • Atualiza dados de um parceiro. Todos os campos são opcionais.
  • Header Parameters
    Body Parameters
    Response Codes (Error/Status)
    cURL / JSON
    { "partner": { "status": "UNAVAILABLE" }
    }
    Response · 200
    // 204 No Content
    Response · Error
    POST
    /unit
    Create unity

    Register a clinical unit with its identification and address data.

    Header Parameters
    Body Parameters
    Response Codes (Error/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}
    Seek Unity
  • Returns data from a unit by ID.
  • Header Parameters
    Response Codes (200)
    Response Codes (Error/Status)
    cURL / JSON
    curl https://replace.com/unit/3 \ -H "Authorization: Bearer "
    Response · 200
    Response · Error
    PUT
    /unit/{id}
    Update Unity

    Updates data from one unit. All fields are optional.

    Header Parameters
    Body Parameters
    Response Codes (Error/Status)
    cURL / JSON
    { "unit": { "cnes": "1234567890" }
    }
    Response · 200
    // 204 No Content
    Response · Error
    POST
    /doctor
    Create Doctor
  • Registra um médico no sistema. Email e CRM devem ser únicos. CRM ou e-mail duplicado retorna INVALID_CRM ou INVALID_EMAIL.
  • cURL / JSON
    201: Médico criado. Retorna { doctorId }. 400 (VALIDATION_ERROR): Schema inválido. 401 (UNAUTHORIZED): Token inválido. 500 (INTERNAL_SERVER_ERROR): CRM ou e-mail duplicado.
    Response · 200
    { "doctorId": 55 }
    Response · Error
    /doctor/{id}
    Update Doctor
  • Atualiza dados de um médico. CRM ou e-mail duplicado retorna INVALID_CRM ou INVALID_EMAIL.
  • Header Parameters
    Body Parameters
    Response Codes (Error/Status)
    cURL / JSON
    { "doctor": { "status": "UNAVAILABLE" }
    }
    Response · 200
    // 204 No Content
    Response · Error
    POST
    /medical-procedure
    Create Medical Procedure
  • Registra um procedimento e opcionalmente vincula parceiros autorizados para realizá-lo.
  • Header Parameters
    Body Parameters
    Response Codes (Error/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}
    Seek Medical Procedure
  • Returns data from a procedure and its linked partners.
  • Header Parameters
    Response Codes (200)
    Response Codes (Error/Status)
    cURL / JSON
    Response · 200
    { "medicalProcedure": { "price": 255.55, "name": "Lasik Surgery", "modality": "CT" }, "linkedPartnerIds": [12, 15]
    }
    Response · Error
    PUT
    /medical-procedure/{id}
    Update Medical Procedure

    Updates data from a procedure and/or its linked partners.

    Header Parameters
    Body Parameters
    Response Codes (Error/Status)
    cURL / JSON
     Novo Site @ Medcloud Share
    Atualizar Procedimento Médico
    atualizar-procedimento-medico
    www.medcloud.link/endpoints/
    atualizar-procedimento-medico
    /medical-procedure/{id}
    Atualiza dados de um procedimento e/ou seus parceiros vinculados.
    ‍ id (integer, path, required): ID do procedimento.
    ‍ 204: Procedimento atualizado.
    401 (UNAUTHORIZED): Token inválido.
    404 (NOT_FOUND): Procedimento não encontrado.
    ‍ { "medicalProcedure": { "price": 299.90 }, "linkedPartnerIds": [12]
    }
    // 204 No Content
    | Parâmetro de Header | Tipo | Descrição |
    | :--- | :--- | :--- |
    | Authorization | string (required) | Bearer Token JWT. Formato: `Bearer `. |
    | Parâmetro de Path | Tipo | Descrição |
    | :--- | :--- | :--- |
    | id | integer (required) | ID único do procedimento a atualizar. |
    | Parâmetro de Body | Tipo | Descrição |
    | :--- | :--- | :--- |
    | medicalProcedure.price | number (optional) | Valor do procedimento. |
    | medicalProcedure.name | string (optional) | Nome do procedimento. |
    | medicalProcedure.modality | string (optional) | Modalidade de exame. |
    | medicalProcedure.instructions | string (optional) | Instruções ao paciente. |
    | linkedPartnerIds | integer[] (optional) | Array de IDs de parceiros vinculados. |
    | Códigos de Resposta (Erro/Status) | Tipo | Descrição |
    | :--- | :--- | :--- |
    | 204 | No Content | Procedimento atualizado. |
    | 401 | `UNAUTHORIZED` | Token inválido. |
    | 404 | `NOT_FOUND` | Procedimento não encontrado. |
    AtualizarProcedimentoMedico 6a3beee091d88e82a365ee9b
    Response · 200
    Response · Error
    POST
    /schedule
    Create Schedule

    Schedule a medical procedure for a patient in a room. Accept payment information from the patient and partner’s co-participation. If the partner has paymentType "PARTIAL" or "TOTAL" and the body includes patientPayment, then coparticipationPayment is required.

    Header Parameters
    Body Parameters
    Response Codes (Error/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}
    Search Scheduling

    Returns complete data for an agreement, including status and payment status.Amounts accepted at schedule.status:CANCELED · COMPLETED · CONFIRMED · ONLINE_CANCELED · ONLINE_CONFIRMED · ONLINE_SCHEDULED · IN_PROGRESS · NOT_CONFIRMED · WAITING_FOR_BILLING · WAITING_FOR_CHECKOUT · WITHDRAW_ · DELETED.

    Header Parameters
    Path Parameters
    Response Codes (200)
    Response Codes (Error/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}
    Update Scheduling

    Updates data from a schedule. Appointments with confirmed payment (paymentStatus: PAID) cannot be changed. Same co-participation rule as POST applies.

    Header Parameters
    Body Parameters
    Response Codes (Error/Status)
    cURL / JSON
    Response · 200
    Response · Error
    GET
    /doctor/{id}
    Search Doctor

    Returns data from a doctor by ID.

    Header Parameters
    Response Codes (200)
    Response Codes (Error/Status)
    cURL / JSON
    Response · 200
    Response · Error