予約登録
POST
/reservations
const url = 'https://api.smaregi.dev/TARGET-CONTRACT-ID/waiter/reservations';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"storeId":"1","reservationCode":"CODE-000001","startAt":"2025-06-12T12:00:00+09:00","endAt":"2025-06-12T13:00:00+09:00","persons":{"adults":3,"children":1},"reservationPersonName":"山田太郎","reservationPersonNameKana":"ヤマダタロウ","status":"waiting","tableIds":[],"phoneNumber":"00-0000-0000","staff":{"staffId":"1","staffName":"須磨零二"},"note":"花束の持ち込みあり","reservedAt":"2025-06-12T10:00:00+09:00","reservedFrom":"サンプル予約アプリ名"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.smaregi.dev/TARGET-CONTRACT-ID/waiter/reservations \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "storeId": "1", "reservationCode": "CODE-000001", "startAt": "2025-06-12T12:00:00+09:00", "endAt": "2025-06-12T13:00:00+09:00", "persons": { "adults": 3, "children": 1 }, "reservationPersonName": "山田太郎", "reservationPersonNameKana": "ヤマダタロウ", "status": "waiting", "tableIds": [], "phoneNumber": "00-0000-0000", "staff": { "staffId": "1", "staffName": "須磨零二" }, "note": "花束の持ち込みあり", "reservedAt": "2025-06-12T10:00:00+09:00", "reservedFrom": "サンプル予約アプリ名" }'予約を登録します。
リクエストした予約の予約時間・テーブルが他の予約と重なっていても登録できます。
対象プラン
- フードビジネスプラン
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”Media typeapplication/json
NewReservation
新規予約APIのリクエストスキーマ
object
storeId
required
店舗ID
string
reservationCode
予約コード
外部システムから予約を識別するための任意の文字列を指定してください
- 絵文字など、UTF-8で4バイトとして扱われる文字は使用できません
string
startAt
required
予約開始日時(RFC3339の日時形式)[YYYY-MM-DDThh:mm:ssTZD]
予約終了日時より前の存在する日時を設定してください
保存時に指定したタイムゾーンに関わらず、参照時には Asia/Tokyo のタイムゾーンが適用されます
string format: date-time
endAt
required
予約終了日時(RFC3339の日時形式)[YYYY-MM-DDThh:mm:ssTZD]
予約開始日時より後の存在する日時を設定してください
保存時に指定したタイムゾーンに関わらず、参照時には Asia/Tokyo のタイムゾーンが適用されます
string format: date-time
persons
人数
- nullが指定された場合、adultsとchildrenの値に0が設定されます
object
adults
required
人数(大人)
integer
children
required
人数(子供)
integer
reservationPersonName
required
予約者名
- 絵文字など、UTF-8で4バイトとして扱われる文字は使用できません
- 不可視文字のみの登録はできません
string
reservationPersonNameKana
予約者名(カナ)
- 絵文字など、UTF-8で4バイトとして扱われる文字は使用できません
string
status
予約ステータス
waiting: 来店待ちcoming: ご来店
string
tableIds
店舗のテーブル情報
Array<string>
phoneNumber
電話番号
- 絵文字など、UTF-8で4バイトとして扱われる文字は使用できません
string
staff
受付スタッフ
object
staffId
required
受付スタッフID
string
staffName
受付スタッフ名
指定がない場合、受付スタッフIDにて検索した受付スタッフ名を使用して登録が行われます
- 絵文字など、UTF-8で4バイトとして扱われる文字は使用できません
- 不可視文字のみの登録はできません
string
note
メモ
- 絵文字など、UTF-8で4バイトとして扱われる文字は使用できません
string
reservedAt
予約受付日時(RFC3339の日時形式)[YYYY-MM-DDThh:mm:ssTZD]
保存時に指定したタイムゾーンに関わらず、参照時には Asia/Tokyo のタイムゾーンが適用されます
項目未指定時は現在日時が登録されます
string format: date-time
reservedFrom
required
予約元
予約の作成元サービスを識別するための任意の文字列を指定してください
- 絵文字など、UTF-8で4バイトとして扱われる文字は使用できません
- 不可視文字のみの登録はできません
string
Examples
Exampleリクエスト例
{ "storeId": "1", "reservationCode": "CODE-000001", "startAt": "2025-06-12T12:00:00+09:00", "endAt": "2025-06-12T13:00:00+09:00", "persons": { "adults": 3, "children": 1 }, "reservationPersonName": "山田太郎", "reservationPersonNameKana": "ヤマダタロウ", "status": "waiting", "tableIds": [], "phoneNumber": "00-0000-0000", "staff": { "staffId": "1", "staffName": "須磨零二" }, "note": "花束の持ち込みあり", "reservedAt": "2025-06-12T10:00:00+09:00", "reservedFrom": "サンプル予約アプリ名"}Responses
Section titled “Responses”Created
Headers
Section titled “Headers”Location
string
登録した予約のリソースURL
Bad Request
- リクエストパラメーターが不正
- 指定した店舗ID、テーブルID、受付スタッフIDが存在しない場合
- 不正なフォーマットの値を指定した場合
- テーブルIDに重複が存在する場合
- 休止中の店舗IDが指定された場合
Media typeapplication/json
object
title
required
string
type
required
string
status
integer
detail
string
Examplegenerated
{ "title": "example", "type": "example", "status": 1, "detail": "example"}Forbidden
- 対象契約のプランで利用できない場合
Media typeapplication/json
object
title
required
string
type
required
string
status
integer
detail
string
Examplegenerated
{ "title": "example", "type": "example", "status": 1, "detail": "example"}