Saltar al contenido
Odontosys para programadores Ayuda para la clínica

Errores

Todo error tiene la misma forma:

{
  "error": {
    "codigo": "horario_ocupado",
    "mensaje": "Ese horario ya está ocupado (de 08:30 a 09:00).",
    "detalle": { "ocupadoDesde": "08:30", "ocupadoHasta": "09:00" },
    "idSolicitud": "9f2c4a7e1b3d5c60"
  }
}

Todos los códigos

HTTP codigo Qué pasó Qué hacer
400 solicitud_invalida La forma del pedido: un campo que falta, que sobra o con formato equivocado Corregir el pedido; detalle.campo dice cuál
400 json_invalido El cuerpo no es JSON válido Corregir el pedido
401 no_autenticado Clave ausente, mal copiada, desconocida, revocada o vencida. Siempre el mismo código, para no delatar cuál Revisar la cabecera Authorization: Bearer osk_…; si la clave anduvo antes, la clínica la revocó
403 api_deshabilitada La clínica no tiene la API activa La clínica la pide a Odontosys
403 permiso_insuficiente A la clave le falta el permiso de esa operación La clínica crea una clave con ese permiso; detalle.permisosRequeridos dice cuál
403 cita_no_creada_por_api Se intentó eliminar una cita que cargó la clínica Sólo se eliminan las citas que creó la API
404 no_encontrado No existe, es de otra clínica, o es de una agenda que la clave no ve o está inactiva
409 horario_ocupado Otra cita ocupa ese horario Volver a pedir la disponibilidad y ofrecer otro
409 referencia_ya_usada La referenciaExterna ya se usó para una cita que ya no existe Mandar otra referencia
409 cita_no_eliminable La cita ya pasó, o la clínica ya marcó la asistencia o la llegada No se puede eliminar por la API
410 cita_eliminada La cita existió y se eliminó
410 cita_reprogramada La clínica movió la cita: existe con otro id Ver Si la clínica la mueve
413 cuerpo_demasiado_grande El cuerpo pasa de 64 KB
422 paciente_invalido El paciente no existe en la clínica o está inactivo Agendar como alguien sin ficha
422 fecha_fuera_de_rango Fecha anterior a hoy o posterior a hoy + 365 días
422 duracion_invalida Duración fuera de 5 a 480 minutos, o la cita termina después de las 23:59
422 agenda_no_trabaja La agenda no atiende ese día Ofrecer otro día
422 fuera_de_horario La cita no entra entera en la jornada o pisa el descanso Ofrecer otro horario
429 limite_por_minuto Demasiados pedidos seguidos con esta clave Esperar Retry-After segundos
429 demasiadas_solicitudes_en_curso Demasiados pedidos a la vez con esta clave Esperar a que terminen los anteriores
429 cupo_diario_agotado La clínica usó el cupo del día Reintentar al día siguiente (hora de la clínica)
500 error_interno Algo falló de nuestro lado Reintentar más tarde; si se repite, avisar a soporte con el idSolicitud
503 no_disponible La API está pausada, saturada, o la base no respondió a tiempo Esperar Retry-After segundos y reintentar

Existe además agenda_no_permitida en el catálogo, pero hoy nunca se devuelve: una agenda fuera de la lista de la clave responde 404.

Qué reintentar

Respuesta ¿Reintentar?
429, 503 Sí, después de Retry-After
500 Sí, pocas veces y espaciado
Un corte de red o un timeout en un POST Sí, con la misma referenciaExterna (no duplica)
400, 401, 403, 404, 409, 410, 413, 422 No: el mismo pedido va a dar lo mismo

Detalle en Límites y reintentos.