--- openapi: 3.0.3 info: title: API Cotizador version: 1.0.0 description: "Consulta de cotizador comercial, generador de tablas de amortización y computo de CAT" servers: - url: https://api-sandbox.banorte.com/api/esb/Cotizador/v1 description: "Servidor desarrollo" security: - oAuth2ClientCredentials: - update paths: /AutoEstrene: post: tags: - "Cotizador" summary: Cotizador comercial description: Cotizador generador de tablas de amortización parameters: - $ref: "#/components/parameters/Authorization" - $ref: "#/components/parameters/Accept-LanguageId" - $ref: "#/components/parameters/Content-Type" - $ref: "#/components/parameters/Accept" requestBody: description: Consulta de cotizador comercial content: application/json: schema: $ref: '#/components/schemas/CotizadorRequest' required: true responses: 200: description: Regresa los registros del crédito. content: application/json: schema: $ref: '#/components/schemas/CotizadorResponse' 400: description: Regresa cuando la petición no cumple con lo especificado en la api. content: application/json: example: status: 400 codigoRespuesta: 0 codigoError: ERRESQ002 folio: 08API1642005180146 mensaje: Datos de entrada vacio o nulo, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición contiene un campo vacío o nulo. valorIncorrecto: lineaCaptura. 401: description: Regresa cuando se envia una petición con un token invalido. content: application/json: example: status: 401 codigoRespuesta: 0 mensaje: Token Invalido. description: Token Invalido. 403: description: Regresa cuando se envia una petición con un token expirado o sin privilegios. content: application/json: example: status: 403 codigoRespuesta: 0 mensaje: El Token ha expirado description: El Token ha expirado 405: description: Regresa cuando se envian una petición solicitando un metodo no especificado en la API. content: application/json: example: status: 405 codigoRespuesta: 0 codigoError: ERRSEG006 folio: 08API1642005180146 mensaje: Método no permitido, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: El método no es permitido. 406: description: Regresa cuando se envía una petición con un valor incorrecto en el encabezado de aceptacion (accept header). content: application/json: example: status: 406 codigoRespuesta: 0 codigoError: ERRSEG007 folio: 08API1642005180146 mensaje: Encabezado de aceptación no válido, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición tiene un valor incorrecto en el encabezado de aceptación. 408: description: Regresa cuando las peticiones generan un timeout. content: application/json: example: status: 408 codigoRespuesta: 0 codigoError: ERRSER001 folio: 08API1642005180146 mensaje: Tiempo de espera agotado, volver a intentar. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición no recibió la respuesta en el tiempo establecido. 429: description: Regresa cuando el recurso se ejecuta con demasiada frecuencia. content: application/json: example: status: 429 codigoRespuesta: 0 codigoError: ERRSEG006 folio: 08API1642005180146 mensaje: Limite de peticiones excedido. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: Limite de peticiones excedido. 431: description: Regresa cuando se envia una petición con demasiada información en los encabezados (headers request). content: application/json: example: status: 431 codigoRespuesta: 0 codigoError: ERRSEG007 folio: 08API1642005180146 mensaje: Limite excedido en los campos del cabecero, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: Limite excedido en los campos del cabecero, por favor revisa el contenido enviado. 500: description: Regresa cuando sucede un error Interno en el servidor. content: application/json: example: status: 500 codigoRespuesta: 0 codigoError: ERRSER002 folio: 08API1642005180146 mensaje: Error en el servidor, favor de intentar mas tarde. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: Servicio no disponible, favor de intentar más tarde. 503: description: Regresa cuando las APIS estan inactivas. content: application/json: example: status: 503 codigoRespuesta: 0 codigoError: ERRSER003 folio: 08API1642005180146 mensaje: Error con la conexión del servidor, favor de intentar más tarde. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición genero un error de comunicación. /SegAutoEikos: post: tags: - "Cotizador Poliza" summary: Cotizador Poliza description: Realiza la cotización de una póliza del programa de seguros HyundaiProtect. parameters: - $ref: "#/components/parameters/Authorization" - $ref: "#/components/parameters/Accept-LanguageId" - $ref: "#/components/parameters/Content-Type" - $ref: "#/components/parameters/Accept" requestBody: description: Consulta de cotizador poliza content: application/json: schema: $ref: '#/components/schemas/EikosRequest' required: true responses: 200: description: Regresa los registros del crédito. content: application/json: schema: $ref: '#/components/schemas/EikosResponse' 400: description: Regresa cuando la petición no cumple con lo especificado en la api. content: application/json: example: status: 400 codigoRespuesta: 0 codigoError: ERRESQ002 folio: 08API1642005180146 mensaje: Datos de entrada vacio o nulo, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición contiene un campo vacío o nulo. valorIncorrecto: lineaCaptura. 401: description: Regresa cuando se envía una petición con un token inválido. content: application/json: example: status: 401 codigoRespuesta: 0 mensaje: Token Invalido. description: Token Invalido. 403: description: Regresa cuando se envia una petición con un token expirado o sin privilegios. content: application/json: example: status: 403 codigoRespuesta: 0 mensaje: El Token ha expirado. description: El Token ha expirado. 405: description: Regresa cuando se envian una petición solicitando un método no especificado en la API. content: application/json: example: status: 405 codigoRespuesta: 0 codigoError: ERRSEG006 folio: 08API1642005180146 mensaje: Método no permitido, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: El metodo no es permitido. 406: description: Regresa cuando se envia una petición con un valor incorrecto en el encabezado de aceptacion (accept header). content: application/json: example: status: 406 codigoRespuesta: 0 codigoError: ERRSEG007 folio: 08API1642005180146 mensaje: Encabezado de aceptación no válido, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición tiene un valor incorrecto en el encabezado de aceptación. 408: description: Regresa cuando las peticiones generan un timeout content: application/json: example: status: 408 codigoRespuesta: 0 codigoError: ERRSER001 folio: 08API1642005180146 mensaje: Tiempo de espera agotado, volver a intentar. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición no recibió la respuesta en el tiempo establecido. 429: description: Regresa cuando el recurso se ejecuta con demasiada frecuencia. content: application/json: example: status: 429 codigoRespuesta: 0 codigoError: ERRSEG006 folio: 08API1642005180146 mensaje: Limite de peticiones excedido. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: Limite de peticiones excedido. 431: description: Regresa cuando se envia una petición con demasiada información en los encabezados (headers request). content: application/json: example: status: 431 codigoRespuesta: 0 codigoError: ERRSEG007 folio: 08API1642005180146 mensaje: Limite excedido en los campos del cabecero, por favor revisa el contenido enviado. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: Limite excedido en los campos del cabecero, por favor revisa el contenido enviado. 500: description: Regresa cuando sucede un error Interno en el servidor. content: application/json: example: status: 500 codigoRespuesta: 0 codigoError: ERRSER002 folio: 08API1642005180146 mensaje: Error en el servidor, favor de intentar mas tarde. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: Servicio no disponible, favor de intentar más tarde. 503: description: Regresa cuando las APIS estan inactivas. content: application/json: example: status: 503 codigoRespuesta: 0 codigoError: ERRSER003 folio: 08API1642005180146 mensaje: Error con la conexión del servidor, favor de intentar más tarde. detalles: enlace: https://developers.banorte.com/es/api/23 propiedad: La petición genero un error de comunicación. components: schemas: CotizadorRequest: description: "" required: - solicitud type: object properties: solicitud: $ref: '#/components/schemas/solicitud' description: "" CotizadorResponse: description: "" type: object properties: status: description: Contiene el código de respuesta type: integer example: 200 codigoRespuesta: description: Identifica si el servicio se ejecutó con éxito o sucedió un error type: string example: "0" mensaje: description: Descripción type: string folio: description: Identificador global único type: string resultado: $ref: '#/components/schemas/resultado' description: Datos de respuesta registro: description: "" type: object properties: numAmortizacion: description: "Número de amortización" minimum: 0 maximum: 999 type: integer fechaAmortizacion: format: date description: "Fecha de amortización" type: string saldoCapital: description: "Capital Inicial" type: string abonoCapital: description: "Capital de amortización" type: string interesAmortizacion: description: "Interés de amortización" type: string ivaAmortizacion: description: "IVA de amortización" type: string comisionAmortizacion: description: "Comisión de amortización" type: string seguroVida: description: "Seguro de vida" type: string seguroDanos: description: "Seguro de daños" type: string seguroDesempleo: description: "Seguro de desempleo" type: string pagoAmortizacion: description: "Pago de amortización" type: string saldoFin: description: "Saldo final" type: string resultado: description: "" type: object properties: fechaApertura: format: date description: Fecha de apertura type: string montoSolicitado: description: Importe de crédito type: string tasa: description: Tasa type: string plazo: description: Plazo minimum: 0 maximum: 999 type: integer periodicidad: description: Periodicidad maxLength: 1 minLength: 1 type: string iva: description: IVA minimum: 0 maximum: 99 type: integer facturaConIva: description: Factura con IVA minimum: 0 maximum: 9 type: integer producto: description: Producto type: string enum: [AUTO, AUTONOM] comisiones: description: Comisiones type: string tipoSeguro: description: Tipo seguro minimum: 0 maximum: 99 type: integer valorFactura: description: Valor Factura type: string cat: description: CAT type: string indSeguro: description: Indica si tiene Seguro Externo minimum: 0 maximum: 9 type: integer plazoSeguro: description: Indica el Plazo del Seguro Externo minimum: 0 maximum: 99 type: integer importeSeguros: description: Indica el Monto del Seguro Externo type: string importeCatSegVida: description: Importe Seguro Vida CAT type: string importeCatSegDanio: description: Importe Seguro Daño CAT type: string numeroPagos: description: Importe del Valor Destructible para el cálculo de Seguros minimum: 0 maximum: 99 type: integer totalPagar: description: Total a pagar type: string pagoMensual: description: Pago mensual type: string montoGarantiaExt: description: Resultado de la sumatoria entre montoGarantiaExt y montoSolicitado type: string importeInteresTotal: description: Total de los intereses de todo el plazo type: string impIVAInteresTotal: description: Total de los IVAS de todo el plazo type: string importePago: description: Suma global del pago amortización (incluye abono a capital, interés, iva comisión y seguros) type: string registros: type: array items: $ref: '#/components/schemas/registro' description: "Listado" solicitud: description: "" required: - montoSolicitado - plazo - valorFactura type: object properties: fechaApertura: format: date description: Fecha de apertura type: string example: "2023-05-28" montoSolicitado: description: Importe de crédito type: string example: "400000.00" tasa: description: Tasa type: string plazo: description: Plazo minimum: 0 maximum: 999 type: integer example: 12 periodicidad: description: Periodicidad maxLength: 1 minLength: 1 type: string example: "M" iva: description: IVA minimum: 0 maximum: 99 type: integer example: 2 facturaConIva: description: Factura con IVA minimum: 0 maximum: 9 type: integer example: 1 producto: description: Producto type: string enum: [AUTO, AUTONOM] comisiones: description: Comisiones type: string example: "2.0" tipoSeguro: description: Tipo seguro minimum: 0 maximum: 99 type: integer example: 1 valorFactura: description: Valor Factura type: string example: "500000" indSeguro: description: Indica si tiene Seguro Externo minimum: 0 maximum: 9 type: integer plazoSeguro: description: Indica el Plazo del Seguro Externo minimum: 0 maximum: 99 type: integer importeSeguros: description: Indica el Monto del Seguro Externo type: string importeCatSegVida: description: Importe Seguro Vida CAT type: string importeCatSegDanio: description: Importe Seguro Daño CAT type: string numeroPagos: description: Importe del Valor Destructible para el cálculo de Seguros minimum: 0 maximum: 99 type: integer porcentajeCredito: description: Porcentaje del crédito. type: number default: 20 porcentajeEnganche: description: Porcentaje del enganche. type: number default: 20 nombreModelo: description: Modelo del auto. type: string example: "HB20" generaTablaPagos: description: generaTablaPagos type: boolean example: "false" montoGarantiaExt: description: Monto garantia extendida. type: string creditoGarantiaExt: description: generaTablaPagos type: boolean example: "true" informacionSeguro: $ref: '#/components/schemas/informacionSeguro' description: Datos de respuesta informacionSeguro: description: "se agrega si el campo informacionSeguro es false" required: - cveEntidadFederativa - idTipoUnidad - idUsoAutomovil - idAgencia - modelo - numeroAgencia - enganche - codigoPostal type: object properties: idPaquete: description: Identificador del paquete a cotizar. type: number example: 0 cveEntidadFederativa: description: Estado de circulación de la unidad. type: number example: 19 idEstado: type: number description: Identificador para saber si la unidad es nueva o seminueva. example: 1 idUsuario: type: string description: Usuario portal Bancomer. example: "9999" plazoMeses: type: number description: Plazo de vigencia de la poliza. example: 24 idTipoUnidad: type: number description: Tipo de Unidad. example: 1 idUsoAutomovil: type: number description: Uso de la unidad. example: 1 idAgencia: type: number description: Clave del vehiculo example: 23849 modelo: type: number description: Año del vehiculo. example: 2023 numeroAgencia: type: number description: Identificador del numero de agencia example: 3885 idAseguradora: type: number description: Identificador de la aseguradora. example: 0 idFormaPago: type: number description: Identificador de la forma de pago. example: 1 sumaAccesorio: type: string description: valor de los accesorios adicionales. example: "0" sumaEquipoEspecial: type: string description: Valor de adaptaciones del vehiculo. example: "0" enganche: type: string description: Monto del enganche de credito. example: "100000" codigoPostal: type: string description: Codigo postal de circulación de la unidad. example: "64000" indicadorReposicion: type: number description: Identificador del tipo de valor reposición. example: 0 idVigencia: type: number description: Identificador de la modalidad de vigencia. example: 0 EikosRequest: description: "" type: object required: - solicitud properties: solicitud: $ref: '#/components/schemas/solicitudEikos' description: "" solicitudEikos: description: "" required: - cveEntidadFederativa - idTipoUnidad - idUsoAutomovil - idClaveVehiculo - modelo - idAgencia - montoSumaAsegurada - enganche - plazoFinanciado - codigoPostal type: object properties: idPaquete: type: number description: Identificador del paquete a cotizar, si se manda en 0 regresa todos los paquetes disponibles. example: 0 cveEntidadFederativa: type: number description: Estado de circulación de la unidad, para efectos de zonificar la tarifa. example: 19 idEstado: type: number description: Identificador para saber si la unidad es nueva o seminueva. example: 1 idUsuario: type: string description: Usuario portal Bancomer. example: "9999" plazoMeses: type: number description: Plazo de Vigencia de la póliza, Número de meses que va a estar asegurada. default: 12 example: 12 idTipoUnidad: type: number description: Tipo de Unidad. example: 1 idUsoAutomovil: type: number description: Uso de la unidad. example: 1 idClaveVehiculo: type: number description: Clave del vehículo según el catálogo compartido. example: 23849 modelo: type: number description: Año del Vehículo. example: 2023 idAgencia: type: number description: Identificador del número de Agencia, para efectos de estadística. example: 3885 idAseguradora: type: number description: Identificador de la aseguradora. example: 0 idFormaPago: type: number description: Identificador de la forma de pago. example: 1 montoSumaAsegurada: type: string description: Valor de la factura de la unidad. example: "0.0" sumaAccesorio: type: string description: Valor de los accesorios adicionales del vehículo. example: "0.0" sumaEquipoEspecial: type: string description: Valor de adaptaciones del vehículo. example: "0" enganche: type: string description: Monto del Enganche del Crédito. example: "0" plazoFinanciado: type: number description: Plazo que se va a financiar la unidad. example: 0 codigoPostal: type: string description: Código postal de circulación de la unidad. example: "64000" indicadorReposicion: type: number description: Identificador del tipo de Valor Reposición. example: 0 idVigencia: type: number description: Identificador de Modalidad de Vigencia. example: 0 EikosResponse: description: "" type: object properties: status: description: Contiene el código de respuesta type: integer example: 200 codigoRespuesta: description: Identifica si el servicio se ejecutó con éxito o sucedió un error type: string example: "0" mensaje: description: Descripción type: string folio: description: Identificador global único type: string resultado: $ref: '#/components/schemas/resultadoEikos' description: Datos de respuesta resultadoEikos: type: object properties: listaSeguroAuto: type: array items: $ref: '#/components/schemas/listaSeguroAuto' description: "Listado" listaSeguroAuto: description: "" type: object properties: vigenciaInicial: type: string example: "29/03/2023" vigenciaFin: type: string example: "03/04/2025" primaTotal: type: string example: "33542.62" idAseguradora: type: string example: "101" aseguradora: type: string example: "Aseguradora ABA" paquete: type: string example: "1" descPaquete: type: string example: "COMPLETO" idCotizacion: type: string example: "102819124" urlCotizacion: type: string example: "" seguroGap: type: string example: "NO APLICA" segVida: type: string example: "NO APLICA" listaRecibos: type: array items: $ref: '#/components/schemas/listaRecibos' description: "Listado" listaRecibos: type: object properties: numeroRecibo: type: string example: "1" vigenciaInicial: type: string example: "29/03/2023" vigenciaFin: type: string example: "03/04/2024" primaTotal: type: string example: "17119.31" securitySchemes: oAuth2ClientCredentials: type: oauth2 description: | La API debe requerir un encabezado de autorizacion en la solicitud http un token web JSON (JWT) emitido por el servidor de autorizacion Oauth2 aprobado por la empresa para la autenticacion del servicio. flows: clientCredentials: tokenUrl: "https://api-sandbox.banorte.com/api/esb/ValidaCredenciales/accesstoken" scopes: update: Permisos para consultar cotizador. parameters: Authorization: name: Authorization in: header required: true schema: type: string description: 'El Token de autenticación, es una cadena generada por el servidor en respuesta a una solicitud de autenticación al ejecutar el recurso de API03_ValidaCredenciales-test' example: "token" Accept-LanguageId: name: accept-Language in: header required: false schema: type: string maxLength: 5 minLength: 1 enum: - "es_MX" - "en_US" description: 'Indica el idioma natural y la configuracion regional que prefiere el cliente. Valores Posibles: es_MX, en_US' example: "es_MX" Content-Type: name: Content-Type in: header required: false schema: type: string description: 'Es la propiedad que indica al servidor que tipo de dato es enviado.' example: "application/json;charset=utf-8" Accept: name: Accept in: header required: false schema: type: string description: 'Indica que tipo de contenido el cliente puede procesar. Usando para la negociación de contenido, el servidor selecciona una de las propuestas, la utiliza e informa al cliente de la elección a través de la cabecera de respuesta Content-Type.' example: "application/json"