Saltar al contenido principal

Servicios de Automatización Financiera (1.0.0)

A continuación se describen los diferentes endpoints usados para los servicios de portabilidad disponibles con Synaptic.

Flujo de extracción

  1. Para cada cliente (usuario final) se debe obtener un token de sesión en /auth/login.
  2. Con el token obtenido, crear una tarea de extracción usado el endpoint /tasks, el cual entrega un identificador de tarea en curso.
  3. Consultar por el estado del proceso de extracción usando el endpoint /tasks/{taskId}.

Descripción de entidades y acciones

para mas información ver entidades y acciones

Autenticación

El servicio de portabilidad utiliza dos mecanismos de autenticación:

  • apiKey: Autenticación mediante una API Key.
  • token: Autenticación con token de sesión.

Token

Obtener token de sesión

Permite obtener el token de sesión para autenticar las solicitudes posteriores

Authorizations:
apiKey

Responses

Request samples

curl -X POST "https://${URL}/api/v1/auth/login"  \
  -H "X-API-Key: ${API_KEY}"

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ikp1YW4gUMOpcmV6IiwiaWF0IjoxNTE2MjM5MDIyfQ.78YlMjUXzOKM9NM2foapnjarcbI2Qfm93-0LM0iRF1g"
}

Validar token de sesión

Valida que el token de sesión utilizado es válido, es decir, que está correctamente firmado y no ha expirado. Actualmente el token dura 1 hora sin renovación.

Authorizations:
sessionToken

Responses

Request samples

curl -X POST "https://${URL}/api/v1/auth/is-token-valid"  \
  -H "Authorization: Bearer ${SESSION_TOKEN}"

Response samples

Content type
application/json
{
  • "message": "Jwt is expired"
}

Extracción

Esta sección describe los endpoints relacionados a los procesos de extracción de datos.

Requerimientos de Credenciales

Cada entidad tiene requisitos específicos en cuanto a contraseñas. El servicio realiza una comprobación en base a esto para evitar errores o bloqueos. Al detectar que la solicitud no cumple su esquema, entrega como respuesta "password doesn't meet entity schema". Para evitar esto, considere los siguientes al definir el parámetro args.

Entidad Componentes Requeridos Longitud Contraseña Caracteres Permitidos
Banco Chile username password 4 - 20 Alfanumérico y símbolos:
!@#$%^&*()-_=+{};:,<.>
Banco Santander username password 4 - 10 Alfanumérico y símbolos:
~!@#$^*_=[]{}|;:,.?-
Banco Estado username password 4 - 8 Alfanumérico
Banco BCI username password 4 - 8 Alfanumérico
Banco Falabella username password 6 Numérico
Banco Itaú username password 8 - 10 Alfanumérico
Banco Scotiabank username password 8 - 15 Alfanumérico
Banco Ripley username password 4 Numérico
Banco Security username password 4 - 20 Alfanumérico
Servipag username password 6 - 12 Alfanumérico

Iniciar proceso de extracción

Este endpoint da inicio a un proceso de extracción, retornando el id de la tarea de extracción recién creada. El proceso de extracción se ejecuta de manera asíncrona, con lo cual se debe llamar a /api/v1/tasks/{taskId} para consultar el estado y obtener los resultados de la tarea.

Requiere como parámetro una acción de entidad (véase Entidades y acciones disponibles) y la contraseña del usuario propietario.

Authorizations:
sessionToken
Request Body schema: application/json

Datos para la creación de la tarea de extracción

action
required
string (Action)
Enum: "banco-chile:tef" "banco-chile:bill" "banco-santander:tef" "banco-santander:bill" "banco-estado:tef" "banco-estado:bill" "banco-bci:tef" "banco-bci:bill" "banco-falabella:tef" "banco-falabella:bill" "banco-itau:tef" "banco-itau:bill" "banco-scotiabank:tef" "banco-scotiabank:bill" "servipag:bill"
object

Responses

Request samples

Content type
application/json
{
  • "action": "banco-chile:tef",
  • "args": {
    }
}

Response samples

Content type
application/json
{
  • "taskId": "string"
}

Consultar el estado del proceso de extracción

Consultar el estado y/o obtener los resultados de la extracción.

Authorizations:
sessionToken
path Parameters
taskId
required
string

ID de la tarea

Responses

Request samples

curl "https://${URL}/api/v1/tasks/${TASKID}"  \
  -H "Authorization: Bearer ${SESSION_TOKEN}"

Response samples

Content type
application/json
Example

Extracción exitosa

{
  • "taskStatus": "success",
  • "taskStatusCode": 200,
  • "results": [
    ]
}

Obtener entidades y acciones disponibles

Consulta las entidades disponibles para la extracción y el listado de las acciones disponibles por entidad.

Authorizations:
apiKey

Responses

Request samples

curl "https://${URL}/api/v1/entities"  \
  -H "X-API-Key: ${API_KEY}"

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Usuario

Esta sección describe los endpoints relacionados a los usuarios

Obtén el estado del usuario por entidad

El par usuario/entidad podría estar bloqueado por múltiples procesos de extracción con respuesta de contraseña incorrecta (401)

Authorizations:
sessionToken

Responses

Request samples

curl -X POST "https://${URL}/api/v1/users/status/by-entity"  \
  -H "Authorization: Bearer ${SESSION_TOKEN}" \
  -H "Content-Type: application/json" \
  --data '{ "username": "${USERNAME}" "entity": "${ENTITY}" }'`

Response samples

Content type
application/json
Example
{
  • "enabled": true,
  • "retryAfter": null
}

Modelos Banca Personas

A continuación se describen los modelos de los endpoints relacionados a Banca Personas.

Validación de Identidad

isValid
required
boolean

Indica si la identidad de la persona fue validada exitosamente utilizando el acceso a la institución financiera

{
  • "isValid": true
}

Cuenta de Servicio

company
required
string

Compañia de servicio

alias
string

Nombre de la cuenta

userId
required
string

Número o identificador de cuenta

{
  • "company": "ENEL",
  • "alias": "Luz",
  • "userId": "1234567-8"
}

Destinatario TEF

name
required
string

Nombre del destinatario

rut
string

Rut del destinatario en formato 11.111.111-1

bankName
required
string

Banco del destinatario

bankCode
string (BankCode)
Enum: "001" "037" "012" "016" "504" "051" "039"

Código de la entidad. Este campo solo se muestra si la entidad tiene código de CMF https://www.sbif.cl/sbifweb/servlet/ConozcaSBIF?indice=7.5.1.1&idContenido=483

accountNumber
required
string

Número de cuenta del destinatario

accountType
required
string (AccountType)
Default: "corriente"
Enum: "vista" "corriente" "ahorro" "rut" "chequera_electronica" "otro"

Tipo de cuenta. Para Destinatarios TEF se usan corriente, vista y ahorro.

email
string

Email del destinatario

alias
string

Alias o nombre corto del destinatario

{
  • "name": "Juan Pérez",
  • "rut": "11.111.111-1",
  • "bankName": "Banco Estado",
  • "bankCode": "012",
  • "accountNumber": "0-000-22-22222-2",
  • "accountType": "corriente",
  • "email": "juan.perez@gmail.com"
}

PAC

companyName
string

Nombre de la empresa

companyType
string

Rubro de la empresa

userId
string

Número o identificador de cuenta

paymentLimit
number

Monto límite de pago en UF, mensual

{
  • "companyName": "ASEGURADORA X",
  • "companyType": "Seguros",
  • "userId": 1111111111,
  • "paymentLimit": 2
}

PAT

alias
required
string

Nombre dado por el usuario

state
required
string

Estado

cardType
required
string

Tipo de tarjeta. Ejemplo: Mastercard, Visa

category
required
string

Rubro o tipo de servicio

companyName
required
string

Empresa/Producto

companyCode
string

Código de empresa

serviceId
required
string

Id del servicio

cardNumber
required
string

Número de la tarjeta de crédito (con últimos dígitos)

patStartDate
string

Inicio PatPass tarjeta

lastPaymentDate
string <date>

Fecha de último pago realizado

nextPaymentDate
string <date>

Fecha de próximo pago

firstPaymentDate
string <date>

Fecha de primer pago

number or string

Monto máximo a pagar

object

Datos de la persona a la cual pertenece el PAT

origin
string

Ejemplo: Emisor, Establecimiento

instructionType
string

Ejemplo: Mandato Electrónico, Mandato Físico

channel
string

Ejemplo: Web Cliente, Archivo

{
  • "alias": "Pat Alias",
  • "state": "Inscrito",
  • "cardType": "VISA",
  • "category": "SEGUROS",
  • "companyName": "ASEGURADORA X",
  • "companyCode": "123123",
  • "serviceId": "234234",
  • "cardNumber": "***************2000",
  • "patStartDate": "2019-09-11",
  • "lastPaymentDate": "2021-04-13",
  • "nextPaymentDate": "",
  • "firstPaymentDate": "2019-11-08",
  • "paymentLimit": "NO_LIMIT",
  • "origin": "Establecimiento",
  • "instructionType": "Mandato Físico",
  • "channel": "Archivo",
  • "owner": {
    }
}

Movimiento

type
required
string (MovementType)
Enum: "inflow" "outflow"

Tipo de movimiento:

  • inflow: Abono
  • outflow: Cargo
accountNumber
required
string

Identificador de la cuenta asociada al movimiento

date
required
string <date>

Fecha del movimiento

description
string

Descripción

channel
string

Canal o sucursal

documentNumber
string

Número de documento

amount
required
number

Monto

balance
number

Balance de la cuenta después de efectuado el movimiento

{
  • "type": "outflow",
  • "accountNumber": "0011111111",
  • "date": "2021-04-01",
  • "channel": "STGO. PRINCIPAL",
  • "description": "TEF A CUENTA PROPIA N. 123123",
  • "amount": 10959,
  • "balance": 237130
}

Transferencia

type
required
string (TransferType)
Enum: "sent" "received"

Tipo de transferencia:

  • sent: Transferencia enviada
  • received: Transferencia recibida
amount
required
number

Monto

date
string <date>

Fecha de la transferencia

time
string\d{2}:\d{2}:\d{2}

Hora, minuto y segundo de la transferencia, formato HH:mm:ss

required
object (TransferAccount)

Representa al origen o destinatario de una transferencia

required
object (TransferAccount)

Representa al origen o destinatario de una transferencia

accountingDate
string <date>

Fecha contable de la transferencia

transactionId
string

Código de transacción

transactionType
string

Tipo de transferencia (glosa de la institución financiera)

status
string

Estado de la transacción

channel
string

Canal

{
  • "type": "sent",
  • "amount": 190000,
  • "date": "2021-05-05",
  • "time": "10:39:56",
  • "origin": {
    },
  • "recipient": {
    },
  • "transactionId": "01000801234567891234567U",
  • "transactionType": "Transferencia En Línea",
  • "channel": "Internet",
  • "status": "Realizada"
}

Crédito de Consumo

id
required
string

Identificador del crédito de consumo, también llamado Número de Operación o Número de Crédito

humanReadableId
required
string

Versión legible para humanos del campo id

loanAmount
required
number

Monto solicitado del crédito

balance
number

Saldo actual, también llamado saldo contable

monthlyPayment
required
number

Valor de la cuota mensual

totalPaidFees
number

Número de cuotas pagadas

totalPayments
number

Número total de cuotas

monthlyInterestRate
number

Tasa de interés mensual

caev
number

Carga Anual Equivalente Vigente (CAEV), en %. Ejemplo, un valor de 4.12 representa un CAEV de 4.12%.

nextPaymentDate
string <date>

Fecha del próximo pago, tambien llamado fecha de próximo vencimiento

description
string

Descripción del crédito

type
string (ConsumerLoanType)
Enum: "direct" "indirect"

Tipo de deuda del crédito:

  • direct: Deuda directa
  • indirect: Deuda indirecta
state
string (ConsumerLoanState)
Enum: "active" "in-arrears"

Estado del crédito:

  • active: Activo o Válido
  • in-arrears: En Mora
expiredPayments
number

Número de cuotas vencidas

previousMonthPayment
number

Valor de la cuota pagada en mes anterior

lastPaymentAmount
number

Valor de la última cuota a pagar

protectionInsurance
boolean

Tiene seguro de desgravamen

unemploymentInsurance
boolean

Tiene seguro de desempleo

currency
string

Tipo de moneda

{
  • "id": "50966556",
  • "humanReadableId": "50966556",
  • "loanAmount": 15000000,
  • "monthlyPayment": 644686,
  • "balance": 7091546,
  • "totalPaidFees": 11,
  • "totalPayments": 36,
  • "monthlyInterestRate": 2.58,
  • "caev": 19.08,
  • "nextPaymentDate": "2022-06-05",
  • "description": "CONSUMONLINE",
  • "type": "direct",
  • "state": "active",
  • "expiredPayments": 0,
  • "previousMonthPayment": 644686,
  • "lastPaymentAmount": 644686,
  • "protectionInsurance": true,
  • "unemploymentInsurance": false,
  • "currency": "CLP"
}

Crédito Hipotecario

id
required
string

Identificador del crédito hipotecario, también llamado Número de Operación o Número de Mutuo

humanReadableId
required
string

Versión legible para humanos del campo id

productName
string

Nombre del producto

deedSignDate
string <date>

Fecha de escritura

initialBalanceUf
number

Saldo inicial en UF

balanceUf
number

Saldo actual en UF

totalPayments
number

Total de cuotas del crédito hipotecario

currentPaymentNumber
number

Número de la cuota actual

closedPayments
number

Cuotas pagadas

latePayments
number

Cuotas morosas/vencidas no pagadas

latePaymentsAmountUf
number

Monto vencido no pagado, en UF

caev
number

Carga Anual Equivalente Vigente (CAEV), en %. Ejemplo, un valor de 4.12 representa un CAEV de 4.12%.

interestRateType
string

Tipo de tasa de interés aplicada. Ejemplo: Fija

interestRateChangeDate
string <date>

Fecha en que corresponde un cambio de tasa

accountChargeDay
number

Día de cargo a cuenta corriente

nextPaymentDate
string <date>

Próximo vencimiento

lastPaymentDate
string <date>

Fecha último pago

valuationUf
number

Valor tasación en UF

insuredAmountUf
number

Monto asegurado en UF

nextPaymentAmountUf
number

Monto del próximo pago en UF

object

Datos de la propiedad

{
  • "id": "011-2-33-0555-100",
  • "humanReadableId": "011-2-33-0555-100",
  • "productName": "MHP Flexible Vivienda UF BCH -UF",
  • "balanceUf": 1433.734,
  • "nextPaymentAmountUf": 15.52,
  • "nextPaymentDate": "2021-11-10",
  • "currentPaymentNumber": 116,
  • "totalPayments": 240,
  • "closedPayments": 116,
  • "caev": 4.32,
  • "latePayments": 0,
  • "latePaymentsAmountUf": 0,
  • "interestRateType": "Fija",
  • "interestRateChangeDate": "1900-01-01"
}

Reporte Financiero

required
object

Información de cuentas

required
object or null
required
object or null
{
  • "accounts": {
    },
  • "creditLine": {
    },
  • "creditCards": {
    }
}

Reporte de Inversiones

totalInvestmentAmountClp
required
number

Monto total de inversiones en CLP

required
object (TotalsByCurrency)
required
object

Instrumentos de inversión

investorProfile
string

Perfil de inversionista:

  • conservative: Conservador
  • moderated: Moderado
  • balanced: Balanceado
  • decided: Decidido
  • audacious: Audaz
{
  • "totalInvestmentAmountClp": 38280282,
  • "totalsByCurrency": {
    },
  • "instruments": {
    },
  • "investorProfile": "conservative"
}

Análisis Financiero Bancario

employerName
required
string

Nombre de la fuente del salario principal

seniority
required
number

Número de veces en que ha recibido el salario en los últimos 11 meses. (considerando desde hoy hacia atrás y solo de manera consecutiva)

salary
required
number

Monto promedio de salario pagado por employerName recibido en los últimos seniority meses

monthlyVariableIncome3Months
required
number

Monto promedio de ingresos extra de los últimos 3 meses

monthlyVariableIncome12Months
required
number

Monto promedio de ingresos extra de los últimos 12 meses

monthlyAccountFlow3Months
required
number

Monto promedio de ingresos menos egresos, de los últimos 3 meses

monthlyAccountFlow12Months
required
number

Monto promedio de ingresos menos egresos, de los últimos 12 meses

required
Array of objects (AccountFlowSource)

Detalle de las transacciones utilizadas para obtener monthlyAccountFlow12Months y monthlyAccountFlow3Months

required
Array of objects (IncomeSource)

Detalle de las transacciones utilizadas para obtener monthlyVariableIncome12Months, monthlyVariableIncome3Months y salary

{
  • "employerName": "TEF 12312312-5 SYNAPTIC SERVICIOS INF.",
  • "seniority": 11,
  • "salary": 866667,
  • "monthlyVariableIncome3Months": 1148325,
  • "monthlyVariableIncome12Months": 287081,
  • "monthlyAccountFlow3Months": -460042,
  • "monthlyAccountFlow12Months": -115010,
  • "accountFlowSources": [
    ],
  • "incomeSources": [
    ]
}

Modelos Banca Empresas

A continuación se describen los modelos de los endpoints relacionados a Banca Empresas.

Validación de Identidad

isValid
required
boolean

Indica si la identidad de la persona fue validada exitosamente utilizando el acceso a la institución financiera

{
  • "isValid": true
}

Movimiento

type
required
string (MovementType)
Enum: "inflow" "outflow"

Tipo de movimiento:

  • inflow: Abono
  • outflow: Cargo
accountNumber
required
string

Identificador de la cuenta asociada al movimiento

date
required
string <date>

Fecha del movimiento

description
string

Descripción

channel
string

Canal o sucursal

documentNumber
string

Número de documento

amount
required
number

Monto

balance
number

Balance de la cuenta después de efectuado el movimiento

{
  • "type": "outflow",
  • "accountNumber": "0011111111",
  • "date": "2021-04-01",
  • "channel": "STGO. PRINCIPAL",
  • "description": "TEF A CUENTA PROPIA N. 123123",
  • "amount": 10959,
  • "balance": 237130
}

Modelos Servicios

A continuación se describen los modelos de los endpoints relacionados a Servicios.

Cuenta de Servicio

company
required
string

Compañia de servicio

alias
string

Nombre de la cuenta

userId
required
string

Número o identificador de cuenta

{
  • "company": "ENEL",
  • "alias": "Luz",
  • "userId": "1234567-8"
}

Modelos Servicios Estatales

A continuación se describen los modelos de los endpoints relacionados a Servicios Estatales.

Validación de Identidad

isValid
required
boolean

Indica si la identidad de la persona fue validada exitosamente utilizando el acceso a la institución financiera

{
  • "isValid": true
}

Carpeta Tributaria SII

nombre
string
rut
string
fechaGeneracion
string <date-time>
object

Datos del contribuyente

Array of objects (CompaniesInfo)

Información proporcionada por el contribuyente para fines tributarios

Array of objects (Property)

Propiedades y bienes raíces

Array of objects (BoletasInfo)

Boletas de honorarios electrónicas

Array of objects (IvaDeclaration)

Declaraciones de IVA

Los códigos de cada campo del formulario se agregan como llaves a este objeto.

Array of objects (IncomeDeclaration)

Declaraciones de renta (F22)

Los códigos de cada campo del formulario se agregan como llaves a este objeto.

{
  • "nombre": "NOMBRE APELLIDO",
  • "rut": "11111111-1",
  • "fechaGeneracion": "01/01/2021 11:05",
  • "contribuyente": {
    },
  • "empresas": {
    },
  • "propiedadesBienesRaices": [
    ],
  • "boletas": {
    },
  • "iva": [
    ],
  • "renta": [
    ]
}

Situación Tributaria SII

fechaConsulta
string <date-time>
contribuyenteInicioActividades
boolean

Indica si el contribuyente presenta inicio de actividades

fechaInicioActividades
string <date>

Fecha de inicio de actividades

autorizadoImpuestosMonedaExtranjera
boolean

Indica si el contribuyente está autorizado para declarar y pagar impuestos en moneda extranjera

esEmpresaMenorTamanoProPyme
boolean

Es empresa de menor tamaño, según Ley N°20.416

Array of objects

Documentos timbrados

Array of objects

Actividades económicas vigentes

{
  • "fechaConsulta": "01-01-2021 17:01",
  • "contribuyenteInicioActividades": true,
  • "fechaInicioActividades": "01-01-2021",
  • "autorizadoImpuestosMonedaExtranjera": false,
  • "esEmpresaMenorTamanoProPyme": false,
  • "documentosTimbrados": [
    ],
  • "actividadesEconomicas": [
    ]
}

Reporte de Deudas CMF

required
Array of objects (Debt)

Deuda directa

object (DirectOrIndirecDebtTotal)
required
Array of objects (Debt)

Deuda indirecta

object (DirectOrIndirecDebtTotal)
required
Array of objects (Credit)

Créditos disponibles (líneas de crédito)

object (AvailableOrOtherCreditTotal)
required
Array of objects (Credit)

Otros créditos disponibles

object (AvailableOrOtherCreditTotal)
{
  • "availableCredits": [
    ],
  • "availableCreditsTotal": {
    },
  • "directDebts": [
    ],
  • "directDebtsTotal": {
    },
  • "indirectDebts": [ ],
  • "otherCredits": [ ]
}

Cotizaciones AFC

month
required
string <date>

Periodo de la contribución

employer
required
string

Razón social del empleador

income
required
number

Renta imponible

amount
required
number

Monto cotizado

description
required
string
Enum: "Cotiz. Trabajador" "Cotiz. Empleador"

Descripción del cotizante

{
  • "month": "05-2022",
  • "employer": "SERVICIOS INFORMAT",
  • "income": 2050872,
  • "amount": 12305,
  • "description": "Cotiz. Trabajador"
}

Empleadores AFC

subscriptionDate
required
string <date>

Fecha de suscripción

employerRut
required
string

RUT empleador

employerName
required
string

Razón social del empleador

contractType
required
string

Tipo de contrato

startDate
required
string <date>

Fecha de inicio laboral

endDate
string <date>

Fecha de término laboral

{
  • "subscriptionDate": "10-04-2017",
  • "employerRut": "77.777.777-7",
  • "employerName": "SERVICIOS INFORMAT",
  • "contractType": "DURACIÓN INDEFINIDA",
  • "startDate": "01-12-2016",
  • "endDate": ""
}

Información Personal AFC

name
required
string

Nombre

rut
required
string

RUT

birthDate
required
string <date>

Fecha de nacimiento

affiliationDate
required
string <date>

Fecha de afiliación

phone
string

Número de teléfono

email
string

Correo electrónico

street
string

Calle

number
string

Número

extra
string

Depto/block/sector/población/villa

region
string

Región

commune
string

Comuna

{
  • "name": "JUAN PEREZ",
  • "rut": "12.312.312-5",
  • "birthDate": "01-01-1988",
  • "affiliationDate'": "01-01-2009",
  • "phone": "54321054",
  • "email": "juan.perez@email.com",
  • "street": "Av. Siempre Viva",
  • "number": "123",
  • "extra": "Block A",
  • "region": "Región RM",
  • "commune": "SANTIAGO"
}

Modelos Criptoactivos

A continuación se describen los modelos de los endpoints relacionados a Criptoactivos.

Balance de Criptoactivos

exchangeName
required
string

Nombre del Exchange desde donde se extrajo la información

totalBalanceUSD
required
number

Valor total, en USD, de los criptoactivos que el usuario posee en el Exchange (según precios al momento de la extracción de la información)

required
Array of objects (CryptoBalancePair)

Listado de criptoactivos que el usuario posee en el Exchange

{
  • "exchangeName": "BINANCE",
  • "totalBalanceUSD": 377.39,
  • "balances": [
    ]
}