API連携オプション マスタデータ(CSV)自動取込の初期設定
概要
- 「API連携オプション」(有料)のお申込が必要です。
- 貴社がお使いのシステムで生成したCSVファイルを、APIを通じて「楽楽請求」のマスタに取り込むことができます。また、CSV取込の状況を確認することができます。
※API連携を行うための連携プログラム(システム構築)は「楽楽請求」外に貴社側でご用意いただく必要があります。
(サンプルプログラムはご提供可能です。) - 取込可能なマスタ情報は、以下「API連携で取込可能なマスタ」よりご確認ください。
- HTTPヘッダに「楽楽請求」が発行するAPIトークンを埋め込むことで認証を実現します。
API連携で取込可能なマスタ
取引先設定
社員設定
役職設定
部門設定
プロジェクト設定
勘定科目設定
補助科目設定
税区分設定
汎用マスタ設定
「楽楽請求」できること
APIトークンの管理
-
APIトークンの発行
- APIのアクセス制限(アクセスを許可するIPアドレスの登録)
注意
-
API呼出しには以下の制限が設定されています。また、これらの設定値は変更される場合があります。
-
リクエスト数:1アカウント毎に1分間に20リクエスト以下(ユーザー毎ではない)
-
- メンテナンス時間中のAPIリクエストに対してはHTTPステータス503で返却されます。
詳細はAPI連携 「楽楽請求」サービス停止中の場合、自動連携はどのような挙動になるのか知りたいをご確認ください。
APIトークン
「楽楽請求」のAPIの利用時に認証用キーとして使用する文字列です。
APIトークンは、「楽楽請求」の管理者権限のみ発行できます。
APIトークンの発行
「設定」タブ>「システム設定」>「API連携設定」画面にて「生成」をクリックすることで「APIトークン」が発行されます。
※「システム設定」の操作には管理者権限が必要です。
APIトークンは生成直後のみ表示されます。
もし紛失した場合は再生成を実施ください。
APIトークンの再生成
「再生成」ボタンをクリック後に表示される「APIトークンの再生成」画面で「再生成」をクリックすることで、APIトークンが再生成されます。
※上記記載の通り再生成した場合、APIトークンは上書きされ過去生成されていたAPIトークンは利用できなくなります。
APIトークンの削除
「削除」ボタンをクリック後に表示される「APIトークンの削除」画面で「削除」をクリックすることで、APIトークンが削除され、APIが使用できない状態になります。
APIのアクセス制限
API専用の接続を許可するIPアドレスを制限することが可能です。
設定手順
-
「設定」タブ>「システム設定」>「セキュリティ設定」をクリック
-
「APIのアクセス制限」項目を「制限する」を選択
-
許可するIPアドレスを入力
-
「保存」をクリック

API基本シーケンス
リクエスト、レスポンスに関する基本シーケンスは以下の通りです。
※貴社のシステムと「楽楽請求」の間に中間サーバーが存在する場合を想定しています。
中間サーバーとは「楽楽請求」のAPIを実行するためのプログラムが配置されているサーバーを想定しています。
※中間サーバーが存在しない場合は、貴社のシステムと「楽楽請求」が直接連携することになります。
リクエスト方法
APIへのリクエストを行う際の基本的な情報は以下の通りです。
マスタインポートAPI
CSV取込予約を行うためのAPIです。
-
通信方式:HTTPS
- メソッド:POST
- 文字コード:UTF-8
- URL:https://【ドメイン】/【テナント】/api/v1/masters/import
※詳細については、別途記載されている「URL例」をご参照ください。 - ヘッダ:X-SK-apitoken: {APIトークン}
※上記のAPIトークンを含むリクエストヘッダを必ず指定してください。
※APIトークンは、別途記載されている「APIトークンの発行」をご確認ください。
■URL例
https://app.rakurakuseikyu.jp/xxxxxx/api/v1/masters/import
◆rakurakuseikyu.jp →利用するドメイン
◆xxxxxxx →利用するテナント
◆api/v1 →APIバージョンの指定
◆masters/import →API名
リクエスト
-
ヘッダ
ヘッダ
値
必須
X-SK-apitoken
{ APIトークン }
〇
Content-Type
multipart/form-data
〇
- ボディ
|
パラメータ名 |
項目名 |
型 |
必須 |
内容 |
備考 |
|
data |
リクエスト情報 |
オブジェクト |
〇 |
ー |
Content-Type: |
|
type |
マスタ種別 |
整数 |
◯ |
1:取引先 2:社員 3:部門 4:プロジェクト 5:勘定科目 6:補助科目 7:税区分 8:汎用マスタ 9:役職 |
|
|
isSkippedFirstLine |
1行目をスキップするかどうかのフラグ |
真偽値 |
◯ |
true: CSVの1行目をスキップして2行目から取り込む false:CSVの1行目から取り込む |
|
|
isSendPasswordMail |
登録時のメール送信フラグ |
真偽値 |
true: 社員登録成功時にパスワードメールを送信する false:社員登録成功時にパスワードメールを送信しない |
type = 2の場合は必須 |
|
|
customMasterSettingName |
汎用マスタ名 |
文字列 |
汎用マスタ管理で登録されている"汎用マスタ名"を指定 |
type = 8の場合は必須 |
|
|
file |
アップロードするファイル |
文字列 |
◯ |
- |
Content-Type: |
(例)curl -i -X 'POST' \
'https://【ドメイン】/【テナント】api/v1/masters/import'\
-H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAdkAiG0rxRpZeTrW' \
-H 'X-SK-apitoken: {APIトークン}' \
--data-raw $'
------WebKitFormBoundaryAdkAiG0rxRpZeTrW
Content-Disposition: form-data; name="data"; filename="blob"
Content-Type: application/json
{
"type": 8,
"isSkippedFirstLine": true,
"customMasterName": "店舗No"
}
------WebKitFormBoundaryAdkAiG0rxRpZeTrW
Content-Disposition: form-data; name="file"; filename="custom_master_2025082.csv"
Content-Type: text/csv
....
------WebKitFormBoundaryAdkAiG0rxRpZeTrW--'
レスポンス
-
ボディ
|
パラメータ名 |
項目名 |
型 |
必須 |
内容 |
|
masterImportJobId |
インポート状況ID |
整数 |
〇 |
インポート状況の確認に使用するID |
(例)
HTTP/1.1 200
....
{
"masterImportJobId": 1
}
補足
-
各マスタのファイルはAPI連携で取込可能なマスタのテンプレートに記載の「記入例」に従って指定してください。
-
取込に利用できるファイルの上限は、ファイルサイズ10MBです。
-
ファイルの文字コードはMS932を指定してください。
マスタインポート状況取得API
CSV取込の状況確認を行うためのAPIです。
-
通信方式:HTTPS
-
メソッド:GET
-
文字コード:UTF-8
-
URL:https://【ドメイン】/【テナント】/api/v1/masters/import/【masterImportJobId】
リクエスト
-
ヘッダ
ヘッダ
値
必須
X-SK-apitoken
{ APIトークン }
〇
-
パスパラメータ
|
パラメータ名 |
項目名 |
型 |
必須 |
内容 |
|
masterImportJobId |
インポート状況ID |
整数 |
〇 |
マスタインポートAPIで取得したID |
(例)
curl -i -X 'GET' \
https://ドメイン】/【テナント】api/v1/masters/import/1 \
-H 'X-SK-apitoken: {APIトークン}'\
レスポンス
-
ボディ
パラメータ名
項目名
型
必須
内容
備考
type
マスタ種別
整数
◯
1:取引先
2:社員
3:部門
4:プロジェクト
5:勘定科目
6:補助科目
7:税区分
8:汎用マスタ
9:役職
customMasterSetting
汎用マスタ情報
オブジェクト
-
type = 8の場合は必須
name
汎用マスタ名
文字列
汎用マスタ管理で登録されている"汎用マスタ名"を指定
type = 8 and
isDeleted =
falseの場合は必須isDeleted
削除フラグ
真偽値
◯
true:削除済みの汎用マスタ
false:未削除の汎用マスタ
type = 8の場合は必須
methodType
インポート方法
整数
◯
1:画面からCSVアップロードした場合
2:APIからCSVアップロードした場合
status
ステータス
整数
◯
1:取込準備中
2:取込中
3:成功
4:失敗
startedAt
マスタインポートの処理を開始した日時
文字列
YYYY-MM-DDTHH:MM:SS
status = 2 or
3 or 4の場合は必須finishedAt
マスタインポートの処理を終了した日時
文字列
YYYY-MM-DDTHH:MM:SS
status = 3 or
4の場合は必須employee
社員
オブジェクト
インポートを実行した社員情報
methodType
= 1の場合は必須code
社員コード
文字列
◯
-
methodType
= 1の場合は必須name
社員名
文字列
◯
-
methodType
= 1の場合は必須isDeleted
削除フラグ
真偽値
◯
true:削除済みの社員
false:未削除の社員
methodType
= 1の場合は必須successCount
インポートに成功した件数
整数
インポートに成功した件数
status = 3 or
4の場合は必須errorCount
インポートに失敗した件数
整数
インポートに失敗した件数
status = 3 or
4の場合は必須
(例)
HTTP/1.1 200
....
{
"type": 8,
"customMasterSetting": {
"name": "福岡支店"
"isDeleted": false
},
"methodType": 2,
"status": 3,
"startedAt": "2026--01-23T18:13:34",
"finishedAt":"2026--01-23T18:20:34",
"employee": {
"code": "10001",
"name": "営業太郎",
"isDeleted": false
},
"successCount": 10,
"errorCount": 0
}
補足
-
取込失敗レコードについては、
「設定」タブ>「レポート」>「マスタインポートログ」画面の「レポート」より「↓」をクリックしダウンロードすることで失敗した原因を確認することができます。
マスタ削除API
-
通信方式:HTTPS
-
メソッド:POST
-
文字コード:UTF-8
- URL:https://【ドメイン】/【テナント】/api/v1/masters/delete
リクエスト
-
ヘッダ
ヘッダ
値
必須
X-SK-apitoken
{ APIトークン }
〇
Content-Type
application/json
〇
- ボディ
パラメータ名
項目名
型
必須
内容
備考
type
マスタ種別
整数
◯
1:取引先
2:社員
3:部門
4:プロジェクト
5:勘定科目
6:補助科目
7:税区分
8:汎用マスタ
9:役職
code
マスタコード
文字列
◯
各マスタで設定しているコードを指定
customMasterSettingName
汎用マスタ名
文字列
汎用マスタ管理で登録されている"汎用マスタ名"を指定
type = 8の場合は必須
(例)
curl -i -X 'POST' \
' https://【ドメイン】/【テナント】api/master/delete' \
-H 'Content-Type: application/json' \
-H 'X-SK-apitoken: vJvhs6U-4RQcXPf7YyLl_ppPgqIK8n0dB2MWCL875JJj4E-lxCUhAKVAngan7cHQ' \
-d '{
"type": 8,
"code": "0001",
"customMasterSettingName": "店舗"
}'
レスポンス
-
ボディ
なし
(例)HTTP/1.1 200
ステータスコード
レスポンスのボディ部に書かれたステータスコードから、リクエスト成功・失敗を判別することができます。
HTTPのステータスコードも同様の値を返却します。
| コード | 状態 | 詳細 | ボディ(例) | 備考 |
| 200 | 成功 | - | { "masterImportJobId ": 1 } |
|
| 400 | 通常エラー | 入力エラー等、アプリケーションが検出するエラー | { "errors": [ { "name": "fieldName", "msg": "エラーメッセ ージ" } ] } |
|
| 401 | 認証エラー | 認証失敗、必要な権限がない場合のエラー | ||
| 403 | オプション未契約・IPアドレス制限エラー | API機能が利用できない場合のエラー | {"code":"FORBIDDE N_ACCESS"} |
FORBIDDEN_ ACCESS: オプション未契約 FORBIDDEN_ POLICY: IPアドレス制限エラー |
| 404 | 対象URIなし | URIの指定が間違っている場合のエラー | ||
| 405 | 対応していないメソッド | 対応していないHTTPメソッドでリクエストされた場合のエラー | ||
| 406 | 対応していないヘッダ | Acceptヘッダの値がレスポンス形式と一致しない場合のエラー | ||
| 415 | 対応していないファイルタイプ | 対応していないファイルタイプでリクエストされた場合のエラー | ||
| 409 | リソースの競合 | 複数のユーザーが同時に操作した場合のエラー | ||
| 429 | リクエスト回数超過 | 最大アクセス数を超える回数のリクエストが送信された場合のエラー | ||
| 500 | 内部エラー | 予期しないエラー ※問い合わせ |
||
| 503 | メンテナンス中 | 「楽楽請求」のメンテナンス中に返すエラー |
レスポンス
- ヘッダ
|
ヘッダ |
値 |
|
Content-Type |
application/json JSON以外の場合は、ファイル形式に準じた値 |
|
X-Content-Type-Options |
nosniff |
|
Cache-Control |
private, no-store, no-cache, must-revalidate |
|
Pragma |
no-cache |
|
X-XSS-Protection |
1; mode=block |
|
X-Frame-Options |
deny |
|
Strict-Transport-Security |
max-age=31536000; includeSubDomains |
|
Content-Security-Policy |
default-src 'none' |
|
X-Content-Security-Policy |
default-src 'none' |
|
X-WebKit-CSP |
default-src 'none' |
|
content-disposition |
ファイルに準じた値 inline; filename*=UTF-8''〇〇.csv |
|
connection |
keep-alive |
|
content-length |
ex) 100 |
|
Date |
ex) Thu, 22 Jan 2026 06:32:53 GMT |
|
content-encoding |
gzip |
|
vary |
accept-encoding |
|
transfer-encoding |
chunked
|
サービスメンテナンス時の注意点
メンテナンス終了後に実行をお願いいたします。
なお、メンテナンス時間はサービス稼働状況に掲載しております。
サービス停止なしのメンテナンス中はAPIの実行が可能です。
サンプルプログラム
サンプルプログラムに関しては、サンプルソースを別途用意しております。
ご希望のお客様は以下フォームよりお問い合わせください。
注意
なおあくまでサンプルであり、この通りに作ることを推奨しているものではなく、動作の保証はしておりません。
プログラムの内容について具体的なご案内はできないため、予めご了承ください。
(記事ID:6011)