Saltearse al contenido

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)

KeyValueRequirementDataType
Auth TypeBearer TokenRequiredparameter
Tokenaccess_tokenRequiredString *

(*)access_token lo introduciremos en Postman sin comillas, a pesar de ser un String.

2. Enter URL (Postman)

KeyValue
URL{baseURL}
MethodPost
Content-Typeraw

3. Body (Postman)

VariableDescriptionRequirementDataType
userNameNombre de usuarioRequiredString
passwordContraseña de usuarioRequiredString
economicRequest(Renta y duración póliza)RequiredEconomicRequest
interveningParties(Inquilinos y Avalista)RequiredInterveningParties
operationAddress(Dirección de riesgo)RequiredOperationAddress

🔷 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

VariableDescriptionRequirementDataType
amountRenta mensual alquilerRequiredString
contractDurationDuración anual de póliza en mesesRequiredInt

🔷 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

VariableDescriptionRequirementDataType
intervenerTypeInquilino(1) o avalista(2)RequiredInt
personInformación del intervinienteRequiredPerson
percentagePorcentaje de carga para intervinienteRequiredDouble

🔷 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

VariableDescriptionRequirementDataType
addressDirección actual del intervinienteRequiredAddress
personalDataDatos personales del intervinienteRequiredPersonalData

🔷 address: (3.2.1.1)

🔷 personalData: (3.2.1.2)

3.2.1.1 Address

VariableDescriptionRequirementDataType
fullAddressCalle, número, pisoRequiredString
zipCodeCódigo postalRequiredString
townCiudad/PuebloRequiredString
provinceProvinciaRequiredString
additionalInfoInformación adicionalRequiredString

🔷 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

VariableDescriptionRequirementDataType
documentNumberNúmero de documentoRequiredString
documentTypeTipo de documentoRequiredString
emailEmail de contactoRequiredString
fullNameNombre y ApellidosRequiredString
phonesTeléfonos de contactoRequiredString[ ]
renterIsFreelanceEs autónomoRequiredBool
firstNameNombreRequiredString
lastNameApellidosRequiredString
birthDateFecha de nacimientoRequiredString

🔷 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

VariableDescriptionRequirementDataType
fullAddressCalle, número, pisoRequiredString
zipCodeCódigo postalRequiredInt
provinceCiudad/PuebloRequiredString
townProvinciaRequiredString
AdditionalInfoInformación adicionalRequiredString
RiskTipo de inmuebleRequiredString

🔷 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:

DecisionDescriptionRequired documents
AApprovedNo
TUnder reviewSi
DDeniedNo

 

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.