Ilambit DevPort
Unified API gateway for Indian businesses. Access payment verification, GST lookup, and more through a single API key. All requests follow the same pattern — authenticate, call the service, get a standardized response.
Quick Start
- 1 Sign up at devport.ilambit.in/signup
- 2 Generate an API key from your dashboard
- 3 Make your first API call (see below)
Authentication
All API requests require an X-API-Key header. Generate your API key from the dashboard.
GET /api/v1/bharatpe/status/432112345678 HTTP/1.1
Host: devport.ilambit.in
X-API-Key: ilm_live_your_api_key_here
Content-Type: application/jsonSecurity: Never expose your API key in client-side code. Always call the gateway from your backend server.
Base URL
All API endpoints use the following base URL:
https://devport.ilambit.in/api/v1The full endpoint pattern is: /api/v1/<service>/status/<id>
Making Requests
All requests flow through the gateway proxy. Specify the service name in the URL, pass your API key in the header, and send any service-specific parameters in the request body.
# Check a BharatPe payment status by UTR
curl https://devport.ilambit.in/api/v1/bharatpe/status/432112345678 \
-H "X-API-Key: ilm_live_your_api_key_here"Available Services
Currently available services on the gateway:
BharatPe API
Full docs below ↓UPI payment verification and transaction history. See the dedicated BharatPe API section for full endpoint documentation.
Paytm API
Full docs below ↓Payment status verification by order ID. See the dedicated Paytm API section for full endpoint documentation.
BharatPe API
Verify UPI payments and fetch transaction history using your BharatPe merchant credentials. Configure your credentials in the Dashboard panel first.
https://devport.ilambit.in/api/v1/bharatpe/status/:txnIdVerify a UPI payment by Bank Reference Number (UTR). Returns match status, amount, sender, and timestamp.
Path Parameters
| Param | Type | Description |
|---|---|---|
| txnId | string | Bank Reference Number (UTR) of the UPI payment |
Example Request
curl https://devport.ilambit.in/api/v1/bharatpe/status/432112345678 \
-H "X-API-Key: ilm_live_your_api_key_here"Success Response
{
"success": true,
"data": {
"verified": true,
"found": true,
"message": "Payment found and verified",
"transaction": {
"bankReferenceNo": "432112345678",
"amount": 499,
"senderName": "John Doe",
"status": "SUCCESS",
"transactionTimestamp": "2025-07-18T10:30:00.000Z"
}
},
"meta": {
"requestsRemaining": 946,
"latencyMs": 234,
"timestamp": "2025-07-18T10:30:01.000Z"
}
}/transactionsList recent BharatPe payment transactions. Supports configurable lookback period.
Query Parameters
| Param | Type | Default | Description |
|---|---|---|---|
| days | number | 2 | Days to look back (1–7) |
Example Request
curl "https://devport.ilambit.in/api/v1/bharatpe/transactions?days=3" \
-H "X-API-Key: ilm_live_your_api_key_here"Success Response
{
"success": true,
"data": {
"transactions": [
{
"bankReferenceNo": "432112345678",
"amount": 499,
"senderName": "John Doe",
"status": "SUCCESS",
"transactionTimestamp": "2025-07-18T10:30:00.000Z"
}
],
"total": 1,
"lookbackDays": 3
},
"meta": {
"requestsRemaining": 945,
"latencyMs": 189,
"timestamp": "2025-07-18T10:31:00.000Z"
}
}X-API-Key header. Each successful call deducts 1 credit from your active subscription. Configure your BharatPe merchant credentials in Dashboard → BharatPe Config.Paytm API
Verify Paytm payment status by order ID using your Merchant ID (MID). Configure your MID in the Dashboard panel first.
https://devport.ilambit.in/api/v1/paytm/status/:orderIdVerify a Paytm payment by Order ID. Returns transaction status, amount, payment mode, and gateway details.
Path Parameters
| Param | Type | Description |
|---|---|---|
| orderId | string | Paytm Order ID to check payment status for |
Example Request
curl https://devport.ilambit.in/api/v1/paytm/status/ORDER_12345 \
-H "X-API-Key: ilm_live_your_api_key_here"Success Response
{
"success": true,
"data": {
"verified": true,
"found": true,
"message": "Payment verified successfully.",
"transaction": {
"txnId": "20250718111212800110168",
"bankTxnId": "8217183929123",
"orderId": "ORDER_12345",
"txnAmount": "499.00",
"status": "TXN_SUCCESS",
"txnType": "SALE",
"gatewayName": "ICICI",
"respCode": "01",
"respMsg": "Txn Success",
"paymentMode": "UPI",
"txnDate": "2025-07-18 11:12:12.0"
}
},
"meta": {
"requestsRemaining": 944,
"latencyMs": 312,
"timestamp": "2025-07-18T11:12:13.000Z"
}
}Not Found Response
{
"success": true,
"data": {
"verified": false,
"found": false,
"message": "Order not found on Paytm.",
"transaction": null
},
"meta": {
"requestsRemaining": 943,
"latencyMs": 198,
"timestamp": "2025-07-18T11:13:00.000Z"
}
}X-API-Key header. Each successful call deducts 1 credit from your active subscription. Configure your Paytm Merchant ID in Dashboard → Paytm Config.Response Format
All responses follow a consistent JSON envelope. Every response includes a meta object with your request ID, remaining credits, and latency.
Success Response (2xx)
{
"success": true,
"data": {
// Service-specific response payload
},
"meta": {
"requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"requestsRemaining": 947,
"latencyMs": 234,
"service": "bharatpe-verify",
"timestamp": "2025-07-18T10:30:00.000Z"
}
}Error Response (4xx / 5xx)
{
"success": false,
"error": {
"code": "CREDITS_EXHAUSTED",
"message": "No active subscription with remaining credits."
},
"meta": {
"requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"requestsRemaining": 0,
"latencyMs": 12,
"service": "bharatpe-verify",
"timestamp": "2025-07-18T10:30:00.000Z"
}
}Error Codes
Switch on the error.code field, not HTTP status codes or message strings.
| Code | HTTP | Description |
|---|---|---|
| INVALID_API_KEY | 401 | API key is missing, malformed, or not found |
| API_KEY_REVOKED | 401 | API key has been revoked from the dashboard |
| API_KEY_EXPIRED | 401 | API key has passed its expiration date |
| CLIENT_SUSPENDED | 401 | Your account has been suspended |
| IP_NOT_WHITELISTED | 401 | Request IP not in the key's whitelist |
| RATE_LIMIT_EXCEEDED | 429 | Too many requests — retry after the cooldown |
| CREDITS_EXHAUSTED | 402 | No remaining credits on any active subscription |
| NO_ACTIVE_SUBSCRIPTION | 402 | No active subscription found — purchase a package |
| SUBSCRIPTION_EXPIRED | 402 | All subscriptions have expired |
| INVALID_SERVICE | 404 | Service name not found in the registry |
| SERVICE_DISABLED | 503 | Service is temporarily disabled by admin |
| UPSTREAM_TIMEOUT | 504 | Upstream service did not respond in time |
| UPSTREAM_UNAVAILABLE | 502 | Upstream service is unreachable |
| UPSTREAM_ERROR | 502 | Upstream returned an error response |
Rate Limiting
Requests are rate-limited per API key using a sliding window algorithm. Default limits:
When rate-limited, the API returns 429 with a Retry-After header. Enterprise plans have configurable limits.
Credits & Billing
Each successful API call (2xx response) deducts 1 credit from your active subscription. Failed upstream calls (4xx/5xx from the upstream service) are not billed.
- Check remaining credits in every response via
meta.requestsRemaining - Purchase credit packages from your dashboard
- Multiple subscriptions stack — credits are deducted from the earliest expiring subscription first
- Low-balance alerts are sent automatically when credits drop below 10%
Code Examples
Integrate from any language using standard HTTP. Here are some common examples:
Node.js (fetch)
const response = await fetch('https://devport.ilambit.in/api/v1/bharatpe/status/432112345678', {
method: 'GET',
headers: {
'X-API-Key': 'ilm_live_your_api_key_here',
'Content-Type': 'application/json',
},
});
const data = await response.json();
if (data.success) {
console.log('Payment:', data.data);
console.log('Credits left:', data.meta.requestsRemaining);
} else {
console.error('Error:', data.error.code, data.error.message);
}Python (requests)
import requests
response = requests.get(
'https://devport.ilambit.in/api/v1/bharatpe/status/432112345678',
headers={
'X-API-Key': 'ilm_live_your_api_key_here',
}
)
data = response.json()
if data['success']:
print('Verified:', data['data'])
else:
print('Error:', data['error']['code'])PHP (cURL)
$ch = curl_init('https://devport.ilambit.in/api/v1/paytm/status/ORDER_12345');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-API-Key: ilm_live_your_api_key_here',
'Content-Type: application/json',
],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
if ($response['success']) {
print_r($response['data']);
}