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製品・技術概要を参照してください。