openapi: 3.0.3 info: title: 'ERSM Documentación API.' description: '' version: 1.0.0 servers: - url: 'https://apiersm.net' tags: - name: 'Tarificador ERSM' description: " Tarificador Genérico de ERSM Insurance Brokers con el que se puede:\n" components: securitySchemes: default: type: http scheme: bearer description: "Si quieres realizar alguna prueba, puedes hacerlo generando un token de acceso con la url proporcionada por email,\nusando el usuario y contraseña asignado." security: - default: [] paths: /ersmtarificador/polizas/tarificar: post: summary: 'Nuevo proyecto.' operationId: nuevoProyecto description: "Crea un nuevo proyecto de seguros y obtiene cotizaciones de cada compañía asignada.\n\nNota: Esta operación puede tardar más de un minuto en completarse.\n\nLas cotizaciones obtenidas las encontrarás en los campos `mainQuotes` y `addonQuotes`, dependiendo de si se trata\nde un producto principal o de un add-on. Mira el campo `errors` para cotizaciones fallidas.\n\nAdicionalmente, obtendrás una lista de ofertas preconfiguradas que representan una combinación de una\ncotización de producto principal y, opcionalmente, algunas cotizaciones de add-on compatibles.\n\nEn el caso que el conductor NO sea el Propietario o el Tomador del seguro, (\"es_tomador\":\"no\" o \"es_propietario\":\"no\")\nse debe informar con el objeto tomador o propietario con la misma estructura que la del objeto conductor.\n\nCuando sea necesario, recibirás más información sobre el estado en el campo `messages` de cada resultado." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"mainQuotes\": [...],\n \"addonQuotes\": [...],\n \"errors\": [],\n \"offers\": [\n {\n \"main_quote_id\": 123,\n \"addon_ids\": [12, 13],\n \"price_total\": 420.75\n }\n ],\n \"messages\": [\n {\n \"quote_id\": 123,\n \"message\": \"Faltan datos del conductor.\"\n }\n ]\n}" tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: fecha_accion: type: string description: 'Fecha de creación del proyecto en formato Y-m-d H:i:s.' example: '2025-05-28 13:20:00' tipo: type: string description: 'Tipo de seguro.' example: Car avant2_user: type: string description: 'Usuario Avant2.' example: byd_autos@ersm.net colaborador: type: string description: 'ID del colaborador.' example: '12345' vendedor: type: string description: 'ID del vendedor.' example: '67890' conductor: type: object description: 'Información del conductor.' example: [] properties: tipo_ident: type: string description: 'Tipo de documento.' example: Dni ident: type: string description: 'Número de documento.' example: 72525450X nombre: type: string description: 'Nombre del conductor.' example: Derek apellido1: type: string description: 'Primer apellido.' example: Pollock apellido2: type: string description: 'Segundo apellido.' example: Test fecha_nacimiento: type: string description: 'Fecha de nacimiento (Y-m-d).' example: '1977-09-29' fecha_carnet: type: string description: 'Fecha de expedición del carnet.' example: '2000-07-06' tipo_carnet: type: string description: 'Tipo de carnet.' example: B email: type: string description: 'Email del conductor.' example: mimail@gmail.com movil: type: string description: 'Número móvil.' example: '600700890' telefono: type: string description: 'Teléfono fijo.' example: '912345000' cod_postal: type: string description: 'Código postal.' example: '28916' provincia: type: string description: Provincia. example: Madrid poblacion: type: string description: Ciudad. example: 'Leganés Madrid' dir_tipo_calle: type: string description: 'Tipo de vía.' example: Calle dir_nombre_calle: type: string description: 'Nombre de la calle.' example: Falsa dir_numero_calle: type: string description: 'Número de calle.' example: '123' sexo: type: string description: 'Sexo del conductor.' example: Male estado_civil: type: string description: 'Estado civil.' example: Single estado_laboral: type: string description: 'Situación laboral.' example: Employee ocupacion: type: string description: 'Código de ocupación.' example: '2612' es_tomador: type: string description: '¿Es tomador? (yes/no).' example: si es_propietario: type: string description: '¿Es propietario? (yes/no).' example: si required: - tipo_ident - ident - nombre - apellido1 - fecha_nacimiento - fecha_carnet - tipo_carnet - email - movil tomador: type: object description: 'Información del tomador (necesario si es_tomador fué puesto a NO en el objeto conductor).' example: [] properties: tipo_ident: type: string description: 'Tipo de documento.' example: Dni ident: type: string description: 'Número de documento.' example: 72525450X nombre: type: string description: 'Nombre del tomador.' example: Derek apellido1: type: string description: 'Primer apellido.' example: Pollock apellido2: type: string description: 'Segundo apellido.' example: Test fecha_nacimiento: type: string description: 'Fecha de nacimiento (Y-m-d).' example: '1977-09-29' fecha_carnet: type: string description: 'Fecha de expedición del carnet.' example: '2000-07-06' tipo_carnet: type: string description: 'Tipo de carnet.' example: B email: type: string description: 'Email del tomador.' example: mimail@gmail.com movil: type: string description: 'Número móvil.' example: '600700890' telefono: type: string description: 'Teléfono fijo.' example: '912345000' cod_postal: type: string description: 'Código postal.' example: '28916' provincia: type: string description: Provincia. example: Madrid poblacion: type: string description: Ciudad. example: 'Leganés Madrid' dir_tipo_calle: type: string description: 'Tipo de vía.' example: Calle dir_nombre_calle: type: string description: 'Nombre de la calle.' example: Falsa dir_numero_calle: type: string description: 'Número de calle.' example: '123' sexo: type: string description: 'Sexo del tomador.' example: Male estado_civil: type: string description: 'Estado civil.' example: Single estado_laboral: type: string description: 'Situación laboral.' example: Employee ocupacion: type: string description: 'Código de ocupación.' example: '2612' required: - tipo_ident - ident - nombre - apellido1 - fecha_nacimiento - fecha_carnet - tipo_carnet - email - movil propietario: type: object description: 'Información del propietario (necesario si es_propietario fué puesto a NO en el objeto conductor).' example: [] properties: tipo_ident: type: string description: 'Tipo de documento.' example: Dni ident: type: string description: 'Número de documento.' example: 72525450X nombre: type: string description: 'Nombre del propietario.' example: Derek apellido1: type: string description: 'Primer apellido.' example: Pollock apellido2: type: string description: 'Segundo apellido.' example: Test fecha_nacimiento: type: string description: 'Fecha de nacimiento (Y-m-d).' example: '1977-09-29' fecha_carnet: type: string description: 'Fecha de expedición del carnet.' example: '2000-07-06' tipo_carnet: type: string description: 'Tipo de carnet.' example: B email: type: string description: 'Email del propietario.' example: mimail@gmail.com movil: type: string description: 'Número móvil.' example: '600700890' telefono: type: string description: 'Teléfono fijo.' example: '912345000' cod_postal: type: string description: 'Código postal.' example: '28916' provincia: type: string description: Provincia. example: Madrid poblacion: type: string description: Ciudad. example: 'Leganés Madrid' dir_tipo_calle: type: string description: 'Tipo de vía.' example: Calle dir_nombre_calle: type: string description: 'Nombre de la calle.' example: Falsa dir_numero_calle: type: string description: 'Número de calle.' example: '123' sexo: type: string description: 'Sexo del propietario.' example: Male estado_civil: type: string description: 'Estado civil.' example: Single estado_laboral: type: string description: 'Situación laboral.' example: Employee ocupacion: type: string description: 'Código de ocupación.' example: '2612' required: - tipo_ident - ident - nombre - apellido1 - fecha_nacimiento - fecha_carnet - tipo_carnet - email - movil vehiculo: type: object description: 'Datos del vehículo.' example: [] properties: matricula: type: string description: 'Matrícula del vehículo.' example: 1022KBM fecha_matricula: type: string description: 'Fecha de matriculación.' example: '2021-04-12' fecha_compra: type: string description: 'Fecha de compra.' example: '2021-04-14' codigo_b7: type: string description: 'Código B7 del vehículo.' example: '00080161072' cod_postal: type: string description: 'Código postal donde se guarda.' example: '28025' km_anio: type: string description: 'Kilómetros anuales.' example: '15000' remolque: type: boolean description: '¿Tiene remolque? (0 o 1).' example: false tipo_parking: type: string description: 'Tipo de parking.' example: CommunalParking extra: type: object description: 'Datos adicionales.' example: [] properties: extra1: type: string description: 'Información adicional 1.' example: info1 extra2: type: string description: 'Información adicional 2.' example: info2 comments: type: string description: 'Comentarios sobre la tarificación.' example: 'Observaciones Sobre la tarificación AUTO' required: - fecha_accion - tipo - avant2_user - conductor - vehiculo /ersmtarificador/polizas/recuperar: get: summary: Recuperar. operationId: recuperar description: 'Recupera un proyecto de seguro con sus cotizaciones.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: error: 'Unauthenticated: Your token is invalid.' properties: error: type: string example: 'Unauthenticated: Your token is invalid.' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: avant2User: type: string description: 'Usuario de Avant2.' example: usuario@ersm.net id: type: integer description: 'Identificador del proyecto.' example: 282729 required: - avant2User - id /ersmtarificador/polizas/modificar: patch: summary: Modificar. operationId: modificar description: "Modifica un proyecto de seguro cotizado.\n\nPuede enviar una solicitud con los datos del seguro anterior modificando solo las propiedades de los\ndatos del seguro modificables. El resto de las propiedades se ignorarán.\n\nNota: Revise la operación Enumerar los roles de los participantes del seguro de cada línea de seguro\npara determinar qué campos de rol de persona son obligatorios y modificables.\n\nEsto le permite continuar con el proceso de solicitud de seguro para obtener una póliza de seguro del proveedor." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: { } tags: - 'Tarificador ERSM' /ersmtarificador/polizas/presupuesto: post: summary: 'Report o Presupuesto.' operationId: reportOPresupuesto description: "Crea un REPORT o Presupuesto sobre un proyecto de seguro.\n\nSe debe proporcionar el ID general del proyecto del seguro y los ID's de las Ofertas \"offers\" que se\nquieran incluir en el presupuesto." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: { } tags: - 'Tarificador ERSM' /ersmtarificador/polizas/recupera-oferta: get: summary: 'Recupera oferta.' operationId: recuperaOferta description: 'Recupera una oferta de seguro con sus opciones de producto.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: error: 'Unauthenticated: Your token is invalid.' properties: error: type: string example: 'Unauthenticated: Your token is invalid.' tags: - 'Tarificador ERSM' /ersmtarificador/polizas/recupera-oferta-garantias: get: summary: 'Recupera garantías.' operationId: recuperaGarantas description: "Recuperar las garantías de una oferta de seguro.\n\nPara facilitar la comparación de ofertas, el conjunto de garantias que se devuelve es el mismo para todas las\nofertas (en cada ramo de seguro).\nSi la oferta realmente proporciona estas coberturas se determina mediante los campos \"included\" y \"text\"." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: error: 'Unauthenticated: Your token is invalid.' properties: error: type: string example: 'Unauthenticated: Your token is invalid.' tags: - 'Tarificador ERSM' /ersmtarificador/polizas/pre-emitir: post: summary: 'Pre emitir solicitud de póliza.' operationId: preEmitirSolicitudDePliza description: "Crea una nueva oferta de seguro pre-emitiendo y empaquetando una cotización principal y, opcionalmente, algunas\ncotizaciones complementarias compatibles de un seguro existente.\n\nEsta operación es obligatoria para las ofertas cuyas cotizaciones tienen la acción \"ReRate\" como\nobligatoria entre sus \"actions\". Una vez reevaluadas, no debería ser necesario volver a evaluar las\ncotizaciones nuevas a menos que se apliquen otras restricciones (como que la oferta haya vencido).\n\nTambién es necesario reevaluar una oferta si desea modificar alguna opción específica del producto,\nla frecuencia de pago o la fecha de vigencia.\n\nCatálogos relacionados:\n- Forma de pago\n- Frecuencia de pago" parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: policyQuoteId: PQ938483 status: PreIssued message: 'Policy pre-issued successfully' properties: status: type: integer example: 200 content: type: object properties: policyQuoteId: type: string example: PQ938483 status: type: string example: PreIssued message: type: string example: 'Policy pre-issued successfully' 400: description: '' content: application/json: schema: type: object example: status: 400 errors: - type: validation_error message: 'Invalid request parameters' properties: status: type: integer example: 400 errors: type: array example: - type: validation_error message: 'Invalid request parameters' items: type: object properties: type: type: string example: validation_error message: type: string example: 'Invalid request parameters' 403: description: '' content: application/json: schema: type: object example: status: 403 errors: - type: forbidden message: 'User not authorized' properties: status: type: integer example: 403 errors: type: array example: - type: forbidden message: 'User not authorized' items: type: object properties: type: type: string example: forbidden message: type: string example: 'User not authorized' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: avant2_user: type: string description: 'Usuario de Avant2.' example: usuario@ersm.net id: type: integer description: 'Identificador interno de la oferta.' example: 282853 mainQuoteId: type: string description: 'Identificador de la cotización principal.' example: Q5888384 options: type: array description: 'Opciones del producto generadas desde la librería de afinaciones.' example: - aut items: type: string paymentMethod: type: string description: 'Forma de pago.' example: Company paymentFrequency: type: string description: 'Frecuencia de pago.' example: Annual effectiveDate: type: date description: 'optional Fecha de efecto de la póliza.' example: '2026-03-16' addonQuotes: type: array description: 'optional Cotizaciones adicionales compatibles.' example: - natus items: type: string required: - avant2_user - id - mainQuoteId - options - paymentMethod - paymentFrequency /ersmtarificador/polizas/solicitud: post: summary: 'Envío de solicitud de póliza.' operationId: envoDeSolicitudDePliza description: "La presentación de una solicitud de póliza de seguro representa la intención de formalizar una cotización\nen una póliza de seguro.\n\nMediante esta operación se pueden formalizar las cotizaciones incluidas en una oferta de seguro en pólizas\nde seguro. La solicitud del producto principal se presentará en primer lugar y, si se acepta, las solicitudes\nde los complementos se presentarán a continuación." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: { } tags: - 'Tarificador ERSM' /ersmtarificador/polizas/recupera-solicitud: get: summary: 'Recupera una solicitud de póliza de seguro' operationId: recuperaUnaSolicitudDePlizaDeSeguro description: "Generalmente, las solicitudes de pólizas de seguro se aprueban o rechazan dependiendo de si cumplen con las\nvalidaciones finales realizadas por las aseguradoras.\n\nSin embargo, también pueden aceptarse solicitudes, pero quedar pendientes de revisión de elegibilidad o\nrequerir la intervención manual del corredor (a través de ASM o la web de la aseguradora).\n\nAdemás, en ciertos casos, las aseguradoras pueden decidir no aceptar ni rechazar la solicitud, pero proponer\nciertos cambios a la cotización, generalmente en forma de una nueva prima. En este caso, se devuelve el estado\n\"Cotización Revisada\" junto con una Cotización Revisada que incorpora las modificaciones propuestas.\nEstos cambios deben revisarse cuidadosamente y, si se aceptan, se debe ejecutar una nueva solicitud de envío\nde solicitudes de pólizas de seguro, especificando la cotización revisada en lugar de la original como la\ncotización original de la solicitud." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: error: 'Unauthenticated: Your token is invalid.' properties: error: type: string example: 'Unauthenticated: Your token is invalid.' tags: - 'Tarificador ERSM' /ersmtarificador/polizas/estado-polizas: get: summary: 'Lista de estados de solicitud de pólizas de seguro' operationId: listaDeEstadosDeSolicitudDePlizasDeSeguro description: 'Enumera los estados de solicitud de pólizas de seguro.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: error: 'Unauthenticated: Your token is invalid.' properties: error: type: string example: 'Unauthenticated: Your token is invalid.' tags: - 'Tarificador ERSM' /ersmtarificador/polizas/descargas: get: summary: 'Descarga de documentación.' operationId: descargaDeDocumentacin description: "Descarga de pólizas, certificados o cualquier documentación generada en una respuesta de tarificación y/o\npre-emisiones y emisiones." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: error: 'Unauthenticated: Your token is invalid.' properties: error: type: string example: 'Unauthenticated: Your token is invalid.' tags: - 'Tarificador ERSM' /ersmtarificador/polizas/personalizacion: post: summary: 'Presupuestos personalizados' operationId: presupuestosPersonalizados description: '' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: { } tags: - 'Tarificador ERSM' /ersmtarificador/polizas/product-form: post: summary: Afinaciones operationId: afinaciones description: "## Biblioteca de Formularios de Producto\n\nHay muchos productos disponibles en la plataforma Avant2. La mayoría define un conjunto\nde opciones específicas que deben proporcionarse para completar la calificación del riesgo\ncubierto por el seguro. Estas opciones las definen los propios proveedores y varían\nconsiderablemente de un proveedor a otro, e incluso, en ocasiones, entre productos del\nmismo proveedor.\n\nRecopilar estas opciones en una aplicación front-end y mantener estos formularios cada vez\nque el proveedor introduce cambios en el producto resultaría muy engorroso y costoso para\nlos usuarios de esta API.\n\nPara evitar esta carga, se proporciona una biblioteca JavaScript que se integra fácilmente\nen aplicaciones front-end para representar cualquier formulario de producto dentro de un\niframe y permitir que los usuarios interactúen con él para seleccionar las opciones\nadecuadas para el seguro.\n\nAl utilizar la biblioteca JavaScript de Afinaciones, los usuarios podrán introducir las\nopciones específicas de cada producto y obtener el resultado como un objeto JSON que puede\nutilizarse para:\n\n- Pre emitir una oferta\n- Finalizar una oferta\n- Recalificar una oferta de seguro\n\nEsta biblioteca se actualizará periódicamente para reflejar los cambios en los productos,\nde modo que siempre esté sincronizada con los requisitos del proveedor.\n\n---\n\n## Cargar la librería\n\n```html\n\n```\n\n---\n\n## Contenedores requeridos en el frontend\n\nEn el frontend se deben tener identificados dos contenedores:\n\n- alert-error\n- product-options\n\nEn ellos se mostrarán los errores del iframe y el JSON con el resultado de los valores\nescogidos.\n\n```html\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n```\n\n---\n\n## Tipos de formulario\n\n- ReRating (pre emisión)\n- PolicyApplication (emisión de póliza)\n\n---\n\n## Ejemplo de inicialización\n\n```javascript\nconst alertErrorEl = document.getElementById(\"alert-error\");\nconst productOptionsViewerEl = document.getElementById(\n \"product-options\"\n);\nlet productOptionsEditor;\n\nasync function getProductFormOptions() {\n alertErrorEl.style.display = \"none\";\n let values;\n\n try {\n values = await productForm.getProductOptions(\n } catch (error) {\n alertErrorEl.innerHTML = \"There are some validation errors.\";\n alertErrorEl.style.display = \"block\";\n return false;\n }\n\n productOptionsViewerEl.value = JSON.stringify(values);\n return true;\n}\n\nasync function renderProductForm() {\n const formTypeEl = 'ReRating'; /Tipo de formulario\n const productFormCardEl = document.getElementById(\"product-form-card\");\n const productFormWrapperEl = document.getElementById(\n \"product-form-wrapper\"\n );\n\n try {\n productFormWrapperEl.style.display = \"block\";\n\n alertErrorEl.style.display = \"none\";\n productFormCardEl.style.display = \"block\";\n\n const quote = JSON.parse('{\"id\":\"Q1714312775\"}');\n console.log(\"Using quote object:\", quote);\n\n // Call render method with quote object\n await productForm.render(quote, formTypeEl);\n //getOptionsBtn.disabled = false;\n } catch (error) {\n alertErrorEl.innerHTML = `Error: ${error}`;\n alertErrorEl.style.display = \"block\";\n productFormCardEl.style.display = \"none\";\n } finally {\n //renderProductFormBtn.disabled = false;\n }\n}\n\nlet productForm, quoteEditor;\n\nwindow.avantProductFormInit = () => {\n\n productForm = new AvantProductForm(\n \"product-form-iframe\",\n (request) => {\n return fetch(\"https://apiersm.net/ersmtarificador/polizas/product-form\", {\n method: \"POST\",\n body: '{\"method\":\"POST\",\"path\":\"/product-form/init-data\",\"quote\":\"Q1714312775\",\"formType\":\"ReRating\",\"avant2User\":\"usuario@ersm.net\"}',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept-Version\": \"1.0\",\n \"Authorization\": \"Bearer {api_login_bearer}\"\n }\n }).then(async (res) => {\n const response = await res.json();\n\n if (res.status === 200) {\n return response;\n }\n\n throw new Error(String(response.message || response.error));\n });\n }\n );\n};\n```\n\n---\n\nEl formulario dibujará las opciones específicas del producto seleccionado.\n\nEl JSON obtenido en el objeto **product-options** es el que debe enviarse en el campo\n**options** dentro de:\n\n- pre emisión\n- solicitud de póliza\n\n---\n\n## Ejemplo de datos enviados\n\n```json\n{\n \"method\": \"POST\",\n \"path\": \"/product-form/init-data\",\n \"quote\": \"Q1714312775\",\n \"formType\": \"ReRating\",\n \"avant2User\": \"usuario@ersm.net\"\n}\n```\n\n---\n\n## Ejemplo visual del formulario de afinaciones\n\n " parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: { } tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: method: type: string description: 'Método HTTP solicitado por la librería.' example: POST path: type: string description: 'Ruta interna solicitada.' example: /product-form/init-data quote: type: string description: 'Identificador de la cotización.' example: Q1714312775 formType: type: string description: 'Tipo de formulario.' example: ReRating avant2User: type: string description: 'Usuario Avant2.' example: usuario@ersm.net required: - method - path - quote - formType - avant2User /ersmtarificador/listados/aseguradoras: get: summary: Aseguradoras operationId: aseguradoras description: 'Lista de las compañías aseguradoras totales con las que trabaja el tarificador.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 1 name: Axa description: 'Axa Seguros' imageUrl: 'https://app.avant2.es/assets/company/1/logo.svg' - id: 2 name: Allianz description: 'Allianz Seguros' imageUrl: 'https://app.avant2.es/assets/company/2/logo.svg' properties: status: type: integer example: 200 content: type: array example: - id: 1 name: Axa description: 'Axa Seguros' imageUrl: 'https://app.avant2.es/assets/company/1/logo.svg' - id: 2 name: Allianz description: 'Allianz Seguros' imageUrl: 'https://app.avant2.es/assets/company/2/logo.svg' items: type: object properties: id: type: integer example: 1 name: type: string example: Axa description: type: string example: 'Axa Seguros' imageUrl: type: string example: 'https://app.avant2.es/assets/company/1/logo.svg' 500: description: 'Error interno del servidor' content: application/json: schema: type: object example: status: 500 errors: - type: InternalError message: 'Error inesperado' path: /ersmtarificador/listados/aseguradoras status: 500 timestamp: '2026-02-02T13:09:15.842+00:00' requestId: 8745bc71-225845 properties: status: type: integer example: 500 errors: type: array example: - type: InternalError message: 'Error inesperado' path: /ersmtarificador/listados/aseguradoras status: 500 timestamp: '2026-02-02T13:09:15.842+00:00' requestId: 8745bc71-225845 items: type: object properties: type: type: string example: InternalError message: type: string example: 'Error inesperado' path: type: string example: /ersmtarificador/listados/aseguradoras status: type: integer example: 500 timestamp: type: string example: '2026-02-02T13:09:15.842+00:00' requestId: type: string example: 8745bc71-225845 tags: - 'Tarificador ERSM' /ersmtarificador/listados/tipos-de-seguros: get: summary: 'Listado de Tipos de Seguros' operationId: listadoDeTiposDeSeguros description: 'Listado de líneas de seguro que tiene asignadas a su usuario.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: error: 'Unauthenticated: Your token is invalid.' properties: error: type: string example: 'Unauthenticated: Your token is invalid.' tags: - 'Tarificador ERSM' /ersmtarificador/listados/proyectos: get: summary: 'Listado de Proyectos / Pólizas' operationId: listadoDeProyectosPlizas description: 'Devuelve un listado de proyectos realizados, filtrados por usuario y fechas.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 totalSize: 327 totalPages: 164 currentPage: 1 content: - id: 33049254 creationDateTime: '2025-05-08T19:10:54.000+02:00' holder: identification: 72080876A name: Jesus surname: Garcia risk: summary: 'Matrícula: 1827NBN' properties: status: type: integer example: 200 totalSize: type: integer example: 327 totalPages: type: integer example: 164 currentPage: type: integer example: 1 content: type: array example: - id: 33049254 creationDateTime: '2025-05-08T19:10:54.000+02:00' holder: identification: 72080876A name: Jesus surname: Garcia risk: summary: 'Matrícula: 1827NBN' items: type: object properties: id: type: integer example: 33049254 creationDateTime: type: string example: '2025-05-08T19:10:54.000+02:00' holder: type: object properties: identification: type: string example: 72080876A name: type: string example: Jesus surname: type: string example: Garcia risk: type: object properties: summary: type: string example: 'Matrícula: 1827NBN' 400: description: 'Parámetros inválidos' content: application/json: schema: type: object example: status: 400 errors: - type: ValidationError message: 'Faltan campos requeridos' path: /ersmtarificador/listados/proyectos status: 400 timestamp: '2026-02-02T13:09:15.842+00:00' requestId: 8745bc71-225845 properties: status: type: integer example: 400 errors: type: array example: - type: ValidationError message: 'Faltan campos requeridos' path: /ersmtarificador/listados/proyectos status: 400 timestamp: '2026-02-02T13:09:15.842+00:00' requestId: 8745bc71-225845 items: type: object properties: type: type: string example: ValidationError message: type: string example: 'Faltan campos requeridos' path: type: string example: /ersmtarificador/listados/proyectos status: type: integer example: 400 timestamp: type: string example: '2026-02-02T13:09:15.842+00:00' requestId: type: string example: 8745bc71-225845 tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: avant2User: type: string description: 'Usuario de Avant2.' example: usuario@ersm.net fromDate: type: date description: 'Fecha inicial en formato YYYY-MM-DD.' example: '2026-01-01' toDate: type: date description: 'Fecha final en formato YYYY-MM-DD.' example: '2026-01-01' pageNumber: type: integer description: 'Número de página.' example: 1 pageSize: type: integer description: 'Tamaño de página.' example: 50 holderIdentification: type: string description: 'Identificación del tomador.' example: 00000000A policyApplicationSubmitted: type: boolean description: 'Indica si se ha enviado una solicitud de póliza.' example: false required: - avant2User - fromDate - toDate - pageNumber - pageSize /ersmtarificador/listados/productos: get: summary: 'Listado de Productos' operationId: listadoDeProductos description: 'Obtiene el listado de productos asignados al usuario para una línea de seguros específica.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 4 name: 'Pelayo Autos' imageUrl: 'https://app.avant2.es/assets/company/3/logo.svg' configs: - id: 203505 name: '30270200 - PELAYO ERSM VERDE' supports: policyApplication: true properties: status: type: integer example: 200 content: type: array example: - id: 4 name: 'Pelayo Autos' imageUrl: 'https://app.avant2.es/assets/company/3/logo.svg' configs: - id: 203505 name: '30270200 - PELAYO ERSM VERDE' supports: policyApplication: true items: type: object properties: id: type: integer example: 4 name: type: string example: 'Pelayo Autos' imageUrl: type: string example: 'https://app.avant2.es/assets/company/3/logo.svg' configs: type: array example: - id: 203505 name: '30270200 - PELAYO ERSM VERDE' items: type: object properties: id: type: integer example: 203505 name: type: string example: '30270200 - PELAYO ERSM VERDE' supports: type: object properties: policyApplication: type: boolean example: true 403: description: 'No autorizado' content: application/json: schema: type: object example: status: 403 errors: - type: Forbidden message: 'No tienes permisos para acceder a esta información.' status: 403 properties: status: type: integer example: 403 errors: type: array example: - type: Forbidden message: 'No tienes permisos para acceder a esta información.' status: 403 items: type: object properties: type: type: string example: Forbidden message: type: string example: 'No tienes permisos para acceder a esta información.' status: type: integer example: 403 tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: avant2_user: type: string description: 'Usuario de Avant2.' example: usuario@ersm.net insuranceLine: type: string description: 'Línea de seguro.' example: '"car", "motorcycle"' required: - avant2_user - insuranceLine /ersmtarificador/catalogos/persona/idiomas: get: summary: 'Idiomas de Contacto' operationId: idiomasDeContacto description: 'Lista de idiomas que pueden ser utilizados para contactar con una persona.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: en name: Inglés - id: es name: 'Español (España)' - id: es_CL name: 'Español (Chile)' properties: status: type: integer example: 200 content: type: array example: - id: en name: Inglés - id: es name: 'Español (España)' - id: es_CL name: 'Español (Chile)' items: type: object properties: id: type: string example: en name: type: string example: Inglés 500: description: 'Error interno' content: application/json: schema: type: object example: status: 500 errors: - type: InternalError message: 'Error inesperado' path: /ersmtarificador/catalogos/persona/idiomas status: 500 properties: status: type: integer example: 500 errors: type: array example: - type: InternalError message: 'Error inesperado' path: /ersmtarificador/catalogos/persona/idiomas status: 500 items: type: object properties: type: type: string example: InternalError message: type: string example: 'Error inesperado' path: type: string example: /ersmtarificador/catalogos/persona/idiomas status: type: integer example: 500 tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/persona/estado-inactividad: get: summary: 'Estados de Inactividad' operationId: estadosDeInactividad description: 'Lista de estados de inactividad según el INE' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Student name: Estudiante - id: RetiredPensioner name: 'Jubilado o prejubilado' - id: HouseholdOrFamilyDuties name: 'Labores del hogar' properties: status: type: integer example: 200 content: type: array example: - id: Student name: Estudiante - id: RetiredPensioner name: 'Jubilado o prejubilado' - id: HouseholdOrFamilyDuties name: 'Labores del hogar' items: type: object properties: id: type: string example: Student name: type: string example: Estudiante tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/persona/ocupaciones: get: summary: Ocupaciones operationId: ocupaciones description: 'Lista de la Clasificación Nacional de Ocupaciones 2011 (CNO-11)' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - code: '2140' name: Farmacéuticos mainGroup: code: B name: 'Técnicos y profesionales científicos e intelectuales' properties: status: type: integer example: 200 content: type: array example: - code: '2140' name: Farmacéuticos mainGroup: code: B name: 'Técnicos y profesionales científicos e intelectuales' items: type: object properties: code: type: string example: '2140' name: type: string example: Farmacéuticos mainGroup: type: object properties: code: type: string example: B name: type: string example: 'Técnicos y profesionales científicos e intelectuales' tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/persona/estado-laboral: get: summary: 'Estado Laboral' operationId: estadoLaboral description: 'Lista de los estados laborales según se establece en ILOSTAT.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Employee name: Empleados - id: Employer name: Empresarios - id: OwnAccountWorker name: Autónomos properties: status: type: integer example: 200 content: type: array example: - id: Employee name: Empleados - id: Employer name: Empresarios - id: OwnAccountWorker name: Autónomos items: type: object properties: id: type: string example: Employee name: type: string example: Empleados tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/persona/generos: get: summary: Género operationId: gnero description: 'Lista de géneros' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Male name: Hombre - id: Female name: Mujer properties: status: type: integer example: 200 content: type: array example: - id: Male name: Hombre - id: Female name: Mujer items: type: object properties: id: type: string example: Male name: type: string example: Hombre tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/persona/tipos-de-documentos: get: summary: 'Tipos de Documentos' operationId: tiposDeDocumentos description: 'Lista de los tipos de identificación para personas físicas y jurídicas.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Dni name: DNI description: 'Documento Nacional de Identidad' pattern: '^\d{8}[A-HJ-NP-TV-Z]$' - id: Nie name: NIE description: 'Número de Identidad de Extranjero' pattern: '^[XYZxyz]\d{7}[A-Za-z]$' properties: status: type: integer example: 200 content: type: array example: - id: Dni name: DNI description: 'Documento Nacional de Identidad' pattern: '^\d{8}[A-HJ-NP-TV-Z]$' - id: Nie name: NIE description: 'Número de Identidad de Extranjero' pattern: '^[XYZxyz]\d{7}[A-Za-z]$' items: type: object properties: id: type: string example: Dni name: type: string example: DNI description: type: string example: 'Documento Nacional de Identidad' pattern: type: string example: '^\d{8}[A-HJ-NP-TV-Z]$' tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/persona/estado-civil: get: summary: 'Estado Civil' operationId: estadoCivil description: 'Lista de los diferentes tipos de estados civiles.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Married name: Casado - id: Divorced name: Divorciado - id: Single name: Soltero properties: status: type: integer example: 200 content: type: array example: - id: Married name: Casado - id: Divorced name: Divorciado - id: Single name: Soltero items: type: object properties: id: type: string example: Married name: type: string example: Casado tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/lugar/paises: get: summary: 'Listado de países' operationId: listadoDePases description: "Devuelve el listado de países gestionados por el tarificador.\n\nNo requiere parámetros de entrada." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - code: ESP name: España - code: FRA name: Francia properties: status: type: integer example: 200 content: type: array example: - code: ESP name: España - code: FRA name: Francia items: type: object properties: code: type: string example: ESP name: type: string example: España 500: description: '' content: application/json: schema: type: object example: status: 500 errors: - type: internal_error message: 'Unexpected error' path: /ersmtarificador/catalogos/lugar/paises status: 500 timestamp: '2026-02-02T13:09:15.842+00:00' requestId: 8745bc71-225845 properties: status: type: integer example: 500 errors: type: array example: - type: internal_error message: 'Unexpected error' path: /ersmtarificador/catalogos/lugar/paises status: 500 timestamp: '2026-02-02T13:09:15.842+00:00' requestId: 8745bc71-225845 items: type: object properties: type: type: string example: internal_error message: type: string example: 'Unexpected error' path: type: string example: /ersmtarificador/catalogos/lugar/paises status: type: integer example: 500 timestamp: type: string example: '2026-02-02T13:09:15.842+00:00' requestId: type: string example: 8745bc71-225845 tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/lugar/provincias: get: summary: 'Listado de provincias' operationId: listadoDeProvincias description: 'Devuelve el listado completo de provincias.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: '08' name: BARCELONA - id: '28' name: MADRID properties: status: type: integer example: 200 content: type: array example: - id: '08' name: BARCELONA - id: '28' name: MADRID items: type: object properties: id: type: string example: '08' name: type: string example: BARCELONA 500: description: '' content: application/json: schema: type: object example: status: 500 errors: - type: internal_error message: 'Unexpected error' properties: status: type: integer example: 500 errors: type: array example: - type: internal_error message: 'Unexpected error' items: type: object properties: type: type: string example: internal_error message: type: string example: 'Unexpected error' tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/lugar/poblaciones: get: summary: 'Listado de poblaciones por provincia' operationId: listadoDePoblacionesPorProvincia description: 'Devuelve las poblaciones asociadas a una provincia.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: '208' name: 'SANT ESTEVE SESROVIRES' - id: '209' name: 'SANT FOST DE CAMPSENTELLES' properties: status: type: integer example: 200 content: type: array example: - id: '208' name: 'SANT ESTEVE SESROVIRES' - id: '209' name: 'SANT FOST DE CAMPSENTELLES' items: type: object properties: id: type: string example: '208' name: type: string example: 'SANT ESTEVE SESROVIRES' 400: description: '' content: application/json: schema: type: object example: status: 400 errors: - type: validation_error message: 'provincia_id is required' properties: status: type: integer example: 400 errors: type: array example: - type: validation_error message: 'provincia_id is required' items: type: object properties: type: type: string example: validation_error message: type: string example: 'provincia_id is required' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: provincia_id: type: string description: 'Identificador de la provincia.' example: '08' required: - provincia_id /ersmtarificador/catalogos/lugar/tipos-de-calle: get: summary: 'Listado de tipos de calle' operationId: listadoDeTiposDeCalle description: 'Devuelve el catálogo de tipos de vía.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Calle name: Calle - id: Avenida name: Avenida properties: status: type: integer example: 200 content: type: array example: - id: Calle name: Calle - id: Avenida name: Avenida items: type: object properties: id: type: string example: Calle name: type: string example: Calle tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/lugar/ciudades: get: summary: 'Listado de ciudades por código postal' operationId: listadoDeCiudadesPorCdigoPostal description: 'Devuelve las ciudades asociadas a un código postal de España.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 4047 name: 'CORNELLA DE LLOBREGAT' province: id: 8 name: BARCELONA municipality: id: '073' properties: status: type: integer example: 200 content: type: array example: - id: 4047 name: 'CORNELLA DE LLOBREGAT' province: id: 8 name: BARCELONA municipality: id: '073' items: type: object properties: id: type: integer example: 4047 name: type: string example: 'CORNELLA DE LLOBREGAT' province: type: object properties: id: type: integer example: 8 name: type: string example: BARCELONA municipality: type: object properties: id: type: string example: '073' 400: description: '' content: application/json: schema: type: object example: status: 400 errors: - type: 'Bad Request' message: "Parameter 'postalCode' is required but is missing." path: /towns status: 400 timestamp: '2026-02-09T11:27:19.741+00:00' requestId: 039e93e5-938954 properties: status: type: integer example: 400 errors: type: array example: - type: 'Bad Request' message: "Parameter 'postalCode' is required but is missing." path: /towns status: 400 timestamp: '2026-02-09T11:27:19.741+00:00' requestId: 039e93e5-938954 items: type: object properties: type: type: string example: 'Bad Request' message: type: string example: "Parameter 'postalCode' is required but is missing." path: type: string example: /towns status: type: integer example: 400 timestamp: type: string example: '2026-02-09T11:27:19.741+00:00' requestId: type: string example: 039e93e5-938954 404: description: '' content: application/json: schema: type: object example: status: 404 errors: - type: not_found message: 'No cities found for the given postal code' status: 404 properties: status: type: integer example: 404 errors: type: array example: - type: not_found message: 'No cities found for the given postal code' status: 404 items: type: object properties: type: type: string example: not_found message: type: string example: 'No cities found for the given postal code' status: type: integer example: 404 tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: cod_postal: type: string description: 'Código postal español (5 dígitos).' example: '08940' required: - cod_postal /ersmtarificador/catalogos/pago/frecuencia: get: summary: 'Frecuencia de Pago' operationId: frecuenciaDePago description: 'Devuelve las diferentes frecuencias de pago disponibles para el producto seleccionado.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Annual name: Anual description: 'Una vez al año' installments: 1 - id: ThreeMonth name: Trimestral description: 'Cada 3 meses' installments: 4 properties: status: type: integer example: 200 content: type: array example: - id: Annual name: Anual description: 'Una vez al año' installments: 1 - id: ThreeMonth name: Trimestral description: 'Cada 3 meses' installments: 4 items: type: object properties: id: type: string example: Annual name: type: string example: Anual description: type: string example: 'Una vez al año' installments: type: integer example: 1 tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: quoteId: type: string description: 'Identificador de la cotización.' example: Q1714312775 required: - quoteId /ersmtarificador/catalogos/pago/forma: get: summary: 'Forma de Pago' operationId: formaDePago description: 'Devuelve las formas de pago disponibles para el producto seleccionado.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Company name: Compañía description: 'Bancario por la compañía de seguros' default: true properties: status: type: integer example: 200 content: type: array example: - id: Company name: Compañía description: 'Bancario por la compañía de seguros' default: true items: type: object properties: id: type: string example: Company name: type: string example: Compañía description: type: string example: 'Bancario por la compañía de seguros' default: type: boolean example: true 400: description: '' content: application/json: schema: type: object example: status: 400 errors: - type: validation_error message: 'quoteId is required' properties: status: type: integer example: 400 errors: type: array example: - type: validation_error message: 'quoteId is required' items: type: object properties: type: type: string example: validation_error message: type: string example: 'quoteId is required' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: quoteId: type: string description: 'Identificador de la cotización.' example: Q1714312775 required: - quoteId /ersmtarificador/catalogos/autos/marcas: get: summary: Marcas operationId: marcas description: 'Devuelve las marcas de vehículos disponibles.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 8 name: AUDI - id: 13 name: BMW properties: status: type: integer example: 200 content: type: array example: - id: 8 name: AUDI - id: 13 name: BMW items: type: object properties: id: type: integer example: 8 name: type: string example: AUDI tags: - 'Tarificador ERSM' requestBody: required: false content: application/json: schema: type: object properties: onlyPopular: type: string description: 'optional Indica si se devuelven solo marcas populares.' example: '"true"' /ersmtarificador/catalogos/autos/modelos: get: summary: Modelos operationId: modelos description: 'Devuelve los modelos asociados a una marca.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 14220 name: FORMENTOR - id: 14281 name: LEON properties: status: type: integer example: 200 content: type: array example: - id: 14220 name: FORMENTOR - id: 14281 name: LEON items: type: object properties: id: type: integer example: 14220 name: type: string example: FORMENTOR tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: marca_id: type: integer description: 'Identificador de la marca.' example: 1944 required: - marca_id /ersmtarificador/catalogos/autos/versiones: get: summary: Versiones operationId: versiones description: "Lista de versiones de vehículos de la marca y modelos proporcionados.\nSe pueden utilizar los filtros opcionales para acotar la lista de resultados." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - code: '20490020018' name: '1.4TSI E-HYBRID DSG TECH' engine: displacement: 1395 powerCv: 204 doors: 5 seats: 5 properties: status: type: integer example: 200 content: type: array example: - code: '20490020018' name: '1.4TSI E-HYBRID DSG TECH' engine: displacement: 1395 powerCv: 204 doors: 5 seats: 5 items: type: object properties: code: type: string example: '20490020018' name: type: string example: '1.4TSI E-HYBRID DSG TECH' engine: type: object properties: displacement: type: integer example: 1395 powerCv: type: integer example: 204 doors: type: integer example: 5 seats: type: integer example: 5 tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: marca_id: type: integer description: 'Identificador de la marca.' example: 1944 modelo_id: type: integer description: 'Identificador del modelo.' example: 14220 combustible: type: string description: 'optional Tipo de combustible.' example: Gasoline minCV: type: integer description: 'optional Potencia mínima en CV.' example: 100 maxCV: type: integer description: 'optional Potencia máxima en CV.' example: 250 minCC: type: integer description: 'optional Cilindrada mínima.' example: 1200 maxCC: type: integer description: 'optional Cilindrada máxima.' example: 2000 required: - marca_id - modelo_id /ersmtarificador/catalogos/autos/zonas-expedicion-licencia: get: summary: 'Expedición Licencia' operationId: expedicinLicencia description: 'Lista las zonas válidas para la expedición de la licencia de conducción.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Spain name: España - id: RestEU name: 'Resto de la UE' properties: status: type: integer example: 200 content: type: array example: - id: Spain name: España - id: RestEU name: 'Resto de la UE' items: type: object properties: id: type: string example: Spain name: type: string example: España tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/autos/licencias: get: summary: Licencias operationId: licencias description: 'Devuelve los tipos de licencia de conducción.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: B name: B minAge: 18 properties: status: type: integer example: 200 content: type: array example: - id: B name: B minAge: 18 items: type: object properties: id: type: string example: B name: type: string example: B minAge: type: integer example: 18 tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/autos/motores: get: summary: 'Motores / Combustibles' operationId: motoresCombustibles description: 'Devuelve los tipos de combustible disponibles.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Gasoline name: Gasolina - id: Diesel name: Diesel properties: status: type: integer example: 200 content: type: array example: - id: Gasoline name: Gasolina - id: Diesel name: Diesel items: type: object properties: id: type: string example: Gasoline name: type: string example: Gasolina tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/autos/aparcamientos: get: summary: Aparcamientos operationId: aparcamientos description: 'Devuelve los tipos de aparcamiento disponibles.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: NoGarage name: 'Vía pública' - id: PrivateGarage name: 'Garaje individual' properties: status: type: integer example: 200 content: type: array example: - id: NoGarage name: 'Vía pública' - id: PrivateGarage name: 'Garaje individual' items: type: object properties: id: type: string example: NoGarage name: type: string example: 'Vía pública' tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/autos/aseguradoras: get: summary: 'Listado de Compañías Aseguradoras' operationId: listadoDeCompaasAseguradoras description: 'Lista las Compañías Aseguradoras del grupo Automóviles relacionadas con su usuario.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - code: C0109 name: ALLIANZ - code: C0723 name: AXA properties: status: type: integer example: 200 content: type: array example: - code: C0109 name: ALLIANZ - code: C0723 name: AXA items: type: object properties: code: type: string example: C0109 name: type: string example: ALLIANZ tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/autos/fecha_matricula: get: summary: 'Fecha de Matrícula' operationId: fechaDeMatrcula description: 'Devuelve la fecha de primera matriculación del vehículo.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: date: '2018-03-08' properties: status: type: integer example: 200 content: type: object properties: date: type: string example: '2018-03-08' 400: description: '' content: application/json: schema: type: object example: status: 400 errors: - type: 'Bad Request' message: 'Invalid registration format' properties: status: type: integer example: 400 errors: type: array example: - type: 'Bad Request' message: 'Invalid registration format' items: type: object properties: type: type: string example: 'Bad Request' message: type: string example: 'Invalid registration format' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: matricula: type: string description: 'Matrícula del vehículo.' example: 8765KJC required: - matricula /ersmtarificador/catalogos/autos/complementos: get: summary: Complementos operationId: complementos description: 'Lista de complementos del vehículo' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: '153311' isPack: false description: 'SOUND & SHINE PACK...' properties: status: type: integer example: 200 content: type: array example: - id: '153311' isPack: false description: 'SOUND & SHINE PACK...' items: type: object properties: id: type: string example: '153311' isPack: type: boolean example: false description: type: string example: 'SOUND & SHINE PACK...' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: base7: type: string description: 'Código Base7 del vehículo.' example: '20490020008' required: - base7 /ersmtarificador/catalogos/autos/listado-productos: get: summary: 'Listado de Productos' operationId: listadoDeProductos description: 'Lista de los diferentes productos por compañía aseguradora disponibles en esta línea de seguros' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 14 name: 'Mapfre Autos' configs: - id: 309324 name: 'MAPFRE EBRO FINANCIADO 1' favorite: false properties: status: type: integer example: 200 content: type: array example: - id: 14 name: 'Mapfre Autos' configs: - id: 309324 name: 'MAPFRE EBRO FINANCIADO 1' favorite: false items: type: object properties: id: type: integer example: 14 name: type: string example: 'Mapfre Autos' configs: type: array example: - id: 309324 name: 'MAPFRE EBRO FINANCIADO 1' favorite: false items: type: object properties: id: type: integer example: 309324 name: type: string example: 'MAPFRE EBRO FINANCIADO 1' favorite: type: boolean example: false tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/motos/marcas: get: summary: Marcas operationId: marcas description: 'Devuelve las marcas de motocicletas disponibles.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 166 name: APRILIA - id: 13 name: BMW properties: status: type: integer example: 200 content: type: array example: - id: 166 name: APRILIA - id: 13 name: BMW items: type: object properties: id: type: integer example: 166 name: type: string example: APRILIA tags: - 'Tarificador ERSM' requestBody: required: false content: application/json: schema: type: object properties: onlyPopular: type: boolean description: 'optional Indica si se devuelven solo marcas populares.' example: true /ersmtarificador/catalogos/motos/modelos: get: summary: Modelos operationId: modelos description: 'Devuelve los modelos de motocicleta asociados a una marca.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 15165 name: ADV - id: 12299 name: 'AFRICA TWIN' properties: status: type: integer example: 200 content: type: array example: - id: 15165 name: ADV - id: 12299 name: 'AFRICA TWIN' items: type: object properties: id: type: integer example: 15165 name: type: string example: ADV tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: marca_id: type: integer description: 'Identificador de la marca.' example: 26 required: - marca_id /ersmtarificador/catalogos/motos/versiones: get: summary: Versiones operationId: versiones description: "Lista de versiones de vehículos de la marca y modelos proporcionados.\nSe pueden utilizar los filtros opcionales para acotar la lista de resultados." parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - code: '00265460001' name: ELECTRIC engine: powerCv: 2 powerKw: 1.7 seats: 2 releaseMarketDate: '2023-09-01' properties: status: type: integer example: 200 content: type: array example: - code: '00265460001' name: ELECTRIC engine: powerCv: 2 powerKw: 1.7 seats: 2 releaseMarketDate: '2023-09-01' items: type: object properties: code: type: string example: '00265460001' name: type: string example: ELECTRIC engine: type: object properties: powerCv: type: integer example: 2 powerKw: type: number example: 1.7 seats: type: integer example: 2 releaseMarketDate: type: string example: '2023-09-01' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: marca_id: type: integer description: 'Identificador de la marca.' example: 26 modelo_id: type: integer description: 'Identificador del modelo.' example: 16001 combustible: type: string description: 'optional Tipo de combustible.' example: Others minCV: type: integer description: 'optional Potencia mínima en CV.' example: 2 maxCV: type: integer description: 'optional Potencia máxima en CV.' example: 100 minCC: type: integer description: 'optional Cilindrada mínima.' example: 50 maxCC: type: integer description: 'optional Cilindrada máxima.' example: 1000 required: - marca_id - modelo_id /ersmtarificador/catalogos/motos/zonas-expedicion-licencia: get: summary: 'Expedición Licencia' operationId: expedicinLicencia description: 'Devuelve las zonas válidas para la expedición de la licencia de conducción.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Spain name: España - id: RestWorld name: 'Resto del mundo' properties: status: type: integer example: 200 content: type: array example: - id: Spain name: España - id: RestWorld name: 'Resto del mundo' items: type: object properties: id: type: string example: Spain name: type: string example: España tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/motos/licencias: get: summary: Licencias operationId: licencias description: 'Devuelve los tipos de licencia válidos para motocicletas.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: A name: A minAge: 20 - id: A1 name: A1 minAge: 16 maxDisplacement: 125 properties: status: type: integer example: 200 content: type: array example: - id: A name: A minAge: 20 - id: A1 name: A1 minAge: 16 maxDisplacement: 125 items: type: object properties: id: type: string example: A name: type: string example: A minAge: type: integer example: 20 tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/motos/experiencia: get: summary: Experiencia operationId: experiencia description: 'Devuelve los tipos de experiencia del conductor con motocicletas.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: NoExperience name: 'Sin Experiencia' - id: OtherMotorcycle name: 'Otra Motocicleta' properties: status: type: integer example: 200 content: type: array example: - id: NoExperience name: 'Sin Experiencia' - id: OtherMotorcycle name: 'Otra Motocicleta' items: type: object properties: id: type: string example: NoExperience name: type: string example: 'Sin Experiencia' tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/motos/motores: get: summary: 'Motores / Combustibles' operationId: motoresCombustibles description: 'Devuelve los tipos de combustible disponibles para motocicletas.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: Gasoline name: Gasolina - id: Others name: Otro properties: status: type: integer example: 200 content: type: array example: - id: Gasoline name: Gasolina - id: Others name: Otro items: type: object properties: id: type: string example: Gasoline name: type: string example: Gasolina tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/motos/aparcamientos: get: summary: Aparcamientos operationId: aparcamientos description: 'Devuelve los tipos de aparcamiento disponibles para motocicletas.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: NoGarage name: 'Vía pública' - id: PrivateGarage name: 'Garaje individual' properties: status: type: integer example: 200 content: type: array example: - id: NoGarage name: 'Vía pública' - id: PrivateGarage name: 'Garaje individual' items: type: object properties: id: type: string example: NoGarage name: type: string example: 'Vía pública' tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/motos/aseguradoras: get: summary: 'Listado de Compañías Aseguradoras' operationId: listadoDeCompaasAseguradoras description: 'Devuelve las compañías aseguradoras disponibles para motos.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - code: C0109 name: ALLIANZ - code: C0723 name: AXA properties: status: type: integer example: 200 content: type: array example: - code: C0109 name: ALLIANZ - code: C0723 name: AXA items: type: object properties: code: type: string example: C0109 name: type: string example: ALLIANZ tags: - 'Tarificador ERSM' /ersmtarificador/catalogos/motos/fecha_matricula: get: summary: 'Fecha de Matrícula' operationId: fechaDeMatrcula description: 'Devuelve la fecha de primera matriculación de la motocicleta.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: date: '2018-03-08' properties: status: type: integer example: 200 content: type: object properties: date: type: string example: '2018-03-08' 400: description: '' content: application/json: schema: type: object example: status: 400 errors: - type: 'Bad Request' message: 'Invalid registration format' properties: status: type: integer example: 400 errors: type: array example: - type: 'Bad Request' message: 'Invalid registration format' items: type: object properties: type: type: string example: 'Bad Request' message: type: string example: 'Invalid registration format' tags: - 'Tarificador ERSM' requestBody: required: true content: application/json: schema: type: object properties: matricula: type: string description: 'Matrícula de la motocicleta.' example: 8765KJC required: - matricula /ersmtarificador/catalogos/motos/listado-productos: get: summary: 'Listado de Productos' operationId: listadoDeProductos description: 'Devuelve los productos disponibles por aseguradora para motos.' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: status: 200 content: - id: 231 name: 'Axa Seguros Motos 2025' configs: - id: 303454 name: '756741 - AXA SEGUCAR' favorite: false properties: status: type: integer example: 200 content: type: array example: - id: 231 name: 'Axa Seguros Motos 2025' configs: - id: 303454 name: '756741 - AXA SEGUCAR' favorite: false items: type: object properties: id: type: integer example: 231 name: type: string example: 'Axa Seguros Motos 2025' configs: type: array example: - id: 303454 name: '756741 - AXA SEGUCAR' favorite: false items: type: object properties: id: type: integer example: 303454 name: type: string example: '756741 - AXA SEGUCAR' favorite: type: boolean example: false tags: - 'Tarificador ERSM' /ersmtarificador/polizas/documentos-solicitud: post: summary: 'Solicitud de Documentos' operationId: solicitudDeDocumentos description: 'Descarga los documentos adjuntos en los resultados de Pólizas o Pre-emisiones' parameters: - in: header name: Accept-Version description: '' example: '1.0' schema: type: string responses: { } tags: - 'Tarificador ERSM'