Secure Call Verification — Verify Bank-Initiated Calls
Purpose
Let the app confirm whether an incoming/recent call was genuinely initiated by the bank—helping stop voice phishing and number spoofing.
System architecture
-
Bank Call Center reports each outbound call to the Secure Call backend.
-
Secure Call Backend records the call data.
- Mobile App + SDK queries the backend and displays verification status.
Server-to-server API (ReportCall)
Endpoint: POST /api/v1/ReportCall
Fields: phone_number
(req), uid
(req), call_reason
(opt), call_team
(opt), call_agent
(opt)
Example (curl)
curl -X POST "https://securecall.example.com/api/v1/ReportCall" \
-H "Authorization: Bearer <your_token>" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+15551234567",
"uid": "123456789",
"call_reason": "Verify Transaction",
"call_team": "Fraud Department",
"call_agent": "John Smith"
}'
Android SDK integration
Permission (AndroidManifest.xml):
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
If missing, CheckCallStatus()
returns UNKNOWN
.
SDK method
val result = collectorAgent.CheckCallStatus()
Statuses
-
CALL_APPROVED
— Legitimate bank-initiated call (active or recent) -
UNAPPROVED_RECENT_CALL
— Recent call detected but not reported → potential fraud -
NO_RECENT_CALL
— No active/recent call - UNKNOWN — Insufficient info (incompatibility or missing permission)
Sample returns
Legitimate:
{
"STATUS": "CALL_APPROVED",
"CALL_REASON": "Verify Transaction",
"CALL_TEAM": "Fraud Department",
"CALL_AGENT": "John Smith"
}
Unapproved:
{ "STATUS": "UNAPPROVED_RECENT_CALL" }
No call:
{ "STATUS": "NO_RECENT_CALL" }
UI recommendations
-
CALL_APPROVED
→ Green banner: “This call is verified.” (show agent + reason) -
UNAPPROVED_RECENT_CALL
→ Yellow warning: “Be cautious—possible fraud.” - UNKNOWN → Gray info: “Unable to verify call status.”
End-to-end example
-
Agent calls customer and backend sends
ReportCall
. -
Customer opens the app during the call.
-
App invokes
CheckCallStatus()
and receivesCALL_APPROVED
. -
App shows green banner with agent/team/reason.