/api/appointmentsCriar Agendamento
Cria um agendamento com os dados fornecidos
Access Token
Para realizar requisições GET, POST, PUT, DELETE e PATCH nos endpoints da API você precisa de uma chave de autorização. Chamamos essa chave de accessToken.
Para ter acesso ao accessToken, é necessário que o usuário master da licença efetue a liberação deste pela interface do ImageMais Clinic. O accessToken tem validade de 1 hora.
Headers
| Nome | Tipo | Obrig. | Descrição |
|---|---|---|---|
Authorization | string | Sim | Token de autenticação no formato Bearer {accessToken} |
AuthorizationOBRIGATÓRIOParâmetros
| Nome | Tipo | Obrig. | Descrição |
|---|---|---|---|
patient | object | Sim | Objeto contendo os dados do paciente |
Este parâmetro representa um objeto contendo os dados do paciente que será agendado. O objeto deve conter as seguintes propriedades: Propriedades do objeto patient:
| |||
procedures | array | Sim | Array de objetos contendo os IDs dos procedimentos na qual o medido realiza |
doctorId | number | Sim | ID do médico |
Este parâmetro representa o identificador único do médico. O ID do médico deve ser um número inteiro que identifica um médico específico no sistema. Observação: Para encontrar o ID do médico, para acessar a página de listar médicos. | |||
date | string | Sim | Data do agendamento (formato: YYYY-MM-DD) |
startTime | string | Sim | Horário de início (formato: HH:mm) |
endTime | string | Sim | Horário de término (formato: HH:mm) |
discountId | number | Não | ID do desconto a ser aplicado ao agendamento |
Este parâmetro representa o identificador único do desconto que será aplicado ao agendamento. O ID do desconto deve ser um número inteiro que identifica um desconto específico no sistema. Observação: Para encontrar o ID do desconto, para acessar a página de listar finanças. | |||
notes | string | Não | Observações sobre o agendamento |
patientOBRIGATÓRIOEste parâmetro representa um objeto contendo os dados do paciente que será agendado. O objeto deve conter as seguintes propriedades:
Propriedades do objeto patient:
name(string, obrigatório): Nome do pacientephone(string, obrigatório): Telefone do paciente (formato: (81) 99999-9999)dateBirth(string, obrigatório): Data de nascimento do paciente (formato: YYYY-MM-DD)cpf(string, obrigatório): CPF do paciente (formato: 123.456.789-00)
proceduresOBRIGATÓRIOdoctorIdOBRIGATÓRIOEste parâmetro representa o identificador único do médico. O ID do médico deve ser um número inteiro que identifica um médico específico no sistema.
Observação: Para encontrar o ID do médico, para acessar a página de listar médicos.
dateOBRIGATÓRIOstartTimeOBRIGATÓRIOendTimeOBRIGATÓRIOdiscountIdOPCIONALEste parâmetro representa o identificador único do desconto que será aplicado ao agendamento. O ID do desconto deve ser um número inteiro que identifica um desconto específico no sistema.
Observação: Para encontrar o ID do desconto, para acessar a página de listar finanças.
notesOPCIONALRequest URL
https://api-dev.imagemais.com/api/appointmentscurl -X 'POST' \
'https://api-dev.imagemais.com/api/appointments' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjMyLCJhY2NvdW50SWQiOjEsImlhdCI6MTc2NjQyMDQwOCwiZXhwIjoxNzY2NDI0MDA4LCJhdWQiOiJodHRwczovL2FwaS1kZXYuaW1hZ2VtYWlzLmNvbSIsImlzcyI6Imh0dHBzOi8vYXBwLWRldi5pbWFnZW1haXMuY29tIn0.IS0KJIy1dlucxMQJ3KPbLPLx9CilbdetewL6194ou_Q' \
-H 'Content-Type: application/json' \
-d '{
"patient": {
"name": "João Silva",
"phone": "(81) 99999-9999",
"dateBirth": "1990-01-01",
"cpf": "123.456.789-00"
},
"procedures": [
{
"id": 3200
},
{
"id": 3201,
"discountId": 2
}
],
"doctorId": 1,
"date": "2025-12-23",
"startTime": "09:00",
"endTime": "09:15",
"notes": "Observações sobre o agendamento"
}'{
"patient": {
"name": "João Silva",
...{
"patient": {
"name": "João Silva",
"phone": "(81) 99999-9999",
"dateBirth": "1990-01-01",
"cpf": "123.456.789-00"
},
"procedures": [
{
"id": 3200
},
{
"id": 3600,
"discountId": 7
}
],
"doctorId": 1,
"date": "2025-12-23",
"startTime": "09:00",
"endTime": "09:15",
"notes": "Observações sobre o agendamento"
}Respostas
[
{
"id": 58,
...[
{
"id": 58,
"date": "2025-12-25T00:00:00.000Z",
"startTime": "09:00",
"endTime": "09:05",
"notes": "Observações sobre o agendamento",
"accountId": 1,
"createdAt": "2025-12-22T16:35:33.920Z",
"updatedAt": "2025-12-22T16:35:33.920Z",
"deletedAt": null,
"doctor": {
"id": 1,
"name": "Dr Victor"
},
"patient": {
"dateBirth": "1990-01-01T00:00:00.000Z",
"id": 9253,
"name": "João Silva",
"cpf": null,
"contact": {
"phone": "(81) 99999-9999"
}
},
"status": {
"id": 1,
"name": "Agendado",
"color": "#ffc107"
},
"appointmentProcedures": {
"price": "252",
"discountsAppointmentProcedures": [
{
"discountId": 7,
"value": "50.4",
"discount": {
"id": 7,
"name": "Desconto de 20%",
"fixed": null,
"percentage": 20,
"expirationDate": null
}
}
],
"procedure": {
"id": 2,
"name": "17 BETA ESTRADIOL E2 - SEGUNDA AMOSTRA",
"price": "252"
}
}
}
]{
"message": [
"startTime should not be empty",
...{
"message": [
"startTime should not be empty",
"startTime must be a string",
"endTime should not be empty",
"endTime must be a string"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": [
"date should not be empty",
...{
"message": [
"date should not be empty",
"A data deve ser hoje ou uma data futura",
"A data deve ser uma data válida"
]
}{
"message": [
"patient.A data de nascimento é necessária",
...{
"message": [
"patient.A data de nascimento é necessária",
"patient.dateBirth must be a valid ISO 8601 date string",
"patient.O telefone é necessário",
"patient.phone must be a string",
"patient.O nome é necessário",
"patient.name must be a string"
]
}{
"message": [
"Procedimentos não encontrados",
...{
"message": [
"Procedimentos não encontrados",
"Pelo menos um procedimento deve ser informado",
"Os procedimentos são necessários"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "Horários 09:00 já estão ocupados por outros agendamentos",
"error": "Conflict",
...{
"message": "Horários 09:00 já estão ocupados por outros agendamentos",
"error": "Conflict",
"statusCode": 409
}{
"message": "Médico não encontrado",
"error": "Not Found",
...{
"message": "Médico não encontrado",
"error": "Not Found",
"statusCode": 404
}{
"statusCode": 401,
"message": "invalid token"
...{
"statusCode": 401,
"message": "invalid token"
}{
"statusCode": 401,
"message": "jwt expired"
...{
"statusCode": 401,
"message": "jwt expired"
}{
"statusCode": 500,
"message": "Internal server error"
...{
"statusCode": 500,
"message": "Internal server error"
}