App Registration の電話番号認証を検証
Endpoint
PUT https://api.verifik.co/v2/phone-validations
このエンドポイントは、アプリ登録(オンボーディング)プロセス中にユーザーの電話番号へ送信されたワンタイムパスワード(OTP)を検証します。ユーザーが提供した OTP が正しいことを確認し、検証ステータスを適切に更新します。このルートは、App Registration フローの途中にいるユーザー向けに設計されています。
warning
App Registration Phone Validations を検証するときに使用する JWT Token は、App Registration の作成時に提供されます。App Registration の作成時に返されるトークンを使用して、このリクエストを認証する必要があります。
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Params
| Name | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | 電話番号認証の作成に使用した電話番号。処理中にスペースは自動的に除去されます |
countryCode | string | Yes | 電話番号の国コード。形式は +XXX(例: パナマは +507、米国は +1)。+ の後に 1〜3 桁の数字という形式に一致する必要があります |
otp | number | Yes | ユーザーの電話番号に送信されたワンタイムパスワード(OTP) |
project | string | No | プロジェクトの一意の識別子。任意。検証対象を絞り込むのに役立ちます |
projectFlow | string | No | プロジェクトフローの一意の識別子。任意。検証対象を絞り込むのに役立ちます |
phoneGateway | string | No | 使用した配信方法: sms、whatsapp、または none |
Request
- Node.js
- PHP
- Python
- Go
const fetch = require("node-fetch");
async function run() {
const res = await fetch("https://api.verifik.co/v2/phone-validations", {
method: "PUT",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
body: JSON.stringify({
phone: "62647737",
countryCode: "+507",
otp: 123456
}),
});
console.log(await res.json());
}
run();
<?php
$ch = curl_init("https://api.verifik.co/v2/phone-validations");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer " . getenv("VERIFIK_TOKEN")
]);
$body = json_encode([
"phone" => "62647737",
"countryCode" => "+507",
"otp" => 123456
]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import os, requests
url = "https://api.verifik.co/v2/phone-validations"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"
}
payload = {
"phone": "62647737",
"countryCode": "+507",
"otp": 123456
}
r = requests.put(url, json=payload, headers=headers)
print(r.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
url := "https://api.verifik.co/v2/phone-validations"
payload := map[string]interface{}{
"phone": "62647737",
"countryCode": "+507",
"otp": 123456,
}
b, _ := json.Marshal(payload)
req, _ := http.NewRequest("PUT", url, bytes.NewBuffer(b))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+os.Getenv("VERIFIK_TOKEN"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var out map[string]interface{}
json.NewDecoder(resp.Body).Decode(&out)
fmt.Println(out)
}
Response
- 200
- 403
- 404
- 409
- 409 (Invalid Country Code Format)
- 412
{
"data": {
"_id": "674de8df21c72be3cc42b8a7",
"status": "validated",
"countryCode": "+507",
"phone": "62647737",
"type": "onboarding",
"showFaceLivenessRecommendation": false
}
}
{
"code": "otp_does_not_match",
"message": "403:otp_does_not_match"
}
{
"code": "phone_validation_not_found",
"message": "404:phone_validation_not_found"
}
{
"code": "MissingParameter",
"message": "missing phone\n. missing countryCode\n. missing otp"
}
{
"code": "MissingParameter",
"message": "Invalid countryCode format. CountryCode should be in the format + followed by 1 to 3 digits."
}
{
"code": "phoneValidation_has_expired",
"message": "412:phoneValidation_has_expired"
}
Notes
- オンボーディングフロー: このエンドポイントは、電話番号認証がオンボーディングの一部である App Registration プロセス中のユーザー向けに設計されています。
- OTP の有効期限: OTP には有限の寿命があり(通常は 10 分)、あらかじめ定義された時間を過ぎると期限切れになります。期限切れの OTP は検証できません。
- ステータス更新: 検証が成功すると、電話番号認証のステータスは自動的に
"validated"に更新され、追加のオンボーディングステップがトリガーされる場合があります。 - Webhook イベント: 検証イベントは、追跡と連携のために Webhook 通知をトリガーします。
- Face Liveness: 一部のプロジェクトフローでは、オンボーディングの一環として電話番号認証後に顔のライブネス検証を推奨する場合があります。
- App Registration とのリンク: このエンドポイントで検証すると、電話番号認証はユーザーの App Registration レコードに自動的にリンクされます。
- 電話番号のフォーマット: 電話番号のスペースは処理中に自動的に除去されます。
- 国コードの形式: 国コードは
+XXX形式である必要があります(X は数字、最大 1〜3 桁)。