Enable Banking (PSD2)¶
Enable Banking es un proveedor de información de cuentas para la sincronización bancaria en línea. Conecta Odoo con las cuentas de los bancos españoles y de muchos otros bancos europeos mediante la interfaz PSD2 que todos los bancos deben ofrecer. Usted otorga un consentimiento en su banco una sola vez y Odoo importa después las transacciones contabilizadas en el diario de banco correspondiente, varias veces al día, sin que tenga que entregar su contraseña de banca en línea.
Úselo cuando su banco no ofrezca una exportación de archivos que quiera subir cada día, o cuando gestione muchas cuentas y quiera que las transacciones y la comprobación de saldo estén al día por sí solas.
Nota
El proveedor se entrega en el módulo Sincronización bancaria en línea: Enable Banking (PSD2) (account_bank_sync_enablebanking), que requiere el módulo Sincronización bancaria en línea. Enable Banking es un servicio de terceros: necesita una cuenta y una aplicación registrada con ellos.
Antes de empezar¶
Las personas que configuran la conexión necesitan el derecho de acceso Sincronización bancaria / Gestor. La persona que introduce la clave privada necesita Sincronización bancaria / Administrador (consulte Permisos de acceso).
Su base de datos debe servirse mediante https y el parámetro de sistema web.base.url debe contener la dirección que sus usuarios escriben en el navegador: Odoo construye a partir de ella la dirección de retorno del consentimiento bancario y el banco devuelve su navegador a esa dirección.
Su banco debe ser uno de los que ofrece Enable Banking para su país. La lista se carga desde Enable Banking al configurar la conexión.
Cada cuenta bancaria debería tener su propio diario de banco, o puede dejar que Odoo cree los diarios a partir de los IBAN que entrega el banco.
Registrar una aplicación en Enable Banking¶
Esto se hace en el sitio de Enable Banking (su Control Panel), no en Odoo. Cree una aplicación con las siguientes propiedades:
Entorno: Entorno de pruebas le ofrece bancos simulados para probar la conexión sin tocar cuentas reales; Producción le ofrece sus bancos reales. El entorno es una propiedad de la aplicación, por lo que debe registrar una aplicación por entorno.
URL de redirección (Redirect URL):
https://<your database address>/bank_sync/callback/enablebanking. Es la página a la que el banco le devuelve a Odoo tras el consentimiento. Debe ser idéntica a la dirección que utiliza Odoo, incluido el esquemahttps://; de lo contrario, el consentimiento se rechaza.Par de claves: Odoo firma cada solicitud con la clave privada de la aplicación. Genere el par en su propio ordenador y suba únicamente el certificado público, por ejemplo:
$ openssl req -x509 -newkey rsa:4096 -nodes -days 3650 \\ -keyout eb_private.pem -out eb_public.crt -subj "/CN=my-company"
También puede dejar que el Control Panel genere el par y descargar el archivo
.pem.
Enable Banking muestra entonces el id de aplicación (application id) de la aplicación. Necesita este id y el archivo de la clave privada (formato PEM) en Odoo.
Advertencia
La clave privada permite acceder a las cuentas que conecte a cualquiera que la posea. Guarde el archivo en un lugar seguro y no lo envíe nunca por correo electrónico ni lo pegue en un chat, un ticket o un documento.
Nota
Una aplicación de producción que no tiene un acuerdo comercial con Enable Banking está limitada, según las normas de Enable Banking en el momento de redactar este documento, a las cuentas bancarias de su propietario, que se vinculan en el Control Panel. Compruebe las condiciones con Enable Banking antes de conectar las cuentas de otras empresas.
Introduzca las credenciales en Odoo¶
Vaya a y, en la sección Banco y efectivo, busque Enable Banking (PSD2). El ajuste se guarda por empresa. Rellene:
Entorno de Enable Banking: Entorno de pruebas (por defecto) o Producción, según la aplicación que haya registrado. Las nuevas conexiones toman este valor.
Id. de aplicación de Enable Banking: el id que muestra el Control Panel.
Clave privada de Enable Banking (PEM): todo el contenido del archivo de la clave privada, desde la línea
-----BEGIN ... PRIVATE KEY-----hasta la líneaEND. El campo solo se muestra a los usuarios del grupo Sincronización bancaria / Administrador: los usuarios con el derecho Sincronización bancaria / Gestor pueden usar la conexión, pero no pueden leer la clave.
Haga clic en Guardar. La descripción del ajuste repite la URL de redirección que debe registrar en Enable Banking.
- menu
- Accounting ‣ Configuration ‣ Settings ‣ Bank & Cash
- shows
- The "Enable Banking (PSD2)" setting in the Bank & Cash block with the environment selector, the application id field and the masked private key field.
- highlight
- The three fields of the setting (red frame).
- data
- Environment "Sandbox", a throw-away application id, a masked key.
- module
- account_bank_sync_enablebanking
- notes
- English UI, light theme, crop to the setting; never show a real key.
Usar una aplicación distinta para una conexión¶
Una conexión puede llevar su propio Id. de aplicación de Enable Banking y su propia Clave privada de Enable Banking (PEM) en su sección Credenciales, por ejemplo cuando las cuentas pertenecen a un cliente que tiene una aplicación propia de Enable Banking. Deje ambos campos vacíos para usar los ajustes de la empresa.
Importante
En cuanto una conexión tiene su propio id de aplicación, utiliza también su propia clave privada: nunca recurre a la clave de los ajustes de la empresa. Rellene ambos campos o ninguno.
Conectar un banco¶
Vaya a y haga clic en Nuevo.
Introduzca un Nombre y seleccione Enable Banking (PSD2) como Proveedor. El Entorno se rellena a partir de los ajustes.
Haga clic en Probar conexión. Odoo firma una solicitud con su clave: el mensaje La aplicación de Enable Banking … funciona. confirma que el id de aplicación y la clave son correctos. Si el entorno de la conexión difiere del de la aplicación, el mensaje se lo indica; corrija el Entorno de la conexión.
En la sección Credenciales, mantenga el País del banco (dos letras,
ESpor defecto) o cámbielo, y establezca el Tipo de titular de la sección Consentimiento bancario: Empresa si accede a la banca en línea de la empresa, Particular en caso contrario.Haga clic en Cargar bancos. Odoo lee los bancos que Enable Banking ofrece para el país y el tipo de titular, y lo confirma con N bancos disponibles en ES. Seleccione su banco en el campo Banco.
Haga clic en Conectar con el banco. Su navegador abre la página de acceso de su banco; identifíquese y autorice el acceso a sus cuentas, como haría con cualquier operación de banca en línea.
El banco le devuelve a Odoo, a la conexión. Ahora está Conectado, y Consentimiento válido hasta muestra el final del consentimiento. El campo Estado de la sesión muestra el estado de la sesión en Enable Banking.
- menu
- Accounting ‣ Bank Sync ‣ Connections ‣ (an Enable Banking connection)
- shows
- An Enable Banking connection in state "Connected" with the Load banks, Connect to bank (or Renew consent), Discover accounts and Disconnect buttons, the Bank consent section with the expiry date, and the Credentials section with the country, the bank and the session.
- highlight
- The header buttons and the "Consent valid until" field (red frame).
- data
- Connection "Bank Company SL", bank country ES, a business account, consent valid for 180 days.
- module
- account_bank_sync, account_bank_sync_enablebanking
- notes
- English UI, light theme, 1440px width; the private key field must be empty or masked.
El consentimiento dura tanto como permita el banco, como máximo 180 días. La columna Consentimiento máx. (días) de muestra el máximo de cada banco; la lista está filtrada por España por defecto, y la columna Tipos de titular indica si el banco ofrece accesos de empresa y/o de particular.
Truco
En el entorno de pruebas, los bancos simulados de Enable Banking pueden aparecer listados bajo un país distinto del suyo. Si no encuentra el banco simulado, cambie el País del banco y vuelva a cargar los bancos.
Truco
Cargar bancos solo lista los bancos del Tipo de titular seleccionado. Después de cambiar el tipo, vuelva a cargar los bancos. Los bancos que Enable Banking ya no devuelve para el país se archivan en la lista.
Las cuentas y sus diarios¶
Cuando se completa el consentimiento, Odoo lee las cuentas de la sesión bancaria y crea una Cuenta de sincronización bancaria para cada una, en . Cada cuenta se vincula a un diario de banco:
si un diario de banco de la empresa ya tiene una cuenta bancaria con el mismo IBAN, se utiliza ese diario;
en caso contrario, Odoo crea un diario de banco con el nombre de la cuenta, con un código que empieza por
EBy el IBAN establecido como su cuenta bancaria. El diario toma la moneda de la cuenta cuando esta difiere de la moneda de la empresa.
Un diario vinculado a una cuenta tiene su ajuste Canales de comunicación bancarios cambiado a Sincronización bancaria en línea. El botón Importación (OCA) desaparece entonces de la tarjeta del diario, pero los archivos de extracto se pueden seguir importando con el enlace Importar Extracto (OCA), por ejemplo para completar el historial anterior.
Las cuentas se crean con Sincronización activada desactivada y con un intervalo Sincronizar cada de 6 horas. Para iniciar la importación automática, active Sincronización activada en cada cuenta y pida a su administrador del sistema que active la acción programada Sincronización bancaria en línea: obtener extractos (consulte Ejecutar una sincronización). Puede hacer clic en Sincronizar ahora en cualquier momento para obtener de inmediato las primeras transacciones.
Truco
Compruebe el Diario de cada cuenta nueva. Si su banco no entregó el IBAN, o si la cuenta bancaria del diario tiene un número distinto, Odoo crea un diario nuevo en lugar de usar el existente. Cambie el Diario de la cuenta y archive el diario que se creó por error.
Use Descubrir cuentas en la conexión para volver a leer las cuentas de la sesión, por ejemplo después de que el banco haya añadido una cuenta al consentimiento.
Qué se importa¶
Odoo solicita al banco las transacciones desde la última ejecución correcta, con un solapamiento de 48 horas, y contabiliza lo siguiente como líneas de extracto bancario:
solo las transacciones contabilizadas (booked). Las pendientes se ignoran hasta que el banco las haya contabilizado;
el importe, negativo para un adeudo y positivo para un abono, y la fecha contable (o, cuando el banco no la envía, la fecha valor o la fecha de la transacción);
la Etiqueta, formada por la información de concepto del banco (o, por este orden, su nota, el nombre de la contraparte o la referencia de la transacción);
el nombre y el IBAN de la contraparte, cuando el banco los entrega, que ayudan a reconocer al partner durante la conciliación;
una nota con la descripción de la transacción del banco, el número de referencia y la observación.
Cada línea conserva el id de transacción del banco, con el prefijo EB-. Cuando el banco no envía ningún id, Odoo construye uno estable a partir de la fecha, el importe, la etiqueta y la contraparte. Este id es lo que evita los duplicados: volver a ejecutar una sincronización o renovar el consentimiento nunca contabiliza una transacción dos veces.
La primera sincronización solo mira un breve período hacia atrás. Si necesita el historial anterior a la conexión, importe un archivo de extracto: Cargar el historial en un diario sincronizado en línea.
Después de las transacciones, Odoo lee el saldo de la cuenta y ejecuta la comprobación de saldo. Utiliza el saldo final contabilizado del banco; si el banco no informa de ninguno, se utiliza el saldo intermedio, el esperado, el inicial o el disponible, por este orden. Con un saldo disponible, la comparación puede diferir de su contabilidad en el importe de las operaciones pendientes.
Límites de la interfaz del banco¶
PSD2 permite que el banco limite a 4 por cuenta y día las llamadas automáticas que se realizan cuando usted no está delante de su pantalla. Odoo respeta ese límite:
la conexión tiene Máx. sincronizaciones automáticas al día establecido en 4, y las ejecuciones programadas de una cuenta se espacian al menos 6 horas. Una vez usadas las 4 ejecuciones del día (UTC), la siguiente ejecución programada espera al día siguiente;
Sincronizar ahora es una ejecución realizada estando usted presente. Odoo no la cuenta e indica al banco que la solicitud procede del cliente.
Si el banco rechaza una solicitud porque, pese a todo, se alcanzó el límite, la cuenta muestra el mensaje El banco ha rechazado la petición: se ha alcanzado el límite diario de accesos (PSD2 permite 4 actualizaciones automáticas al día). Inténtelo de nuevo mañana o sincronice manualmente.
Renovar el consentimiento¶
El consentimiento termina en Consentimiento válido hasta. Siete días antes (o el número de días indicado en Días de aviso antes de caducar), el Responsable del consentimiento recibe una actividad Renovar el consentimiento bancario. Para renovarlo:
Abra la conexión y haga clic en Renovar consentimiento.
Autorice de nuevo el acceso en su banco, como en el primer consentimiento.
De vuelta en Odoo, compruebe que Consentimiento válido hasta se ha adelantado.
Puede renovarlo en cualquier momento, también después de que la conexión haya expirado. Una renovación crea una nueva sesión en Enable Banking y cierra la anterior. Como un banco puede asignar un nuevo identificador a cada cuenta de una nueva sesión, Odoo reconoce de nuevo las cuentas por su identidad de cuenta estable o, en su defecto, por su IBAN: se conservan sus diarios, los ajustes de sincronización y las transacciones importadas. Algunos bancos solo aceptan un consentimiento activo por cliente y aplicación, de modo que un nuevo consentimiento puede poner fin al anterior.
Para poner fin al acceso de forma voluntaria, haga clic en Desconectar en la conexión y confirme: la sesión se cierra en Enable Banking, la conexión vuelve a Borrador y se necesita una nueva autorización en el banco para volver a conectar.
Solución de problemas¶
Los errores de una sincronización programada o manual se muestran en la cuenta (Último estado Error y Último error); los errores de un botón de la conexión se muestran en un cuadro de diálogo. Las claves y los tokens se eliminan de los mensajes.
Mensaje |
Qué hacer |
|---|---|
Configure primero el identificador de la aplicación y la clave privada de Enable Banking (ajustes de Contabilidad o la conexión). |
Rellene las credenciales. Compruebe también que una conexión con su propio id de aplicación tenga su propia clave. |
La clave privada de Enable Banking no es una clave RSA PEM válida. |
Pegue el contenido completo del archivo de la clave, desde la línea |
Elija primero el banco (use «Cargar bancos» para obtener la lista). |
Haga clic en Cargar bancos y seleccione el Banco. |
El banco no ha devuelto un código de autorización. |
El consentimiento se canceló o se rechazó en el banco. Haga clic de nuevo en Conectar con el banco. |
La autorización del banco ha tardado demasiado. Iníciela de nuevo. |
El consentimiento debe completarse en el plazo de una hora. Haga clic de nuevo en Conectar con el banco. |
El consentimiento bancario ya no es válido (…). Renuévelo en la conexión. |
La sesión ha expirado o se ha cerrado o revocado en el banco. La conexión pasa a Expirado: haga clic en Renovar consentimiento. |
El consentimiento bancario caducó el … Renuévelo en la conexión. |
Igual que arriba; Odoo dejó de consultar al banco cuando terminó el consentimiento. |
El banco ha rechazado la petición: se ha alcanzado el límite diario de accesos … |
Espere al día siguiente o haga clic en Sincronizar ahora. |
No se puede contactar con Enable Banking: … |
Un problema de red o una interrupción temporal del servicio. La siguiente ejecución programada lo intenta de nuevo. |
Error de Enable Banking <status> <code>: … |
La respuesta de Enable Banking, sin cambios. Un estado 4xx suele apuntar a la aplicación (por ejemplo, una URL de redirección desconocida o una discrepancia de entorno), y un estado 5xx a un problema temporal en Enable Banking o en el banco. |
El banco le devuelve a Odoo con el mensaje Bank authorization failed (La autorización del banco ha fallado) |
El banco o Enable Banking han rechazado el consentimiento; se muestra el motivo. Corríjalo y vuelva a hacer clic en Conectar con el banco. Si se rechaza la URL de redirección, compárela con la registrada en el Control Panel. |