KYC by Mobile
curl --request POST \
--url https://api.example.com/api/v1/kyc-by-mobile \
--header 'Content-Type: application/json' \
--data '
{
"mobile": "<string>",
"async": true
}
'import requests
url = "https://api.example.com/api/v1/kyc-by-mobile"
payload = {
"mobile": "<string>",
"async": True
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({mobile: '<string>', async: true})
};
fetch('https://api.example.com/api/v1/kyc-by-mobile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/kyc-by-mobile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'mobile' => '<string>',
'async' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/kyc-by-mobile"
payload := strings.NewReader("{\n \"mobile\": \"<string>\",\n \"async\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/kyc-by-mobile")
.header("Content-Type", "application/json")
.body("{\n \"mobile\": \"<string>\",\n \"async\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/kyc-by-mobile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"mobile\": \"<string>\",\n \"async\": true\n}"
response = http.request(request)
puts response.read_bodyAPI Reference
KYC by Mobile
Get KYC data by mobile number
POST
/
api
/
v1
/
kyc-by-mobile
KYC by Mobile
curl --request POST \
--url https://api.example.com/api/v1/kyc-by-mobile \
--header 'Content-Type: application/json' \
--data '
{
"mobile": "<string>",
"async": true
}
'import requests
url = "https://api.example.com/api/v1/kyc-by-mobile"
payload = {
"mobile": "<string>",
"async": True
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({mobile: '<string>', async: true})
};
fetch('https://api.example.com/api/v1/kyc-by-mobile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/kyc-by-mobile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'mobile' => '<string>',
'async' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/kyc-by-mobile"
payload := strings.NewReader("{\n \"mobile\": \"<string>\",\n \"async\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v1/kyc-by-mobile")
.header("Content-Type", "application/json")
.body("{\n \"mobile\": \"<string>\",\n \"async\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/kyc-by-mobile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"mobile\": \"<string>\",\n \"async\": true\n}"
response = http.request(request)
puts response.read_bodyKYC by Mobile
Perform KYC verification using only the mobile number. Fetches identity-linked details such as name, date of birth, PAN, and masked Aadhaar from authorized sources without OTP verification.Overview
This endpoint helps businesses:- Verify customer identity using their mobile number
- Retrieve KYC data including PAN and masked Aadhaar
- Comply with regulatory requirements
- Streamline digital onboarding
Request
string
required
Mobile number in Indian international format (
+91XXXXXXXXXX)boolean
default:"true"
If
true (default), request is queued and result delivered via webhook. If false, wait for result synchronously (up to 30 seconds).Headers
| Header | Value | Required |
|---|---|---|
X-API-Key | Your API key | Yes |
Content-Type | application/json | Yes |
Example Request (Async Mode - Default)
curl -X POST "https://api.txncheck.in/api/v1/kyc-by-mobile" \
-H "X-API-Key: fb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"mobile": "+919876543210"
}'
import requests
response = requests.post(
"https://api.txncheck.in/api/v1/kyc-by-mobile",
headers={
"X-API-Key": "fb_your_api_key_here",
"Content-Type": "application/json"
},
json={"mobile": "+919876543210"}
)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://api.txncheck.in/api/v1/kyc-by-mobile',
{ mobile: '+919876543210' },
{
headers: {
'X-API-Key': 'fb_your_api_key_here',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
<?php
$ch = curl_init("https://api.txncheck.in/api/v1/kyc-by-mobile");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"X-API-Key: fb_your_api_key_here",
"Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"mobile" => "+919876543210"
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
payload := map[string]string{"mobile": "+919876543210"}
body, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.txncheck.in/api/v1/kyc-by-mobile", bytes.NewBuffer(body))
req.Header.Set("X-API-Key", "fb_your_api_key_here")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
Example Request (Sync Mode)
curl -X POST "https://api.txncheck.in/api/v1/kyc-by-mobile" \
-H "X-API-Key: fb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"mobile": "+919876543210",
"async": false
}'
import requests
response = requests.post(
"https://api.txncheck.in/api/v1/kyc-by-mobile",
headers={
"X-API-Key": "fb_your_api_key_here",
"Content-Type": "application/json"
},
json={"mobile": "+919876543210", "async": False}
)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://api.txncheck.in/api/v1/kyc-by-mobile',
{ mobile: '+919876543210', async: false },
{
headers: {
'X-API-Key': 'fb_your_api_key_here',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
Response
- Async Mode (202)
- Sync Mode (200)
202 Accepted
Request accepted and queued for processing.{
"statusCode": 202,
"message": "Request accepted and queued for processing",
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"status": "QUEUED"
}
Result Data (via webhook or polling)
{
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"method": "kyc-by-mobile",
"status": "COMPLETED",
"result": {
"kycByMobile": {
"fullName": "JOHN DOE",
"pan": "ABCDE1234F",
"maskedAadhaar": "XXXXXXXX1234",
"dob": "1990-01-15",
"status": "1",
"cached": false
}
},
"webhookStatus": "SENT",
"createdAt": "2025-01-11T10:30:00.000Z",
"completedAt": "2025-01-11T10:30:05.000Z"
}
200 OK
Request completed synchronously.{
"statusCode": 200,
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"method": "kyc-by-mobile",
"status": "COMPLETED",
"result": {
"kycByMobile": {
"fullName": "JOHN DOE",
"pan": "ABCDE1234F",
"maskedAadhaar": "XXXXXXXX1234",
"dob": "1990-01-15",
"status": "1",
"cached": false
}
},
"createdAt": "2025-01-11T10:30:00.000Z",
"completedAt": "2025-01-11T10:30:05.000Z"
}
Sync mode has a 30-second timeout. If processing takes longer, you’ll receive a 408 Request Timeout error.
Result Fields
| Field | Type | Description |
|---|---|---|
fullName | string | Full name as per KYC records |
pan | string | PAN number |
maskedAadhaar | string | Masked Aadhaar number (last 4 digits visible) |
dob | string | Date of birth in YYYY-MM-DD format |
status | string | "1" if data found, "0" if not found |
Error Responses
400 Bad Request
Invalid mobile number format.{
"statusCode": 400,
"message": ["Mobile must be in format +91XXXXXXXXXX (Indian number)"],
"error": "Bad Request"
}
401 Unauthorized
Invalid or missing API key.{
"statusCode": 401,
"message": "Invalid API key",
"error": "Unauthorized"
}
402 Payment Required
Insufficient account balance.{
"statusCode": 402,
"message": "Insufficient wallet balance",
"error": "Payment Required"
}
403 Forbidden
Method not enabled for your account.{
"statusCode": 403,
"message": "Access to method 'kyc-by-mobile' is not allowed",
"error": "Forbidden"
}
408 Request Timeout (Sync Mode Only)
Request processing timed out.{
"statusCode": 408,
"message": "Request processing timed out after 30 seconds",
"error": "Request Timeout"
}
429 Too Many Requests
Rate limit exceeded.{
"statusCode": 429,
"message": "Too Many Requests",
"error": "Too Many Requests"
}
Use Cases
Digital Onboarding
Digital Onboarding
Streamline customer onboarding by auto-populating KYC information from mobile number.
Identity Verification
Identity Verification
Verify customer identity by cross-referencing provided information with KYC data.
Compliance Checks
Compliance Checks
Meet regulatory requirements by verifying customer identity documents.
Fraud Detection
Fraud Detection
Detect potential fraud by comparing claimed identity with verified KYC data.
KYC data should be handled in compliance with data protection regulations. Store only what is necessary and ensure proper security measures.
