Moneytree LINK製品・技術概要
Moneytree LINKとは
Moneytreeゲストユーザー
Moneytreeは全てのMoneytreeサービスの利用者(アプリやMoneytree LINK 含む)をゲストユーザーと呼びます。
Moneytree LINKクライアント
Moneytreeはゲストユーザーの金融機関のデータをAPIより取得するアプリやサービスをクライアントと呼びます。
Moneytree LINKはゲストユーザーが持つ多数の金融機関のデータをまとめ、クライアントに使いやすい形で提供するためのデータ連携機能です。また、セキュアなデータベースおよびデータアグリゲーション技術を含む基盤サービスの総称です。
Moneytree LINKはゲストユーザーが登録した各種金融機関の銀行口座、クレジットカード、証券口座、およびポイントなどのデータを継続して取得・蓄積して一元化を行います。統一されたデータは標準化されたAPIで認可したクライアントに提供されます。
- クライアントはゲストユーザーが「認可」(連携を許可)することでMoneytree LINK を通してMoneytreeに蓄積されたゲストユーザーのデータにアクセスできるようになります。
- Moneytree LINKは認可フレームワークに、OAuth 2.0を採用しています。
クライアントはMoneytree LINKを介して安全にアプリやサービスでデータが活用できるようになります。
Moneytree LINK の仕組み
Moneytree ゲストユーザーの新規登録と金融サービスの登録
初めてMoneytreeを利用されるゲストユーザーは新規登録を行い、金融情報を一元管理・参照するために金融サービスの登録を行います。登録を行うことで初めてMoneytreeは金融機関のデータを取得します。
Moneytree LINK クライアント認可フロー
次にクライアントのアプリやシステムがMoneytreeで一元化されたデータを活用できるようにゲストユーザーの認可を承認してもらいます。ユーザーの承諾を取り、Moneytree LINKはクライアントがMoneytreeのデータを参照する許可を出します。データ利用の認可は「Authorization Code Grant with PKCE」方式を提供しています。
「Authorization Code Grant(PKCE無し)」はサポートされていません。
Moneytree LINKは、バックエンドの統合およびMoneytree LINK SDKを使用するモバイルアプリケーションのために、「Authorization Code Grant with PKCE」が必要です。
Moneytree LINKのAndroid版SDK v6.5とiOS版SDK v6.3より「Authorization Code Grant(PKCE無し)」は非推奨です。
Moneytree LINKのAndroid版SDK v7.0とiOS版SDK v7.0より「Authorization Code Grant(PCKE無し)」は廃止予定です。
廃止後は機能の利用ができなくなるのでモバイルアプリのMoneytree LINKクライアントにはPKCE対応した認可フローへ移行を推奨しております。詳しくは認可フローの移行ガイドをご参照ください。
連携までのOAuth2.0フローイメージ
Moneytree LINKが提供する主な機能
Moneytree LINKは、クライアント様アプリ・サービスに組み込んで実装できるよう、目的に応じてWebアプリや機能を提供しています。
Moneytree LINK Web アプリケーション
Moneytreeゲストアカウントの新規作成、および以下の金融機関の登録・管理機能をWebアプリで提供しています:
- 新規登録/ログイン
- Moneytree LINK連携認可画面
- 金融機関設定・管理画面
- Moneytreeアカウント設定
プッシュ通知
連携クライアントのアプリに対し、Moneytreeのイベントによるプッシュ通知を送信することができます。
Moneytree LINK API
ゲストユーザーの各金融機関のデータを統一したフォーマットでAPIより提供します。
アグリゲーションサービス
ゲストユーザーが登録した金融機関よりMoneytreeのアグリゲーションサービスがデータを取得・蓄積します。
ゲストユーザーの利用プロセス
Moneytreeの新規登録・ログイン
クライアントへの連携許可取得
クライアントがMoneytreeからデータを取得するためには、ユーザの了承を得る必要があります。アプリやサービスから次のような承認画面を通して、クライアントとMoneytree LINKの連携の認可フローを実行します。
(画面はMoneytree LINK SDK v7.0以前)
- OAuth認可フローにより認証コードをリダイレクト先にセット
- 利用者が「連携する」ボタンをタップすると、
redirect_uri
にリダイレクトされ、クライアント様システムは、認証コードからアクセストークンを取得 - 以降、利用者が登録した金融機関(認可時に含まれている金融機関およびそのアクセス権限)のデータをAPIで参照可能になります。
金融サービスの登録
- 金融サービスを未登録であるゲストユーザーに対して登録を促すCTAを設置
- オプションとして、クライアント金融サービス登録を優先的に誘導するも可能
** 連携する候補となる金融機関を最大5つ、任意の順番で表示できる
Moneytree LINKの実装・連携方法
クライアントがバックエンドサービスを設置する構成
Moneytreeはバックエンドサービスがデータを取得するための認可をアクセストークンで制御しています。バックエンドサービスが直接アクセストークンを取得するフローは提供されていません。
まず、モバイルアプリがMoneytree LINK SDKの機能を利用してアクセストークンを取得します。
次にアプリがバックエンドにアクセストークンを送信します。
以後、クライアントのバックエンドでトークンを管理し、Moneytree LINK APIよりデータ取得が可能となります。
Moneytreeより取得して、クライアントのバックエンドが加工したデータをクライアントアプリに提供できます。
Moneytree LINK API + SDK によるクライアントバックエンドサービスを設置しない構成
クライアントがバックエンドを設置しない構成の場合はゲストユーザーのデバイス上でトークンを生成し、Moneytree LINK APIを利用することができます。
Moneytree LINK API
Moneytree LINK APIの概要
Moneytree LINK APIは、認可されたゲストユーザーの様々な金融情報を統一的に提供するものです。
例えば、金融機関においては、都市銀行、地方銀行、ネット銀行、信用金庫など、様々な種類の金融機関があり、さらに様々な種類の口座が提供されています。Moneytree LINK APIは金融機関ごとの差異を考慮する必要なく、Moneytree LINK APIの各エンドポイントを実装するだけで目的とする種類の金融サービス(銀行個人口座、クレジットカード、証券、ポイント、電子マネー、法人口座など)の情報を統一的に照会することができます。
- Moneytree LINKと連携後、トークンを用いてゲストユーザー様のデータを参照します。
- Refresh エンドポイントにより、Moneytree LINKにデータの更新(取得)を依頼することもできます。
- Moneytree LINKの主なエンドポイントは以下となります
API | 内容 |
---|---|
OAuth認証/oauth/* | Access tokenの取得 (認証コード、Refresh tokenによるaccess tokenの取得) |
個人口座/link/v1/accounts* | 金融機関口座・クレジットカードの口座情報の取得 (残高、残高詳細、取引明細、支払い予定日) 画像認証・ワンタイムパスワードの情報取得/入力 |
法人口座/link/v1/corporate* | 金融機関法人口座情報の取得 (残高、残高詳細、取引明細) |
ポイント口座/link/v1/points* | 各種ポイント口座情報の取得 (残高、残高詳細、取引明細、期限切れ情報) |
その他/link/v1/profile* /link/v1/institutions.json /link/v1/categories.json | 口座情報の更新リクエスト プロファイルデータの参照 対応金融機関の一覧 カテゴリ情報の一覧 |
個人口座 API (Personal Accounts API)
リクエスト GET https://jp-api-staging.getmoneytree.com/link/v1/accounts.json
レスポンス
{
"accounts": [
{
"id": 3,
"account_group": 2,
"account_type": "bank",
"account_subtype": "savings",
"aggregation_state": "success",
"aggregation_status": "success",
"last_aggregated_at": "2015-04-13T12:07:52+09:00",
"last_aggregated_success": "2015-04-13T12:07:52+09:00",
"created_at": "2014-08-06T18:44:42+09:00",
"updated_at": "2014-08-06T18:44:42+09:00",
"currency": "JPY",
"institution_id": 123,
"institution_entity_key": "zou_bank",
"branch_code": "126",
"branch_name": "原宿支店",
"institution_account_name": "普通",
"institution_account_number": "1234567",
"nickname": "普通",
"current_balance_in_base": 9356,
"current_balance": 9356,
},
{
"id": 1022901,
"account_group": 2,
"account_type": "credit_card",
"account_subtype": "credit_card",
"aggregation_state": "running",
"aggregation_status": "running.auth",
"last_aggregated_at": "2015-04-14T12:07:52+09:00",
"last_aggregated_success": "2015-04-13T12:07:52+09:00",
"created_at": "2014-08-06T18:44:42+09:00",
"updated_at": "2014-08-06T18:44:42+09:00",
"currency": "JPY",
"institution_id": 465,
"institution_entity_key": "zou_card",
"branch_code": null,
"branch_name": null,
"institution_account_name": "JALカード",
"institution_account_number": "****-****-****-1234",
"nickname": "JAL",
"current_balance_in_base": -100520,
"current_balance": -100520,
}
// etc
]
}
各種Account APIは、ゲストユーザーがMoneytreeに登録している各金融サービスの口座の一覧を返します。主要なパラメータは、以下です。
account_subtype
Moneytreeが定義する金融サービスの種別、銀行口座においては、科目、それ以外の金融サービスにおいてはその種類(credit_cardなど)institution_account_name
銀行口座においては、各預金科目、クレジットカードにおいては、カード名称current_balance
銀行口座においては残高、クレジットカードにおいては利用金額
個人取引明細 API (Personal Account Transactions API)
リクエスト GET https://jp-api-staging.getmoneytree.com/link/v1/accounts/:account_id/transactions.json
(※ account_id
は、accounts APIから取得します。)
レスポンス
{
"transactions": [
{
"id": 56205491,
"expense_type": 0,
"amount": -6402,
"date": "2014-07-16T00:00:00+09:00",
"description_guest": "",
"description_pretty": "何何スーパー",
"description_raw": "何何スーパー09099999999",
"account_id": 204218,
"category_id": 26,
"attributes": {
"balance": "12345.0"
},
"created_at": "2014-07-19T17:44:57+09:00",
"updated_at": "2014-08-12T12:42:03+09:00"
},
{
"id": 62068973,
"expense_type": 2,
"amount": -2800,
"date": "2014-08-02T00:00:00+09:00",
"description_guest": "タクシー",
"description_pretty": "何何タクシー",
"description_raw": "何何タクシー",
"account_id": 204218,
"category_id": 27,
"attributes": {
"fx_base_currency": "USD",
"fx_base_amount": "98.05"
},
"created_at": "2014-08-05T11:25:37+09:00",
"updated_at": "2014-08-12T12:41:52+09:00"
}
]
}
各種transaction APIは、account API(口座API)で取得した流動性のあるパラメータに対し、その入出金明細(銀行、証券口座など)や、利用明細(クレジットカード、電子マネー)のデータを返します。主要なパラメータは、以下です。
amount
入出金金額、利用金額description_*
摘要欄、利用内容などのテキストcategory_id
Moneytreeが利用明細の各レコードにAIにより割り振るカテゴリ情報のid値
Moneytree LINK SDK
Moneytree LINK SDKとは
モバイルアプリでMoneytree LINKを開発・連携するためのSDK
サポート・推奨環境
- iOS: 11.0〜
- Android: 6.0〜
※ Custom Chrome Tabが利用できる環境が必要です。
Moneytree LINK SDKが提供する主な機能
- 各種Moneytree LINK WEBアプリページの起動
- iOS: SFSafariViewController
- Android: Custom Chrome Tabs
- Moneytree LINK API を利用するためのトークン管理
- Moneytree LINK WEBアプリへ自動ログイン機能(初回ログイン・新規登録後の自動ログイン)
- プッシュ通知のためのデバイス情報の登録・解除機能
- サンプルアプリ: iOS(Swift/Objective-C), Android(Kotlin/Java)
Moneytree LINK SDKに含まれないもの
- Moneytree LINK APIを実行するライブラリ・機能
- Moneytree LINK API又はUIのサンプルコード
- WEBアプリ画面をカスタマイズするもの
Moneytree LINK SDKが対応する認可フロー
LINK SDKの対応認可フローは「Authorization Code Grant with PKCE (Proof Key for Code Exchange)」です。詳細については、Moneytree LINK SDK製品・技術概要を参照してください。
Updated about 1 year ago