Silent Network Authentication
Introduction
Signzy's Silent Network Authentication APIs provides a secure, frictionless mobile verification mechanism using network-based identity. It enables fintechs and digital platforms to verify a user’s mobile number ownership without OTPs or explicit user input, by leveraging carrier header enrichment
Common Use Cases
- Onboarding flows for users
- Step-up verification before transactions
- Risk screening and SIM-change detection
- KYC and compliance pre-checks
How Silent Network Authentication Works
- Start the Session Your backend calls the createAuthSession API with the user’s mobile number and (optionally) Mobile IP, a redirect and callback URL. In response, Signzy returns a unique mobile verification link (mobileRedirectUrl).
- Open the Verification Link You show this link to your user in mobile browser. When the user opens it on their mobile network (not Wi-Fi), the mobile carrier securely confirms the device and number in the background.
- Automatic Verification The network sends back a verification signal silently and the user doesn’t have to enter any code or number. Within a few seconds, the verification is complete.
- Get the Result
- If you provided a callbackUrl, Signzy automatically sends the result (verified or not) to your server.
- If not, you can call the getIdentity API using the requestId from step 1 to fetch the verification status anytime.
- Redirect or End Session After the process, the user is either:
- Redirected to your specified page (for example, back to your onboarding flow), or
- Shown a short completion message if no redirect URL was provided.
Supported Carrier Networks for Silent Auth
- T-Mobile
- Verizon
- Sprint
- AT&T

Sample cURL
curl --location 'https://api.signzy.us/api/v3/silent-auth/createAuthSession' \
--header 'Content-Type: application/json' \
--header 'Authorization: XXXXXX' \
--data '{
"mobileIP":"",
"mdnHint":"1XXXXX",
"redirectUrl":"",
"callbackUrl":"",
"showPage":"true",
"timer": "1000",
"showVerifScreen":"true",
"options":{
"mdnVerify":"true"
}
}
'Request Body Parameters
Key | Type | Mandatory | Description |
|---|---|---|---|
mobileIP | string | optional | The IP address of the mobile device initiating the request. Must be a valid IPv4 or IPv6 address. Empty string allowed. |
mdnHint | string | required | The mobile number (MDN) used for authentication. Must match pattern for US Numbers - starts with 1 followed by 10 digits (e.g., 1XXXXXXXXXX). |
redirectUrl | string | optional | The URL to which the user will be redirected after authentication. Must be a valid URL. Empty string allowed. |
callbackUrl | string | optional | The webhook endpoint to receive the authentication result. Must be a valid URL. Empty string allowed. |
showPage | string ("true" / "false") | optional | Key to dictate the behaviour of warning page. If true, user will see a warning page with instruction to turn off the Wifi. Default is "false". |
timer | string | optional | Duration in milliseconds for which if the warning page if marked true must be shown. Must be in string between "1000"to "60000". |
showVerifScreen | string ("true" / "false") | optional | Whether to show the verification result screen after completion. In case false, the user will see a general message. Default is "false". |
options | object | required | Object containing additional configuration options. |
options.mdnVerify | string ("true") | required | Indicates if MDN verification should be performed. Must be "true". |
Sample Response
{
"result": {
"dateTime": "2025-10-06T07:32:41.868Z",
"requestId": "68e3709a20edce80fXXXXXXX",
"status": "SUCCESS",
"sessionId": "608E4C3A-1005-4EFF-AF56-XXXXXXX",
"mobileRedirectUrl": "https://api.signzy.us/api/v3/silent-auth/identifyDevice?sessionId=608E4C3A-1005-4EFF-AF56-XXXXXXX"
},
"reason": "Request Successful",
"code": "S001"
}Response Body Parameters
Key | Type | Description |
|---|---|---|
result | object | Contains the response details for the created Silent Auth session. |
result.dateTime | string | The timestamp when the request was processed, in ISO-8601 UTC format. Example: 2025-10-06T07:32:41.868Z |
result.requestId | string | Unique identifier assigned to the API request for tracking. This will be used in the second API call. Example: 68e3709a20edce80f911XXXX |
result.status | string | Indicates the status of the Silent Auth session creation. |
result.sessionId | string | Unique identifier for the created Silent Auth session. Used for subsequent verification or device identification calls. Example: 608E4C3A-1005-4EFF-AF56-XXXXXX |
result.mobileRedirectUrl | string | URL to which the mobile device should be redirected for device identification. Example: https://api.signzy.us/api/v3/silent-auth/identifyDevice?sessionId=608E4C3A-1005-4EFF-AF56-XXXX |
reason | string | Descriptive message explaining the overall response status. Example: Request Successful |
code | string | Response code representing the outcome of the API request. Example: S001 |
Sample Error
### Invalid `mobileIP`
{
"result": {},
"reason": "mobileIP must be a valid IP address",
"code": "E001"
}
### Missing `mdnHint`
{
"result": {},
"reason": "mdnHint is required",
"code": "E001"
}
### Bad `mdnHint` format
{
"result": {},
"reason": "mdnHint must be a valid US mobile number (1 + 10 digits)",
"code": "E001"
}
### Invalid `redirectUrl`
{
"result": {},
"reason": "redirectUrl must be a valid URI",
"code": "E001"
}
### Invalid `callbackUrl`
{
"result": {},
"reason": "callbackUrl must be a valid URI",
"code": "E001"
}
### Invalid `showPage`
{
"result": {},
"reason": "showPage must be either \"true\" or \"false\"",
"code": "E001"
}
### Invalid `showVerifScreen`
{
"result": {},
"reason": "showVerifScreen must be either \"true\" or \"false\"",
"code": "E001"
}
### `timer` not numeric
{
"result": {},
"reason": "timer must be a valid number in milliseconds",
"code": "E001"
}
### `timer` < 1000
{
"result": {},
"reason": "timer must be at least 1000ms (1 second)",
"code": "E001"
}
### `timer` > 60000
{
"result": {},
"reason": "timer cannot exceed 60000ms (1 minute)",
"code": "E001"
}
### Missing `options`
{
"result": {},
"reason": "options is required",
"code": "E001"
}
### Missing `options.mdnVerify`
{
"result": {},
"reason": "mdnVerify is required",
"code": "E001"
}
### `options.mdnVerify` not `"true"`
{
"result": {},
"reason": "mdnVerify must be \"true\" only",
"code": "E001"
}
Error Response Parameters
Parameter | Description |
|---|---|
result | Empty result object |
reason | Reason for error |
code | Error code from Signzy |
Error Codes
HTTP Status Code | Error Code | Description |
|---|---|---|
400 | E001 | Bad Request |
401 | E101 | Unauthorized Access |
403 | E201 | Forbidden |
404 | E301 | not found |
409 | E401 | Upstream error |
429 | E501 | Rate Limit Exceeded |
500 | E601 | Internal Server Error |
503 | E701 | Service Unavailable |
504 | E801 | Timeout |
Success Codes
HTTP Status Code | Success Code | Description |
|---|---|---|
200 | S001 | Request Successful. |
Get Identity API
The Get Identity API retrieves verified mobile network information after a successful Silent Auth session. This API uses the requestId obtained from the createAuthSession API to fetch verification results.
API Details
Need to pass the following information. Providing requestId is mandatory.
- requestId(required)
Sample cURL
curl --location 'https://api-preproduction.signzy.us/api/v3/silent-auth/getIdentity' \
--header 'Content-Type: application/json' \
--header 'Authorization: <Auth Token>' \
--data '{
"requestId": "<requestId>"
}'Request Body Parameters
The API expects the following input in the request payload:
{
"requestId": "<Request ID> (obtained from the first API)",
}Parameter | Data Type | Required | Description |
|---|---|---|---|
requestId | string | Yes | Required Unique request ID generated for the input provided in async API |
Sample Response
{
"result": {
"requestId": "68e372e820edce80f911XXXX",
"sessionId": "SESSION-TC001-1759736552703-XXXXX",
"status": "SUCCESS",
"mdnVerified": "true"
},
"reason": "Request Successful",
"code": "S001"
}Response Body Parameters
Key | Type | Description |
|---|---|---|
result | object | Contains verification results for the given requestId. |
result.requestId | string | The unique identifier of the request, matching the input requestId. |
result.sessionId | string | The unique session identifier associated with the Silent Auth verification process. |
result.status | string | Indicates the overall result of the verification. Possible values: SUCCESS, ERROR. |
result.mdnVerified | string ("true" / "false") | Indicates whether the MDN (Mobile Directory Number) verification was successful. |
reason | string | A human-readable description of the API response outcome. Example: "Request Successful" |
code | string | API status code indicating success or failure. Example: "S001" for successful responses. |
Sample Error
{
"result": {},
"reason": "Session not found for requestId",
"code": "E301"
}Error Response Parameters
Parameter | Description |
|---|---|
result | Empty result object |
reason | Reason for error |
code | Error code from Signzy |
Error Codes
HTTP Status Code | Error Code | Description |
|---|---|---|
400 | E001 | Bad Request |
401 | E101 | Unauthorized Access |
403 | E201 | Forbidden |
404 | E301 | Not found |
409 | E401 | Upstream error |
429 | E501 | Rate Limit Exceeded |
500 | E601 | Internal Server Error |
503 | E701 | Service Unavailable |
504 | E801 | Timeout |
Success Codes
HTTP Status Code | Success Code | Description |
|---|---|---|
200 | S001 | Request Successful. |
200 | S003 | Data not Found |
Getting help
Please feel free to contact us if you have any questions, require clarification, or have ideas for how to make the documents or any of our services better.
You can reach out to us at [email protected]. We strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively.
We value your feedback and are committed to making your experience smooth and enjoyable. Our team is dedicated to assisting you with any needs you may have. Thank you for choosing our services. We look forward to helping you!