Enable Banking (PSD2)

Enable Banking este un furnizor de informații despre conturi pentru sincronizarea bancară online. Conectează Odoo la conturile bancare ale băncilor din Spania și ale multor alte bănci europene, folosind interfața PSD2 pe care trebuie să o ofere fiecare bancă. Acordați o singură dată un consimțământ la banca dumneavoastră, iar Odoo importă apoi tranzacțiile înregistrate în jurnalul bancar corespunzător, de mai multe ori pe zi, fără să trebuiască să predați parola serviciului dumneavoastră bancar online.

Utilizați-l atunci când banca dumneavoastră nu oferă un export de fișier pe care să doriți să îl încărcați zilnic sau când gestionați multe conturi și doriți ca tranzacțiile și verificarea soldului să fie actualizate de la sine.

Notă

Furnizorul este livrat de modulul Online Bank Sync: Enable Banking (PSD2) (account_bank_sync_enablebanking), care necesită modulul Online Bank Sync. Enable Banking este un serviciu terț: aveți nevoie de un cont și de o aplicație înregistrată la ei.

Înainte de a începe

  • Persoanele care configurează conexiunea au nevoie de dreptul de acces Sincronizare bancară / Manager. Persoana care introduce cheia privată are nevoie de Sincronizare bancară / Administrator (consultați Drepturi de acces).

  • Baza dumneavoastră de date trebuie să fie servită prin https, iar parametrul de sistem web.base.url trebuie să conțină adresa pe care utilizatorii dumneavoastră o introduc în browser: Odoo construiește din el adresa de retur a consimțământului bancar, iar banca trimite browserul dumneavoastră înapoi la acea adresă.

  • Banca dumneavoastră trebuie să fie una dintre cele oferite de Enable Banking pentru țara respectivă. Lista este încărcată de la Enable Banking când configurați conexiunea.

  • Fiecare cont bancar ar trebui să aibă propriul jurnal bancar sau puteți lăsa Odoo să creeze jurnalele pornind de la IBAN-urile furnizate de bancă.

Înregistrarea unei aplicații la Enable Banking

Aceasta se face pe site-ul Enable Banking (Control Panel), nu în Odoo. Creați o aplicație cu următoarele proprietăți:

  • Mediu: Sandbox vă oferă bănci simulate pentru a încerca conexiunea fără a atinge conturi reale; Production vă oferă băncile dumneavoastră reale. Mediul este o proprietate a aplicației, deci înregistrați câte o aplicație pentru fiecare mediu.

  • Redirect URL: https://<your database address>/bank_sync/callback/enablebanking. Aceasta este pagina la care banca vă trimite înapoi în Odoo după acordarea consimțământului. Trebuie să fie identică cu adresa utilizată de Odoo, inclusiv schema https://, altfel consimțământul este refuzat.

  • Pereche de chei: Odoo semnează fiecare solicitare cu cheia privată a aplicației. Generați perechea pe propriul calculator și încărcați numai certificatul public, de exemplu:

    $ openssl req -x509 -newkey rsa:4096 -nodes -days 3650 \\
        -keyout eb_private.pem -out eb_public.crt -subj "/CN=my-company"
    

    Alternativ, lăsați Control Panel să genereze perechea și descărcați fișierul .pem.

Enable Banking afișează apoi application id al aplicației. Aveți nevoie de acest id și de fișierul cheii private (format PEM) în Odoo.

Atenționare

Cheia privată permite oricui o deține să acceseze conturile pe care le conectați. Păstrați fișierul într-un loc sigur și nu îl trimiteți niciodată prin e-mail și nu îl lipiți într-un chat, un tichet sau un document.

Notă

O aplicație de producție care nu are un acord comercial cu Enable Banking este, conform regulilor Enable Banking la momentul redactării, limitată la conturile bancare ale proprietarului său, care sunt legate în Control Panel. Verificați condițiile cu Enable Banking înainte de a conecta conturile altor companii.

Introducerea credențialelor în Odoo

Accesați Contabilitate ‣ Configurare ‣ Setări și, în secțiunea Bancă & Numerar, găsiți Enable Banking (PSD2). Setarea este stocată pe companie. Completați:

  • Mediu Enable Banking: Sandbox (implicit) sau Production, în funcție de aplicația pe care ați înregistrat-o. Conexiunile noi preiau această valoare.

  • ID aplicație Enable Banking: id-ul afișat de Control Panel.

  • Cheie privată Enable Banking (PEM): întregul conținut al fișierului cheii private, de la linia -----BEGIN ... PRIVATE KEY----- până la linia END. Câmpul este afișat numai utilizatorilor din grupul Sincronizare bancară / Administrator: utilizatorii cu dreptul Sincronizare bancară / Manager pot folosi conexiunea, dar nu pot citi cheia.

Faceți clic pe Salvează. Descrierea setării repetă redirect URL-ul care trebuie înregistrat la Enable Banking.

screenshot: accounting-bank-sync-enablebanking-settings
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.

Utilizarea unei aplicații separate pentru o conexiune

O conexiune poate avea propriile ID aplicație Enable Banking și Cheie privată Enable Banking (PEM) în secțiunea sa Credențiale, de exemplu atunci când conturile aparțin unui client care are propria aplicație Enable Banking. Lăsați ambele câmpuri goale pentru a utiliza setările companiei.

Important

De îndată ce o conexiune are propriul application id, folosește și propria cheie privată: nu revine niciodată la cheia din setările companiei. Completați ambele câmpuri sau pe niciunul.

Conectarea unei bănci

  1. Accesați Contabilitate ‣ Sincronizare bancară ‣ Conexiuni și faceți clic pe Nou.

  2. Introduceți un Nume și selectați Enable Banking (PSD2) ca Furnizor. Mediu este completat din setări.

  3. Faceți clic pe Testează conexiunea. Odoo semnează o solicitare cu cheia dumneavoastră: mesajul Enable Banking application … works. confirmă că application id și cheia sunt corecte. Dacă mediul conexiunii diferă de cel al aplicației, mesajul vă informează despre aceasta; corectați Mediu al conexiunii.

  4. În secțiunea Credențiale, păstrați Țara băncii (două litere, implicit ES) sau modificați-o și setați Account holder type din secțiunea Bank consent: Business dacă vă autentificați în serviciul bancar online al companiei, Personal în caz contrar.

  5. Faceți clic pe Încarcă băncile. Odoo citește băncile pe care Enable Banking le oferă pentru țară și pentru tipul de titular și confirmă cu N banks available in ES. Selectați banca dumneavoastră în câmpul Bancă.

  6. Faceți clic pe Connect to bank. Browserul dumneavoastră deschide pagina de autentificare a băncii; identificați-vă și autorizați accesul la conturile dumneavoastră, ca pentru orice operațiune bancară online.

  7. Banca vă trimite înapoi în Odoo, pe conexiune. Aceasta este acum Conectat, iar Consent valid until arată sfârșitul consimțământului. Câmpul Stare sesiune arată starea sesiunii la Enable Banking.

screenshot: accounting-bank-sync-enablebanking-connection
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.

Consimțământul durează cât permite banca, cel mult 180 de zile. Coloana Consimțământ max. (zile) din Contabilitate ‣ Sincronizare bancară ‣ Bănci (Enable Banking) arată maximul pentru fiecare bancă; lista este filtrată implicit pe Spania, iar coloana Tipuri de titulari arată dacă banca oferă autentificări pentru firme și/sau persoane fizice.

Sfat

În sandbox, băncile simulate ale Enable Banking pot fi listate sub o altă țară decât a dumneavoastră. Dacă nu găsiți banca simulată, modificați Țara băncii și încărcați din nou băncile.

Sfat

Încarcă băncile listează doar băncile pentru Account holder type selectat. După schimbarea tipului, încărcați din nou băncile. Băncile pe care Enable Banking nu le mai returnează pentru țară sunt arhivate în listă.

Conturile și jurnalele lor

Când consimțământul este finalizat, Odoo citește conturile din sesiunea băncii și creează câte un Cont sincronizare bancară pentru fiecare, în Contabilitate ‣ Sincronizare bancară ‣ Conturi. Fiecare cont este legat de un jurnal bancar:

  • dacă un jurnal bancar al companiei are deja un cont bancar cu același IBAN, se utilizează acel jurnal;

  • în caz contrar, Odoo creează un jurnal bancar denumit după cont, cu un cod care începe cu EB și cu IBAN-ul setat ca cont bancar al acestuia. Jurnalul preia moneda contului atunci când aceasta diferă de moneda companiei.

Un jurnal legat de un cont are setarea Fluxuri bancare comutată pe Sincronizare bancară online. Butonul Import (OCA) dispare apoi de pe cardul jurnalului, dar fișierele de extras pot fi în continuare importate cu linkul Importă extras (OCA), de exemplu pentru a completa retroactiv istoricul mai vechi.

Conturile sunt create cu Sync enabled dezactivat și un interval Sincronizează la fiecare de 6 ore. Pentru a porni importul automat, activați Sync enabled pentru fiecare cont și rugați administratorul de sistem să activeze acțiunea programată Online Bank Sync: pull statements (consultați Rularea unei sincronizări). Puteți face clic pe Sincronizează acum oricând pentru a obține imediat primele tranzacții.

Sfat

Verificați Jurnal al fiecărui cont nou. Dacă banca nu a furnizat IBAN-ul sau dacă contul bancar al jurnalului are un alt număr, Odoo creează un jurnal nou în loc să îl utilizeze pe cel existent. Modificați Jurnal al contului și arhivați jurnalul creat din greșeală.

Utilizați Descoperă conturi pe conexiune pentru a citi din nou conturile sesiunii, de exemplu după ce banca a adăugat un cont la consimțământ.

Ce se importă

Odoo solicită băncii tranzacțiile de la ultima rulare reușită, cu o suprapunere de 48 de ore, și înregistrează ca linii de extras bancar următoarele:

  • numai tranzacțiile înregistrate. Cele în curs sunt ignorate până când banca le înregistrează;

  • suma, negativă pentru un debit și pozitivă pentru un credit, și data înregistrării (sau, când banca nu o trimite, data valorii sau data tranzacției);

  • Eticheta, formată din informațiile de remitere ale băncii (sau, în această ordine, nota sa, numele contrapartidei ori referința tranzacției);

  • numele și IBAN-ul contrapartidei, atunci când banca le furnizează, care ajută la recunoașterea partenerului în timpul reconcilierii;

  • o notă cu descrierea tranzacției băncii, numărul de referință și observația.

Fiecare linie păstrează id-ul tranzacției al băncii, prefixat cu EB-. Când banca nu trimite niciun id, Odoo construiește unul stabil din dată, sumă, etichetă și contrapartidă. Acest id împiedică dublurile: rularea din nou a unei sincronizări sau reînnoirea consimțământului nu înregistrează niciodată o tranzacție de două ori.

Prima sincronizare privește înapoi doar o perioadă scurtă. Dacă aveți nevoie de istoricul anterior conexiunii, importați un fișier de extras: Încărcarea istoricului într-un jurnal sincronizat online.

După tranzacții, Odoo citește soldul contului și rulează verificarea soldului. Utilizează soldul final înregistrat al băncii; dacă banca nu raportează unul, se utilizează, în această ordine, soldul interimar, așteptat, inițial sau disponibil. Cu un sold disponibil, comparația poate diferi de contabilitatea dumneavoastră cu valoarea operațiunilor în curs.

Limitele interfeței băncii

PSD2 permite băncii să limiteze apelurile automate efectuate cât timp nu vă aflați în fața ecranului la 4 pe cont și pe zi. Odoo respectă această limită:

  • conexiunea are Max. unattended syncs per day setat la 4, iar rulările programate ale unui cont sunt distanțate la cel puțin 6 ore. După ce cele 4 rulări ale zilei (UTC) sunt consumate, următoarea rulare programată așteaptă ziua următoare;

  • Sincronizează acum este o rulare efectuată cât timp sunteți prezent. Odoo nu o contorizează și comunică băncii că solicitarea provine de la client.

Dacă banca refuză o solicitare deoarece limita a fost totuși atinsă, contul afișează mesajul The bank refused the request: daily access limit reached (PSD2 allows 4 automatic updates a day). Try again tomorrow or sync manually.

Depanare

Erorile unei sincronizări programate sau manuale sunt afișate pe cont (Last state Eroare și Ultima eroare); erorile unui buton de pe conexiune sunt afișate într-o fereastră de dialog. Cheile și token-urile sunt eliminate din mesaje.

Mesaj

Ce trebuie făcut

Set the Enable Banking application id and private key first (Accounting settings or the connection).

Completați credențialele. Verificați și că o conexiune cu propriul application id are propria cheie.

The Enable Banking private key is not a valid PEM RSA key.

Lipiți conținutul complet al fișierului cheii, de la linia BEGIN până la linia END, fără protecție prin parolă.

Choose the bank first (use «Load banks» to get the list).

Faceți clic pe Încarcă băncile și selectați Bancă.

The bank did not return an authorization code.

Consimțământul a fost anulat sau refuzat la bancă. Faceți clic din nou pe Connect to bank.

The bank authorization took too long. Please start it again.

Consimțământul trebuie finalizat în decurs de o oră. Faceți clic din nou pe Connect to bank.

The bank consent is no longer valid (…). Renew the consent on the connection.

Sesiunea a expirat sau a fost închisă ori revocată la bancă. Conexiunea este setată la Expirat: faceți clic pe Renew consent.

The bank consent expired on … Renew it on the connection.

La fel ca mai sus; Odoo a încetat să apeleze banca atunci când consimțământul s-a încheiat.

The bank refused the request: daily access limit reached …

Așteptați ziua următoare sau faceți clic pe Sincronizează acum.

Enable Banking is not reachable: …

O problemă de rețea sau o întrerupere temporară a serviciului. Următoarea rulare programată încearcă din nou.

Enable Banking error <status> <code>: …

Răspunsul Enable Banking, nemodificat. Un status 4xx indică de obicei aplicația (de exemplu un redirect URL necunoscut sau o nepotrivire de mediu), iar un status 5xx o problemă temporară la Enable Banking sau la bancă.

Banca vă returnează în Odoo cu Bank authorization failed

Banca sau Enable Banking a refuzat consimțământul; motivul este afișat. Remediați-l și faceți clic din nou pe Connect to bank. Dacă redirect URL-ul este refuzat, comparați-l cu cel înregistrat în Control Panel.