BD UniPin Automation Gateway
High-speed programmatic gateway for Free Fire top-ups in Bangladesh. Supports instant UniPin Vouchers (BDMB / UPBD) with batch execution, Automatic format detection, and 100% Free Live Player UID lookup.
UniPin TopUp (BD Server)
Redeem BD UniPin physical vouchers and digital codes (BDMB / UPBD) directly into BD region player accounts.
ONLY_FOR_BD_REGION without consuming your voucher./api/topup1 Hit Deducted on SuccessRequest Body Parameters (JSON)
| Field | Type | Required | Description & Example |
|---|---|---|---|
| playerid (or uid) | string | Yes | Target Free Fire player UID (e.g. "5162333961"). |
| code (or voucherCode) | string | array | Yes | UniPin voucher code(s). Supports up to 5 codes comma-separated (e.g. "BDMB-01...,BDMB-02...") or an array of strings. Auto-detects package denomination. |
| orderid | string | Optional | Your unique order reference for idempotency and tracking (e.g. "ORDER-10029"). |
curl -X POST "https://fftopupapi.shop/api/topup" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY_HERE" \
-d '{
"orderid": "test-001",
"playerid": "5162333961",
"code": "BDMB-T-S-00123456,BDMB-T-S-00123457"
}'UniPin Voucher Status & History Check
Check if a voucher has been consumed, verify its denomination, and retrieve its exact redemption timestamp if processed through the gateway.
{
"code": "BDMB-T-S-00123456"
}{
"success": true,
"status": "VALID",
"isConsumed": false,
"code": "BDMB-T-S-00123456",
"voucherType": "BDMB (UniPin Mobile)",
"denomination": "115 Diamonds",
"estimatedDiamonds": 115,
"redeemedAt": null,
"redeemedByUid": null,
"message": "Voucher is valid and ready for top-up redemption."
}Player Check / UID Lookup
Query live Free Fire game servers to retrieve the real in-game player name and region prior to taking client money.
/api/validate-uidorGET/api/validate-uid?uid=...or/api/uid-check?uid=...{
"uid": "5162333961"
}{
"success": true,
"valid": true,
"data": {
"uid": "5162333961",
"playerName": "🔥_ProShooter_BD_🔥",
"region": "BD",
"status": "ACTIVE_PLAYER"
}
}Authentication (ALL SERVERS)
Secure programmatic access via API keys.
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
?apiKey=YOUR_API_KEY
Credits & /status (Quota Inquiries)
Check your live remaining quota balance, plan tier, and active concurrency limits.
{
"status": "success",
"keyName": "Primary Reseller Bot",
"remainingHits": 14920,
"totalHits": 20000,
"rateLimitRps": 10,
"activePlan": "ENTERPRISE_VIP",
"expiresAt": "2027-01-01T00:00:00.000Z",
"uptime": "99.98%"
}Error Codes & Quota Protection Rules
Strict Zero-Loss Quota Guarantee: Quota hits are deducted ONLY upon confirmed success on UniPin gateways. Zero hits are charged for network drops, invalid UIDs, or wrong regions.
| Status | Error Reason | Endpoint | Quota Cost | Explanation & Recommended Action |
|---|---|---|---|---|
| 200 OK | SUCCESS | All | 1 Hit (Topup) / 0 (Check) | Transaction completed and diamonds delivered successfully. |
| 400 Bad Request | CONSUMED_VOUCHER | /api/topup | 0 Hits* | Voucher already used/redeemed earlier. *Anti-abuse rule: 1 penalty hit per 2 invalid/consumed attempts. |
| 400 Bad Request | INVALID_VOUCHER | /api/topup | 0 Hits* | Voucher serial or PIN is malformed, too short, or incorrect format (Invalid or missing digits). |
| 400 Bad Request | ONLY_FOR_BD_REGION | All | 0 Hits | Target Free Fire account is registered outside Bangladesh (UniPin BD vouchers strictly require BD server). |
| 404 Not Found | PLAYER_NOT_FOUND | /api/validate-uid, /api/uid-check | 0 Hits | Account does not exist on Garena Free Fire servers (Invalid Player UID). |
| 400 Bad Request | INVALID_UID / MISSING_UID | All | 0 Hits | UID parameter is empty or length is not between 8 to 12 numeric digits. |
| 401 Unauthorized | INVALID_API_KEY | All | 0 Hits | X-API-Key header is missing, incorrect, or key was revoked from dashboard. |
| 403 Forbidden | KEY_SUSPENDED / KEY_EXPIRED | All | 0 Hits | API Key has reached its expiry date or status was manually suspended by reseller/admin. |
| 403 Forbidden | IP_NOT_WHITELISTED | All | 0 Hits | Caller server IP address is not included in the API Key IP whitelist security policy. |
| 429 Rate Limit | QUOTA_EXHAUSTED | All | 0 Hits | Assigned quota balance reached 0 hits. Recharge quota from reseller/admin panel. |
| 429 Rate Limit | RATE_LIMIT_EXCEEDED | All | 0 Hits | Requests exceeded configured RPS threshold (max 5-10 req/sec). Implement exponential backoff. |
| 500 Server Error | SERVER_ERROR | All | 0 Hits | Database connection drop or server exception. Quota is protected; safely retry. |
| 502 / 400 Bad Gateway | WORKER_ERROR | /api/topup | 0 Hits | UniPin/Garena payment gateway timeout. Auto-alert sent to admin; Zero-Loss quota guarantee active. |
Developer Integration: JSON Error Responses
Click an error reason below to view the exact JSON payload returned by the API:
// HTTP 400 Bad Request
// Scenario: UniPin voucher code was already used earlier
{
"success": false,
"errorReason": "CONSUMED_VOUCHER",
"message": "UniPin Voucher is ALREADY USED / CONSUMED (This voucher was previously redeemed).",
"quotaDeducted": false,
"remainingHits": 150,
"penaltyApplied": "1 hit penalty deducted for every 2 used or invalid vouchers."
}How to Handle Errors in Your Website / App (JavaScript Example):
const res = await fetch('https://fftopupapi.shop/api/topup', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'X-API-Key': 'YOUR_KEY' },
body: JSON.stringify({ uid: '1234567890', voucherCode: 'BDMB-1-S-12345678 1234-5678-9012' })
});
const data = await res.json();
if (!data.success) {
// Handle specific errors easily using data.errorReason:
switch (data.errorReason) {
case 'CONSUMED_VOUCHER':
alert('Voucher was already redeemed! Please provide a fresh voucher.');
break;
case 'INVALID_VOUCHER':
alert('Invalid voucher code. Please verify the serial and PIN digits.');
break;
case 'ONLY_FOR_BD_REGION':
alert('Target Free Fire account is not registered in Bangladesh.');
break;
case 'PLAYER_NOT_FOUND':
alert('Player UID was not found on Free Fire servers.');
break;
case 'QUOTA_EXHAUSTED':
alert('API quota exhausted! Please contact admin to recharge.');
break;
default:
alert(data.message || 'Top-up failed, please try again.');
}
}Key Notes & Integration Guidelines
Crucial rules and recommendations modeled after ucbot.net documentation notes.
You can pass up to 5 UniPin codes in a single request, comma-separated (e.g. "code": "BDMB1,BDMB2"). Any invalid or used codes will fail individually without failing the entire order.
Our platform automatically detects and processes both BDMB (UniPin Mobile) and UPBD voucher serials and PINs instantly with zero manual configuration.
Our stealth automation engine performs real-time browser interaction with UniPin gateways in 2–5 seconds. Set your client HTTP request timeout to at least 30 seconds to avoid premature dropoffs.
Always generate and transmit a unique orderid with every top-up request. If a network disruption occurs, retrying the identical orderid prevents double-charging or duplicate voucher redemption.