# ENDPOINTS: PLAN SOCIO
## PRECARGA
#### Description
Endpoint para solicitar los datos nececsarios de la aplicación; datos de cuotas, covertura, pago automatico cta. vista, contratos, datos para la sección de firma
#### Request
##### Endpoint: [URL]/api/v1/bussiness
##### Method: GET
##### Parametros: N/A
#### Response
```json
{
"data": {
"quota": number, // valor de la cuota
"pac": {
"payDays": [number, number, ...],
"amountRange": {
"min": number,
"max": number
}
},
"contracts": {
"section": [{
"id": number,
"name": string,
"contracts": [{
"id": number,
"name": string,
"data": {
"descriptions": [string, string, ...],
"alerts": [{ // alertas por contrato
"type": string, // info, warning, error,
"title": string,
"description": string
}]
},
"link": string // URL del contrato
}]
}]
},
"mandatoPago": {
"id": number,
"link": string
},
"sign": {
"timeRetry": number
}
}
}
```
## DATOS GEOGRÁFICOS
#### Description
Endpoint para obtener datos de regiones y comunas.
**Nota**: Por cada región y comuna se debe indicar la cobertura del servicio de delivery
#### Request
##### Endpoint: [URL]/api/v1/geographical-data
##### Method: GET
##### Parametros: N/A
#### Response
```json
{
"data": {
"regions": [{
"id": string, // "01" | "02" | "03" | ...
"name": string,
"coverage": boolean,
"communes": [{
"id": string, // "0020" | "0405"
"name": string,
"coverage": boolean
}, {
"id": string, // "0020" | "0405"
"name": string,
"coverage": boolean
}, {
"id": string, // "0020" | "0405"
"name": string,
"coverage": boolean
}, { ... }]
}, {
"id": string, // "01" | "02" | "03" | ...
"name": string,
"coverage": boolean,
"communes": [{
"id": string, // "0020" | "0405"
"name": string,
"coverage": boolean
}, {
"id": string, // "0020" | "0405"
"name": string,
"coverage": boolean
}, {
"id": string, // "0020" | "0405"
"name": string,
"coverage": boolean
}, { ... }]
}, { ... }]
}
}
```
## PANTALLA 1 - DATOS PERSONALES
#### Description
Endpoint para enviar los datos del usuario y recibir la validación de backend. Se llama al intentar continuar al paso 2.
#### Request
##### Endpoint: [URL]/api/v1/personal-contact-data
##### Method: POST
##### Parametros:
__OLD VERSION:__
```json
{
"personalData": {
"firstName": string,
"firstSurname": string,
"secondSurname": string,
"rut": string,
"serie": string
},
"contactData": {
"phone": string, // +5691111111
"email": string
},
"addressData": {
"region": string,
"commune": string,
"street": string,
"number": string,
"other": string
}
}
```
__NEW VERSION__
```json
{
"personalData": {
"firstName": string,
"firstSurname": string,
"secondSurname": string,
"rut": string,
"serialNumber": string
},
"contactData": {
"phone": string, // +5691111111
"email": string,
"street": string,
"region": string,
"commune": string,
"country": string,
"numeration": string,
"other": string
}
}
```
#### RESPONSE
##### OK - status: 200
```json
{
"data": {
"code": number,
"message": string,
"coverageAddress": boolean,
"token": string
}
}
```
##### IDENTITY ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### BLACKLIST ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### IS CLIENT ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### IS UNDER AGE ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### IS JURIDIC PERSON ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### FORMAT ERROR (rut, email, numero serie, teléfono, largo campos) - status: 406
```json
"data": {
"code": number,
"message": string
}
```
##### SERVER ERROR - status: 500
```json
"data": {
"code": number,
"message": string
}
```
## PANTALLA 2 - PERSONALIZACIÓN DE PRODUCTOS
#### Description
Endpoint para enviar los datos reyenados en el paso 2
#### Request
##### Endpoint: [URL]/api/v1/customize-products
##### Method: POST
##### Parametros:
```json
{
"quotes": number,
"pac": {
"status": boolean,
"amount": number,
"payday": number
},
"delivery": {
"particular": boolean,
"region": string,
"commune": string,
"street": string,
"number": string,
"other": string // Depto, block, otro
}
}
```
#### RESPONSE
##### PRODUCTS - status: 200
```json
{
"data": {
"code": number,
"message": string
}
}
```
##### QUOTE ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### PAC ERROR (campos reqeuridos, rango de monto, día de cargo) - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### DELIVERY ERROR (campos requeridos, formato de dirección) - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### SERVER ERROR- status: 500
```json
"data": {
"code": number,
"message": string
}
```
### REQUEST SEND "QUIERO QUE ME CONTACTEN"
```json
// todo: REVISAR CAMPOS DE FORMULARIO DE HAZTE SOCIO
{
"firstName": string,
"firstSurname": string,
"secondSurname": string,
"phone": string,
"email": string,
"rut": string
}
```
#### RESPONSE
NO COVERAGE - status: 200
```json
{
"data": {
"code": number,
"message": string
}
}
```
##### FORMAT OR REQUIRED ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
##### SERVER ERROR - status: 500
```json
"data": {
"code": number,
"message": string
}
```
## PANTALLA 3 - CONTRATOS
#### Description
Endpoint para enviar los datos rellenados en el paso 3 (contratos)
#### Request
##### Endpoint: [URL]/api/v1/contracts
##### Method: POST
##### Parametros:
```json
{
"paymentMandate": boolean,
"declarations": {
"fatca": boolean,
"crs": boolean
}
}
```
### RESPONSE
##### CONTRACTS - status: 200
```json
"data": {
"code": number,
"message": string
}
```
##### FORMAT OR REQUIRED ERROR - status: 403
```json
"data": {
"code": number,
"message": string
}
```
## PANTALLA 4 - SIGN
#### Description
Endpoint para obtener las preguntas para el desafío
#### Request
##### Endpoint: [URL]/api/v1/generateChallenge
##### Method: GET
##### Parametros:
```json
{
"Header":
"Authorization": Bearer token
token:{ rut, n°serie, otros}
}
```
### RESPONSE
```json
{
"data": {
"generarResponse": {
"consultaResponse": {
"ConsultaResult": {
"codigoRetorno": 200,
"resumen": {
"rut": "16696492K",
"usuario": 44444444,
"idchallenge": "202003231248349474577208"
},
"detalle": {
"desafio": {
"preguntas": [
{
"codigoPregunta": "REQ0002 ",
"pregunta": "¿Está o estuvo su domicilio en alguna de las siguientes direcciones?",
"alternativas": [
{
"codigoRespuesta": "RSP0401 ",
"respuesta": "CANDALO AMARILLO 10396"
},
{
"codigoRespuesta": "RSP3903 ",
"respuesta": "MADRESELVAS 3443"
},
{
"codigoRespuesta": "RSP4352 ",
"respuesta": "ARTURO GOZALVEZ 3469"
},
{
"codigoRespuesta": "RSP6314 ",
"respuesta": "GALILEO 4856"
}
]
},
{
"codigoPregunta": "REQ0004 ",
"pregunta": "Dentro del último año, ¿Tuvo o tiene un vehículo con una de las siguientes características?",
"alternativas": [
{
"codigoRespuesta": "RSP2430 ",
"respuesta": "CHEVROLET GEMINI SPORT"
},
{
"codigoRespuesta": "RSP5150 ",
"respuesta": "KIA MOTORS NEW CERATO EX 1.6"
},
{
"codigoRespuesta": "RSP7933 ",
"respuesta": "MAZDA ARTIS GLX B 1.6"
},
{
"codigoRespuesta": "RSP8331 ",
"respuesta": "UNITED MOTORS RENEGADE COMMA DO200"
}
]
},
{
"codigoPregunta": "REQ0012 ",
"pregunta": "¿Cuál es la fecha de cumpleaños de su madre?",
"alternativas": [
{
"codigoRespuesta": "RSP3225 ",
"respuesta": "20-12"
},
{
"codigoRespuesta": "RSP5274 ",
"respuesta": "23-01"
},
{
"codigoRespuesta": "RSP8536 ",
"respuesta": "10-12"
},
{
"codigoRespuesta": "RSP8964 ",
"respuesta": "10-09"
}
]
},
{
"codigoPregunta": "REQ0014 ",
"pregunta": "¿Cuál de las siguientes fechas es cumpleaños de uno de sus hijos?",
"alternativas": [
{
"codigoRespuesta": "RSP3084 ",
"respuesta": "18-02"
},
{
"codigoRespuesta": "RSP6759 ",
"respuesta": "21-02"
},
{
"codigoRespuesta": "RSP6927 ",
"respuesta": "09-10"
},
{
"codigoRespuesta": "RSP8392 ",
"respuesta": "05-06"
}
]
},
{
"codigoPregunta": "REQ0023 ",
"pregunta": "¿Está o estuvo alguna vez su dirección en una de las siguientes comunas?",
"alternativas": [
{
"codigoRespuesta": "RSP0744 ",
"respuesta": "LAS CONDES"
},
{
"codigoRespuesta": "RSP5046 ",
"respuesta": "LA PINTANA"
},
{
"codigoRespuesta": "RSP5058 ",
"respuesta": "LA FLORIDA"
},
{
"codigoRespuesta": "RSP6262 ",
"respuesta": "ALHUE"
}
]
}
]
}
}
}
}
}
}
}
}
```
---
### Validar Desafio
#### Request
#### Endpoint: <span style="color:blue">[URL]/api/v1/validateChallenge</span>
#### Method: <span style="color:blue">POST</span>
##### REQUEST:
:warning: El parámetro **rut** esta en el **Request** pero después debería ir por cabecera.
```json:js
{
"rut": string,
"idChallenges": string,
"answers": [
{
"id": string
"answer": string
}, ...
]
}
```
##### RESPONSE - STATUS 200
```json:js
{
"rut": string,
"idChallenges": string,
"pin": string
}
```
##### SINACOFI ERRORS - status: 403
```json:js
{
"rut": string,
"idChallenges": string,
"pin": string
}
```
##### SERVER ERROR - status: 500
```json:js
{
"rut": string,
"idChallenges": string,
"pin": string
}
```
---
### Firma Documento
#### Endpoint: <span style="color:blue">[URL]/api/v1/signDocument</span>
#### Method: <span style="color:blue">POST</span>
##### REQUEST:
:warning: El parámetro **rut** esta en el **Request** pero después debería ir por cabecera.
```json:js
{
"rut": string,
"idChallenges": string,
"pin": string
}
```
##### RESPONSE - status 200
```json
{
"data": {
"code": number,
"message": string
}
}
```
##### FORMAT OR REQUIRED ERROR - status: 403
```json
{
"data": {
"code": number,
"message": string
}
}
```
##### SERVER ERROR - status: 500
```json:js
{
"rut": string,
"idChallenges": string,
"pin": string
}
```
<br /><br /><br /><br /><br /><br /><br /><br /><br />
---
### REQUEST SEND
SMS
```json
- "code": string
```
### RESPONSE
status 200
```json
"data": {
"code": number,
"message": string
}
```