外部連携 API(v1)、日程調整、背番号機能を追加しました
外部連携 API(v1)
楽チームの外部連携 API(v1)を公開しました。クラブのオーナーが管理画面で API キーを発行すると、お客様のサーバから楽チームのデータを直接読み書きできます。
できること
疎通確認
GET /meでキーの権限とクラブの情報を確認できます。scope を 1 つも要求しないため、キーを発行した直後の疎通確認に使えます
名簿
GET /membersで会員の一覧を取得できます。背番号での絞り込み(?jerseyNumber=)や、退会者を含めた取得(?includeLeft=true)にも対応していますGET /members/{id}で会員 1 人の詳細を取得できます。直近 365 日の参加回数も返りますPATCH /members/{id}で連絡先・生年月日・背番号などを更新できますPUT /members/{id}/labelsで会員に付いているラベル(学年やポジションなど)を丸ごと置き換えられますGET /member-labelsでクラブに登録されているラベルの一覧を取得できます
活動
GET /eventsで活動の一覧を取得できます。期間・ステータスでの絞り込みや、昇順(?order=asc)での取得にも対応していますGET /events/{id}で活動 1 件の詳細を取得できます。対象ラベル・有料オプション・支払い方法の制限なども返りますPOST /eventsで活動を 1 件作成できます。作成直後は下書き状態ですPOST /events/recurringで繰り返しの活動を一度に作成できます。週次・隔週・月次に対応しており、最大 365 回まで指定できますPATCH /events/{id}で活動のタイトル・日時・料金・定員などを編集できますPOST /events/{id}/publishで活動を公開して、会員のアプリに表示できますPOST /events/publishで複数の活動を一括で公開できます(最大 90 件)POST /events/unpublishで複数の活動を一括で下書きに戻せます(最大 90 件)POST /events/{id}/cancelで活動を中止にできますPOST /events/{id}/completeで活動を完了にできます
出欠
GET /events/{id}/bookingsでその活動の出欠一覧を取得できますGET /members/{id}/bookingsで会員 1 人の予約履歴を取得できます。期間や活動での絞り込みにも対応していますPOST /events/{id}/bookingsで会員を代理で予約に入れられますDELETE /bookings/{id}で予約を取り消せますPOST /bookings/{id}/checkinで受付(チェックイン)を記録できますPOST /bookings/{id}/no-showで無断欠席を記録できますPOST /bookings/{id}/notified-absenceで連絡ありの欠席を記録できますPOST /bookings/{id}/attendedで出席を記録できますDELETE /bookings/{id}/attendedで出席や無断欠席の記録を取り消せます
キャンセル申請
GET /booking-cancel-requestsでキャンセル申請の一覧を取得できますPOST /booking-cancel-requests/{id}/decideでキャンセル申請を承諾または却下できます
会場・活動内容・テンプレート
GET /places/POST /places/PATCH /places/{id}/DELETE /places/{id}で会場の一覧取得・登録・編集・削除ができますGET /event-types/POST /event-types/PATCH /event-types/{id}/DELETE /event-types/{id}で活動内容(種別)の一覧取得・追加・編集・削除ができますGET /event-templates/POST /event-templates/PATCH /event-templates/{id}/DELETE /event-templates/{id}でテンプレートの一覧取得・作成・編集・削除ができます
野球のスコア記録
POST /baseball/gamesで試合を記録できます。打撃成績と投球成績を選手ごとにまとめて登録しますGET /baseball/gamesで試合の一覧を取得できますGET /baseball/games/{id}で試合 1 件の詳細と全選手の成績を取得できますPATCH /baseball/games/{id}で試合の情報や成績を編集できますDELETE /baseball/games/{id}で試合を削除できます
お知らせ
GET /announcementsでお知らせの一覧を取得できます。アーカイブ済みを含めるかどうかも選べますGET /announcements/{id}でお知らせ 1 件の詳細を取得できますPOST /announcementsでお知らせを作成できます。宛先の会員ラベルやプランを指定できますGET /announcements/{id}/readsで既読者の一覧を取得できますPOST /announcements/{id}/archive/.../unarchiveでお知らせをアーカイブまたは解除できますDELETE /announcements/{id}でお知らせを削除できます
日程調整
GET /schedule-pollsで日程調整の一覧を取得できます。ステータス(draft/open/closed)での絞り込みにも対応していますGET /schedule-polls/{id}で日程調整 1 件の詳細を取得できます。候補ごとの ○ / △ / × の件数と、回答者の一覧も返りますPOST /schedule-pollsで日程調整を作成できます。候補日時・回答できる会員ラベル・回答必須の設定などを指定します。作成直後は下書き状態ですPATCH /schedule-polls/{id}でタイトル・説明・期限・ラベルなどを編集できますPOST /schedule-polls/{id}/optionsで候補日時を追加できますDELETE /schedule-polls/{id}/options/{optionId}で候補日時を削除できますPOST /schedule-polls/{id}/publishで日程調整を公開して、会員のアプリに表示できますPOST /schedule-polls/{id}/unpublishで下書きに戻せます(回答が 0 件のときのみ)POST /schedule-polls/{id}/closeで締め切れます。候補を 1 つ選んで決定することもできますPOST /schedule-polls/{id}/reopenで締め切った日程調整を再開できますDELETE /schedule-polls/{id}で日程調整を削除できます
収支と会計
GET /finance/summaryで指定した期間の収支サマリーを取得できます。収入・支出・残高に加え、科目別や予算別の内訳も返りますGET /funds/overviewでチームの保有残高を確認できます。会員ごと・口座ごとの内訳も返りますGET /funds/ledgerで会計履歴を取得できます。資金移動・受領・経費を時系列にまとめて並べ、各行の直後の残高も返ります。口座や期間での絞り込みにも対応していますGET /journalで仕訳帳を取得できますGET /arrearsで未収(滞納)の一覧を取得できますGET /members/{id}/debtsで会員 1 人の未収詳細を取得できますGET /transactionsで取引明細を取得できます。期間や支払い方法での絞り込みにも対応していますGET /charge-withdrawalsで取り下げ申請の一覧を取得できます
経費
GET /expensesで経費の一覧を取得できます。ステータスや期間での絞り込みにも対応していますPOST /expensesで経費を登録できます。立替者(paidByMemberId)の指定が必要ですPOST /expenses/{id}/approveで経費を承認できますPOST /expenses/{id}/rejectで経費を却下できます
経費科目
GET /expense-categoriesで経費科目の一覧を取得できますPOST /expense-categoriesで経費科目を追加できますPATCH /expense-categories/{id}で経費科目を編集できますPOST /expense-categories/{id}/archiveで経費科目をアーカイブできます
口座
GET /bank-accountsで口座の一覧を取得できます。アーカイブ済みの口座を含めることもできますPOST /bank-accountsで口座を登録できますPATCH /bank-accounts/{id}で口座を編集できますPOST /bank-accounts/{id}/archiveで口座をアーカイブできます
資金移動
POST /funds/transfersで口座間や会員間の資金移動を記録できますPOST /funds/bank-incomeで口座への入金を記録できますPOST /funds/opening-balanceで期首残高を登録できますDELETE /funds/opening-balance/{id}で期首残高を取り消せますPOST /funds/import-payoutで Stripe の入金を口座に取り込めます
請求・受領・減免
POST /chargesで会員への請求を発行できますPOST /charges/{id}/cancelで請求を取り消せますPOST /charge-withdrawals/{id}/approve/.../rejectで取り下げ申請を承諾または却下できますPOST /receiptsで現金や PayPay の受領を記録できますDELETE /receipts/{id}で受領の記録を取り消せますPOST /debts/{id}/waiveで未収を減免できますDELETE /debts/{id}/waiveで減免を取り消せます
仕様
- 認証は API キー(
Authorization: Bearer rt_live_...)で、1 本のキーは 1 つのクラブに属します - キーごとに scope(権限)を選んで発行できます。あとから scope を広げるには新しいキーを作り直します。会計には
accounting:read(読み取り)、accounting:write(経費・科目・口座・資金移動・予算の記録)、accounting:approve(経費の承認)、payments:write(請求・受領・減免)の 4 つの scope があります - すべての書き込みで冪等キー(
Idempotency-Keyヘッダ)が必須です。ネットワーク障害時の再送で重複を防ぐための仕様となります - 一覧はカーソル方式のページングで、1 ページ最大 200 件です
- エラーはすべて同じ形(
{ error: { code, message, requestId } })で返ります。分岐はcodeで行います - レート制限はキー単位で 60 リクエスト/分、IP 単位で 120 リクエスト/分です
利用方法
管理画面の「設定」から API キーを発行してください。仕様書(OpenAPI 3.1)は認証なしで取得できます。
GET https://api.rakuteam.com/api/v1/openapi.json
日程調整機能
候補日時を並べて会員に ○ / △ / × で回答してもらい、管理者が日程を決められるようになりました。
使い方
- 管理画面の連絡タブから日程調整を作成します。候補日時を複数追加し、タイトルや説明を入れます
- 「公開する」を押すと、会員のアプリに表示されます。会員は候補ごとに ○ / △ / × で回答します
- 管理画面では、候補ごとの ○ / △ / × の件数と未回答の人数を一覧で確認できます。全員の回答を一覧表で見ることもできます
- 日程が決まったら「締め切る」を押し、候補を 1 つ選んで確定します。確定した日時でそのままイベントを作成することもできます
回答必須の仕組み
活動と同じ仕組みで、回答必須の設定ができます。
- 回答できる会員ラベルを指定すると、そのラベルが付いた会員だけに表示されます。指定しなければクラブ全員が回答できます
- 回答を必須にするを有効にすると、回答期限と対象の会員ラベルを設定できます。期限を過ぎても未回答の会員には、ホーム画面に未回答マークが表示されます
- 期限を過ぎた後でも回答は受け付けます。期限は締切ではなく催促のための目安です
その他の設定
- △ を使う: 無効にすると ○ / × の 2 択になります
- 回答を会員に公開する: 有効にすると、他の会員の回答も一覧表として見られるようになります。無効の場合は、候補ごとの件数と自分の回答だけが表示されます
外部連携 API での日程調整の読み書きにも対応しています。詳しくは上の「できること」の「日程調整」をご覧ください。
参加者一覧の公開設定
活動ごとに、参加予定の会員一覧を他の会員にも見せるかどうかを選べるようになりました。
- 参加者一覧を会員に見せる — 有効にすると、会員のアプリからその活動に誰が参加予定なのかを確認できます。練習の参加人数を事前に把握したい場合などに使えます
- ラベル別に並べる — さらにこの設定を有効にすると、参加者一覧が会員ラベル(学年やポジションなど)ごとに分かれて表示されます。どのグループから何人参加するかが一目で分かります
どちらも活動の作成・編集時に設定できます。テンプレートにも同じ設定があるため、毎回の活動で個別に設定する必要はありません。
背番号機能
会員ごとに背番号を登録できるようになりました。現在は API 経由での読み書きに対応しています。
想定する使い方
背番号は、AI がスコアシートの写真を読み取って試合の成績を自動登録する際に、スコアシート上の番号と楽チームの会員を結びつけるために使います。
- API で会員の背番号を登録しておく(
PATCH /members/{id}) - 試合後、スコアシートの写真を AI に読み取らせる
- AI が読み取った背番号で会員を検索する(
GET /members?jerseyNumber=7) - 特定した会員の
clubMemberIdを使って、打撃成績や投球成績を登録する(POST /baseball/games)
背番号と会員の対応は、お客様のシステム側で管理してください。楽チーム側では背番号の重複を制限していないため、同じ番号を複数の会員に登録できます。
管理画面や会員アプリでの背番号の表示や編集については、今後のアップデートで対応する予定です。