Reservar ou liberar slot no Tasy
🌐 URLs dos Ambientes
🔹 Homologação
https://integracao.hml.cloud.medsenior.com.br/api/v1/agendamentos/slots-livres/reservar
🔹 Produção
https://integracao.medsenior.com.br/api/v1/agendamentos/slots-livres/reservar
Utilize o mesmo corpo da requisição em ambos os ambientes, alterando apenas o host.
📌 Endpoint
POST /api/v1/agendamentos/slots-livres/reservar
🔐 Autenticação
Este endpoint requer um token válido da plataforma de integração.
Authorization: Bearer TOKEN_GERADO_NA_AUTENTICACAO
🔽 Cabeçalhos
| Nome | Valor |
|---|---|
| accept | application/json |
| content-type | application/json |
📥 Corpo da Requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| nrSeqAgenda | long | Sim | Sequencial do slot retornado por MS_BUSCAR_SLOTS_LIVRES (campo NR_SEQ_AGENDA). |
| nrSeqProcInterno | long | Sim | Código interno do procedimento no Tasy. |
| ieLado | string | Condicional | Lateralidade do exame: E (esquerdo), D (direito) ou A (ambos). Obrigatório apenas quando o exame exigir lado. |
| nrMinDuracao | int | Sim | Duração do exame em minutos. Ao informar um valor diferente do padrão, o Tasy reorganiza os slots conforme a duração. |
| ieOpcao | string | Sim | Ação desejada: R para reservar o slot ou CR para cancelar/liberar. |
| tokenReservaCanc | string | Condicional | Token da reserva a ser liberada. Obrigatório quando ieOpcao = "CR". Máximo 32 caracteres. |
| cdPessoaFisica | long | Sim | Identificador interno do beneficiário no Tasy. |
| cdConvenio | long | Sim | Código do convênio no Tasy. |
| cdCategoria | long | Sim | Código da categoria do plano no Tasy. |
| cdPlano | long | Sim | Código do plano no Tasy. |
| cdUsuarioConvenio | string | Sim | Código da carteirinha do beneficiário. |
| nmUsuario | string | Sim | Identificação do serviço integrador (até 30 caracteres, sem espaços nas extremidades). |
Para cancelamento/liberação (
ieOpcao = "CR"), use otokenReservaCancretornado na reserva (TOKEN_RESERVA_P).
🔄 Exemplos de Requisição
🔹 Reserva de slot (ieOpcao = "R")
curl -X 'POST' \
'https://integracao.hml.cloud.medsenior.com.br/api/v1/agendamentos/exames/slots-livres/reservas' \
-H 'accept: application/json' \
-H 'authorization: Bearer TOKEN_GERADO_NA_AUTENTICACAO' \
-H 'content-type: application/json' \
-d '{
"nrSeqAgenda": 982345,
"nrSeqProcInterno": 123456,
"ieLado": "A",
"nrMinDuracao": 30,
"ieOpcao": "R",
"cdPessoaFisica": 78910,
"cdConvenio": 20,
"cdCategoria": 5,
"cdPlano": 1010,
"cdUsuarioConvenio": "1234567890",
"nmUsuario": "portal.agendamento"
}'
🔹 Cancelamento/liberação (ieOpcao = "CR")
curl -X 'POST' \
'https://integracao.medsenior.com.br/api/v1/agendamentos/exames/slots-livres/reservas' \
-H 'accept: application/json' \
-H 'authorization: Bearer TOKEN_GERADO_NA_AUTENTICACAO' \
-H 'content-type: application/json' \
-d '{
"nrSeqAgenda": 982345,
"nrSeqProcInterno": 123456,
"ieLado": "A",
"nrMinDuracao": 30,
"ieOpcao": "CR",
"tokenReservaCanc": "c0a8011b7f2c4c0c8f34a58b4d7aa9ff",
"cdPessoaFisica": 78910,
"cdConvenio": 20,
"cdCategoria": 5,
"cdPlano": 1010,
"cdUsuarioConvenio": "1234567890",
"nmUsuario": "portal.agendamento"
}'
✅ Respostas de Sucesso
- Status Codes:
200 OK(reserva ou liberação),409 Conflict(slot indisponível ou falha de liberação),404 Not Found(slot não encontrado)
Reserva confirmada (ieOpcao = "R", CODIGO_P = "0")
{
"IE_RESERVADO_P": "S",
"TOKEN_RESERVA_P": "c0a8011b7f2c4c0c8f34a58b4d7aa9ff",
"CODIGO_P": "0",
"MENSAGEM_P": "Slot reservado"
}
Liberação/cancelamento (ieOpcao = "CR", CODIGO_P = "1")
{
"IE_RESERVADO_P": "N",
"TOKEN_RESERVA_P": "",
"CODIGO_P": "1",
"MENSAGEM_P": "Slot liberado"
}
ℹ️ Observações de negócio
- O token retornado em
TOKEN_RESERVA_Pdeve ser enviado para marcar o exame (MS_MARCAR_EXAME). ieLadosó deve ser informado quando o exame exigir lateralidade; valores aceitos:E,DouA.ieOpcaoaceita apenasR(reservar) ouCR(cancelar/liberar). ParaCR, informetokenReservaCanc(máx. 32 caracteres).nrMinDuracaoreorganiza os slots no Tasy quando informado diferente do padrão do exame.
❌ Códigos de retorno do Tasy
| CODIGO_P | Descrição | HTTP |
|---|---|---|
| 0 | Slot reservado. | 200 OK |
| 1 | Reserva cancelada / slot liberado. | 200 OK |
| 2 | Horário não está mais disponível. | 409 Conflict |
| 3 | Slot não encontrado. | 404 Not Found |
| 4 | Não foi possível cancelar a reserva. | 409 Conflict |
| 5 | Exame já agendado para o beneficiário. | 409 Conflict |
| 9 | Erro interno (SQLERRM). | 500 Server Error |
❌ Códigos de Erro (HTTP)
| Status Code | Significado | Descrição |
|---|---|---|
| 400 | Bad Request | Falha na validação local (campos obrigatórios, formatos ou limites). |
| 401 | Unauthorized | Token inválido ou ausente. |
| 404 | Not Found | Slot não encontrado (CODIGO_P = 3). |
| 409 | Conflict | Slot indisponível ou liberação não concluída (CODIGO_P = 2, 4 ou 5). |
| 500 | Server Error | Erro inesperado ao executar a procedure (CODIGO_P = 9). |