Skip to content
Jorge Paredes edited this page May 30, 2023 · 3 revisions

API Callmed NMP

Descripción de operaciones que pueden ejecutarse sobre Callmed a través de API

Este documento permite a los equipos técnicos de las organizaciones conocer el API para integrar sus propios procesos con los flujos operativos de Callmed.

Preliminares

Endpoints

(ambiente UAT) https://uat-apinmp.callmed.mx

OpenAPI https://uat-apinmp.callmed.mx/swagger/index.html

JWT Token / Token Bearer

Todos los métodos requieren enviar el dato del JWT Token obtenido durante la autenticación o entregado a NMP por parte del equipo técnico de Callmed.

Los JWT Tokens B2B suelen tener una vigencia de 10 minutos, sin embargo, el JWT Token se bloquea cuando el Usuario Callmed asociado es bloqueado desde el portal. Si el Usuario Callmed está bloqueado no se podrá generar JWT Token.

Que un Token esté bloqueado no significa que ha perdido su vigencia, al desbloquear el Usuario Callmed asociado el JWT Token vuelve a funcionar.

El Token perderá vigencia cuando llegue el tiempo definido en el claim 'exp' o si el propio Token ingresa al Blacklist de Callmed. En cualquiera de los casos anteriores será necesario obtener un Token nuevo autenticando al Usuario B2B o que Callmed entregue uno nuevo.

El "jwtToken" se debe enviar como un header en todas las peticiones subsecuentes.

Ejemplo

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJDYWxsbWVkIEFQSSBVc2VyIENyZWRlbnRpYWxzIiwianRpIjoiN2Y2ZjdhZWQtMDRlNS00OTcwLTk2NWQtZDgzNWNmYWFjN2ZhIiwidXNlcklkIjoianBhcmVkZXMiLCJleHAiOjE2NTk2ODg1MTYsImlzcyI6IkNhbGxtZWQgSXNzdWVyIiwiYXVkIjoiQ2FsbG1lZCBBUEkgVXNlciJ9.XM7tGUh4w4K8SkuA1u0_sX_PyNkzMvFelLeJEaKUvzM

El tema a destacar es siempre mandar en el header el JWT Token, de otro modo obtendremos un response code 401

Respuesta base

Todos los métodos devuelven una estructura base:

{
  "errCode": "string",
  "errMsg": "string",
  "data": <json object>
}

"errCode" puede devolver diferentes códigos, sin embargo si devuelve un "00" significa que la solicitud fue exitosa, normalmente este "00" está relacionado con el response status 200.

Cualquier otro response status podrá devolver un código "errCode" de acuerdo a la tabla de códigos de error.

Así mismo en "errMsg" se devuelve un mensaje explicativo cuando existió un error, null cuando la solicitud es exitosa ("errCode"="00").

Consulta de permisos de usuario

El API contiene un endpoint que le permite consultar los permisos funcionales en cuanto sobre qué Clientes, Departamentos y Planes puede incidir.

Este método está enfocado en los clientes sobre los cuales el Token tiene permisos.

/api/Auth/get_userdata_permissions

Method GET

Este endpoint no requiere ningún parámetro, pero como se ha descrito, es necesario enviar en los headers el JWT Token.

Nos devolverá una estructura de este tipo:

{
  "errCode": "00",
  "errMsg": null,
  "data": {
    "userId": "string",
    "userName": "string",
    "userEmail": "string",
    "userNivel": 0,
    "empresaId": 0,
    "perfil": "string",
    "nombreEmpresa": "string",
    "prefijoNur": "string",
    "jwtToken": "string",
    "clientes": [
      {
        "idSistema": "string",
        "nombre": "string",
        "rfc": "string",
        "razonSocial": "string",
        "catTelefono": "string",
        "catEmail": "string",
        "planes": [
          {
            "planId": 0,
            "idSistema": "string",
            "descripcion": "string"
          }
        ],
        "departamentos": [
          {
            "departamentoId": 0,
            "nombre": "string",
            "descripcion": "string",
            "idSistema": "string",
            "appName": "string"
          }
        ]
      }
    ]
  }
}

Gestión de DHB

Estos métodos están diseñados para la gestión de DHB en Callmed con el enfoque de NMP.

Crear o editar un DHB

/api/DHB

Method POST

Debe enviar el JWT Token en los encabezados y en el body la siguiente estructura json.

{
  "afiliacion": "string",
  "nombre": "string",
  "apPaterno": "string",
  "apMaterno": "string",
  "fecNacimiento": "2023-05-24T05:12:46.990Z",
  "sexo": "string",
  "cliente": "string",
  "idTipoEmpleado": 0,
  "idFamiliar": 0,
  "idEdoCivil": 0,
  "idEstado": 0,
  "idPlaza": 0,
  "calle": "string",
  "calle2": "string",
  "colonia": "string",
  "cp": "string",
  "fechaBaja": "2023-05-24T05:12:46.990Z",
  "fechaVigencia": "2023-05-24T05:12:46.990Z",
  "telefono": "string",
  "celular1": "string",
  "celular2": "string",
  "email": "string",
  "rfc": "string",
  "curp": "string",
  "nss": "string",
  "pi": true,
  "grupoPago": "string",
  "etiquetas": "string"
}

Este método está diseñado para ser "idempotente" y funciona tanto para Agregar un DHB como para Actualizar la información de un DHB que ya existe.

Este es un ejemplo de solicitud con cURL:

curl --location 'https://uat-apinmp.callmed.mx/api/DHB' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJDYWxsbWVkIEFQSSBVc2VyIENyZWRlbnRpYWxzIiwianRpIjoiOTJiOTZhYWUtY2MzMS00NWM4LTkyNDQtYjg3YWE2YjM5NTIwIiwidXNlcklkIjoiQVVUV0FQSSIsImV4cCI6MTc0ODA1MDg4OCwiaXNzIjoiQ2FsbG1lZCBJc3N1ZXIiLCJhdWQiOiJDYWxsbWVkIEFQSSBVc2VyIn0.DYfLLRBYAI-UBTryhn8gD4Oj1h4bf5LKC-sZAULcSWk' \
--data '{
  "afiliacion": "string",
  "nombre": "string",
  "apPaterno": "string",
  "apMaterno": "string",
  "fecNacimiento": "2023-05-24T05:12:46.990Z",
  "sexo": "string",
  "cliente": "string",
  "idTipoEmpleado": 0,
  "idFamiliar": 0,
  "idEdoCivil": 0,
  "idEstado": 0,
  "idPlaza": 0,
  "calle": "string",
  "calle2": "string",
  "colonia": "string",
  "cp": "string",
  "fechaBaja": "2023-05-24T05:12:46.990Z",
  "fechaVigencia": "2023-05-24T05:12:46.990Z",
  "telefono": "string",
  "celular1": "string",
  "celular2": "string",
  "email": "string",
  "rfc": "string",
  "curp": "string",
  "nss": "string",
  "pi": true,
  "grupoPago": "string",
  "etiquetas": "string"
}'

Como respuesta tendremos:

Código HTTP Descripción
200 OK Si el DHB existía y fue actualizado correctamente
201 OK Si el DHB no existía y fue dado de alta correctamente
403 BAD REQUEST Se envío algún parámetro incorrecto

En los tres casos se devuelve siempre la estructura base

{
  "errCode": "00",
  "errMsg": null,
  "data": null
}

En caso de devolver un error 403, la estructura base contendrá detalles del parámetro inválido.

Baja de un DHB

/api/DHB

Method DELETE

(work in process)