Skip to main content

POST Criar Orçamento

Cria um novo orçamento. O paciente é criado (se não tiver id) ou atualizado (se tiver id), e o orçamento nasce com status PENDING. Após a criação, dispara automaticamente a notificação e a criação da proposta.

Autenticação necessária

Esta rota requer o header Authorization: Bearer {accessToken}


Endpoint

POST https://api-dev.imagemais.com.br/api/budgets

Corpo da Requisição

CampoTipoObrigatórioDescrição
patientobjectDados do paciente. Com id → atualiza; sem id → cria novo
patient.idnumberID do paciente existente (para atualizar)
patient.namestring✅*Nome completo (obrigatório ao criar paciente novo)
patient.dateBirthstringData de nascimento (YYYY-MM-DD, hoje ou anterior)
patient.genderobjectGênero. Ex.: { "name": "M" }
patient.cpfstringCPF do paciente (exatamente 11 dígitos)
patient.contactobjectDados de contato (telefone, e-mail)
patient.addressobjectDados de endereço
proceduresarrayLista de procedimentos do orçamento
procedures[].idnumberID do procedimento
procedures[].discountIdnumberID do desconto individual do procedimento
procedures[].discountValuenumberValor de desconto customizado para o procedimento
discountIdnumberID de um desconto geral aplicado a todo o orçamento
budgetRequestUuidstringUUID (v7) da requisição de orçamento de origem
Descontos

Se um discountId geral for informado, ele tem precedência e os descontos individuais por procedimento são ignorados. Descontos expirados retornam 400 Bad Request.


Requisição

curl -X 'POST' \
'https://api-dev.imagemais.com.br/api/budgets' \
-H 'accept: application/json' \
-H 'Authorization: Bearer {accessToken}' \
-H 'Content-Type: application/json' \
-d '{
"patient": {
"name": "João da Silva",
"dateBirth": "2000-01-01",
"cpf": "12345678900",
"gender": { "name": "M" },
"contact": { "phone": "81999999999" }
},
"procedures": [
{ "id": 1, "price": 252 }
]
}'

Respostas

201 Criado

{
"id": 25267,
"user": {
"id": 1,
"name": "Roberto Luis"
},
"budgetsProcedures": [
{
"price": "252"
}
],
"patient": {
"id": 17541,
"name": "João da Silva",
"contact": {
"phone": "81999999999"
}
},
"status": {
"name": "PENDING"
},
"createdAt": "2026-01-15T13:43:13.337Z",
"updatedAt": "2026-01-15T13:43:13.337Z",
"deletedAt": null
}

400 Desconto expirado

{
"message": "Desconto expirado",
"error": "Bad Request",
"statusCode": 400
}

500 Erro ao criar

{
"message": "Erro ao criar orçamento",
"error": "Internal Server Error",
"statusCode": 500
}