RODEM 精算連携API
利用方法
OAuth2.0準拠の認証/認可を通してアクセストークンを取得し、そのアクセストークンを利用し精算連携APIで精算データを取得します。
認証に利用するclient id、client secretの発行につきましては、現状自動化されておりません。
認証画面からのリダイレクト先のURL(redirect uri)をご連絡いただき、それに対して発行させていただきます。
redirect uriは原則としてhttps環境のみの対応とさせていただきます。
※認可周辺については、OAuth2.0クライアントライブラリの利用を推奨します。
RODEMをご契約されていない場合
RODEMの無料トライアルをお申込みいただくことで精算連携APIも2週間無料でご利用可能です。
トライアルお申込後にAPI利用希望の旨をご連絡ください。
ご不明な点がありましたらこちらのフォームからお問い合わせください。
API利用フロー
OAuth認可画面
GET /oauth/authorize
parameters
必須 | 名称 | 型 | 説明 |
---|---|---|---|
○ | client_id | string | 配布するclient_id |
○ | redirect_uri | string | 事前にいただき、登録済のリダイレクトURI |
○ | response_type | string | 用途に合わせたresponce_typeです http://oauth.jp/blog/2015/01/06/oauth2-multiple-response-type/ |
○ | scope | string | 「expense_read」にのみ対応しています。 |
response
名称 | 型 | 説明 | データ例 |
---|---|---|---|
code | string | アクセストークンを取得するためのcode |
RODEMのアクセス権許可画面に遷移後、「許可」を選択するとredirect_uriに設定したURLに対しクエリにcodeがついた形でGETリクエストが走ります。
example
/oauth/authorize?client_id=***************&redirect_uri=https%3a%2f%2flvh%2eme%3a3000%2foauth%2fcallback&response_type=code&scope=expense_read
OAuth認証(初期アクセストークン発行)
POST /oauth/token
parameters
必須 | 名称 | 型 | 説明 |
---|---|---|---|
○ | client_id | string | 配布するclient_id |
○ | client_secret | string | 配布するclient_secret |
○ | redirect_uri | string | 事前にいただき、登録済のリダイレクトURI |
○ | grant_type | string | 「authorization_code」 |
○ | code | string | 認証画面で取得したcode |
response
名称 | 型 | 説明 | データ例 |
---|---|---|---|
access_token | string | 精算データ取得APIを利用するためのトークン | |
expires_in | number | アクセストークン有効期限(秒) | 3600 |
refresh_token | string | アクセストークンを再発行するためのトークン |
※取得したリフレッシュトークンを、連携システムで保存・管理してください。
アクセストークンは有効期限が短いため、APIを利用する場合はその都度、リフレッシュトークンを元に下記のアクセストークンの再発行を行うことをおすすめします。
OAuth認証(リフレッシュトークンによるアクセストークン再発行)
POST /oauth/token
parameters
必須 | 名称 | 型 | 説明 |
---|---|---|---|
○ | client_id | string | 配布するclient_id |
○ | client_secret | string | 配布するclient_secret |
○ | grant_type | string | 「refresh_token」 |
○ | refresh_token | string | リフレッシュトークン |
response
名称 | 型 | 説明 | データ例 |
---|---|---|---|
access_token | string | 精算データ取得APIを利用するためのトークン | |
expires_in | number | アクセストークン有効期限(秒) | 3600 |
refresh_token | string | アクセストークンを再発行するためのトークン |
精算データ取得
指定した期間にRODEMに登録されている移動予定に関する料金(運賃+特急料金)・経路情報などを取得できます。
RODEMに移動予定が登録されている場合でも、料金が0円の明細については出力されません。
GET /api/v1/expenses
parameters
ヘッダ
必須 | 名称 | 型 | 説明 |
---|---|---|---|
○ | Authorization | string | アクセストークン 例: Bearer access_token |
○ | Accept | string | メディアタイプ 例:application/json |
クエリ
必須 | 名称 | 型 | 説明 |
---|---|---|---|
○ | start_date | string | データ取得開始日(yyyymmdd) |
○ | end_date | string | データ取得終了日(yyyymmdd) |
offset | integer | データ取得開始位置(0…n) Default:0 | |
limit | integer | データ取得数(1…200) Default:200 |
response
必須 | 名称 | 型 | 説明 | データ例 |
---|---|---|---|---|
○ | map | ルート要素 | ||
○ | id | integer | ユーザーID | |
○ | total_expense_count | integer | 総精算データ件数 | |
○ | offset | integer | データ開始位置のオフセット値 | |
○ | expense_details | array | 精算データ配列 | ※料金が0円のデータは出力されません。 |
○ | expense_details / id | integer | 精算データID | |
○ | expense_details / updated_at | string | 精算データ更新日時 | 2016-09-30 13:56:00 |
○ | expense_details / use_date | string | 利用日 | 2016-09-30 |
○ | expense_details / price | integer | 料金(運賃+特急料金) | 165 |
○ | expense_details / distance | integer | 乗車距離 (100m単位) | 105 |
expense_details / serialize_data | string | シリアライズデータ(駅すぱあとwebサービス用) | ||
○ | expense_details / movement_start_time | string | 出発時刻(yyyy-mm-dd hh24:mi) | 2016-09-30 13:56:00 |
○ | expense_details / movement_end_time | string | 訪問先到着時刻(yyyy-mm-dd hh24:mi) | 2016-09-30 13:56:00 |
○ | expense_details / sojourn_time | string | 訪問先滞在時間(分) | 60 |
expense_details / calendar_title | string | カレンダーのタイトル欄から[ ]を抜いた文字列 | タイトルが「[訪問先(企業名)]打ち合わせ」の場合 →「打ち合わせ」 |
|
expense_details / flags | map | |||
expense_details / flags / best_price | boolean | 最安フラグ | TRUE/FALSE | |
expense_details / flags / best_time | boolean | 最早フラグ | TRUE/FALSE | |
expense_details / flags / best_transfer | boolean | 最小乗換数フラグ | TRUE/FALSE | |
expense_details / flags / with_teiki | boolean | 定期券利用有無 | TRUE/FALSE | |
expense_details / flags / use_ic_card | boolean | IC カード利用有無 | TRUE/FALSE | |
expense_details / flags / reroute | boolean | 当日のリルート有無 | TRUE/FALSE | |
expense_details / course_detail | map | |||
○ | expense_details / course_detail / course_string | string | 経路 | 六本木-[都営大江戸線・都庁前・光が丘方面]-新宿-[JR中央線快速・豊田行き]-高円寺 |
○ | expense_details / course_detail / from_name | string | 出発地(企業名) | 自社 |
○ | expense_details / course_detail / to_name | string | 訪問地(企業名) | 株式会社ヴァル研究所 |
○ | expense_details / course_detail / lines | array | 路線名配列 | |
○ | expense_details / course_detail / lines / name | string | 路線名 | |
○ | expense_details / course_detail / stations | array | 駅情報配列 | |
expense_details / course_detail / stations / name | string | 駅名 | ||
expense_details / course_detail / stations / code | int | 駅コード | ||
expense_details / teiki_course | string | 登録定期券区間(※本明細登録時のものではなく、API出力時にユーザーの定期マスタに登録されている定期区間となります。) |
example
GET:/api/v1/expenses?start_date=20161201&end_date=20161220&offset=1&limit=1
{
"id": 27,
"total_expense_count": 2,
"offset": 1,
"expens_details": [
{
"id": 474,
"updated_at": "2016-12-14T13:10:22.470+09:00",
"use_date": "2016-12-18",
"price": 154,
"distance": 117,
"serialize_data": "VkV4QaEBygLDAqYBM6K0A6YBM6K0BJHCAUMAAAACpgEzor...",
"movement_start_time": "2016-12-18T13:09:00.000+09:00",
"movement_end_time": "2016-12-18T14:00:00.000+09:00",
"sojourn_time": 60,
"calendar_title": "打ち合わせ",
"flags": {
"best_price": true,
"best_time": true,
"best_transfer": true,
"with_teiki": true,
"use_ic_card": true,
"reroute": false
},
"course_detail": {
"course_string": "自社-[徒歩]-高円寺-[JR総武線・津田沼行]-新宿-[JR山手線外回り・池袋・上野方面]-池袋-[徒歩]-株式会社◯◯",
"from_name": "自社",
"to_name": "株式会社◯◯",
"lines": [
{
"name": "徒歩"
},
{
"name": "JR総武線・津田沼行"
},
{
"name": "JR山手線外回り・池袋・上野方面"
},
{
"name": "徒歩"
}
],
"stations": [
{
"name": "高円寺",
"code": "22671"
},
{
"name": "新宿",
"code": "22741"
},
{
"name": "池袋",
"code": "22513"
}
]
},
"teiki_course": "桜台:西武池袋線:Up:池袋:JR山手線内回り:Down:新宿"
}
]
}