---
# System prepended metadata

title: 'ENDPOINTS: PLAN SOCIO'

---

# 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
}
```


