Skip to main content

Phone Verification

Phone verification validates phone numbers, confirms ownership through OTP, and assesses risk based on phone type, carrier, and fraud signals.

Verification Methods

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

TypeDescriptionRisk Level
mobileStandard mobile phoneLow
landlineFixed landlineLow
voipVoice over IPMedium
toll_free1-800 numbersHigh
premiumPremium rate numbersHigh
virtualVirtual numbersMedium-High

Risk Factors

High Risk

FactorRisk ContributionDescription
fraud_history+40Phone linked to fraud
premium_rate+30Premium rate number
recently_ported+20Number ported in last 30 days
known_fraud_carrier+35Carrier associated with fraud

Medium Risk

FactorRisk ContributionDescription
voip_number+15VoIP provider number
virtual_number+20Virtual phone service
prepaid+10Prepaid SIM card
country_mismatch+15Phone country differs from applicant

Low Risk

FactorRisk ContributionDescription
new_number+5Number recently activated
unusual_carrier+5Less 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

ChannelDescriptionBest For
smsText messageMost users
voicePhone call with codeAccessibility
whatsappWhatsApp messageInternational

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