Skip to content

Integraciones

Cómo llamar a las integraciones de Arbol con aseguradoras, registros públicos y sistemas clínicos, qué necesitas antes de la primera llamada y cómo leer los resultados.

Actualizado

Una integración le permite a tu organización trabajar con los datos de una aseguradora, un registro público o un sistema clínico a través de la API de Arbol: consultar derechos y afiliaciones, buscar pacientes, leer disponibilidad, agendar citas. Tú llamas a las operaciones de la integración; Arbol se encarga del lado del proveedor.

Cómo se llama una integración

Cada integración es un servicio de la API y se llama como cualquier otro: la misma URL base, la misma credencial y el mismo envoltorio de respuesta.

Ruta https://api.getarbol.com/v1/<service>/…, como /v1/sura/…
Referencia /api/<service>/, como la referencia de SURA
Permisos (scopes) Con el nombre del servicio, como sura:appointments:write. La referencia de cada operación lista los que acepta.
Credencial Las mismas de toda la API: consulta Autenticación. Al crear una API key con account.apiKeys.create, también puedes limitarla a algunas operaciones y conexiones de una integración.

Integraciones disponibles

Antes de la primera llamada

Tu organización necesita tener la integración activa:

  • Aseguradoras y sistemas clínicos, como SURA, Nueva EPS, gMedic o Visoft: necesitan una conexión, que el equipo de Arbol configura con tu organización y mantiene funcionando. Para agregar una, escríbele a tu equipo de Arbol.
  • Registros colombianos (ADRES, Sisbén y Policía Colombia): vienen incluidos con Arbol. El Propietario de la organización activa cada uno en Integraciones de Cuenta de Arbol (cómo hacerlo), o se activan con account.registryInstallations.update.

Conexiones

Tu organización llega a cada aseguradora o sistema clínico a través de una conexión. Las conexiones no tienen datos que debas enviar, y ninguna operación devuelve nada secreto sobre ellas.

Para ver las conexiones de tu organización, llama a account.connections.list. Cada una tiene:

Campo Significado
id El id de la conexión (con_…). Las operaciones de integración lo reciben como connectionId.
integration La integración a la que pertenece, como sura.
name El nombre con el que la eligen las personas y los agentes, como Sede Norte.
status active cuando se puede usar.
tools Las herramientas que ofrece a un agente de Raíz.

Cuando una conexión deja de estar active, escríbele a tu equipo de Arbol.

Elegir una conexión

La mayoría de las operaciones de integración reciben un connectionId opcional. Mientras tu organización tenga una sola conexión con una integración, puedes omitirlo; si tiene varias, envía la que quieres usar. Algunas operaciones lo exigen siempre: su referencia lo marca como obligatorio. Cuando ninguna conexión puede ejecutar la llamada, la operación responde con un error que dice que la integración no está configurada para tu organización.

Registros colombianos

ADRES, Sisbén y Policía Colombia son integraciones independientes, con una operación de consulta cada una:

Registro Qué devuelve Operación CLI
ADRES Las afiliaciones a EPS de una persona adres.affiliations.lookup arbol adres affiliations lookup
Sisbén El registro, el grupo y el subgrupo del Sisbén sisben.classifications.lookup arbol sisben classifications lookup
Policía Colombia La declaración judicial de un documento policia-colombia.judicialRecords.lookup arbol policiacolombia judicial-records lookup

ADRES devuelve solo afiliaciones a EPS: para el Sisbén, llama a su propia operación. El régimen de una EPS no dice nada sobre el grupo del Sisbén.

Hacer una consulta

Cada operación es un POST que recibe documentType y documentNumber en el cuerpo. Envía el número como texto, con sus ceros a la izquierda, y usa los tipos de documento que lista la referencia de la operación. Consulta solo el documento de una persona que autorizó la consulta:

curl https://api.getarbol.com/v1/adres/affiliations/lookup \
  --request POST \
  --header "Authorization: Bearer $ARBOL_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{ "documentType": "CC", "documentNumber": "<documentNumber>" }'

Con el SDK de TypeScript, es arbol.adres.affiliations.lookup({ documentType, documentNumber }); las otras dos son arbol.sisben.classifications.lookup() y arbol.policiaColombia.judicialRecords.lookup().

Las tres aceptan cualquiera de los scopes account:organizations:read, account:connections:read o account:connections:write. Una API key con restricciones debe permitir además la operación exacta, como adres.affiliations.lookup. Un scope no instala el registro ni salta las restricciones de la key. Para consultas puntuales, crea una API key con un vencimiento corto, que eliges al crearla en Cuenta de Arbol, y guárdala fuera del código, de las instrucciones de los agentes y de los logs.

Leer el resultado

Por defecto, data trae el resultado estructurado del registro:

Registro Campos de data
ADRES outcome, person.fullName, todas las affiliations con su EPS, estado, régimen y fechas, y consultedAt y verification.
Sisbén registered, group, subgroup, observedAt y verification.
Policía Colombia documentType, documentNumber, fullName, identityStatus, judicialStatus, details y observedAt.

Un resultado conocido anteriormente conserva la fecha en que se observó: en ADRES y Sisbén lo marca verification: "last_known". Un error o un resultado sin verificar no prueba que algo no exista.

Sisbén. registered: true confirma el registro, false es un reporte negativo explícito y null significa que no se pudo verificar. Informa el subgrupo completo cuando llegue, como C12. Una afiliación a EPS no establece que la persona pueda acceder a programas sociales.

group Rango de subgroup
A A1–A5
B B1–B7
C C1–C18
D D1–D21

Policía Colombia. fullName es el nombre tal como lo reporta la fuente. identityStatus: "document_matched" indica que el documento devuelto coincide con el consultado; no autentica a quien lo presenta. Conserva el texto oficial de details y distingue no_pending_matters de not_currently_required: una declaración sobre requerimientos judiciales actuales no es un historial completo de condenas. Con judicialStatus: "unverified" no se obtuvo una declaración verificada: nunca lo presentes como ausencia de asuntos pendientes.

Texto para agentes de IA

Agrega "agentMode": true para recibir la misma observación como un texto breve en español: en data.text con Accept: application/json, o como cuerpo de texto con Accept: text/plain. Usa el resultado estructurado cuando tu programa necesite los campos; el SDK devuelve los datos tipados.

Por MCP

Las mismas consultas son herramientas del servidor MCP: adres_affiliations_lookup, sisben_classifications_lookup y policia_colombia_judicial_records_lookup. Reciben los mismos campos, incluido agentMode, y aplican la misma instalación y las mismas restricciones de la credencial. Que una herramienta aparezca en la lista no significa que la consulta haya tenido éxito.

Salud Total

Salud Total responde con las cuentas IPS de tu organización. El equipo de Arbol conecta cada cuenta para un uso, postconsulta o facturación, y cada consulta recibe el connectionId de la conexión activa que corresponde a ese uso (consulta Conexiones).

Pregunta Solicitud HTTP SDK de TypeScript CLI Conexión
¿Está afiliada esta persona? POST /v1/salud-total/affiliations/lookup arbol.saludTotal.affiliations.lookup(input) arbol saludtotal affiliations lookup Postconsulta
¿Hay autorizaciones de esa persona ese día? POST /v1/salud-total/authorizations/lookup arbol.saludTotal.authorizations.lookup(input) arbol saludtotal authorizations lookup Postconsulta
¿Hay solicitudes radicadas de esa persona ese día? POST /v1/salud-total/filings/lookup arbol.saludTotal.filings.lookup(input) arbol saludtotal filings lookup Postconsulta
¿Existe esta factura? POST /v1/salud-total/invoices/lookup arbol.saludTotal.invoices.lookup(input) arbol saludtotal invoices lookup Facturación
¿Cuántas glosas y devoluciones hay? GET /v1/salud-total/notices/count arbol.saludTotal.notices.count(input) arbol saludtotal notices count Facturación

Las consultas de una persona reciben documentType: "CC" y su documentNumber en el cuerpo; las de autorizaciones y radicaciones, además el día (day, AAAA-MM-DD).

Respuesta Qué significa
matched La afiliación encontró a una sola persona; providerStatus es su estado de afiliación tal como lo escribe Salud Total.
no_match, ambiguous No hay nadie con ese documento, o hay más de una coincidencia. No es una caída del servicio.
location_required Para autorizaciones y radicaciones: la cuenta tiene varias sedes. Pregunta cuál aplica y repite la consulta con el id elegido en el campo que dice field.
records_found, no_records Hay registros ese día (recordCount), o no hay ninguno. Un registro no aprueba un procedimiento.
REPORTING_WINDOW_CLOSED Para facturas: el reporte de Salud Total está cerrado a esa hora. El error dice a qué hora abre y cierra (opensAtHour, closesAtHour, hora de Bogotá).

Que una consulta falle, o que la sesión con Salud Total haya vencido, no significa que no haya registros: el error lo dice con su código, y la referencia de Salud Total los lista todos.

Integraciones en agentes de Raíz

Un agente de Raíz usa una integración a través de herramientas: cada uno de sus integrationTools empareja un connectionId con una herramienta que ofrece esa conexión, tal como las muestra account.connections.list. Para que un agente use un registro colombiano, asígnale también su herramienta. Consulta Crear un agente.

Nuevas integraciones

Las nuevas integraciones llegan como nuevos servicios de la API, y aparecen en esta página y en la referencia de la API a medida que la API las agrega.

Escribe para buscar…

↑↓ navegar↵ seleccionarEsc cerrar