Scoring de solvencia
La llamada al servicio Scoring será responsable de analizar la solvencia de los intervinientes en la operación. En cada evaluación, se podrá incluir hasta cuatro inquilinos, quienes compartirán la carga de solvencia. Además, el servicio permitirá añadir un avalista para un inquilino específico, brindando mayor flexibilidad y reduciendo la carga para aquel con menor puntuación de solvencia.
Este servicio tiene como misión devolver un resultado de viabilidad, que puede ser uno de los siguientes:
✅ Aprobado : La operación es viable y el importe de la póliza se confirma de inmediato.
🔄 En tramite : Se ha detectado un riesgo que requiere una evaluación más detallada por parte de nuestros agentes, con la documentación correspondiente.
❌ Denegado : Avalisto no aprueba la operación por motivos justificados, como impagos previos de los intervinientes o un riesgo de impago inasumible, entre otros.
Request
📌 Recuerda que Avalsito dispone de varios entornos. Para más información, consulta 🔍 Enviroment .
Solicitamos un analisis de solvencia :
1- En Authorization comprobamos los parámetros.
2- Con una solicitud tipo ‘Post’ apuntaremos a la URL del entorno necesario.
3- Indicaremos en el Body la estructura de datos requerida en formato JSON.
4- Código cURL.
1. Authorization (Postman)
Key | Value | Requirement | DataType |
---|---|---|---|
Auth Type | Bearer Token | Required | parameter |
Token | access_token | Required | String * |
(*)access_token lo introduciremos en Postman sin comillas, a pesar de ser un String.
2. Enter URL (Postman)
Key | Value |
---|---|
URL | {baseURL} |
Method | Post |
Content-Type | raw |
3. Body (Postman)
Variable | Description | Requirement | DataType |
---|---|---|---|
userName | Nombre de usuario | Required | String |
password | Contraseña de usuario | Required | String |
economicRequest | (Renta y duración póliza) | Required | EconomicRequest |
interveningParties | (Inquilinos y Avalista) | Required | InterveningParties |
operationAddress | (Dirección de riesgo) | Required | OperationAddress |
🔷 username: Identificación del usuario que realiza la solicitud (diferente al usuario vinculado a la compañía), proporcionada por el equipo de IT de Avalisto.
🔷 password: Clave de acceso vinculada al usuario, también suministrada por el equipo de IT de Avalisto.
🔷 economicRequest: (3.1)
🔷interveningParties: (3.2)
🔷operationAddress: (3.3)
3.1 EconomicRequest
Variable | Description | Requirement | DataType |
---|---|---|---|
amount | Renta mensual alquiler | Required | String |
contractDuration | Duración anual de póliza en meses | Required | Int |
🔷 amount: Renta mensual debe ser superior a 199 y menor de 60,000.
🔷 contractDuration: Duración póliza indica los meses de cobertura. Recuerda que existen coberturas mayores a 12 meses; según el contrato, pueden ser de 12, 18 o 24 meses.
3.2 InterveningParties
Variable | Description | Requirement | DataType |
---|---|---|---|
intervenerType | Inquilino(1) o avalista(2) | Required | Int |
person | Información del interviniente | Required | Person |
percentage | Porcentaje de carga para interviniente | Required | Double |
🔷 intervenerType: Indica el tipo de interviniente, 1 para inquilino y 2 para avalista.
🔷 person: (3.2.1)
🔷 percentage: Carga que soporta cada inquilino, dividimos 1 entre el número de inquilinos; ejemplo de 2 inquilinos 0,50 por cada uno.
3.2.1 Person
Variable | Description | Requirement | DataType |
---|---|---|---|
address | Dirección actual del interviniente | Required | Address |
personalData | Datos personales del interviniente | Required | PersonalData |
🔷 address: (3.2.1.1)
🔷 personalData: (3.2.1.2)
3.2.1.1 Address
Variable | Description | Requirement | DataType |
---|---|---|---|
fullAddress | Calle, número, piso | Required | String |
zipCode | Código postal | Required | String |
town | Ciudad/Pueblo | Required | String |
province | Provincia | Required | String |
additionalInfo | Información adicional | Required | String |
🔷 fullAddress: Todos los datos de la description son obligatorios, importante separar cada uno de ellos por una coma (Ejemplo en la estructura JSON).
🔷 zipCode: El Código postal debe corresponder a la zona seleccionada, si comienza con un 0 este nunca debe omitirse.
🔷 town: Población.
🔷 province: Provincia.
🔷 additionalInfo: Añada si lo desea información adicional referente a la dirección, si NO desea añadir nada el campo debe contener valor null.
3.2.1.2 PersonalData
Variable | Description | Requirement | DataType |
---|---|---|---|
documentNumber | Número de documento | Required | String |
documentType | Tipo de documento | Required | String |
Email de contacto | Required | String | |
fullName | Nombre y Apellidos | Required | String |
phones | Teléfonos de contacto | Required | String[ ] |
renterIsFreelance | Es autónomo | Required | Bool |
firstName | Nombre | Required | String |
lastName | Apellidos | Required | String |
birthDate | Fecha de nacimiento | Required | String |
🔷 documentNumber: Números y letras del documento.
🔷 documentType: El tipo de documento será NIF, NIE o CIF; este formato debe coincidir con el documentNumber.
documentNumber(00000000T) + documentType(CIF) = Error.
documentNumber(00000000T) + documentType(NIF) = Válido.
🔷 email: Email de contacto.
🔷 fullName: firstName + lastName, sin comas.
🔷 phones: Array para tantos teléfonos de contacto como queramos.
🔷 renterIsFreelance: Indica si el interviniente es autónomo.
🔷 firstName: Nombre.
🔷 lastName: Apellidos.
🔷 birthDate: Fecha de nacimiento, debe ser mayor de edad.
3.3 OperationAddress
Variable | Description | Requirement | DataType |
---|---|---|---|
fullAddress | Calle, número, piso | Required | String |
zipCode | Código postal | Required | Int |
province | Ciudad/Pueblo | Required | String |
town | Provincia | Required | String |
AdditionalInfo | Información adicional | Required | String |
Risk | Tipo de inmueble | Required | String |
🔷 fullAddress: Todos los datos de la description son obligatorios, importante separar cada uno de ellos por una coma (Ejemplo en la estructura JSON).
🔷 zipCode: El Código postal debe corresponder a la zona seleccionada, si comienza con un 0 este nunca debe omitirse.
🔷 town: Población.
🔷 province: Provincia.
🔷 additionalInfo: Añada si lo desea información adicional referente a la dirección, si NO desea añadir nada el campo debe contener valor null.
🔷 Risk: Indica el tipo de inmueble, Residencial (Viviendas) o Comercial (Locales).
El Body de la solicitud para 1 inquilino en formato JSON con la siguiente estructura:
{ "userName": "userDocuavalistocom", "password": "passwordDocu", "economicRequest": { "amount": "1200,54", "contractDuration": 12 }, "interveningParties": [ { "intervenerType": 1, "person": { "address": { "fullAddress": "calle De El Escorial,50,2b", "zipCode": "28100", "town": "Alcobendas", "province": "Madrid", "additionalInfo": null }, "personalData": { "documentNumber": "00000000R", "documentType": "NIF", "email": "emaildocu@avalisto.com", "fullName": "NombreDocu Apellido1Docu Apellido2Doc", "phones": [ "666555444" ], "renterIsFreelance": false, "firstName": "NombreDocu", "lastName": "Apellido1Docu Apellido2Docu", "birthDate": "21/12/1970" } }, "percentage": 1 } ], "operationAddress": { "fullAddress": "Camino de las Huertas,8,4 IZDA", "zipCode": "28021", "province": "Alcorcon", "town": "Madrid", "AdditionalInfo": null, "Risk": "Residencial" }}
El Body de la solicitud admite hasta 4 inquilinos + 1 avalista; en el Array de interveningParties seguiremos la siguiente estructura.
💡 El siguiente ejemplo será con 2 inquilinos + Avalista.
"interveningParties": [ { "intervenerType": 1, "person": { "address": { "fullAddress": "calle De El Escorial,50,2b", "zipCode": "28100", "town": "Alcobendas", "province": "Madrid", "additionalInfo": null }, "personalData": { "documentNumber": "00000000R", "documentType": "NIF", "email": "emaildocu@avalisto.com", "fullName": "NombreDocu Apellido1Docu Apellido2Doc", "phones": [ "666555444" ], "renterIsFreelance": false, "firstName": "NombreDocu", "lastName": "Apellido1Docu Apellido2Docu", "birthDate": "21/12/1970" } }, "percentage": 0.50 }, { "intervenerType": 1, "person": { "address": { "fullAddress": "calle De El Escorial,10,BAJO C", "zipCode": "28100", "town": "Alcobendas", "province": "Madrid", "additionalInfo": null }, "personalData": { "documentNumber": "00000000T", "documentType": "NIF", "email": "emaildocu@avalisto.com", "fullName": "NombreDocuBis Apellido1DocuBis Apellido2DocBis", "phones": [ "666555444" ], "renterIsFreelance": false, "firstName": "NombreDocuBis", "lastName": "Apellido1DocuBis Apellido2DocuBis", "birthDate": "03/04/2000" } }, "percentage": 0.50 }, { "intervenerType": 2, "relations": ["00000000T"], "person": { "address": { "fullAddress": "calle De El Escorial,69,1º 2", "zipCode": "28100", "town": "Alcobendas", "province": "Madrid", "additionalInfo": null }, "personalData": { "documentNumber": "00000000Z", "documentType": "NIF", "email": "emaildocu@avalisto.com", "fullName": "NombreDocuAvalista Apellido1DocuAvalista Apellido2DocAvalista", "phones": [ "666555444" ], "renterIsFreelance": false, "firstName": "NombreDocuAvalista", "lastName": "Apellido1DocuAvalista Apellido2DocuAvalista", "birthDate": "18/01/1969" } }, "percentage": null } ], "operationAddress":
⚠️❗Avalista añade 1 variable más respecto al inquilino, relations [“00000000T”] es un array donde indicamos el documento del inquilino al que avala.
Además, intervenerType tendrá un valor de 2 y percentage será null.
4. Código cURL
curl --location 'https://api.avalisto.com/api/scoring' \--header 'Authorization: Bearer QYZlIPMCgosyEsyPLkfzCLfFva4CZVsGz2hPXvZdkKFAfeGvycf28RHJdMyO7eVg2uBxmdvXtURgHn7GDUppDrzWH13u2FW5kcwNYxurG5P_Fnuchalp1gXvzCW7U2bk8WY3joIev2wr30N0xLcms4M9fSHEWuJMKvUncp6QEH9y0iTIdv-b_cIImSLRbCd7JT-67olbVHz4-we4h4rHwbY4Ihhw0DQNrSDfleoi30uFkCzTFZICvibckxPfELBfGl_FXevFXSiDhyEotC3ZyfJi0THFSfPO1Ue4z526nLzhdlAsZT8KDc3EwWdygImS' \--header 'Content-Type: application/json' \--data-raw '{ "userName": "userDocuavalistocom", "password": "passwordDocu", "economicRequest": { "amount": "1200,54", "contractDuration": 12 }, "interveningParties": [ { "intervenerType": 1, "person": { "address": { "fullAddress": "calle De El Escorial,50,2b", "zipCode": "28100", "town": "Alcobendas", "province": "Madrid", "additionalInfo": null }, "personalData": { "age": 0, "documentNumber": "00000000R", "documentType": "NIF", "email": "emaildocu@avalisto.com", "fullName": "NombreDocu Apellido1Docu Apellido2Doc", "phones": [ "666555444" ], "renterIsFreelance": false, "firstName": "NombreDocu", "lastName": "Apellido1Docu Apellido2Docu", "birthDate": "21/12/1970" } }, "percentage": 1 } ], "operationAddress": { "fullAddress": "Camino de las Huertas,8,4 IZDA", "zipCode": "28021", "province": "Alcorcon", "town": "Madrid", "AdditionalInfo": null, "Risk": "Residencial" }}'
Response
📌 Una respuesta exitosa nos devolverá
✅ 200 OK. Request successful. The server has responded as required
El Body de respuesta será en formato JSON con la siguiente estructura:
{ "ContractingId": 00000, "Decision": "A", "Resolution": "Scoring Result: Approved;Environment Prod, non-binding result.", "Price": "185,65", "Errors": []}
🔷 “ContractingId”: Requerido para continuar con las acciones relacionadas.
🔷 “Decision”: Resultado de la operación sin detalle.
🔷 “Resolution”: Indica el resultado obtenido, el entorno de ejecución y si tiene carácter vinculante.
🔷 “Price”: Pecio de la póliza.
🔷 “Errors”: Muestra errores sin interrumpir la operación.
Para las operaciones con resultado en trámite (T) Avalisto solicitará documentación para aprobar la operación si procede.
Posibles resultados del scoring:
Decision | Description | Required documents |
---|---|---|
A | Approved | No |
T | Under review | Si |
D | Denied | No |
❌ Error: Si la solicitud no prosperó, consulta el apartado ⚠️ Errores para más información.
Avalisto emplea códigos de respuesta HTTP estándar para señalar el éxito o fracaso de una solicitud a la API.
El Body de respuesta será en formato JSON con la siguiente estructura:
{ "ContractingId": 0, "Decision": null, "Resolution": "Request not evaluable", "Price": "", "Errors": [ { "Code": "EI300", "Message": "Rent file (amount) must be filled." } ]}
El mensaje de error será descriptivo.