Skip to main content

手動の電話番号認証を作成

Endpoint

POST https://api.verifik.co/v2/phone-validations/manual

スタンドアロン の Phone Validation を作成し、SMS または WhatsApp で OTP を送信します。projectprojectFlow は不要です。Smart Tools → WhatsApp / SMS Messages が使用するエンドポイントと同じです。

送信成功後は 電話番号認証を検証 に進んでください。

請求

クレジットはメッセージ送信に、国別の SMS / WhatsApp 料金で確認されます。実際に OTP が配信された場合(sent: true)にのみ課金されます。

Headers

NameValue
Content-Typeapplication/json
AuthorizationBearer {YOUR_ACCESS_TOKEN}

Body parameters

ParameterTypeRequiredDescription
phonestringYes国内番号のみ(スペースは除去されます)。ここにダイヤルコードを含めないでください。
countryCodestringYes+ で始まるダイヤルコード(例: +57)。必ず送信し、電話番号と一緒にユーザーへ表示してください(例: +57 3001234567)。
phoneGatewaystringYessms または whatsapp
titlestringNoテンプレート内の会社名 / 送信者名(1〜15 文字)。デフォルトはクライアント名です。WhatsApp の flow2 と SMS の文言で使用されます。
languagestringNoテンプレート言語(enes など)。whatsappTemplateflow2 のとき、flow2_en / flow2_es を選択します。
whatsappTemplatestringNoWhatsApp のみ。authenticationデフォルト)または flow2。SMS では無視されます。
forcebooleanNotrue の場合、同一電話番号 + ゲートウェイの約 2 分の再送クールダウンをバイパスします。明示的な「再送信」アクション用です。
ipAddressstringNo監査用の任意のクライアント IP。

WhatsApp templates

whatsappTemplateMeta templateNotes
authentication (default)authentication本文の OTP + ボタン URL パラメータ。
flow2flow2_es / flow2_enブランド付きヘッダー / 本文(title をセクションとして使用)+ コード + アクション。言語でバリアントを選択。
{
"phone": "3001234567",
"countryCode": "+57",
"phoneGateway": "whatsapp",
"title": "Company ABC",
"language": "es",
"whatsappTemplate": "flow2"
}

Request examples

curl -X POST "https://api.verifik.co/v2/phone-validations/manual" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "3001234567",
"countryCode": "+57",
"phoneGateway": "whatsapp",
"title": "Company ABC",
"language": "en"
}'

Success response

{
"data": {
"_id": "66f0a1b2c3d4e5f678901234",
"client": "66f0a1b2c3d4e5f678900000",
"source": "manual",
"type": "validation",
"status": "sent",
"countryCode": "+57",
"phone": "3001234567",
"phoneGateway": "whatsapp",
"phoneData": {
"title": "Company ABC"
},
"language": "en",
"expiresAt": "2026-07-29T22:50:00.000Z",
"sent": true,
"new": true
},
"signature": "...",
"id": "a1b2c"
}

OTP の有効期限と再送

ルールデフォルト備考
OTP TTL10 分送信成功時に data.expiresAt として返されます。この時刻を過ぎると、検証は 412 phoneValidation_has_expired を返します。
再送クールダウン約 2 分同一クライアント + 電話番号 + phoneGateway への約 2 分以内の再送信は、409 otp_recently_sent を返します(新しいメッセージは送られません)。
強制再送"force": true2 分のクールダウンをバイパスし、すぐに新しいコードを送信できます(例: UI の「再送信」)。送信 / 再送が成功するたびに expiresAt は +10 分にリセットされます。
UI のガイダンス

宛先を countryCode + 国内 phone(例: +57 3001234567)として表示してください。expiresAt から有効期限のカウントダウンを駆動し、「再送信」は 2 分のクールダウン後に有効にするか、常に force: true で有効にします。

Common errors

StatusMessage / codeWhen
403insufficient_credits前払い残高が国別の SMS / WhatsApp 料金を下回っています。何も送信されません。
409otp_recently_sentクールダウン: この電話番号 + ゲートウェイに対して約 2 分以内に OTP が既に送信されています(かつ forcetrue ではありません)。
409otp_not_sentプロバイダーの送信が失敗しました(メッセージが受理されませんでした)。クールダウンとは別です。
409MissingParameter必須のボディフィールドが欠落しているか、countryCode+digits 形式ではありません。
403Forbiddenアカウントでコミュニケーション SMS / WhatsApp 機能が利用できません。

Next step

コードを PUT /v2/phone-validations で確認してください。