[1]全体概要
最初に図3を参照して、本発明の会計処理装置における情報や処理の流れの全体概要を説明する。
例えばある金融機関(証券会社や保険会社やクレジットカード会社等のノンバンクを含む)からの口座明細データを処理する場合、顧問先等が端末100において、ユーザーは先ず出納帳形式のソフトウェアを起動して(S3−1−1)、銀行明細取込(機能)を選択(実行)し(S3−1−2)、取得する期間と処理対象となる金融機関の金融機関名と(図4−2)と口座番号を指定して(S3−1−3)、取得する明細の種類(図4−7)を指定する(S3−1−4)。
指定した金融機関の金融機関名と口座番号と明細データの種類を元に、後述する口座連携設定(図4−1)に基づいて各金融機関のサーバー300に接続し、認証処理を行い(S3−1−5)、各金融機関から選択された口座明細データ(図4−3−1〜図4−3−3)をインターネット等で入手して取得した口座明細データと履歴情報に金融機関の「金融機関ID」と「口座番号」と「区分」を追加した上で共通明細データ(図4−6)を作成する。
作成した共通明細データと一致する登録済みのデータがないか検索し、一致する共通明細データがあるときは、一致する共通明細データを除いた共通明細データ(取得した共通明細データのうち検索でヒットしなかった共通明細データ)を装置内部の記憶領域または、外部記憶装置にある共通明細DB(図示せず)に登録する(S3−1−6)。
顧問先が自計化している場合(S3−1−7:Yes)は、そのまま仕訳を作成するので、仕訳を作成するための集計期間を設定する(S3−1−9)。
設定した集計期間の共通明細データを抽出し、明細集約設定(図4−6)に基づき集約処理を行い、取引データ(図4−8)を作成して、装置内部の記憶領域または、外部記憶装置にある取引DB(図示せず)に登録する(S3−1−10)。
S3−1−10で作成した取引データに対して自動仕訳処理を実行し仕訳データを作成し、装置内部の記憶領域または、外部記憶装置にある仕訳DB(図示せず)に登録する(S3−1−11)。なお、取引データを会計事務所等にある管理装置200に送信し、管理装置200で仕訳を作成してもよい。
顧問先が自計化していない場合し(S3−1−7:No)は、共通明細データから出力データ(図示せず)を作成する(S3−1−8)。作成した出力データを会計事務所等にある管理装置200に送信し、管理装置200で出力データを取り込み、仕訳データを作成する。なお、出力データは汎用的な形式のデータであるCSV形式やXML形式等を指す。
[2]詳細について
図1は、システム構成を簡略化して示した図であり、ここでは、顧問先等にある(会計処理)端末100と会計事務所等にある管理装置200と金融機関のサーバー300がインターネットなどのネットワークを介して接続されている例を示すものである。
図2−1は、(会計処理)端末100のハードウェア構成をブロック単位で、示した図であり、大きな単位で、入力部110、表示部120、制御部130、記憶部140、通信部150から構成される。
図2−2は、管理装置200のハードウェア構成をブロック単位で、示した図であり、大きな単位で、入力部210、表示部220、制御部230、記憶部240、通信部150から構成される。
入力部110又は210は、ユーザーからの一次的な操作を、制御部へ伝える手段であり、一般的にはキーボード、マウス等が該当し、タッチパネルなどであっても良い。
表示部120又は220はLCDやCRT等である。また、通信部150又は250はLANアダプタなどが該当し、ローカルにてネットワーク接続されたサーバーや、インターネット接続するための機能であり、出力データや取引データを管理装置に送信する。
制御部130又は、CPUと記憶部140にロードされたプログラムによって端末装置内の制御をおこなう機能部であり、各種の制御をユーザーの操作に基づいた操作により、データの読出し、保存、変換や共通明細データを集約して取引データの作成などを行なうデータ管理部131、取引データに対して自動仕訳処理を行なう仕訳処理部132、金融機関から口座明細データと履歴情報を取り込んで共通明細データを作成する取込処理部133を有する。
制御部230は、CPUと記憶部240にロードされたプログラムによって端末装置内の制御をおこなう機能部であり、各種の制御をユーザーの操作に基づいた操作により、データの読出し、保存、データの取り込みや変換などを行なうデータ管理部231、取引データに対して仕訳処理を行なう仕訳処理部232、を有する。 各部の働き(機能)の詳細については後述する。
記憶部140は、ハードディスクやSSDなどの記憶装置が該当し、データ管理や設定等を格納する管理データ格納部141、金融機関から取得した口座明細データや共通明細データを格納する明細DB(図示せず)のある取込データ格納部143、口座明細データを出納帳形式等のデータに変換した出力データを登録する出力DB(図示せず)や共通明細データを集約した取引データを登録する取引DB(図示せず)や取引データから作成した仕訳データ登録する仕訳DB(図示せず)を格納する作成データ格納部142を有する。
また、記憶部240は、ハードディスクやSSDなどの記憶装置が該当し、データ管理や設定等を格納する管理データ格納部241、作成した仕訳データ登録する仕訳DB(図示せず)を格納する作成データ格納部242と、端末から受信した出力データや取引データや仕訳データを格納する受付データ格納部243を有する。
受付データ格納部に端末からの仕訳データを格納した場合は、仕訳データの確認をした上で、作成データ格納部142にある仕訳DB(図示せず)に登録される。なお、記憶部に格納されるデータ、データやテーブルについては後述する。 ここでは、(会計処理)端末はスタンドアローンPCとしたが、クラウドサービスを利用して、記憶部を外部ストレージ(サーバーを含む)等へ設けて、シンクライアントとして、タブレット端末などを利用しても良い。
図4−1は顧問先等が管理する複数の金融機関に関する口座情報と認証に必要な情報をまとめた口座連携設定で、「金融機関ID」と「口座番号」と「口座名」と「預金種類」と「ユーザーID」と「パスワード」等の項目からなり、管理データ格納部141に格納される。金融機関IDは後述する金融機関設定(図4−2)で設定される。口座番号は銀行等の金融機関に開設している口座の番号であり、口座名は口座の名義である。
また、預金種類は普通(預金)や定期(預金)や当座(預金)等の預金の種類である。また、ユーザーIDとパスワードは金融機関のサーバーに接続する際の認証に使用される。なお、ユーザーIDとパスワードは口座連携設定画面のみで設定可能である。口座番号と口座名と預金種類は後述する金融機関設定画面でも使用される。
図4−2は銀行等の金融機関(証券会社や保険会社やクレジットカード会社等のノンバンクを含む)の設定をまとめた金融機関設定(図4−2)で、「金融機関ID」と「金融機関名」の項目からなり、管理データ格納部141に格納される。金融機関名とは後述する金融機関設定画面でも使用される。
図4−3−1から図4−3−3は各金融機関から取得する口座明細データであり、各金融機関で口座明細データのデータフォーマット形式(口座明細データの項目)が異なる。例えば、図4−3−1はA銀行の○○支店の普通預金の口座番号2584633(口座1)の口座明細データであり、図4−3−2はA銀行の○○支店の普通預金の口座番号2584638(口座2)の口座明細データでいずれも「照会番号」、「取引日」、「摘要」、「お支払金額」、「お預り金額」、「残高」の項目からなり、履歴情報と一緒に取込データ格納部143に格納される。
また、図4−3−3はB銀行○△支店の普通預金の口座番号1234667(口座3)の口座明細データで「取引日」、「取引内容」、「お引き出し」、「お預入れ」の項目からなり、履歴情報と一緒に取込データ格納部143に格納される。
図4−4は金融機関の口座明細データと履歴情報を取り込んで端末に保存したデータである共通明細データである。共通明細データは口座明細データ部分と履歴情報部分と独自部分の3つのデータ構成からなる。
端末に取り込んだ口座明細データの項目(口座明細データ部分)と金融機関のサーバー300から取得した履歴情報である「金融機関ID」と「口座番号」と「区分」と「明細取得日」(図示せず)と「取得日残高」(図示せず)の項目(履歴情報部分)と「明細ID」、「出力フラグ」(図示せず)の項目(独自部分)を追加して共通明細データを作成し、取込データ格納部143にある共通明細DB(図示せず)に保存される。
共通明細データは取り込んだ口座明細データと履歴情報をそれぞれ口座明細データ部分と履歴情報部分にそのまま取り込むことで、口座明細データの取込時の項目の設定の間違いや変換ミス等を防止することができる。
口座明細データは金融機関毎に口座明細データのデータフォーマット形式(口座明細データの項目)が異なるため、共通明細データの口座明細データ部分のうち、取り込み対象でない金融機関の口座明細データの項目については口座明細データでないデータであることを特定する識別子「NONE」を値として保存することで、各金融機関の口座明細データのデータフォーマット形式を金融機関毎に管理できるので、共通明細データから識別子「NONE」のデータを除外したデータを出力データとすることで各金融機関の口座明細データを出力することができる。
「明細ID」は連番で発行されるユニークな数字であり、「区分」は後述する明細区分設定で設定される口座明細データの種類であり、「金融機関ID」は金融機関設定で設定される金融機関であり、「口座番号」は取得する口座明細データの口座番号である。「出力フラグ」(図示せず)は出力データを作成したかを示すフラグ(ON(出力データを作成済)が「1」、OFF(出力データを未作成)が「0」)で、共通明細データが重複して出力されるのを防止するために利用される。
「明細取得日」(図示せず)は金融機関のサーバー300から口座明細データを取得した日であり、「取得日残高」(図示せず)は金融機関のサーバー300から口座明細データを取得した日の現在の残高である。なお、必要に応じて「預金種類」、「口座名」等も追加してもよい。
具体的には、端末にA銀行の普通預金の口座明細データが取り込まれた状態で、新たにB銀行の普通預金の口座明細データを取り込んだ場合を説明する。現在の共通明細データは「明細ID」、「区分」、「金融機関ID」、「口座番号」、「照会番号」、「取引日」、「摘要」、「お支払金額」、「お預り金額」の項目からなり、A銀行の普通預金の口座明細データの項目に「明細ID」、「区分」、「金融機関ID」、「口座番号」、「出力フラグ」(図示せず)の項目が追加されている。
次に、B銀行の普通預金の口座明細データを取り込んだ際に、口座明細データの項目が共通明細データと一致する項目と一致する項目があるか検索し、一致する項目(項目1)についてはその項目をそのまま利用し、一致しない項目のうち既存の共通明細データの項目に存在しない項目(項目2)については、共通明細データの新しい項目として追加し、一致しない項目のうち既存の共通明細データの項目に既に存在する項目(項目3)については、その項目をそのまま利用する。
本実施例では、項目1に該当するのは「取引日」の項目のみであり、項目2に該当するのは「取引内容」、「お引き出し」、「お預入れ」の項目であり、項目3に該当するのは「摘要」、「お支払金額」、「お預り金額」、「残高」の項目である。なお、項目2の新しい項目の追加方法については後述する。
図4−5は金融機関で実行する処理内容と取得する口座明細データの種類を設定する明細区分設定で、「区分」と「口座明細データの種類」と「処理内容」の項目からなる。「区分」は取得する「口座明細データの種類」と金融機関で実行する「処理内容」の関連付けを行い、口座明細データの種類を設定するための明細区分設定画面(図示せず)で取得したい「口座明細データの種類」を選択すると、関連付けられた区分が設定される。なお、明細区分設定は金融機関のサーバー300にも設定情報として保存されている。
図4−6は後述する集約ルールの設定である明細集約設定で、「集約元」と「集約先」の項目からなる。「集約元」は共通明細データの項目が設定され、「集約先」は取引データの項目名が設定される。具体的には、集約元が取引日、年月日等の日付に関するデータである場合は集約先を日付にすることで、日付の項目にデータを集約することができる。
図4−7は項目2(口座明細データの項目が共通明細データと一致しない項目のうち既存の共通明細データの項目に存在しない項目)を設定するための項目設定画面であり、項目設定画面で設定を行なうことで、共通明細データの項目名(図4―4)と明細集約設定(図4−6)を追加する項目毎に設定する。
具体的には、項目設定画面で追加する項目として項目名称1の集約元に「取引内容」、「お引き出し」、「お預入れ」の項目が表示され、集約先に「摘要」、「引出」、「預入」、「残高」等を設定することで、集約元の異なる項目名で同じ内容のデータを集約先の項目に集約(集約ルールの適用)することができるので、各金融機関の口座明細データの項目名の違いを吸収できる。
図4−8は共通明細データに集約ルールを適用して作成する取引データで、取引データは口座明細データ共通部分をと履歴情報部分と独自部分の3つのデータ構成からなる。
集約ルールは各金融機関の口座明細データの項目名を共通のデータ内容の項目名に集約するための設定である。集約ルールは共通明細データから取引データを作成するために用いられる。
集約ルールを適用する処理として3つあり、口座明細データ部分(共通明細データ)から口座明細データ共通部分(取引データ)を作成する処理(集約処理)と履歴情報部分の作成処理と項目名「残高」が口座明細データに存在しない場合に「残高」の金額を算出する処理(算出処理)がある。
履歴情報部分の作成処理は取引データの履歴情報部分に共通明細データの履歴情報部分のデータをそのまま保存する。
集約処理は、共通明細データの項目名である「集約元」と取引データの項目名である「集約先」の対応関係を設定する(明細)集約設定を参照して、共通明細データの口座明細データ部分の金融機関毎の独自の項目名である「集約元」を共通のデータ内容(「日付」、「摘要」、「引出」、「預入」等)の項目名である「集約先」に集約した口座明細データの集約データを作成し、作成した集約データを取引データの口座明細データ共通部分のデータとして保存される。
共通明細データの項目名「残高」の値として、「NONE」と「NULL」と「(残高金額)」の3種類が考えられる。値が「(残高金額)」の場合は、共通明細データ項目名「残高」の値を取引データの項目名「残高」として保存する。
値が「NONE」と「NULL」の場合(算出処理)は、金融機関毎の共通明細データを抽出した上で、「取得日残高」から抽出した共通明細データの「引出」に該当する項目(以下「口座明細引出」とする)と「預入」に該当する項目(以下「口座明細預入」とする)を加減算することで取引データの項目名「残高」を算出する。
抽出した共通明細データが複数ある場合は、抽出した共通明細データの数から処理対象の共通明細データの数を引いた数(算出処理が未処理の抽出済みの共通明細データの数)だけ「口座明細引出」と「口座明細預入」の加減算処理を繰り返す。
共通明細データの口座明細データ部分の「日付」に該当する項目(以下「口座明細日付」とする)と履歴情報の項目名「明細取得日」(図示せず)と項目名「取得日残高」(図示せず)を取得し、「口座明細日付」と「明細取得日」の値を比較する。
「口座明細日付」と「明細取得日」の比較結果が口座明細日付の方が明細取得日より前の日付(口座明細日付<明細取得日)の場合と口座明細日付の方が明細取得日より後の日付(口座明細日付>明細取得日)の場合の2種類が考えられる。
「口座明細日付<明細取得日」の場合は「残高」=「取得日残高」+「口座明細引出」−「口座明細預入」の式で残高金額を算出することができる。
「口座明細日付>明細取得日」の場合は「残高」=「取得日残高」+「口座明細預入」−「口座明細引出」の式で残高金額を算出することができる。
値が「NONE」と「NULL」の場合(算出処理)は上記の式で算出した残高金額を取引データの項目名「残高」として保存する。
取引データは「日付」、「摘要」、「引出」、「預入」、「残高」の項目名(口座明細データ共通部分)と「金融機関ID」、「口座番号」、「明細取得日」(図示せず)、「取得日残高」(図示せず)の項目名(履歴情報部分)と「取引ID」、「備考」(図示せず)の項目名(独自部分)からなる。取引データは自動仕訳処理をする際に使用される。
「取引ID」は連番で発行されるユニークな数字であり、「日付」は取引日等の口座の日付に関するデータであり、「摘要」は取引内容等の口座での取引に関するデータであり、「引出」は引き出し等の口座からの出金に関するデータであり、「預入」は預入れ等の口座への入金に関するデータであり、「残高」は口座の残高に関するデータである。
「明細取得日」(図示せず)は金融機関のサーバー300から口座明細データを取得した日であり、「取得日残高」(図示せず)は金融機関のサーバー300から口座明細データを取得した日の現在の残高である。「備考」(図示せず)は口座明細データの種類等の「摘要」を補足する情報で仕訳データを作成するときに利用される。
明細区分設定(図4−5)で設定している口座明細データの種類のデータ構造(項目名を含む)の一例を図5−1から図5−12に示す。各口座明細データのフォーマット構造は金融機関に照会する項目をまとめたものであり、金融機関毎に異なっているため、A銀行の口座明細データの種類のデータ構造を例に説明する。
顧客(個人)情報データのデータ構造(図5−1)は「顧客コード」、「支店名」、「口座数」、「預金種類」、「口座番号」、「口座名」、「振込依頼先」等の項目名からなり、ユーザーが個人の場合でA銀行へ顧客(個人)情報照会により取得するユーザーの顧客(個人)情報データの内容(ユーザーがA銀行で持っている口座情報等)である。なお、顧客コード等のデータ構造の項目名(照会項目)はA銀行が管理しているデータの項目名である。
顧客(法人)情報データのデータ構造(図5−2)は「顧客コード」、「承認者」、「承認金額」、「依頼者」、「取引限度額」、「手数料(負担区分)」等の項目名からなり、ユーザーが法人の場合でA銀行へ顧客(法人)情報照会により取得するユーザーの顧客(法人)情報データの内容(ユーザーがA銀行で持っている手数料や承認等に関する口座情報等)である。
残高情報データのデータ構造(図5−3)は「顧客コード」、「支店名」、「口座数」、「預金種類」、「口座番号」、「照会日時」、「照会日」、「照会時刻」、「残高(現在)」、「残高(支払可能額)」、「残高(前月末)」、「残高(前日)」、「通貨種類」等の項目名からなり、A銀行へ残高情報照会により取得するユーザーの残高情報データの内容である。
入出金明細データのデータ構造(図5−4)は「顧客コード」、「金融機関名」、「支店名」、「口座数」、「預金種類」、「口座番号」、「照会日」、「照会時刻」、「照会情報結果」、「明細情報件数」、「摘要」、「取引日」、「取引額」、「お支払金額」、「お預り金額」、「残高」、「残高(取引前)」等の項目名からなり、A銀行へ入出金明細情報照会により取得するユーザーの入出金明細データの内容である。
入出金明細データの項目「摘要」、「取引日」、「取引額」、「お支払金額」、「お預り金額」、「残高」については、口座明細データとして取得される(図4−3−1、図4−3−2)。また、入出金明細データの項目名「顧客コード」、「金融機関名」、「支店名」、「口座数」、「預金種類」、「口座番号」、「照会日」、「照会時刻」、「照会情報結果」、「明細情報件数」、「残高(取引前)」は履歴情報として取得され、項目名「金融機関名」、「支店名」のデータから金融機関設定を参照して「金融機関ID」を取得し、「照会日」のデータを「明細取得日」(図示せず)として取得し、「残高(取引前)」のデータを「取得日残高」(図示せず)として取得し、共通明細データの履歴情報部分のデータを作成する。説明では履歴情報の一部しか使用していないが、口座数や預金種類等の履歴情報も履歴情報部分に含まれていてもよい。なお、入出金明細データ以外の口座明細データの場合も同様の方法で履歴情報部分のデータを作成する。
振込入金明細データのデータ構造(図5−5)は「顧客コード」、「金融機関名」、「支店名」、「口座数」、「預金種類」、「口座番号」、「照会日」、「照会時刻」、「照会情報結果」、「明細情報件数」、「取引日」、「振込依頼先」、「振込額」、「通貨種類」等の項目名からなり、A銀行へ振込入金明細情報照会により取得するユーザーの振込入金明細データの内容である。
総合振込依頼情報データのデータ構造(図5−6)は「顧客コード」、「金融機関名」、「支店名」、「預金種類」、「口座番号」、「指定振込日」、「手数料(負担区分)」、「受取人」、「明細情報番号」、「取引コード」、「取引コード」、「取引内容」、「承認期限」、「振込額」、「振込額合計」、「手数料」、「手数料合計」等の項目名からなり、A銀行へ総合振込依頼情報照会により取得するユーザーの総合振込依頼情報データの内容である。
口座振替結果情報データのデータ構造(図5−7)は「顧客コード」、「支店名」、「預金種類」、「対象期間(開始)」、「対象期間(終了)」、「照会情報結果」、「委託者」、「通貨種類」、「引落日」、「指定振込日」、「依頼数」、「手数料合計」、「手数料明細」、「合計数」、「合計額」、「振替済数」、「振替済額」、「振替不能数」、「振替不能額」等の項目名からなり、A銀行へ口座振替結果情報照会により取得するユーザーの口座振替結果情報データの内容である。
口座振替手数料情報データのデータ構造(図5−8)は「顧客コード」、「支店名」、「預金種類」、「対象期間(開始)」、「対象期間(終了)」、「照会情報結果」、「委託者」、「通貨種類」、「依頼数」、「手数料合計」、「手数料明細」等の項目名からなり、A銀行へ口座振替手数料情報照会により取得するユーザーの口座振替手数料情報データの内容である。
給与・賞与振込依頼情報データのデータ構造(図5−9)は「顧客コード」、「金融機関名」、「支店名」、「預金種類」、「口座番号」、「指定振込日」、「手数料(負担区分)」、「依頼者」、「受取人」、「明細情報番号」、「取引コード」、「取引内容」、「振込額」、「振込額合計」、「手数料」、「手数料合計」、「社員コード」、「部門コード」等の項目名からなり、A銀行へ給与・賞与振込依頼情報照会により取得するユーザーの給与・賞与振込依頼情報データの内容である。
口座振替依頼情報データのデータ構造(図5−10)は「顧客コード」、「金融機関名」、「支店名」、「預金種類」、「口座番号」、「引落日」、「手数料(負担区分)」、「受取人」、「明細情報番号」、「取引コード」、「取引内容」、「承認期限」、「引落額」、「引落額合計」、「手数料」、「手数料合計」等の項目名からなり、A銀行へ口座振替依頼情報照会により取得するユーザーの給与・賞与振込依頼情報データの内容である。
振込振替依頼情報データのデータ構造(図5−11)は「顧客コード」、「金融機関名」、「支店名」、「預金種類」、「口座番号」、「指定振込日」、「手数料(負担区分)」、「受取人」、「明細情報番号」、「取引コード」、「取引内容」、「承認期限」、「支払額」、「手数料」等の項目名からなり、A銀行へ振込振替依頼情報照会により取得するユーザーの振込振替依頼情報データの内容である。
ここから、図3−1のフローチャートを利用して、処理全体について説明を行うが、処理中に利用されるデータテーブルや操作画面の表示などについても適宜、説明を加えながら進めることとする。
(会計処理)端末にて、ユーザーは出納帳形式のソフトウェアを起動して、預金出納帳のメニューを選択する(S3−1−1)。
預金出納帳のメニューを選択した後、銀行明細取込をクリックする(S3−1−2)。
次に期間設定画面(図示せず)が表示され、取得する対象期間として「2018年12月1日〜2018年12月31日」を期間設定画面から指定し、口座連携設定(図4−1)と金融機関設定(図4−2)を元に金融機関設定画面(図示せず)が表示される。
取得対象となる金融機関として金融機関名「A銀行」と「○○支店」と預金種類「普通預金」と口座番号「2584633」を画面から指定する(S3−1−3)。なお、期間設定画面や金融機関設定画面等を含む各種の設定画面についてはスクリーンスクレイピング等の技術で作成してブラウザ上で表示する形にしてもよい。
次に、明細区分設定(図4−7)を元に明細区分設定画面(図示せず)が表示され、取得する口座明細データの種類として「入出金明細データ」を指定する(S3−1−4)。明細区分設定画面で入出金明細データを指定した場合は、区分「1」が設定される。
なお、取り込むデータを年月日単位で指定するためのユーザーインターフェースを介して、処理対象年月を決定する。なお、この対象年月日は出納帳形式等(預金出納帳)のソフトウェアの機能として構成されていても良い。
また、指定する期間は年月日を例に説明しているが、年月までの指定でもよい。また、取得する金融機関は複数指定してもよいし、口座番号も複数指定してもよい。
銀行データ(図4−2)を参照して指定した金融機関の金融機関名とから口座連携設定(図4−1)を参照して口座番号と区分とに基づいて各金融機関のサーバー300に接続し、認証処理を行い、各金融機関からインターネット等で入手する口座明細データ取得処理を行なう(S3−1−5)。取得した口座明細データに金融機関の金融機関IDと預金種類と口座番号と区分を追加した上で共通明細データ(図4−6)を作成する。
具体的には、金融機関名「A銀行」、「○○支店」、預金種類「普通預金」、口座番号「2584633」、区分「1」の情報を元に、ユーザーID「U000002」とパスワード「******」で認証処理により金融機関(A銀行)のサーバーに接続して、区分「1」に該当する入出金明細に関する照会処理を行ない、預金種類「普通預金」、口座番号「2584633」の入出金明細データである口座明細データ1(照会番号「141130001」、取引日「2018/12/2」、摘要「現金入金」、お支払金額「NULL」、お預り金額「53,000」、残高「350,000」)、口座明細データ2(照会番号「141205012」、取引日「2018/12/25」、摘要「ローン返済」、お支払金額「120,000」、お預り金額「NULL」、残高「230,000」)を取得する。なお、「NULL」はデータが設定されていないことを示す。
また、認証処理について実施例ではパスワード認証で説明したが、ケルベロス認証方式、リバースプロキシ方式、エージェント方式、フェデレーション方式等を利用したシングルサインオン処理やサーバー型、クライアント型、ハイブリッド型等のアカウントアグリゲーション処理で行ってもよい。
また、端末で取得した口座明細データ1と口座明細データ2を取り込み、口座明細データ1と共通明細データの項目名を抽出し、抽出した口座明細データ1の項目名と抽出した共通明細データの項目名を比較し、一致するものがあるか判定する。
口座明細データ1と共通明細データの項目名が全て一致する場合(ケース1)についての共通明細データへの口座明細データ取込方法を説明する。なお、共通明細データの項目名が「照会番号」、「年月日」、「取引日」、「摘要」、「お支払金額」、「お預り金額」、「残高」、「明細取得日」(図示せず)、「取得日残高」(図示せず)とする。
口座明細データ1と一致する共通明細データ(明細IDが「M0002」のデータ)がある場合は、既に取り込み済みのため、口座明細データ1は取り込まないことで、口座明細データ1の重複取込を防止することができる。
次に、口座明細データ2についても口座明細データ2のデータと一致する共通明細データがあるかを検索する。口座明細データ2と一致する共通明細データがない場合は、取り込みがまだのため、口座明細データ2を取り込んで、共通明細データ(明細IDが「M0007」のデータ)として保存する。
具体的には口座明細データ2を取り込むための共通明細データを新規作成し、項目名「明細ID」に発行したユニークな数字である「M0007」の値を保存し、項目名「区分」、「金融機関ID」、「口座番号」に口座明細データ取得処理(S3−1−5)で使用した「1」、「B0003」、「2584633」の値を保存する。口座明細データ取得処理(S3−1−5)で口座明細データとして取得した取得日と取得日の残高を共通明細データ(明細ID「M0007」のデータ)の項目名「明細取得日」(図示せず)の値「2018/12/31」、「取得日残高」(図示せず)の値「230,000」として保存する。
次に、口座明細データ2の項目名と一致する共通明細データ(明細IDが「M0007」のデータ)の項目名「照会番号」に対して「141205012」の値を共通明細DB(図示せず)に保存する。同様に口座明細データ2の項目名と一致する共通明細データ(明細IDが「M0007」のデータ)の項目名「取引日」、「摘要」、「お支払金額」、「お預り金額」、「残高」に対してそれぞれ「2018/12/25」、「ローン返済」、「120,000」、「NULL」、「230,000」の値を共通明細DB保存する。口座明細データ2の項目名と一致しない共通明細データ(明細IDが「M0007」のデータ)の項目名「年月日」に対しては口座明細データでないデータであることを特定する識別子として「NONE」の値を共通明細DB保存する。
口座明細データ1と共通明細データの項目名が一部一致又は全て一致しない場合(ケース2)についての共通明細データへの口座明細データ取込方法を説明する。なお、共通明細データの項目名が「照会番号」、「取引日」、「年月日」、「取引内容」、「お引き出し」、「お預入れ」、「残高」、「明細取得日」(図示せず)、「取得日残高」(図示せず)とする。
口座明細データ1と共通明細データの項目名が一致しないものがある場合は、はじめて取り込みを行なう口座明細データなので、共通明細データの項目名と一致しない口座明細データ1の項目名「摘要」、「お支払金額」、「お預入れ」を抽出し、項目設定画面(図4−7)を表示する。
項目設定画面の項目名称1の集約元に「摘要」、項目名称2の集約元に「お支払金額」、項目名称3の集約元に「お預入れ」が設定されているので、項目名称1の集約先に「2.摘要」、項目名称2の集約先に「3.引出」、項目名称3の集約先に「4.預入」をそれぞれ選択して登録ボタンを押すことで、項目名の設定がされる。
項目設定画面で項目名の設定することで、明細集約設定(図4−6)で今回登録された項目名「摘要」、「お支払金額」、「お預入れ」の集約元と集約先の設定と共通明細データの項目名に「摘要」、「お支払金額」、「お預入れ」が追加され、既存の共通明細データの項目名「摘要」、「お支払金額」、「お預入れ」にそれぞれ「NONE」の値が追加されて、共通明細データが更新される。
作成した共通明細データと一致する登録済みのデータがないか検索し、一致する共通明細データがあるときは、一致する共通明細データを除いた共通明細データ(取得した共通明細データのうち検索でヒットしなかった共通明細データ)を装置内部の記憶領域または、外部記憶装置にある共通明細DB(図示せず)に登録する(S3−1−6)。
次に口座明細データ1を取り込んで、共通明細データ(明細IDが「M0002」のデータ)として保存する。具体的には口座明細データ1を取り込むための共通明細データを新規作成し、項目名「明細ID」に発行したユニークな数字である「M0002」の値を共通明細DBに保存し、項目名「区分」、「金融機関ID」、「口座番号」に口座明細データ取得処理(S3−1−5)で使用した「1」、「B0003」、「2584633」の値を共通明細DBに保存する。
口座明細データ取得処理(S3−1−5)で口座明細データとして取得した取得日と取得日の残高を共通明細データ(明細ID「M0002」のデータ)の項目名「明細取得日」(図示せず)の値「2018/12/31」、「取得日残高」(図示せず)の値「230,000」として保存する。
次に、口座明細データ1の項目名と一致する共通明細データ(明細IDが「M0002」のデータ)の項目名「照会番号」に対して「141130001」の値を共通明細DBに保存する。同様に口座明細データ2の項目名と一致する共通明細データ(明細IDが「M0002」のデータ)の項目名「取引日」、「残高」に対してそれぞれ「2018/12/2」、「350,000」の値を共通明細DB保存する。
新たに共通明細データ(明細IDが「M0002」のデータ)に追加した項目名「摘要」、「お支払金額」、「お預入れ」に対して、「現金入金」、「NULL」、「53,000」の値を共通明細DB保存する。また、口座明細データ2の項目名と一致しない共通明細データ(明細IDが「M0002」のデータ)の項目名、「年月日」、「取引内容」、「お引き出し」、「お預入れ」に対してはそれぞれ「NONE」の値を共通明細DB保存する。
このように、金融機関から取得した口座明細データをそのまま共通明細データに取り込むことができるので、取り込む際に項目名を変更したり、口座明細データを加工したり変換する等の処理を行なう必要がないので、口座明細データの取り込みミスや加工処理によるデータの誤り等を防止することができる。また、口座明細データをそのまま取り込むので、一致する共通明細データを確認するだけで、既に取り込み済みかどうかのチェックが簡単にできる。
ここまで、出納帳形式のソフトウェアに金融機関から提供される口座明細データを取り込むまでを説明した。顧問先が自計化している場合(S3−1−7:Yes)は、後述する手順に従って、仕訳データを作成する(S3−1−9〜S3−1−11)。
顧問先が自計化している場合(S3−1−7:Yes)に仕訳を作成する手順について説明する。まずは、仕訳を作成するための集計期間を設定する(S3−1−9)。なお、集計期間は、年月日で指定してもよいし、1か月単位である年月で指定してもよい。
出納帳形式のソフトウェアの取り込まれた口座明細データは金融機関から提供される口座明細データのままなので、金融機関毎に口座明細データが異なっているので、日付、摘要、金額等の共通のデータ内容を集約しないと仕訳を作成することができない。
そこで、各金融機関の口座明細データに集約ルールを適用して仕訳を作成する取引データを作成する。
具体的には、指定した集計期間の共通明細データ(図4−4)を抽出し、明細集約設定(図4−6)を参照して共通のデータ内容ごとに集約ルールの適用を行い、取引データ(図4−8)を作成して、装置内部の記憶領域または、外部記憶装置にある取引DB(図示せず)に登録する(S3−1−10)。
集計期間を「2018年12月1日〜2018年12月31日」の期間で指定した場合を例に説明する。共通明細データから「2018年12月1日〜2018年12月31日」の期間で抽出した共通明細データ(明細ID「M0001」〜「M0007」のデータ)を元に明細集約設定(図4−6)を参照して、取引データ(取引ID「T0001」〜「T0007」のデータ)を作成する。
抽出した共通明細データ(明細ID「M0001」のデータ)に対応する取引データ(取引ID「T0001」のデータ)を新規作成し、項目名「取引ID」に発行したユニークな数字である「T0001」の値を保存する。また、取引データ(取引ID「T0001」のデータ)の項目名「区分」の値として共通明細データ(明細ID「M0001」の項目名「区分」の値「1」を保存する。
取引データ(取引ID「T0001」のデータ)の項目名「金融機関ID」の値として共通明細データ(明細ID「M0001」の項目名「金融機関ID」の値「B0003」の値を保存する。共通明細データ(明細ID「M0001」の項目名「口座番号」の値「1234667」の値を取引データ(取引ID「T0001」のデータ)の項目名「口座番号」の値として保存する。
次に共通明細データ(明細ID「M0001」のデータ)の項目名「取引日」の値「NONE」と項目名「年月日」の値「2018/12/1」と2つあるが、項目名「取引日」の値が「NONE」の場合は何も処理はしない。項目名「年月日」の値「2018/12/1」は「NONE」以外の値であるため、項目名「年月日」の値「2018/12/1」を取引データ(取引ID「T0001」のデータ)の項目名「日付」の値として保存する。
次に共通明細データ(明細ID「M0001」のデータ)の項目名「摘要」の値「NONE」と項目名「取引内容」の値「現金入金」と2つあるが、項目名「摘要」の値が「NONE」の場合は何も処理はしない。項目名「取引内容」の値「現金入金」は「NONE」以外の値であるため、項目名「取引内容」の値「現金入金」を取引データ(取引ID「T0001」のデータ)の項目名「摘要」の値として保存する。
次に共通明細データ(明細ID「M0001」のデータ)の項目名「お支払金額」の値「NONE」と項目名「お引き出し」の値「NULL」と2つあるが、項目名「お支払金額」の値が「NONE」の場合は何も処理はしない。項目名「お引き出し」の値「NULL」は「NONE」以外の値であるため、項目名「お引き出し」の値「NULL」を取引データ(取引ID「T0001」のデータ)の項目名「引出」の値として保存する。
次に共通明細データ(明細ID「M0001」のデータ)の項目名「お預り金額」の値「NONE」となっているが、項目名「お預入れ」の値「50,000」と2つあるが、項目名「お預り金額」の値が「NONE」の場合は何も処理はしない。項目名「お預入れ」の値「50,000」は「NONE」以外の値であるため、項目名「取引内容」の値「50,000」を取引データ(取引ID「T0001」のデータ)の項目名「預入」の値として保存する。
取引データの項目名「残高」については、他の項目名と処理が異なるため、詳しく説明する。共通明細データの項目名「残高」の値として、「NONE」と「NULL」と「(残高金額)」の3種類が考えられる。「(残高金額)」の場合、例えば共通明細データの項目名「残高」が「230,000」の値のときは、共通明細データの項目名「残高」の値である「230,000」を取引データの項目名「残高」として保存する。
次に、「NONE」と「NULL」の場合は、「明細取得日」(図示せず)と「取得日残高」(図示せず)の値を元に「残高」の値を算出する。
具体的には共通明細データ(明細ID「M0001」のデータ)の項目名「残高」の値「NONE」となっているので、共通明細データの項目名「年月日」の値「2018/12/1」、項目名「口座番号」の値「1234667」、項目名項目名「明細取得日」(図示せず)の値「2018/12/20」、「取得日残高」(図示せず)の値「150,750」を取得する。
年月日「2018/12/1」と明細取得日「2018/12/20」の期間で
口座番号「1234667」と一致する共通明細データを抽出する。
抽出した共通明細データ((明細ID「M0001」と「M0003」と「M0005」のデータ))のうち、共通明細データ(明細ID「M0003」と「M0005」のデータ)の項目名「お預入れ」(「預入」に該当する項目)の値「200,000」と項目名「お引き出し」(「引出」に該当する項目)の値「NULL」を読み出す。
年月日「2018/12/1」の方が明細取得日「2018/12/20」より前(年月日<明細取得日)なので、残高算出の式(「残高」=「取得日残高」+「引出」−「預入」)で算出する。「引出」又は「預入」の値が「NULL」の場合は計算処理をスキップして処理する。
よって、算出する「残高」は残高算出の式(「残高」(取引ID「M0001」)=「取得日残高」(明細ID「M0001」)+「お引き出し」(明細ID「M0003」と明細ID「M0005」)−「お預入れ」(明細ID「M0003」と明細ID「M0005」)=「150,750」+「NULL」+「99,250」−「200,000」−「NULL」=「50,000」)より「50,000」となるので、算出した「残高」の値「50,000」を取引データの項目名「残高」として保存する。
次に共通明細データ(明細ID「M0001」のデータ)の項目名「区分」の値「1」から明細区分設定(図4−5)を参照して口座明細データの種類の値「入出金明細データ」を取得し、取引データ(取引ID「T0001」のデータ)の項目名「備考」(図示せず)の値として「入出金明細データ」を保存する。
次に共通明細データの項目名「明細取得日」(図示せず)の値「2018/12/20」、「取得日残高」(図示せず)の値「150,750」を取引データ(取引ID「T0001」のデータ)の項目名「明細取得日」(図示せず)、「取得日残高」(図示せず)それぞれの値として保存する。
同様に、取引データ(取引ID「T0002」〜「T0007」のデータ)についても、共通明細データ(明細ID「M0002」〜「M0007」のデータ)を元に段落0071から段落0071の処理を行うことで作成する。なお、通信部150は取引データを会計事務所等にある管理装置200に送信し、管理装置200で仕訳を作成してもよい。
S3−1−10で作成した取引データ(図4−8)に対して自動仕訳処理を実行し仕訳データを作成し、装置内部の記憶領域(作成データ格納部142)または、外部記憶装置にある仕訳DB(図示せず)に登録する(S3−1−11)。端末100は取引データの項目名「摘要」と「備考」を参照して公知の任意の自動仕訳技術を用いて自動仕訳処理を実行してもよい。例えば、過去の仕訳内容を利用したものや辞書を用いたものや推論又はルールベースの自動仕訳技術を用いて、自動仕訳処理を実行してもよい。
また、顧問先が自計化していない場合(S3−1−7:No)は、共通明細データから出力データ(CSVやXML等)を作成する(S3−1−8)。例えば、同じ金融機関でユーザーが仕事と家庭で別に口座を開設している場合や家族が従業員で別々に口座を開設している場合に、まとめて口座明細データを出力できれば、会計事務所等にある管理装置200に出力データを送付するだけ済む。そのため、口座毎の口座明細データを出力して送付しなくて済むので、口座明細データの送付し忘れや誤送付等を防止することができる。
具体的には、預金出納帳のメニューを選択した後、銀行明細出力をクリックすることで、銀行明細出力が表示され(図示せず)、出力する「金融機関名」、「」、「口座番号」(指定しなくてもよい)、「口座明細データの種類」、「対象期間」のいくつかの条件を指定する。なお、対象期間は、年月日で指定してもよいし、1か月単位である年月で指定してもよい。
例えば、金融機関名「A銀行」、「○○支店」、明細データの種類「入出金明細データ」、対象期間「2018年12月」とした場合は、金融機関ID「B0003」、区分「1」と出力フラグ「0」を条件として一致する共通明細データから「2018年12月1日〜2018年12月31日」の期間の共通明細データ(明細ID「M0002」、「M0004」、「M0006」及び「M0007」のデータ)を抽出する。
抽出した共通明細データ(明細ID「M0002」、「M0004」、「M0006」及び「M0007」のデータ)から値が「NONE」となっている「年月日」、「取引内容」、「お引き出し」、「お預入れ」の項目名を削除することで、指定した金融機関(A銀行)の口座明細データのフォーマットのままとして出力データをCSV形式で出力する。
次に、抽出した共通明細データ(明細ID「M0002」、「M0004」、「M0006」及び「M0007」のデータ)の「出力フラグ」の値を「0」から「1」に変更し、共通明細データを更新する。
通信部150は作成した出力データを会計事務所等にある管理装置200に送信し、管理装置200で出力データを取り込み(データ管理部231で実行し取込データ格納部243に保存)、仕訳データを作成したりする(仕訳処理部232で実行し作成データ格納部242に保存)ので、出力データを出力する段階で、出力済みの出力データを排除することができるので、管理装置200で出力データを重複して取り込むのを防止できる。
管理装置200は取り込んだ出力データからS3−1−10と同様の方法又は公知の任意の技術を利用して取引データを作成してもよい。
次に管理装置200は出力データを取り込んだ場合は、仕訳処理部232が作成した取引データに対して自動仕訳処理を実行し仕訳データを作成し、装置内部の記憶領域(作成データ格納部242)または、外部記憶装置にある仕訳DB(図示せず)に登録する。管理装置200は取引データの項目名「摘要」と「備考」を参照して公知の任意の自動仕訳技術を用いて自動仕訳処理を実行してもよい。例えば、過去の仕訳内容を利用したものや辞書を用いたものや推論又はルールベースの自動仕訳技術を用いて、自動仕訳処理を実行してもよい
また、管理装置200は取引データを取り込んだ場合は、仕訳処理部232が取り込んだ取引データに対して自動仕訳処理を実行し仕訳データを作成し、装置内部の記憶領域(作成データ格納部242)または、外部記憶装置にある仕訳DB(図示せず)に登録する。管理装置200は取引データの項目名「摘要」と「備考」を参照して公知の任意の自動仕訳技術を用いて自動仕訳処理を実行してもよい。例えば、過去の仕訳内容を利用したものや辞書を用いたものや推論又はルールベースの自動仕訳技術を用いて、自動仕訳処理を実行してもよい。
以上、本発明の実施例について詳細に説明したが、本発明の技術的範囲は上記の実施形態ないし実施例に限定されるものではなく、本発明は添付の特許請求の範囲を逸脱することなく様々な変形例、変更例として実現することができる。このような変形例、変更例はすべて本発明の技術的範囲に属すると解されるべきである。