QRコードで解錠するスマートロック/ロッカーをAPIで爆速開発する方法(KEYVOX REST API)

「予約が入ったら、その時間だけ有効なカギを配る」——無人運営・非対面サービスの核心はこれに尽きます。そして KEYVOX REST API では、この処理が たった1回のAPIコール で完結します。
`createLockPin` に ドア(ユニット)ID・利用開始時刻・利用終了時刻 を渡すだけで、次の3つが返ります。
- 暗証番号(PINコード)
- QRコード
- ウォレット取り込み用URL(Apple/Google ウォレットに保存できるアクセスキー)
配布したいチャネルに合わせて、そのまま使うだけ。認証方式ごとに別々のAPIを叩く必要はありません。
そして——返ってきた鍵を、自社サービスの必要なタイミングで表示するだけ。 他社APIでありがちな「鍵がロックに配信されたか」を確認する処理は要りません。KEYVOX が発行した鍵の配信までを引き受け、利用開始時刻(`sTime`)からの利用を保証します(終了時刻 `eTime` で自動失効)。配信ステータスの待ち受けや再送ロジックを自前で持たなくてよい——これが「爆速開発」の正体です。
たった1コールで「3つの鍵」が返る
まず、鍵を発行するリクエストはこれだけです。
```http
POST /v1/locks/{unitId}/pins
Authorization: HMAC-SHA256 ...
Content-Type: application/json
{
"sTime": 1756263600,
"eTime": 1756274400
}
```
- `unitId`: 管理画面「BACS」でドア(部屋)ごとに割り当てられるユニークID(`getUnits` で取得)
- `sTime` / `eTime`: 利用開始・終了日時(UNIX時間・秒)
- (任意)`pinCode` を指定すれば任意の4〜8桁を配信、未指定なら6桁を自動発番。`targetName` で履歴に利用者名を残せます
レスポンスでは、指定した時間帯だけ有効な鍵が、3つの形式でまとめて 返ります(イメージ)。
```json
{
"pinCode": "482913",
"qrCode": "https://.../qr/xxxxxxxx.png",
"walletUrl": "https://.../wallet/xxxxxxxx"
}
```
あとは、この3つを利用者に渡すだけです。
- 暗証番号 → SMS・メール・予約完了画面に表示
- QRコード → 画像として表示、またはLINE・メールで送付
- ウォレットURL → 「ウォレットに追加」ボタンとしてリンク
認証方式を後から足す必要がありません。 最初から3方式が返るので、顧客の環境(アプリを入れたくない人、QRが得意な人、ウォレット派)をすべてカバーできます。
典型的な実装フロー
予約システムや自社アプリからは、次の流れで組むだけです。
```text
予約確定(Webhook / 自社DB)
│
▼
createLockPin(unitId, sTime, eTime) ← 1コール
│ ← pinCode / qrCode / walletUrl
▼
利用者へ配布(SMS・メール・予約画面・ウォレット)
│
▼
eTime 到来で自動失効(追加コール不要)
```
ポイントは2つ。利用開始時刻(`sTime`)からの利用は KEYVOX が保証する ため、鍵がロックに届いたかを確認するステップが要りません(発行した鍵の配信までKEYVOXが引き受けます)。そして 有効期限(`eTime`)を渡した時点で失効まで自動化される ため、「チェックアウト後に鍵を消す」バッチ処理も不要です。イベント通知が必要なら Webhook で解錠・施錠・電池低下などを受け取れます。
スマートロッカーも、まったく同じ思想
宅配・レンタル・コインロッカーの無人化も、考え方は同じです。`createLockerPin` に ロッカーID・ボックス番号・開始/終了時刻・利用モード を渡すだけで、そのボックスの鍵を発行できます。
```http
POST /v1/lockers/{deviceId}/pins
{
"boxNum": "00-01",
"sTime": 1756263600,
"eTime": 1756274400,
"mode": "0"
}
```
- `boxNum`: `"00-01"` の書式(副キャビネット番号-BOX番号)
- `mode`: `0`=一度のみ / `1`=繰り返し / `2`=期間中は何度でも解錠
- `reassign` を使えば、指定ボックスが埋まっていても空きボックスへ自動割り当て
ロックとロッカーを、同じ設計思想・同じ認証基盤・ひとつのAPIで扱える ——これが自社サービスへ組み込むときの開発速度を決定的に押し上げます。
なぜ KEYVOX だと「爆速」なのか
- 1コールで3形式: PIN・QR・ウォレットURLがまとめて返る。認証方式ごとの実装分岐が要らない。
- 配信確認が不要(利用開始時刻からの利用を保証): 発行した鍵がロックに届いたかをポーリングで確認する必要がありません。KEYVOX が鍵の配信までを引き受け、`sTime` からの利用を保証します。他社APIにありがちな「配信ステータス待ち」の状態管理が丸ごと消え、アプリは返ってきた鍵を表示するだけで済みます。
- オフラインQR特許(特許第7717372号): 解錠する瞬間にネット接続が不要。通信が不安定な現場でも確実に解錠でき、オフライン前提の設計に悩まされません。
- ロック × ロッカーを統一API: スマートロックAPI/スマートロッカーAPI/ICカードAPI/予約管理APIの4カテゴリで、アクセス管理に必要な機能を網羅。
- ウォレット標準対応: Apple/Google ウォレットへの取り込みURLを標準で発行。
- 堅牢な認証と運用: HMAC-SHA256署名・IPホワイトリスト・TLS・レート制限。Webhookで署名検証付きのイベント通知。
- すぐ動かせる: Java・PHP のサンプルコードと Postman コレクションを提供。Zapier で5,000以上のアプリともノーコード連携。Discord の開発者コミュニティでサポート。
よくある質問
Q. Bluetoothだけのスマートロックとは何が違いますか?
Bluetoothのみのロックは近接操作が前提で、遠隔からの鍵発行や予約連動が難しい場合があります。KEYVOX はサーバー側のAPIから鍵を発行し、オフラインQRで解錠できるため、無人運営・予約連動に向いています。
Q. 二重発行や二重解錠を防ぐには?
有効期限(`sTime`/`eTime`)で鍵の有効範囲を厳密に絞れます。予約IDと発行を紐づけ、リトライ時の重複発行を冪等に扱う設計を推奨します。
Q. 発行した鍵が実際にロックに届いたか、確認しなくて大丈夫ですか?
確認は不要です。KEYVOX が鍵の配信までを引き受け、利用開始時刻(`sTime`)からの利用を保証します。アプリ側は返ってきた鍵を必要なタイミングで表示するだけでよく、配信ステータスのポーリングや再送処理は必要ありません。
Q. 発行した鍵を途中で無効化できますか?
はい。無効化APIで、期限前でも鍵を失効できます。イベントはWebhookで受け取れます。
Q. 認証方式は?
BACS管理画面でAPIキー・シークレットを発行し、サーバーIPをホワイトリスト登録、HMAC-SHA256署名で認証します。
まとめ
QRコードで解錠するスマートロック・スマートロッカーを実装するなら、「1コールでPIN・QR・ウォレットURLの3つが返る」KEYVOX REST API が最短ルートです。ロックもロッカーも同じ思想で扱え、オフラインQR特許で通信不安定にも強い。予約連動の無人サービスを、最小の実装で立ち上げられます。
正確なエンドポイント仕様・リクエスト/レスポンス例・サンプルコードはAPI・開発者向けページからご確認ください。API連携のご相談もお気軽にどうぞ。