自動的に銀行取引を行う
Posted on by Angus Cheng
ある日、銀行明細コンバーターがどの様な問題を解決してくれるかについて少し明確になりました。単純な答えは「銀行明細のPDFから抜き取られた問題を解決する事」です。それは真実ですが、それと共に一般的な問題を解決する事が出来きます。「ユーザーが銀行取引データへアクセスする事が可能となる。」ただ、使い方がやや難しいです。2021年の取引データを閲覧したい場合、下記を行う必要があります。
- オンラインバンキングへログイン
- 各口座12ヵ月分のPDFをダウンロード
- bankstatementconverter.comへアクセス
- 12個のファイルをアップロードする
- コンバートをクリック
これらのいくつかのステップを省く事が出来たら楽になるのではないでしょうか?これを達成する為に私は方法を考えたのです。
アプローチ #1 – ドライビングブラウザ拡張
ブラウザ拡張を作成し、ウェブブラウザのコントロールや銀行からのPDFを自動的にダウンロードする事が可能になります。ユーザーは下記を行う必要があります。
- オンラインバンキングへログイン
- ブラウザ拡張に書類を引っ張る
- ブラウザ拡張がリンクをクリックし、ボタンを押し、PDFを取得するのに必要な箇所に入力される。
この解決法の良い点としてはユーザーがオンラインバンキングに必要なクレデンシャル情報を入力する必要が無いのです。拡張機能は悪意がある物でないかを確認する為第三の業者が監査を行います。
悪い点に関しては全てのオンラインバンキングプラットフォームのインテグレーションを構築する必要がある事です。これに関しては「一般的な解決法」は特にありません。
悲しい事に、これを行う事は技術的に不可能です。まだ確認は取れていませんが、おそらくウェブブラウザは第三者がブラウザ拡張機能を「ドライブ」する事を認めていません。
アプローチ #2 – ブラウザ拡張ガイド
前回のアプローチとかなり似ているが、今回違う所はブラウザ拡張自体がユーザーに何をすれば良いかをおしえてくれる事です。「ここをクリック」、「XYZを入力」、「このボタンをクリック」。面倒ですが、手助けになると思います。
これをする事で可能となりますが、ユーザーが使いやすいか使いにくいと感じるかは分かりません。
アプローチ #3 – ドライブデスクトップアプリケーション
このアプローチは#1と似た様な感じですが、ブラウザ拡張では無くWindows/MacOSアプリケーションを使用する所のみ違いがあります。ブラウザ拡張でページを操作する事が出来ない場合、ユーザーのマウス/キーボードをコントロールするデスクトップアプリケーションを使用する事ができます。作成するのがかなり難しく、実際どの様に対応できるかは分かりませんが、可能であると感じています。このアプローチの良い点は、ユーザーがクレデンシャル情報を提供する必要が無く、全てユーザーのパソコンで操作される為、銀行側がこのアプリケーションを阻止する事は出来ません。
アプローチ #4 – APIの完全自動化
APIを作成し、オンラインバンキングへのログインを可能にする工程で、PDFの明細ダウンロード、取得が可能となります。下記の様に出来ると想定しています:
- ユーザーが銀行のクレデンシャル情報を私達へ提供する
- 私達のサーバーが銀行のAPIへ連絡をし、銀行明細のPDFをダウンロードする
- 私達のサーバーが銀行明細をPDFからCSVへ変換する
- ユーザーへCSVを提供する
このアプローチで良い点はユーザーがやらなければいけない事がほんの少ししか無いという事です。ダウンロードは結構な量になります!理由は分かりませんが、銀行は第三者がオンラインバンキングポータルからデータを入手する事を嫌う為、この様な行動には様々な防塞を仕掛けてきます。この様々な防塞を避けていくことが大変な仕事となります。銀行が納得し、インテグレーションをしてくれるまでは多くの確認作業が必要になります。
どの様にインテグレーションを構築するか?
私は2つの口座を持っています。という事は2つの銀行口座のデーターを抽出する為にコードを作成する必要があります。残念な事に(このアプリの目的の為)、世界中には2つの銀行以上の銀行が存在します。いくつかの方法があります。 私が口座を保持していない銀行のインテグレーションをどの様に作成すれば良いでしょうか。:
- 各銀行のデベロッパーに支払いをし、インテグレーションを構築してもらう
- ツールを作成し、デベロッパーでは無いユーザーに彼ら自身の銀行のインテグレーションを構築してもらう
- 世界中全ての銀行の口座を開く
- 人々へ支払いをした上、銀行口座へのアクセスを許可してもらい、インテグレーションを構築する
これは大きな懸念点であり、どうアプローチすべきであるか分かりません。現状この件に関してはそれほど考えていません。まずは、私自身2つの銀行口座があるので、まずそのインテグレーションの構築を開始する事が出来ます。