Skip to main content

API Reference

This section provides detailed documentation for all TxnCheck API endpoints.

Base URL

https://api.txncheck.in/api/v1

Authentication

All endpoints require an API key in the X-API-Key header:
curl -H "X-API-Key: fb_your_api_key" https://api.txncheck.in/api/v1/requests/{id}

Endpoints

Verification Endpoints

MethodEndpointDescription
POST/upi-by-mobileGet UPI VPAs linked to a mobile number
POST/kyc-by-mobileGet KYC data by mobile number
POST/vpa-chargeback-checkCheck VPAs against blocklist
POST/full-checkFull verification (UPI + KYC + Chargeback)
POST/bulk/vpa-chargeback-checkBulk check VPAs against blocklist

Request Status

MethodEndpointDescription
GET/requests/{id}Get request status and results

Request Format

All POST requests should include:
HeaderValueRequired
X-API-KeyYour API keyYes
Content-Typeapplication/jsonYes
X-TimestampUnix timestamp (ms)If signing enabled
X-SignatureHMAC-SHA256 signatureIf signing enabled

Common Parameters

All verification endpoints support the following optional parameter:
ParameterTypeDefaultDescription
asyncbooleantrueIf true, request is queued and result delivered via webhook. If false, wait synchronously (up to 30 seconds).

Response Format

Async Mode - Accepted Response (202)

When a verification request is accepted in async mode (default):
{
  "statusCode": 202,
  "message": "Request accepted and queued for processing",
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "QUEUED"
}

Sync Mode - Success Response (200)

When using async: false, results are returned directly:
{
  "statusCode": 200,
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "method": "upi-by-mobile",
  "status": "COMPLETED",
  "result": { ... },
  "createdAt": "2025-01-11T10:30:00.000Z",
  "completedAt": "2025-01-11T10:30:05.000Z"
}

Status Polling Response (200)

When retrieving request status via GET:
{
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "method": "upi-by-mobile",
  "status": "COMPLETED",
  "result": { ... },
  "webhookStatus": "SENT",
  "createdAt": "2025-01-11T10:30:00.000Z",
  "completedAt": "2025-01-11T10:30:05.000Z"
}

Error Response

{
  "statusCode": 400,
  "message": "Validation error message",
  "error": "Bad Request"
}

HTTP Status Codes

StatusDescription
200Success - Request completed (sync mode or status polling)
202Accepted - Request queued for processing (async mode)
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
402Payment Required - Insufficient balance
403Forbidden - Method not allowed for this merchant
404Not Found - Request not found
408Request Timeout - Sync request exceeded 30-second timeout
429Too Many Requests - Rate limit exceeded
500Internal Server Error

Request Statuses

StatusDescription
QUEUEDRequest received and waiting for processing
PROCESSINGRequest is being processed
COMPLETEDRequest completed successfully
FAILEDRequest failed (check error details)
PARTIALRequest partially completed (some steps failed)

Webhook Statuses

StatusDescription
PENDINGWebhook not yet sent
SENTWebhook delivered successfully
RETRYINGWebhook delivery failed, retrying
FAILEDWebhook delivery failed after all retries

Rate Limits

API requests are rate-limited to ensure fair usage:
Endpoint TypeLimit
Verification endpoints100 requests/minute
Status endpoints300 requests/minute
Bulk endpoints10 requests/minute
Rate limits are applied per API key. If you exceed the limit, you’ll receive a 429 Too Many Requests response.

Mobile Number Format

All mobile numbers must be in Indian international format:
+91XXXXXXXXXX
Example: +919876543210

VPA Format

VPA (Virtual Payment Address) must follow the format:
username@bank
Examples:
  • johndoe@upi
  • 9876543210@paytm
  • user.name@okicici

Endpoint Details