Referencia de la API

BestDoctorsRD API

Una sola API para el historial, las citas, las órdenes clínicas y la facturación del ecosistema Best Doctors RD. 956 operaciones en 98 recursos, descritas con OpenAPI 3.1.0.

956Operaciones
98Recursos
v0.1.0Versión
3.1.0OpenAPI

Primera llamada

Todas las rutas cuelgan de https://api.bestdoctorsrd.com y hablan JSON. Este es el aspecto de una petición:

curl
curl -X GET "https://api.bestdoctorsrd.com/v1/partner/me" \
  -H "X-Partner-Key: {tu_clave}"

Esa clave es la vía histórica y sigue funcionando. La preferente es OAuth 2.0: se cambia el par client_id + client_secret por un token con vencimiento, y se presenta como Authorization: Bearer en las mismas rutas. Un token puede pedir menos ámbitos de los concedidos, y revocar el cliente lo invalida al instante.

curl
curl -X POST "https://api.bestdoctorsrd.com/v1/oauth/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id={tu_client_id}&client_secret={tu_secreto}"

curl -X GET "https://api.bestdoctorsrd.com/v1/partner/me" \
  -H "Authorization: Bearer {el_access_token}"

Las dos credenciales no se mandan juntas: una petición con clave y token a la vez se rechaza, porque no hay forma correcta de elegir con cuál de las dos autorizarla.

Autenticación

PartnerApiKey

Clave de API del socio, ligada a una sola institución. Obligatoria en las APIs de socios y en las internas de institución.

PartnerBearer

Token OAuth 2.0 emitido por /v1/oauth/token. Alternativa a la clave de socio.

Descubrimiento y rotación de claves

No hace falta copiar ninguna dirección a mano. El servidor publica un documento de descubrimiento estándar (RFC 8414) con el emisor, la dirección del endpoint de token, la del JWKS, los ámbitos que existen y las concesiones admitidas. A un cliente OAuth genérico se le da esta URL —o el emisor https://api.bestdoctorsrd.com/v1/oauth, al que él mismo le pegará el sufijo— y se configura solo:

curl
curl -X GET "https://api.bestdoctorsrd.com/v1/oauth/.well-known/openid-configuration"

# El mismo documento, en la ruta que construyen las bibliotecas del RFC 8414:
curl -X GET "https://api.bestdoctorsrd.com/.well-known/oauth-authorization-server/v1/oauth"

Lo que ese documento no declara también informa: no hay authorization_endpoint ni flujos con navegador. La única concesión es client_credentials, porque en una integración entre sistemas no hay un usuario delante iniciando sesión.

La firma se verifica contra las claves de jwks_uri. Ese documento se puede cachear —cinco minutos— y normalmente trae una sola clave, pero durante una rotación trae dos: la saliente y la entrante. La entrante se publica antes de que se firme nada con ella, así que un cliente que refresque el JWKS dentro de ese margen nunca ve un token de una clave que no conoce, y un token firmado con la saliente sigue validando hasta que vence. Por eso hay una sola regla que cumplir del lado del integrador:

Elige la clave por su kid

Toma el kid de la cabecera del token y busca esa clave en el JWKS. Coger la primera de la lista funciona hasta la primera rotación y falla justo entonces.

Refresca el JWKS ante un kid desconocido

Si el kid del token no está en tu copia, vuelve a pedir el documento antes de rechazarlo. Es lo que convierte una rotación en algo que no notas.

Recursos más extensos

Todos los recursos

Consultorios médicos83Médicos37Admisiones32FHIR31Identidad31nutrition29Recetas26Órdenes derivadas22Emergencias20Facturación19Enfermería19Pacientes18Autenticación16employees16Inventario15Altas13HL713Planes de la institución13Usuarios y sucursales13Redes de centros12Hospitalización12Seguros12Quirófano12Caja11Marcaje de asistencia11Recepción de órdenes11Suscripciones11Citas10Catálogo de diagnósticos10Historia clínica10Notificaciones10Verificación · API10Banco de sangre9Clasificaciones de centros9Catálogo clínico9Directorio9Alta de médicos9Eventos9Catálogo financiero9Catálogo operativo9Acceso a datos sensibles9Recepción de tratamientos9Verificación · Administración9Control de acceso8Verificación de médicos8Verificación de instituciones8Verificación de consultorios8Verificación de pacientes8Verificación · Casos8Documentos clínicos7coverage-requirements7Proveedores internos7Informes7Verificación · Notificaciones7IA · Gobernanza6Imagenología6Verificación de representantes6Contabilidad5Episodios asistenciales5Instituciones5Laboratorio5OAuth · Clientes socios5Referimientos5roster-periods5Sistema5Institución (autogestión)5Verificación · Documentos5Verificación · Migraciones5Verificación · Permisos5Verificación · Informes5Analítica4Acceso de emergencia4Encuentros clínicos4Órdenes médicas (CPOE)4Acceso de socios4Procedimientos4Perfil completo4units4Verificación · Activación4Verificación · Vencimientos4Webhooks4work-shifts4IA · Documentos clínicos3Bitácora de auditoría3Tipos de centro3OAuth · Tokens de integrador3Tarifas3Mensajería segura3Verificación · Auditoría3food-allergens2CIE-102LOINC2Visitas del paciente2Resultados2Inteligencia directiva1Inteligencia operativa1staff-types1Planes de tratamiento1