Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 8 Next »

Acceder API Market y registro

Acceder en: https://open-plus-frontend.bech.prd.fsapps.io/

image-20240215-150349.png

Registro: https://open-plus-frontend.bech.prd.fsapps.io/onboarding/company

image-20240215-160632.png

Realizado el registro de la Fintech

Tendrás acceso al API Market: https://open-plus-frontend.bech.prd.fsapps.io/applications

image-20240215-174101.png

En donde podrás:

  • Gestionar miembros colaboradores de la Fintech.

  • Revisar documentación sobre la integración con la plataforma.

  • Crear una nueva aplicación para consumir nuestras APIs

image-20240215-174143.png

Comencemos por crear una nueva app...

image-20240215-173754.png

Al crear una nueva aplicación deberás registrar:

  • Nombre y descripción.

  • URL para callback.

  • Imagen (opcional).

image-20240215-173909.png

La URL para callback es importante porque:

  • Identifica la aplicación Fintech (frontend) donde el cliente inicia el flujo de consentimiento.

  • Esta URL es requerida en la solicitud HTTP que crea el consentimiento.

  • La autorización ocurre en una aplicación web BancoEstado, y al finalizar, ejecuta una redirección del cliente hacia la URL de callback registrada.

A continuación, podrás escoger el paquete de APIs que requieras.

image-20240215-174727.png

Para lograr la integración con una experiencia equivalente al ambiente productivo, se sugiere escoger el paquete que utiliza Mutual TLS.

image-20240215-174855.png

Antes de confirmar y continuar, se muestra un cuadro resumen de la aplicación y las APIs vinculadas.

image-20240215-174946.png

Confirmada la creación de la nueva aplicación, se da opción de ir al gestor de aplicaciones o al panel de la aplicación que se acaba de crear.

Vamos al panel de la aplicación...

image-20240215-175959.pngimage-20240215-180150.png

Para continuar, clic sobre el producto vinculado a la aplicación...

image-20240215-180413.png

El flujo Open Finance es lo primero en desplegarse y simula el proceso de consentimiento. Inicia en la aplicación Fintech, luego muestra la autorización en BancoEstado, y finaliza con el retorno hacia la Fintech.

image-20240215-180534.png

Para comenzar, vamos a generar un consentimiento con el Flujo Open Finance (necesario para la integración en sandbox)...

image-20240215-180624.png
image-20240215-180723.png
  1. Seleccionamos Open Finance...

  2. Nuevo compartir...

image-20240215-180754.png
image-20240215-180829.png
  1. Aceptar términos y condiciones y continuar...

  2. Redirección a BancoEstado…

image-20240215-181744.png
image-20240215-182422.png

  1. Ingresar...

  2. Aceptar...

image-20240215-182654.png
image-20240215-182715.png

  1. Simula segundo factor de autenticación BancoEstado...

  2. Redirección hacia Fintech

image-20240215-183012.png

Al finalizar la simulación, se presenta un resumen que muestra al cliente los detalles del consentimiento que acaba de autorizar.

Consentimientos.pngimage-20240215-185247.png

Podemos visualizar un listado de consentimientos generados por el flujo open finance y el estado en que se encuentran. Necesitamos el ID de consentimiento para consumir la API sen Park Dev o vía Postman.

image-20240215-190719.png

En "Credenciales" tiene acceso al Client ID, certificado y llave privada mtls, elementos necesarios para interactuar con las APIs.

En este punto, está todo listo para consultar el documento técnico de integración.

image-20240215-190919.png

Solicitudes HTTP Diagrama de Secuencia – Flujo consentimiento y Consulta Datos de Cuenta

Descripción

Documento técnico. Detalla solicitudes HTTP para lograr integración del flujo de consentimiento.

Prerrequisitos

  • Registro en portal API Market.

  • Crear aplicación y vincular API cuentas.

  • Generar consentimiento mock.

  • Obtener client Id desde portal API Market.

  • Descargar certificado y llave privada desde portal (utilizar en Postman o en Curls para ejecutar solicitudes HTTP).

Documento relacionado

Diagrama de secuencia flujo consentimiento.

1. POST /token (Fintech Token)

Llamada obtener token para solicitud que crea consentimiento:

curl --location 'https://${KEYCLOAK_HOST_AND_REALM} /protocol/openid-connect/token' \
--cert /path/to/certificate.crt \
--key /path/to/private-key.key \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id= ${FINTECH_CLIENT_ID} ' \
--data-urlencode 'scope=openid'

2. POST /consents (Create Consent)

Llamada para iniciar el proceso de consentimiento, en el cual se debe asociar el rut del cliente, el alcance de los datos dentro del array de scopes (puede ser una, dos o todas las opciones para consulta de datos disponible), y la fecha de expiración del consentimiento:

curl --location 'https://${API_HOST}/consent-management/api/v1/consents' \
--cert /path/to/certificate.crt \
--key /path/to/private-key.key \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ${FINTECH_TOKEN}' \
--data '{
"data": {
"rut": "${RUT_CLIENTE}"
},
"scopes": [
"ACCOUNTS_READ",
"ACCOUNTS_BALANCES_READ",
"ACCOUNTS_TRANSACTIONS_READ"
],
"expirationDateTime": "2024-06-15T15:14:10Z",
"redirectUri": "${REDIRECT_URL_FINTECH} "
}'


NOTA: Para este curl, redirectUri debe ser la url callback registrada al momento de crear la aplicación en el API Market.

2.1. Response /consents (Create Consent):

La respuesta al crear un consentimiento contiene el campo “authorizationUrl”, que establece la url a la cual se redirige el cliente (aplicación BECH) con los parámetros necesarios para validar el consentimiento mediante clave BEPASS:

{
"id": "64e533c6f7c877001112d405",
"interactionId": "64e533c6f7c877001112d406",
"authorizationUrl": "https://appBancoEstado.cl?consentid=64e533c6f7c877001112d405&interactionid=64e533c6f7c877001112d406"
}

2.2. Redirección desde App BECH:

Una vez validado el consentimiento por el cliente con su BEPASS, se retorna el control a la fintech (redirección desde BECH) indicando mediante parámetros en la url un “ticket” (token para ejecutar consultas de datos) y el “state” (id del consentimiento):

{URL_CALLBACK}/statusView?ticket=eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiNzdmMWJiZS03MzYxLTQyYjktYjE5NS1lNDUzNGIwNTg1MTIifQ.eyJleHAiOjE2OTI3NDMyNjMsIm5iZiI6MCwiaWF0IjoxNjkyNzQyOTYzLCJwZXJtaXNzaW9ucyI6W3sicnNpZCI6IjEzMTBjMDQzLTNjZTctNGQwOC04N2VhLTA1MjFmZjBjZjY4YiJ9XSwianRpIjoiNTQzNTQxZWItMzc2NC00OTJhLWFlNTctNjNiMWFkNTRjYWVjLTE2OTI3NDI5NjM4NzgiLCJhdWQiOiJodHRwczovL2tleWNsb2FrLmJkYy5zaGFyZWQuZnNhcHBzLmlvL2F1dGgvcmVhbG1zL2NvbnNlbnQtbWFuYWdlbWVudC1kZXYiLCJzdWIiOiJlZmFlOTk3NC1jOGQyLTQzNTgtYmU4OS04YjJjNWIxNmY0M2EiLCJhenAiOiJyZXNvdXJjZS1jbGkifQ.oNQY9rbtxC5HeVkGldK4Kpn81ApuUCR0JgAUFBvd0dE&state= ${CONSENT_ID}
El ticket es equivalente al “Fintech Token”, puede ser utilizado para consultar los datos que el cliente autorizó en el proceso de consentimiento. Dicho token tiene una duración de 5 minutos, y se puede volver a generar ejecutando el curl 3.POST/token.

2.3.- Obtener detalles consentimiento:

Una vez ejecutada la redirección desde la aplicación BancoEstado hacia la Fintech, es posible consultar los detalles del consentimiento, y con esto, poder mostrar información al cliente sobre el alcance de los datos que autorizó, el tiempo por el cual estará vigente dicho consentimiento, etc.

curl --location 'https://${API_HOST}/consent-management/api/v1/consents/${CONSENT_ID}/' \
--cert /path/to/certificate.crt \
--key /path/to/private-key.key \
--header 'Authorization: Bearer ${FINTECH_TOKEN

Response:

{

"_id": "6515c4b96fa1f70011e2f561",
"resourceId": "25ad3e63-04e5-441a-8aba-fc4940a69d0f",
"resourceName": "WInRZVsZJM0Fc2lMwgI9ubqH_PRTmJFMMPX_WbRhZOU",
"requestorClientId": "openplus_f0dbdbdb-5ab9-405e-8af9-c34758b851f7",
"requestorSubject": "f6dec843-7843-4935-85f5-273196234c9b",
"requestorClientName": "openplus_f0dbdbdb-5ab9-405e-8af9-c34758b851f7",
"scopes": [
"ACCOUNTS_READ",
"ACCOUNTS_BALANCES_READ",
"ACCOUNTS_TRANSACTIONS_READ"
],
"status": "AUTHORISED",
"redirectUri": "https://open-plus-frontend.bech.hml.fsapps.io",
"creationDateTime": "2023-09-28T18:23:53.509Z",
"statusUpdateDateTime": "2023-10-18T15:40:37.639Z",
"expirationDateTime": "2024-06-15T15:14:10.000Z",
"data": {
"rut": "100067269"
}

}

3. POST /token (Fintech Token)

Llamada obtener token para solicitud de segundo token:

curl --location 'https://${KEYCLOAK_HOST_AND_REALM}/protocol/openid-connect/token' \
--cert /path/to/certificate.crt \
--key /path/to/private-key.key \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id= ${FINTECH_CLIENT_ID} ' \
--data-urlencode 'scope=openid'

4. POST /token (Api Token)

Llamada obtener token para solicitud de datos:

curl --location 'https://${API_HOST}/consent-management/api/v1/oauth/token' \
--cert /path/to/certificate.crt \
--key /path/to/private-key.key \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ${FINTECH_TOKEN} ' \
--data '{

"grant_type": "refresh_token",
"extras": {
"consentId": "${CONSENT_ID} "
}

}'

5. GET /accounts

curl --location 'https://${API_HOST}/open-banking-chile/accounts/v2/accounts?page=1&page-size=25&accountType=&pagination-key=7a6b0f9b-6770-49aa-8704-e407d6d340e3' \
--cert /path/to/certificate.crt \
--key /path/to/private-key.key \
--header 'x-fapi-auth-date: Sun, 10 Sep 2023 19:43:31 UTC' \
--header 'x-fapi-customer-ip-address: 1.1.1.1' \
--header 'x-fapi-interaction-id: ${CONSENT_ID} \
--header 'x-customer-user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36' \
--header 'Authorization: Bearer ${API_TOKEN} '

Paso a producción API Market

image-20240215-192210.png

Ejecutada la solicitud para paso a producción de una aplicación, y aprobada por BancoEstado, los pasos a seguir son los que se detallan a continuación…

Generar Certificado y Llave

image-20240215-192354.png

Como primer paso se debe generar un certificado y llave. Podemos utilizar el siguiente comando:

openssl req new newkey rsa:2048 nodes keyout client.key out client.csr

Esto genera dos archivos dentro de la carpeta en donde es lanzado el comando.

Subir CSR y descargar Certificado de seguridad

Podemos ver los archivos generados:

image-20240215-192519.pngcredenciales.png
image-20240215-194736.png

Dentro de " Credenciales " en la pestaña "PRODUCCIÓN" debemos subir el archivo crt antes generado.

image-20240215-195217.png

Luego de subir el archivo, se desbloquea el botón que nos permite descargar el certificado de seguridad asignado.

Configurar Certificados Producción

Ahora, tenemos los archivos generados con openssl y el certificado asignado descargado:

image-20240215-195542.png

Para utilizar las URLs productivas, debemos configurar para cada host de producción, el certificado designado que acabamos de descargar y la llave que fue generada con openssl:

image-20240215-195904.png

Nota: En este punto podemos realizar el proceso completo para consentimiento de consulta de datos en producción, para lo cual, es importante que el usuario que otorgará dicho consentimiento sea cliente BancoEstado y cuente con clave BEPASS activa

Requisitos para activación de BEPASS:

  • Crear clave BEPASS en APP BancoEstado

  • Realizar alguna transacción, por ejemplo, una transferencia por más de 50K CLP ($50.001).

  • Realizada la transacción, en 72 horas se logra activación completa BEPASS. Es importante destacar que el conteo de las 72 horas comienza únicamente después de haber ejecutado la transacción

  • No labels