受入 API
受入 ( app=acceptance )の点検結果を扱う API の仕様です。
共通の認証・ベースURLは 基本情報・認証仕様 を参照してください。
1. 🗺️ エンドポイント一覧
| メソッド | エンドポイント(クエリパラメータ) | 処理概要 |
|---|---|---|
| POST | ?app=acceptance | 点検結果の本送信登録 |
| GET | ?app=acceptance&docId={id} | 点検結果の単一取得 |
| GET | ?app=acceptance&date=YYYY-MM | 月次一覧取得(営業日基準) |
| GET | ?app=acceptance&date=YYYY-MM-DD | 日次一覧取得(営業日基準) |
⚠️ 非対応スコープ(制限事項)
以下の操作およびデータ連携には対応していません。
- 送信後の修正、データの削除
- 確認・承認フローの実行
- 特記事項(コメント)の登録
- 本部点検票の紐づけ設定
- 画像の送受信
- NG 時のメール通知
- 業者マスタの取得・更新
2. 📥 POST: 点検結果の登録
登録リクエストは、複数件の一括処理(バッチ処理)を考慮し、 常に data 配列で統一 します。
1件のみ登録する場合であっても、要素数が1の配列として送信してください。
2.1 リクエストデータ構造
📂 リクエスト JSON(最上位)
| 物理キー | 論理名 | データ型 | 必須状況 | 概要・制約 |
|---|---|---|---|---|
data | 登録対象一覧 | array | 必須 | 登録対象とする受入チェックオブジェクトの配列。 |
data[].sender | 送信者名 | string | 必須 | 点検を実施・送信した担当者の氏名(例: "山田太郎" )。空文字不可。 |
data[].supplierName | 業者名 | string | 必須 | 受入対象の業者・仕入先名称(例: "○○食品")。空文字不可。 |
data[].checkItems | 点検項目(業者単位) | array | 条件付き必須 | 業者単位で点検する場合の点検項目配列。詳細は 2.2 参照。 |
data[].products | 製品別点検 | array | 条件付き必須 | 製品別点検を行う場合の配列。詳細は 2.3 参照。 |
data[].isWitnessed | 立会い有無 | boolean | 必須 | 受入時の立会いの有無(例: true)。 |
data[].deliveredAt | 納品日時 | string | 必須 | 納品日時(YYYY/MM/DD HH:mm 形式、JST。例: "2026/07/08 09:15" )。GET 返却形式と同じです。未指定の場合はエラー、形式不正の場合は deliveredAt must be YYYY/MM/DD HH:mm (JST) となります。 |
💡
checkItemsとproductsの指定ルール
data[]ごとに、checkItemsとproductsのいずれか一方は必須です。両方未指定の場合はcheckItems or products is requiredとなります。productsが指定されている場合、data[]直下のcheckItemsを指定して同時に送ってもdata[]直下のcheckItemsは無視され保存されません。
2.2 checkItems[](点検項目)の構造
業者単位で点検する場合、または製品配列内の点検項目として使用します。 各要素は次のフィールドを持ちます。
| 物理キー | 論理名 | データ型 | 必須状況 | 概要・制約 |
|---|---|---|---|---|
content | 点検項目名 | string | 任意 | 点検内容の表示名(例: "外観に異常がないか")。 |
checkResult | 点検結果 | string | number | 任意 | 点検の入力値。 "" (空文字)は未入力として扱われます。 inputType が okng の場合は "OK" / "NG" 、 number の場合は数値を指定します。 |
required | 必須フラグ | boolean | 任意 | true の項目で checkResult が空の場合、当該レコードは failed となります。詳細は 2.5 参照。 |
inputType | 入力タイプ | string | 任意 | 点検項目の入力形式(例: okng , number , text )。 |
min | 許容下限値 | number | 任意 | inputType: "number" の項目で使用する管理限界の下限。未指定でも可。 |
max | 許容上限値 | number | 任意 | inputType: "number" の項目で使用する管理限界の上限。未指定でも可。 |
unit | 単位 | string | 任意 | inputType: "number" の項目の表示単位(例: "℃" )。未指定でも可。 |
2.3 products[](製品別点検)の構造
製品別点検を行う場合の各要素の構造です。products 指定時の保存・判定ルールは 2.1 を参照してください。
| 物理キー | 論理名 | データ型 | 必須状況 | 概要・制約 |
|---|---|---|---|---|
name | 製品名 | string | 任意 | 点検対象の製品名称(例: "鶏もも肉")。 |
checkItems | 点検項目 | array | 任意 | 当該製品に紐づく点検項目配列。構造は 2.2 と同様。 |
allowableDays | 賞味期限許容日数 | string | 任意 | 賞味期限の許容日数(日)。未指定または空文字の場合は判定対象外。 |
quantity | 受入数量 | string | 任意 | 受入数量(例: "10")。 |
unit | 数量単位 | string | 任意 | 数量の単位(例: "kg")。 |
lot | ロット番号 | string | 任意 | 製造ロット等の識別子。 |
mfgDate | 製造日 | string | 任意 | 製造日(YYYY/MM/DD 形式。例: "2026/07/01")。 |
freshnessDate | 賞味期限 | string | 任意 | 賞味期限(YYYY/MM/DD 形式。例: "2026/07/08")。 |
2.4 リクエストJSONサンプル
🔹 1件のみ登録する場合(配列の要素数が1)
{
"data": [
{
"supplierName": "○○食品",
"sender": "山田太郎",
"isWitnessed": true,
"deliveredAt": "2026/07/08 09:15",
"checkItems": [
{
"content": "外観に異常がないか",
"checkResult": "OK",
"required": true
},
{
"content": "包装に破損がないか",
"checkResult": "OK",
"required": false
}
]
}
]
}🔹 製品別点検の場合
{
"data": [
{
"supplierName": "△△物流",
"sender": "佐藤花子",
"isWitnessed": true,
"deliveredAt": "2026/07/08 09:15",
"products": [
{
"name": "鶏もも肉",
"checkItems": [
{
"content": "品温",
"checkResult": "3",
"required": true
}
]
},
{
"name": "豚バラ肉",
"checkItems": [
{
"content": "品温",
"checkResult": "2",
"required": true
}
]
}
]
}
]
}🔹 複数件を一括登録する場合(配列の要素数が2以上)
{
"data": [
{
"supplierName": "○○食品",
"sender": "山田太郎",
"isWitnessed": true,
"deliveredAt": "2026/07/08 09:15",
"checkItems": [
{
"content": "外観に異常がないか",
"checkResult": "OK",
"required": true
}
]
},
{
"supplierName": "△△物流",
"sender": "佐藤花子",
"isWitnessed": true,
"deliveredAt": "2026/07/08 09:20",
"checkItems": [
{
"content": "外観に異常がないか",
"checkResult": "OK",
"required": true
}
]
}
]
}2.5 入力バリデーションルール
本送信登録時、以下のいずれかに該当した場合は不整合データとみなされ、登録が拒否されるか件別に failed として返却されます。
- 基本構造の不備 : リクエスト JSON 全体に
data配列が存在しない、または空配列である。配列要素が JSON オブジェクトでない。バッチ内のすべての要素がfailedとなった場合(例: すべてsender未指定)も400となる。 - 必須項目の欠落 :
sender/supplierName/isWitnessed/deliveredAtが未指定、または空文字である。 - 型・形式の不正 :
sender/supplierNameがstring以外、isWitnessedがboolean以外、deliveredAtがYYYY/MM/DD HH:mm (JST)形式でない、checkItems/productsが指定されているが配列でない。 - 点検項目の指定不備 :
checkItemsとproductsの両方が未指定である。またはrequired: trueの点検項目でcheckResultが未入力である(判定対象は 2.1 のとおり。required: trueでない項目のcheckResultは空でも可)。 - 保存失敗 : データベースへの保存処理が失敗した場合。
📋 バリデーションエラーメッセージ例 ( results[].error )
失敗時は、原因特定を容易にするため JSONパス付き のメッセージが返却されます。
data must not be emptydata[0]: each item must be a JSON objectdata[0]: sender is requireddata[0]: sender must be a stringdata[0]: supplierName is requireddata[0]: supplierName must be a stringdata[0]: isWitnessed is requireddata[0]: isWitnessed must be a booleandata[0]: deliveredAt is requireddata[0]: deliveredAt must be YYYY/MM/DD HH:mm (JST)data[0]: checkItems must be an arraydata[0]: products must be an arraydata[0]: checkItems or products is requireddata[0]: required checkItems must have non-empty checkResultdata[0]: required checkItems in products must have non-empty checkResult
💡 点検結果が NG になる場合について
点検項目の OK/NG が"NG"、数値が許容範囲外、賞味期限が許容日数を超過するなどで、登録される点検結果は NG(異常あり) 扱いになります。 データの登録自体は成功しますが、点検結果上では異常ありとして扱われます。 1件でも NG 判定の項目があれば、そのレコード全体が NG 扱いになります。
2.6 POST レスポンス仕様
HTTPステータスコードは、全件成功の場合 200 、登録と失敗が混在する場合 207 Multi-Status 、全件失敗の場合 400 を返却します。
レスポンスボディ JSON例 (200 の場合・全件登録成功)
{
"status": "success",
"shopUID": "xxxxxxxxxxxxxxxxxxxx",
"summary": {
"requested": 2,
"created": 2,
"failed": 0
},
"results": [
{
"index": 0,
"status": "success",
"docId": "acceptance_doc_id_11111"
},
{
"index": 1,
"status": "success",
"docId": "acceptance_doc_id_22222"
}
]
}レスポンスボディ JSON例 (207 Multi-Status の場合)
{
"status": "partial_success",
"shopUID": "xxxxxxxxxxxxxxxxxxxx",
"summary": {
"requested": 2,
"created": 1,
"failed": 1
},
"results": [
{
"index": 0,
"status": "success",
"docId": "acceptance_doc_id_11111"
},
{
"index": 1,
"status": "failed",
"error": "required checkItems must have non-empty checkResult"
}
]
}レスポンス JSON(最上位)
| フィールド | 論理名 | データ型 | 説明 |
|---|---|---|---|
status | 処理結果状態 | string | success (全件成功) / partial_success (成功と失敗が混在) / failed (全件失敗) |
shopUID | 店舗ID | string | APIキーの認証処理によって紐づいた店舗の一意なID。 |
summary | 登録結果サマリー | object | 下記の集計データオブジェクト。 |
results | 件別結果一覧 | array | 各 data[] に対応する個別結果オブジェクトの配列。 |
summary オブジェクト
| フィールド | 論理名 | データ型 | 説明 |
|---|---|---|---|
requested | 要求件数 | number | リクエストされた data の総件数。 |
created | 登録成功件数 | number | 正常に保存が完了した件数。 |
failed | 失敗件数 | number | バリデーションエラー等で失敗した件数。 |
results[] 要素
| フィールド | 論理名 | データ型 | 説明 |
|---|---|---|---|
index | インデックス | number | リクエスト data 内の配列インデックス番号(0始まり)。 |
status | ステータス | string | success / failed |
docId | ドキュメントID | string | status="success" の時のみ、生成されたIDを設定。 |
error | エラーメッセージ | string | status="failed" の時のみ、詳細なエラー原因を設定。 |
3. 📤 GET: 点検結果の取得
取得系APIにおいて、レスポンスに含まれるすべての日付・時刻フィールドは、 YYYY/MM/DD HH:mm の文字列形式に統一されて返却されます(例: "2026/07/08 09:15" )。
3.1 単一取得(docId 指定)
- Request:
GET {baseUrl}?app=acceptance&docId=acceptance_doc_id_11111 - Response (200 OK):
{
"data": [
{
"id": "acceptance_doc_id_11111",
"supplierName": "○○食品",
"userUID": "API_COMMON_USER",
"shopUID": "xxxxxxxxxxxxxxxxxxxx",
"sender": "山田太郎",
"isWitnessed": true,
"isNormalForReport": true,
"checkItems": [
{
"content": "外観に異常がないか",
"inputType": "okng",
"checkResult": "OK",
"required": true
},
{
"content": "品温",
"inputType": "number",
"checkResult": "4",
"required": true
}
],
"deliveredAt": "2026/07/08 08:45",
"registeredAt": "2026/07/08 00:00",
"sentAt": "2026/07/08 09:16",
"confirmedAt": "",
"confirmerName": "",
"approvedAt": "",
"approverName": "",
"createdAt": "2026/07/08 09:16",
"updatedAt": "2026/07/08 09:16"
}
]
}3.2 一覧取得(date 指定)
一覧取得では日付範囲で絞り込むため、docId 未指定時は date パラメータの指定が必須です。
- Request:
GET {baseUrl}?app=acceptance&date=2026-07(月次一覧取得)GET {baseUrl}?app=acceptance&date=2026-07-08(日次一覧取得)- Response (200 OK):
/* 3.1と同じ内容のため割愛 */💡 サーバー側での自動フィルタリング・ソート規則
- 認証されたAPIキーに紐づく
shopUIDのデータのみに自動制限されます。他店舗のdocIdを指定してリクエストを送信した場合、403 Forbiddenが返却されます。- データは 営業日順(
registeredAtの昇順)、 同じ営業日内においては 業者名順(supplierNameの昇順) でソートして返却されます。
3.3 🗂️ 点検結果オブジェクト詳細定義(GETレスポンス)
単一取得のレスポンス、および一覧取得の data[] 配列に含まれる各点検結果オブジェクトの完全なフィールド仕様です。
| フィールドキー | 論理名 | データ型 | 概要・返却値のルール |
|---|---|---|---|
id | ドキュメントID | string | データベース上で一意に割り振られたドキュメントID。 |
supplierName | 業者名 | string | 登録された業者・仕入先の名称。 |
userUID | ユーザーID | string | 登録を行ったユーザーのID。API経由の場合は一律で "API_COMMON_USER"。 |
shopUID | 店舗ID | string | APIキーから紐づけられた店舗コード。 |
checkItems | 点検項目 | array | 業者単位の点検項目配列(構造は [2.2] と共通)。製品別点検(products)で登録された場合はフィールドなし。 |
products | 製品別点検 | array | 製品別点検で登録された場合の配列(構造は [2.3] と共通)。業者単位点検(checkItems)で登録された場合はフィールドなし。 |
isWitnessed | 立会い有無 | boolean | 受入時の立会いの有無。 |
isNormalForReport | 日報用正常判定 | boolean | 日報上の正常(true)/ 異常あり(false)の状態フラグ。 |
sender | 送信者名 | string | リクエスト時に指定された担当者名。 |
deliveredAt | 納品日時 | string | 納品が行われた日時。 |
registeredAt | 登録日時(営業日) | string | バックエンドが店舗の閉店時刻設定等から算出した「営業日」の日付(JST 00:00 固定)。 |
sentAt | 送信日時 | string | サーバーがリクエストを受理・永続化した日時。 |
createdAt | 作成日時 | string | ドキュメントの初回作成日時。 |
updatedAt | 更新日時 | string | ドキュメントの最終更新日時。 |
confirmedAt | 確認日時 | string | アプリ画面側で確認フローが実行された日時。未確認時は ""。 |
confirmerName | 確認者氏名 | string | 確認を行ったユーザーの氏名。未確認時は ""。 |
approvedAt | 承認日時 | string | アプリ画面側で承認フローが実行された日時。未承認時は ""。 |
approverName | 承認者氏名 | string | 承認を行ったユーザーの氏名。未承認時は ""。 |