日報 API
日報 ( app=dailyReport )の点検結果を扱う API の仕様です。
共通の認証・ベースURLは 基本情報・認証仕様 を参照してください。
1. 🗺️ エンドポイント一覧
| メソッド | エンドポイント(クエリパラメータ) | 処理概要 |
|---|---|---|
| POST | ?app=dailyReport | 点検結果の本送信登録(同一営業日は upsert) |
| GET | ?app=dailyReport&docId={id} | 点検結果の単一取得 |
| GET | ?app=dailyReport&date=YYYY-MM | 月次一覧取得(営業日基準) |
| GET | ?app=dailyReport&date=YYYY-MM-DD | 日次一覧取得(営業日基準) |
⚠️ 非対応スコープ(制限事項)
以下の操作およびデータ連携には対応していません。
- 確認・承認フローの実行
- 特記事項(コメント)・画像の登録
- 日報フォーマット(マスタ)の取得・更新(参照行の補完には利用)
- NG 時のメール通知
- スケジュール完了の登録
- データの削除
2. 📥 POST: 点検結果の登録
登録リクエストは他 API と同様に 常に data 配列 で送ります。
日報 API では data は必ず1件 です(複数日の一括送信は不可)。
店舗・営業日あたり1ドキュメントです。同一営業日へ再送信すると checkItems を洗い替え更新します(既存の手動結果は残しません)。 確認済み( confirmerName が空でない)の日報は更新できません。
営業日( registeredAt )は店舗の閉店時刻を加味してサーバーが算出します(リクエストに含めても無視)。
💡 参照行と洗い替え
個人衛生・庫内温度などreferenceService付きの行はリクエストに含めません。 店舗に日報フォーマット(shopReportQuestionLink/reportQuestions)がある場合、サーバが参照行だけマスタから取り、 手動項目の後ろ に付けます。 手動項目はリクエストのcheckItems送信順のまま先頭に保存します(マスタ照合・差し込みなし)。 マスタ未設定の店舗では、リクエストの手動項目だけを保存します。 再 POST 時は前回の手動結果をマージせず、今回の内容が最終状態になります。
2.1 リクエストデータ構造
| 物理キー | 論理名 | データ型 | 必須状況 | 概要・制約 |
|---|---|---|---|---|
data | 登録対象一覧 | array | 必須 | 日報オブジェクトの配列。 要素数は必ず1 。 |
data[].sender | 送信者名 | string | 必須 | 点検を実施・送信した担当者の氏名。 項目側 sender 未指定時の既定値になります。 |
data[].registeredAt | 営業日 | string | 指定不可(無視) | リクエストに含めても使用しません。 サーバーが店舗の閉店時刻を加味した当日営業日を設定します。 |
data[].checkItems | 点検項目 | array | 必須 | その営業日の手動点検項目(1件以上)。 再送信時はこの配列が最終状態になります。詳細は 2.2 参照。 |
2.2 checkItems[](点検項目)の構造
| 物理キー | 論理名 | データ型 | 必須状況 | 概要・制約 |
|---|---|---|---|---|
category | 区分 | string | 必須 | 例: "一般衛生管理" / "重点衛生管理"。 |
solution | 対策 | string | 必須 | 対策名(例: "アレルゲン対策")。 |
questionContent | 点検内容 | string | 必須 | 点検内容の表示名。 |
checkResult | 点検結果 | string | 条件付き必須 | "OK" / "NG" / ""。 配列内に1件以上の "OK" または "NG" が必要です。 |
sender | 項目送信者 | string | 任意 | 結果あり時のみ保存。未指定時は data[].sender を使用。 |
sentAt | 項目送信日時 | string | 任意 | 結果あり時のみ保存。形式は YYYY/MM/DD HH:mm:ss。 未指定時はサーバーが現在時刻を設定。 |
2.3 リクエストJSONサンプル
{
"data": [
{
"sender": "山田太郎",
"checkItems": [
{
"category": "一般衛生管理",
"solution": "アレルゲン対策",
"questionContent": "手洗いを実施した",
"checkResult": "OK"
}
]
}
]
}2.4 入力バリデーションルール
- 基本構造の不備 : リクエスト JSON 全体に
data配列が存在しない、または空配列である。 dataの件数 : 空配列、または2件以上は不可(必ず1件)。- 必須項目の欠落 :
senderが未指定または空文字、checkItemsが配列でない、または空配列である。 - 結果未入力 : すべての
checkItems[].checkResultが空の場合は登録不可。 checkResultの値不正 :"OK"/"NG"/""以外の値が指定されている。- 参照行の指定 :
referenceServiceに値がある項目はリクエスト不可(サーバがマスタから補完)。 - マスタ未設定 : 登録自体は可能。参照行の補完は行わず、リクエスト内容を保存する。
- 確認済み日報の更新 : 同一営業日の既存日報が確認済みの場合は更新不可。
💡 洗い替え規則
同一営業日への再 POST は、既存checkItemsとの差分マージを行いません。 今回送った手動項目(+サーバが補完した参照行)が最終状態になります。 送っていない手動項目は「未点検」行として残りません。
2.5 POST レスポンス仕様
HTTPステータスコードは成功を示す 200 、失敗を示す 400 を返却します( data は1件のため、部分成功の 207 は通常発生しません)。 summary.created は新規作成・洗い替え更新を含む成功件数です。
{
"status": "success",
"shopUID": "xxxxxxxxxxxxxxxxxxxx",
"summary": {
"requested": 1,
"created": 1,
"failed": 0
},
"results": [
{
"index": 0,
"status": "success",
"docId": "daily_report_doc_id_11111"
}
]
}3. 📤 GET: 点検結果の取得
取得系APIにおいて、レスポンスに含まれるすべての日付・時刻フィールド (ドキュメント直下の Timestamp 由来)は、 YYYY/MM/DD HH:mm の文字列形式に統一されて返却されます。
なお checkItems[].sentAt は画面と同じ YYYY/MM/DD HH:mm:ss 文字列として保存・返却されます。
3.1 単一取得(docId 指定)
- Request:
GET {baseUrl}?app=dailyReport&docId=daily_report_doc_id_11111
{
"data": [
{
"id": "daily_report_doc_id_11111",
"shopUID": "xxxxxxxxxxxxxxxxxxxx",
"checkItems": [
{
"category": "一般衛生管理",
"solution": "アレルゲン対策",
"referenceService": "",
"questionContent": "手洗いを実施した",
"checkResult": "OK",
"sentAt": "2026/08/07 09:16:30",
"sender": "山田太郎"
},
{
"category": "重点衛生管理",
"solution": "金属および硬質プラスティック対策",
"referenceService": "personalHygiene",
"questionContent": "個人衛生点検を実施した",
"checkResult": "",
"sentAt": "",
"sender": ""
}
],
"registeredAt": "2026/08/07 00:00",
"lastSentAt": "2026/08/07 09:16",
"confirmedAt": "",
"confirmerName": "",
"approvedAt": "",
"approverName": "",
"createdAt": "2026/08/07 09:16",
"updatedAt": "2026/08/07 09:16"
}
]
}3.2 一覧取得(date 指定)
GET {baseUrl}?app=dailyReport&date=2026-08(月次一覧取得)GET {baseUrl}?app=dailyReport&date=2026-08-07(日次一覧取得)
💡 サーバー側での自動フィルタリング・ソート規則
- 認証されたAPIキーに紐づく
shopUIDのデータのみに自動制限されます。- データは 営業日順(
registeredAtの昇順) でソートして返却されます。
3.3 🗂️ 点検結果オブジェクト詳細定義(GETレスポンス)
| フィールドキー | 論理名 | データ型 | 概要・返却値のルール |
|---|---|---|---|
id | ドキュメントID | string | データベース上で一意に割り振られたドキュメントID。 |
shopUID | 店舗ID | string | APIキーから紐づけられた店舗コード。 |
checkItems | 点検項目 | array | POST と同じ構造の点検項目配列(詳細は 2.2 参照)。 |
registeredAt | 登録日時(営業日) | string | 営業日の日付(JST 00:00 固定)。 |
lastSentAt | 最終点検日時 | string | 最後に点検結果が送信・更新された日時。 |
createdAt | 作成日時 | string | ドキュメントの初回作成日時。 |
updatedAt | 更新日時 | string | ドキュメントの最終更新日時。 |
confirmedAt | 確認日時 | string | アプリ画面側で確認フローが実行された日時。未確認時は ""。 |
confirmerName | 確認者氏名 | string | 確認を行ったユーザーの氏名。未確認時は ""。 |
approvedAt | 承認日時 | string | アプリ画面側で承認フローが実行された日時。未承認時は ""。 |
approverName | 承認者氏名 | string | 承認を行ったユーザーの氏名。未承認時は ""。 |