feat: Oberflaeche fuer die Bankanbindung
Einstellungen -> "Bankkonten direkt verbinden": Zugangsdaten hinterlegen, Land waehlen, Bank suchen, verbinden. Nach der Autorisierung landet man auf /bank/rueckkehr, wo der Code gegen die Sitzung getauscht wird – ueber den Server, denn der Code ist ein Einmal-Geheimnis und die Anfrage muss mit dem privaten Schluessel signiert werden, der den Server nie verlaesst. Danach stehen die gefundenen Bankkonten da und werden je einem Konto in Certain zugeordnet. Die Auswahl zeigt nur Konten passender Waehrung, und solange nichts zugeordnet ist, steht dabei, dass von diesem Konto nichts abgerufen wird. Die Einrichtungsanleitung nennt die Rueckleitungs-Adresse kopierfertig – sie muss bei Enable Banking hinterlegt werden, und ohne sie scheitert die Autorisierung mit einer Fehlermeldung der Bank, die nichts erklaert. Laeuft die Zustimmung bald ab, steht das farbig an der Verbindung statt dass der Abruf eines Tages stumm aufhoert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -190,6 +190,24 @@ export const api = {
|
||||
updateMailSender: (id, body) => request(`/mail/senders/${id}`, { method: "PUT", body }),
|
||||
deleteMailSender: (id) => request(`/mail/senders/${id}`, { method: "DELETE" }),
|
||||
|
||||
// Bankanbindung über PSD2
|
||||
getBankApp: () => request("/bank/app"),
|
||||
saveBankApp: (body) => request("/bank/app", { method: "PUT", body }),
|
||||
deleteBankApp: () => request("/bank/app", { method: "DELETE" }),
|
||||
listBanks: (country) => request(`/bank/banks?country=${encodeURIComponent(country)}`),
|
||||
connectBank: (body) => request("/bank/connect", { method: "POST", body }),
|
||||
bankCallback: (state, code) =>
|
||||
request(`/bank/callback?state=${encodeURIComponent(state)}&code=${encodeURIComponent(code)}`,
|
||||
{ method: "POST" }),
|
||||
listBankConnections: () => request("/bank/connections"),
|
||||
syncBankConnection: (id) => request(`/bank/connections/${id}/sync`, { method: "POST" }),
|
||||
deleteBankConnection: (id) => request(`/bank/connections/${id}`, { method: "DELETE" }),
|
||||
listBankLinks: () => request("/bank/links"),
|
||||
setBankLinkAccount: (linkId, accountId) =>
|
||||
request(`/bank/links/${linkId}/account/${accountId}`, { method: "POST" }),
|
||||
clearBankLinkAccount: (linkId) =>
|
||||
request(`/bank/links/${linkId}/account`, { method: "DELETE" }),
|
||||
|
||||
// Kategorien (Gruppen + Kategorien)
|
||||
listCategories: () => request("/categories"),
|
||||
createGroup: (body) => request("/categories/groups", { method: "POST", body }),
|
||||
|
||||
Reference in New Issue
Block a user