🎉 会員数100名突破!新規ローンチ記念キャンペーン実施中
楽チーム

外部連携 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. 「公開する」を押すと、会員のアプリに表示されます。会員は候補ごとに ○ / △ / × で回答します
  3. 管理画面では、候補ごとの ○ / △ / × の件数と未回答の人数を一覧で確認できます。全員の回答を一覧表で見ることもできます
  4. 日程が決まったら「締め切る」を押し、候補を 1 つ選んで確定します。確定した日時でそのままイベントを作成することもできます

回答必須の仕組み

活動と同じ仕組みで、回答必須の設定ができます。

  • 回答できる会員ラベルを指定すると、そのラベルが付いた会員だけに表示されます。指定しなければクラブ全員が回答できます
  • 回答を必須にするを有効にすると、回答期限と対象の会員ラベルを設定できます。期限を過ぎても未回答の会員には、ホーム画面に未回答マークが表示されます
  • 期限を過ぎた後でも回答は受け付けます。期限は締切ではなく催促のための目安です

その他の設定

  • △ を使う: 無効にすると ○ / × の 2 択になります
  • 回答を会員に公開する: 有効にすると、他の会員の回答も一覧表として見られるようになります。無効の場合は、候補ごとの件数と自分の回答だけが表示されます

外部連携 API での日程調整の読み書きにも対応しています。詳しくは上の「できること」の「日程調整」をご覧ください。

参加者一覧の公開設定

活動ごとに、参加予定の会員一覧を他の会員にも見せるかどうかを選べるようになりました。

  • 参加者一覧を会員に見せる — 有効にすると、会員のアプリからその活動に誰が参加予定なのかを確認できます。練習の参加人数を事前に把握したい場合などに使えます
  • ラベル別に並べる — さらにこの設定を有効にすると、参加者一覧が会員ラベル(学年やポジションなど)ごとに分かれて表示されます。どのグループから何人参加するかが一目で分かります

どちらも活動の作成・編集時に設定できます。テンプレートにも同じ設定があるため、毎回の活動で個別に設定する必要はありません。

背番号機能

会員ごとに背番号を登録できるようになりました。現在は API 経由での読み書きに対応しています。

想定する使い方

背番号は、AI がスコアシートの写真を読み取って試合の成績を自動登録する際に、スコアシート上の番号と楽チームの会員を結びつけるために使います。

  1. API で会員の背番号を登録しておく(PATCH /members/{id})
  2. 試合後、スコアシートの写真を AI に読み取らせる
  3. AI が読み取った背番号で会員を検索する(GET /members?jerseyNumber=7)
  4. 特定した会員の clubMemberId を使って、打撃成績や投球成績を登録する(POST /baseball/games)

背番号と会員の対応は、お客様のシステム側で管理してください。楽チーム側では背番号の重複を制限していないため、同じ番号を複数の会員に登録できます。

管理画面や会員アプリでの背番号の表示や編集については、今後のアップデートで対応する予定です。