Phone Verification
Phone verification validates phone numbers, confirms ownership through OTP, and assesses risk based on phone type, carrier, and fraud signals.
Verification Methods
OTP Verification (Recommended)
Send a one-time password to confirm phone ownership:
curl -X POST https://api.bytrustgate.com/v1/phone/send-otp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+14155551234",
"applicant_id": "550e8400-e29b-41d4-a716-446655440000",
"channel": "sms"
}'
Verify OTP
curl -X POST https://api.bytrustgate.com/v1/phone/verify-otp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+14155551234",
"code": "123456",
"applicant_id": "550e8400-e29b-41d4-a716-446655440000"
}'
OTP Response
{
"phone": "+14155551234",
"verification_status": "verified",
"verified_at": "2025-01-20T14:35:00Z",
"phone_intelligence": {
"type": "mobile",
"carrier": "Verizon",
"country": "US",
"risk_score": 15,
"risk_level": "low"
}
}
Passive Phone Intelligence
Verify without sending OTP:
curl -X POST https://api.bytrustgate.com/v1/phone/lookup \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+14155551234",
"applicant_id": "550e8400-e29b-41d4-a716-446655440000"
}'
Lookup Response
{
"phone": "+14155551234",
"valid": true,
"type": "mobile",
"carrier": {
"name": "Verizon Wireless",
"type": "mobile"
},
"location": {
"country": "US",
"country_code": "1",
"region": "California"
},
"risk_assessment": {
"risk_score": 20,
"risk_level": "low",
"factors": []
},
"line_status": "active",
"ported": false,
"roaming": false
}
Phone Types
| Type | Description | Risk Level |
|---|---|---|
mobile | Standard mobile phone | Low |
landline | Fixed landline | Low |
voip | Voice over IP | Medium |
toll_free | 1-800 numbers | High |
premium | Premium rate numbers | High |
virtual | Virtual numbers | Medium-High |
Risk Factors
High Risk
| Factor | Risk Contribution | Description |
|---|---|---|
fraud_history | +40 | Phone linked to fraud |
premium_rate | +30 | Premium rate number |
recently_ported | +20 | Number ported in last 30 days |
known_fraud_carrier | +35 | Carrier associated with fraud |
Medium Risk
| Factor | Risk Contribution | Description |
|---|---|---|
voip_number | +15 | VoIP provider number |
virtual_number | +20 | Virtual phone service |
prepaid | +10 | Prepaid SIM card |
country_mismatch | +15 | Phone country differs from applicant |
Low Risk
| Factor | Risk Contribution | Description |
|---|---|---|
new_number | +5 | Number recently activated |
unusual_carrier | +5 | Less common carrier |
VoIP Detection
Detecting VoIP Numbers
{
"phone": "+14155559999",
"type": "voip",
"carrier": {
"name": "Google Voice",
"type": "voip"
},
"risk_assessment": {
"risk_score": 45,
"risk_level": "medium",
"factors": [
{
"factor": "voip_number",
"contribution": 15,
"details": "Google Voice VoIP number"
}
]
}
}
VoIP Providers Detected
- Google Voice
- Skype
- TextNow
- Burner
- Hushed
- And 500+ more...
Phone Porting Detection
Check Porting History
curl -X GET "https://api.bytrustgate.com/v1/phone/porting-history?phone=+14155551234" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"phone": "+14155551234",
"current_carrier": "Verizon",
"porting_history": [
{
"from_carrier": "AT&T",
"to_carrier": "Verizon",
"ported_at": "2024-12-15",
"days_ago": 36
}
],
"recently_ported": true,
"risk_factor": "medium"
}
SIM Swap Detection
Check for SIM Swap
curl -X POST https://api.bytrustgate.com/v1/phone/sim-swap-check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+14155551234"
}'
Response
{
"phone": "+14155551234",
"sim_swap_detected": false,
"last_sim_change": "2024-06-15",
"days_since_change": 219,
"risk_assessment": {
"risk_level": "low",
"details": "No recent SIM changes detected"
}
}
Phone Number Validation
Format Validation
{
"phone": "+1 (415) 555-1234",
"validation": {
"valid": true,
"formatted_e164": "+14155551234",
"formatted_national": "(415) 555-1234",
"formatted_international": "+1 415-555-1234",
"country_code": "1",
"country": "US"
}
}
Workflow Rules
Require OTP for VoIP Numbers
curl -X POST https://api.bytrustgate.com/v1/workflows/rules \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rule_id": "otp_for_voip",
"trigger": "phone_lookup_complete",
"conditions": {
"all": [
{"field": "phone_type", "operator": "eq", "value": "voip"},
{"field": "phone_otp_verified", "operator": "eq", "value": false}
]
},
"actions": [
{
"type": "request_info",
"info_needed": "Phone verification required"
},
{
"type": "send_otp",
"channel": "sms"
}
]
}'
Flag Recent SIM Swaps
curl -X POST https://api.bytrustgate.com/v1/workflows/rules \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rule_id": "flag_sim_swap",
"trigger": "phone_lookup_complete",
"conditions": {
"all": [
{"field": "sim_swap_days_ago", "operator": "lt", "value": 7}
]
},
"actions": [
{
"type": "add_flag",
"flag": "recent_sim_swap"
},
{
"type": "create_case",
"case_type": "fraud",
"priority": "high",
"title": "Recent SIM swap detected"
}
]
}'
Phone Verification Settings
Configure Settings
curl -X PUT https://api.bytrustgate.com/v1/settings/phone-verification \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"require_otp": true,
"otp_expiry_minutes": 10,
"max_otp_attempts": 3,
"block_voip": false,
"flag_voip": true,
"block_virtual": true,
"sim_swap_check": true,
"sim_swap_threshold_days": 7
}'
OTP Channels
| Channel | Description | Best For |
|---|---|---|
sms | Text message | Most users |
voice | Phone call with code | Accessibility |
whatsapp | WhatsApp message | International |
Send via Specific Channel
curl -X POST https://api.bytrustgate.com/v1/phone/send-otp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+14155551234",
"channel": "voice",
"language": "en"
}'
Next Steps
- Risk Signals - All fraud signals explained
- Email Verification - Email risk assessment
- Device Intelligence - Device fingerprinting