အဓိက အကြောင်းအရာသို့ တိုက်ရိုက်သွားရန်
BShop Wholesale API v1

Robux Wholesale API နှင့် Developer လမ်းညွှန်

ခွင့်ပြုချက်ရ အရောင်းကိုယ်စားလှယ်များနှင့် Developer များအတွက် Robux ဈေးနှုန်းတွက်ချက်ခြင်း၊ အော်ဒါများ အလိုအလျောက်တင်ခြင်း၊ Roblox Account စစ်ဆေးခြင်းနှင့် Wallet စီမံခန့်ခွဲခြင်းဆိုင်ရာ တရားဝင် API လမ်းညွှန်။

Production API
https://api.bshopmyanmar.com
Staging / Sandbox
https://staging-api.bshopmyanmar.com

၁။ အကျဉ်းချုပ်နှင့် စနစ်တည်ဆောက်ပုံ

BShop Wholesale API သည် ခွင့်ပြုချက်ရ Reseller များ၊ Gaming Bot များနှင့် ပြင်ပ Storefront များအတွက် Robux အော်ဒါများကို ချက်ချင်း အလိုအလျောက် ပို့ဆောင်ပေးနိုင်ရန် တည်ဆောက်ထားခြင်း ဖြစ်ပါသည်။

Pre-Loaded Wallet ငွေပေးချေမှု

ကြိုတင်ငွေဖြည့်ထားသော Wallet Balance ဖြင့် အော်ဒါများကို စက္ကန့်ပိုင်းအတွင်း အတည်ပြုနုတ်ယူပြီး ငွေလွှဲစလစ် ပေးပို့စရာမလိုဘဲ တိုက်ရိုက် run နိုင်ပါသည်။

Tier အလိုက် တိုက်ရိုက် ဈေးနှုန်း (Quotes)

သင်၏ Dealer Tier (Bronze, Silver, Gold, VIP) အလိုက် သက်သာသော Wholesale နှုန်းထားဖြင့် အတိအကျ စက္ကန့်မဆိုင်း တွက်ချက်နိုင်ပါသည်။

Roblox ၁၅ ရက် Hold စစ်ဆေးစနစ်

Roblox Group Join ပြီး ၁၅ ရက် ပြည့်/မပြည့် အလိုအလျောက် စစ်ဆေးပြီး မပြည့်ပါက ရက်စွဲနှင့် ကျန်ရှိသောရက်ကို ပြသပေးပါသည်။

အလိုအလျောက် ပို့ဆောင်ရေး Engine

လူမလိုဘဲ ၂၄ နာရီပတ်လုံး payout queue ထဲသို့ တိုက်ရိုက်ရောက်ရှိပြီး စက္ကန့်ပိုင်းအတွင်း အလိုအလျောက် ပို့ဆောင်ပေးပါသည်။

၂။ အကောင့်ဖွင့်ခြင်းနှင့် Wholesale Access လျှောက်ထားခြင်း

BShop တွင် အကောင့်ဖွင့်ရန် စာရွက်စာတမ်း သို့မဟုတ် Form ဖြည့်စရာ မလိုဘဲ Telegram ဖြင့် ၁ စက္ကန့်အတွင်း အကောင့်ဖွင့်နိုင်ပါသည်။ Wholesale Dealer အဖြစ် လျှောက်ထားအတည်ပြုပြီးပါက လက်ကားဈေးနှုန်းများ၊ Pre-funded Wallet နှင့် Developer API သော့ချက်များကို ချက်ချင်း စတင်အသုံးပြုနိုင်ပါမည် ခင်ဗျာ။

စတင်အသုံးပြုခြင်း လမ်းညွှန်

အကောင့်ဖွင့်နည်းနှင့် Wholesale Dealer လျှောက်ထားနည်း

Gaming Shop များ၊ Robux ရောင်းချသူများနှင့် Bot Developer များအားလုံး လွယ်ကူလျင်မြန်စွာ လျှောက်ထားနိုင်ပါသည်။

1

၁။ Telegram ဖြင့် ၁ စက္ကန့်အတွင်း အကောင့်ဖွင့်ပါ

Telegram တွင် @bshopautobot ကို ဖွင့်ပါ သို့မဟုတ် Browser မှ app.bshopmyanmar.com သို့ ဝင်ရောက်ပါ။ သင်၏ Telegram profile ဖြင့် အကောင့်ကို ချက်ချင်း အလိုအလျောက် တည်ဆောက်ပေးပါမည် (Password မှတ်စရာ မလိုပါ)။

2

၂။ Wholesale Access လျှောက်ထားပါ

အောက်ဖော်ပြပါ နည်းလမ်း ၃ မျိုးအနက် အဆင်ပြေရာတစ်ခုဖြင့် Wholesale Access လျှောက်ထားနိုင်ပါသည်။ Telegram Bot တွင် /reseller_apply command ပေးပို့ခြင်း သို့မဟုတ် Admin Support @BshopByBlanky သို့ တိုက်ရိုက် ဆက်သွယ်နိုင်ပါသည်။

3

၃။ Admin မှ လျင်မြန်စွာ စိစစ်အတည်ပြုခြင်း

BShop Admin အဖွဲ့မှ လျှောက်ထားချက်ကို အမြန်ဆုံး စိစစ်ပေးပြီး အတည်ပြုပေးပါမည်။ အတည်ပြုပြီးသည်နှင့် သင့်အကောင့်သည် Approved Dealer ဖြစ်သွားပြီး Wholesale Tier (Bronze, Silver, Gold, VIP) သတ်မှတ်ပေးပါမည် ခင်ဗျာ။

4

၄။ Wholesale Mode သို့ ပြောင်းပြီး API သော့ချက်များ ထုတ်ယူပါ

MiniApp / Webapp ထိပ်ရှိ Toggle မှ Wholesale Mode သို့ ပြောင်းလဲပါ။ ထို့နောက် Wallet ကဏ္ဍတွင် KBZPay, WavePay သို့မဟုတ် AYA Pay ဖြင့် လက်ကျန်ငွေ ဖြည့်သွင်းပြီး အပိုင်း (၃) တွင် ဖော်ပြထားသည့်အတိုင်း သင်၏ API Key နှင့် Secret ကို ထုတ်ယူအသုံးပြုနိုင်ပါပြီ ခင်ဗျာ။

Telegram Bot Command (ချက်ချင်း)
/reseller_apply [Shop Name] [Volume]

Telegram bot @bshopautobot ထဲတွင် ချက်ချင်း ရိုက်ထည့်၍ ပေးပို့နိုင်ပါသည်။ Admin ထံသို့ တိုက်ရိုက် ရောက်ရှိပါမည်။

Admin Direct Chat
Telegram: @BshopByBlanky

ဆိုင်အချက်အလက်များကို Admin နှင့် @BshopByBlanky တွင် တိုက်ရိုက် ဆွေးနွေး အတည်ပြုနိုင်ပါသည်။

MiniApp / Webapp
app.bshopmyanmar.com

BShop App အတွင်းရှိ Profile သို့မဟုတ် Support ကဏ္ဍမှတစ်ဆင့်လည်း လျှောက်ထားနိုင်ပါသည်။

၃။ Authentication နှင့် လုံခြုံရေး

Wholesale API သို့ Request ပေးပို့တိုင်း သင့်အတွက် သီးသန့်ထုတ်ပေးထားသော လျှို့ဝှက် Dealer API Key နှင့် Secret ပါဝင်ရမည်။ API Key ကို X-Wholesale-Key (သို့မဟုတ် Authorization: Bearer <key>) ဖြင့်လည်းကောင်း၊ အော်ဒါတင်ခြင်းကဲ့သို့သော sensitive လုပ်ဆောင်ချက်များအတွက် API Secret ကို X-Wholesale-Secret ဖြင့်လည်းကောင်း HTTP Header မှတစ်ဆင့် ပေးပို့နိုင်ပါသည်။

API Key နှင့် Secret လုံခြုံရေး သတိပြုရန်

API Key နှင့် Secret များသည် သင့် Wallet Balance ဖြင့် တိုက်ရိုက် အော်ဒါတင်နိုင်သောကြောင့် Frontend Client Code (ဥပမာ HTML/JS) တွင် လုံးဝ မထည့်ပါနှင့်။ သင်၏ Backend Server မှသာ လုံခြုံစွာ ခေါ်ယူအသုံးပြုပါ။

MiniApp / Webapp လမ်းညွှန်

MiniApp / Webapp မှတစ်ဆင့် API Key နှင့် Secret ရယူနည်း

ခွင့်ပြုချက်ရ အရောင်းကိုယ်စားလှယ်များအနေဖြင့် BShop App အတွင်းမှ မိမိ၏ Developer API Key နှင့် Secret များကို ကုဒ်ရေးစရာမလိုဘဲ ချက်ချင်း ကူးယူအသုံးပြုနိုင်ပါသည်။

1

၁။ BShop MiniApp သို့မဟုတ် Webapp ကို ဖွင့်ပါ

Telegram ရှိ @bshopautobot သို့မဟုတ် Browser မှ app.bshopmyanmar.com သို့ ဝင်ရောက်ပါ။

2

၂။ Wholesale Shopping Mode သို့ ပြောင်းပါ

Wholesale Mode ဖွင့်ထားရန် လိုအပ်ပါသည်။ (Dealer ခွင့်ပြုချက် မရသေးပါက အပိုင်း (၂) တွင် လျှောက်ထားနိုင်ပါသည်)။ Consumer Mode ဖြစ်နေပါက အပေါ်ရှိ Mode ခလုတ်ကို နှိပ်၍ Wholesale Mode သို့ ပြောင်းလဲပါ။

3

၃။ Wallet ရှိ Developer API သော့ချက်များ ကဏ္ဍသို့ သွားပါ

အောက်ခြေရှိ Wallet tab ကို နှိပ်ပြီး Developer API Credentials (API သော့ချက်များ) ကတ်ပြားကို ရှာပါ။

4

၄။ သော့ချက်များ ထုတ်ယူပြီး ၁ ချက်နှိပ် ကူးယူပါ

ပထမဆုံးအကြိမ်ဖြစ်ပါက Generate API Credentials ကို နှိပ်ပါ။ မျက်လုံးပုံ icon ဖြင့် ဖွင့်ကြည့်ပြီး API Key (bshop_ws_...) နှင့် API Secret (bshop_sec_...) ဘေးရှိ Copy ခလုတ်ကို နှိပ်၍ အလွယ်တကူ ကူးယူပါ။

5

၅။ သော့ချက်များ အသစ်ချက်ချင်း လဲလှယ်နိုင်ခြင်း

လုံခြုံရေးအရ သော့ချက် အသစ်လဲလိုပါက Rotate Credentials ခလုတ်ကို နှိပ်၍ ချက်ချင်း လဲလှယ်နိုင်ပါသည်။ ယခင် သော့ဟောင်းများသည် လုံခြုံရေးအရ ချက်ချင်း ပျက်ပြယ်သွားပါမည် ခင်ဗျာ။

Wholesale API Key
X-Wholesale-Key: bshop_ws_...

လက်ကျန်ငွေ၊ Robux ဈေးနှုန်း၊ Quoting တွက်ချက်မှုနှင့် Roblox Group Eligibility စစ်ဆေးခြင်းများအတွက် အသုံးပြုပါသည်။

Wholesale API Secret
X-Wholesale-Secret: bshop_sec_...

Wallet Balance မှ တိုက်ရိုက် ငွေနုတ်ယူပြီး အော်ဒါတင်ခြင်းကဲ့သို့သော အရေးကြီးသည့် စနစ်များတွင် လုံခြုံစွာ အသုံးပြုပါသည်။

Quick Authentication Verification
curl -s -X GET "https://api.bshopmyanmar.com/api/wholesale/robux/rate" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY" \
  -H "Accept: application/json"

ပထမဆုံး API Key ရယူနည်းနှင့် စီမံခန့်ခွဲခြင်း အချက်အလက်

API Key များကို မည်သူမဆို curl command ဖြင့် အကောင့်မရှိဘဲ တိုက်ရိုက်ထုတ်ယူနိုင်ခြင်း မရှိပါ (လုံခြုံရေးအရ သင့် Telegram အကောင့်ကို အတည်ပြုရန် လိုအပ်သောကြောင့် ဖြစ်ပါသည်)။ သင်၏ ပထမဆုံး API Credentials ကို အထက်ပါ လမ်းညွှန်အတိုင်း BShop MiniApp သို့မဟုတ် WebApp (Wallet > Wholesale API Credentials) တွင် 1-click ဖြင့် အလွယ်တကူ ထုတ်ယူနိုင်ပါသည်။ ရရှိလာသော API Key ဖြင့် အောက်ဖော်ပြပါ endpoint များကို အသုံးပြုကာ သော့အခြေအနေ စစ်ဆေးအတည်ပြုခြင်း (GET /api/wholesale/key) နှင့် သော့အသစ် အလိုအလျောက် လဲလှယ်ခြင်း (POST /api/wholesale/key/generate) တို့ကို လုပ်ဆောင်နိုင်ပါသည် ခင်ဗျာ။

GET /api/wholesale/key
HTTP 200

လက်ရှိ API Key နှင့် Secret ကို စစ်ဆေးအတည်ပြုခြင်း

လက်ရှိ API Key မှန်ကန်မှု ရှိမရှိ စစ်ဆေးခြင်း၊ Secret နှင့် ခွင့်ပြုထားသော IP စာရင်းများကို ကြည့်ရှုခြင်း။ (ပထမဆုံး API Key ကို MiniApp / WebApp Wallet မှ ထုတ်ယူပါ)။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Existing dealer API key to verify (or active WebApp session)
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/key" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/key", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/key', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "user_id": 8599999,
    "has_key": true,
    "api_key": "bshop_ws_Qcq6P5kTGo80qeEbVNlv1T2JM2E1n2aYr3Ac2W1iw4c",
    "masked_key": "bshop_ws_Qcq...iw4c",
    "has_secret": true,
    "api_secret": "bshop_sec_9uV2mK8pL1xR4tN9wY1aZ5bC6dE3fG0hJ2kL4mP6qRs",
    "masked_secret": "bshop_sec_9uV...qRs"
  }
}
POST /api/wholesale/key/generate
HTTP 200

API Key နှင့် Secret အသစ်လဲလှယ်ခြင်း (Rotate)

လက်ရှိ API Key နှင့် Secret ကို အသစ်လဲလှယ်ပြီး သော့ဟောင်းများကို ချက်ချင်း ဖျက်သိမ်းပါသည်။ လက်ရှိ X-Wholesale-Key ပေးပို့ရန် လိုအပ်ပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Current active dealer API key to rotate (or active WebApp session)
curl -X POST "https://api.bshopmyanmar.com/api/wholesale/key/generate" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.post("https://api.bshopmyanmar.com/api/wholesale/key/generate", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/key/generate', {
  method: 'POST',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "user_id": 8599999,
    "api_key": "bshop_ws_7xK8pLmQ2vR4tN9wY1aZ5bC6dE3fG0hJ",
    "api_secret": "bshop_sec_3kM8vP1xR4tN9wY1aZ5bC6dE3fG0hJ2kL4mP6qRsTuV",
    "action": "generated",
    "note": "Store this key and secret safely. You can pass X-Wholesale-Key or Authorization: Bearer  in requests."
  }
}

Robux ဈေးနှုန်းနှင့် တန်ဖိုးတွက်ချက်ခြင်း

သင်၏ Dealer Tier အလိုက် လက်ရှိ Robux တစ်ယူနစ် MMK နှုန်းထားကို ရယူနိုင်ပြီး အော်ဒါမတင်မီ ကျသင့်ငွေ တိကျစွာ တွက်ချက်နိုင်ပါသည်။

GET /api/wholesale/robux/rate
HTTP 200

Wholesale Robux နှုန်းထား ရယူခြင်း

မိမိ၏ Dealer Tier အလိုက် လက်ရှိ ကျသင့်မည့် Robux တစ်ယူနစ် MMK နှုန်းကို ရယူပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/robux/rate" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/robux/rate", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/robux/rate', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "tier_id": 1,
    "tier_name": "Bronze",
    "unit_rate_mmk": 28.5,
    "currency": "MMK",
    "min_order_robux": 100
  }
}
POST /api/wholesale/robux/quote
HTTP 200

Robux အော်ဒါ တန်ဖိုးတွက်ချက်ခြင်း

ဝယ်ယူလိုသော Robux ပမာဏအတွက် စုစုပေါင်း ကျသင့်ငွေနှင့် လက်ကျန်ငွေ လုံလောက်မှု ရှိမရှိ တွက်ချက်စစ်ဆေးပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key
Content-Type string မဖြစ်မနေ application/json
curl -X POST "https://api.bshopmyanmar.com/api/wholesale/robux/quote" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "amount_robux": 1000,
  "recipients": [
    {
      "username": "Player1",
      "amount_robux": 500
    },
    {
      "username": "Player2",
      "amount_robux": 500
    }
  ]
}'
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}
payload = {
    "amount_robux": 1000,
    "recipients": [
        {
            "username": "Player1",
            "amount_robux": 500
        },
        {
            "username": "Player2",
            "amount_robux": 500
        }
    ]
}

response = requests.post("https://api.bshopmyanmar.com/api/wholesale/robux/quote", headers=headers, json=payload)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/robux/quote', {
  method: 'POST',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "amount_robux": 1000,
    "recipients": [
        {
            "username": "Player1",
            "amount_robux": 500
        },
        {
            "username": "Player2",
            "amount_robux": 500
        }
    ]
}),
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "total_robux": 1000,
    "unit_rate_mmk": 28.5,
    "total_amount_mmk": 28500.0,
    "dealer_balance_mmk": 500000.0,
    "can_pay_with_balance": true,
    "dealer_tier": "Bronze"
  }
}

Wholesale Robux အော်ဒါတင်ခြင်း

Recipient တစ်ဦးချင်း သို့မဟုတ် batch လူများစွာအတွက် အော်ဒါတင်နိုင်ပါသည်။ pay_with_balance မှန်ကန်ပါက Wallet balance မှ တိုက်ရိုက်နုတ်ယူပြီး payout engine မှ အလိုအလျောက် ပို့ဆောင်ပေးပါသည်။

POST /api/wholesale/robux/order
HTTP 200

Wholesale Robux အော်ဒါ တင်ခြင်း

Recipient တစ်ဦး သို့မဟုတ် အများဆုံး လူ ၂၀၀ အထိ Robux အော်ဒါတင်သွင်းပြီး Wallet မှ အလိုအလျောက် ပေးချေပါသည်။ X-Wholesale-Secret မဖြစ်မနေ လိုအပ်ပြီး X-Idempotency-Key ဖြင့် ထပ်ခါတလဲလဲ ငွေမနုတ်အောင် ကာကွယ်နိုင်ပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Dealer API key
X-Wholesale-Secret string မဖြစ်မနေ Companion secret required for mutating balance-debiting orders
X-Idempotency-Key string ရွေးချယ်ရန် Unique request UUID to prevent duplicate orders on connection timeouts
Content-Type string မဖြစ်မနေ application/json
curl -X POST "https://api.bshopmyanmar.com/api/wholesale/robux/order" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY" \
  -H "X-Wholesale-Secret: bshop_sec_YOUR_SECRET" \
  -H "X-Idempotency-Key: idemp_unique_order_uuid_12345" \
  -H "Content-Type: application/json" \
  -d '{
  "recipients": [
    {
      "username": "PlayerAlpha",
      "amount_robux": 500
    },
    {
      "username": "PlayerBeta",
      "amount_robux": 1000
    }
  ],
  "pay_with_balance": true,
  "validate_eligibility": true,
  "notes": "Store Order #9021"
}'
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
API_SECRET = "bshop_sec_YOUR_SECRET"
IDEMPOTENCY_KEY = "idemp_unique_order_uuid_12345"
headers = {
    "X-Wholesale-Key": API_KEY,
    "X-Wholesale-Secret": API_SECRET,
    "X-Idempotency-Key": IDEMPOTENCY_KEY,
    "Content-Type": "application/json",
}
payload = {
    "recipients": [
        {
            "username": "PlayerAlpha",
            "amount_robux": 500
        },
        {
            "username": "PlayerBeta",
            "amount_robux": 1000
        }
    ],
    "pay_with_balance": true,
    "validate_eligibility": true,
    "notes": "Store Order #9021"
}

response = requests.post("https://api.bshopmyanmar.com/api/wholesale/robux/order", headers=headers, json=payload)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';
const API_SECRET = 'bshop_sec_YOUR_SECRET';
const IDEMPOTENCY_KEY = 'idemp_unique_order_uuid_12345';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/robux/order', {
  method: 'POST',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'X-Wholesale-Secret': API_SECRET,
    'X-Idempotency-Key': IDEMPOTENCY_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "recipients": [
        {
            "username": "PlayerAlpha",
            "amount_robux": 500
        },
        {
            "username": "PlayerBeta",
            "amount_robux": 1000
        }
    ],
    "pay_with_balance": true,
    "validate_eligibility": true,
    "notes": "Store Order #9021"
}),
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "order_number": "ORD-20260904-2DDF3DED",
    "order_id": 4901,
    "status": "processing",
    "total_robux": 1500,
    "total_amount_mmk": 42750.0,
    "unit_rate_mmk": 28.5,
    "payment_method": "Balance",
    "balance_deducted_mmk": 42750.0,
    "new_balance_mmk": 457250.0,
    "recipients_count": 2,
    "recipients": [
      {
        "id": 155,
        "recipient_username": "PlayerAlpha",
        "amount_robux": 500,
        "unit_price_mmk": 28.5,
        "line_total_mmk": 14250.0,
        "status": "pending"
      },
      {
        "id": 156,
        "recipient_username": "PlayerBeta",
        "amount_robux": 1000,
        "unit_price_mmk": 28.5,
        "line_total_mmk": 28500.0,
        "status": "pending"
      }
    ],
    "eligibility_summary": {
      "total": 2,
      "eligible": 2,
      "ineligible": 0
    }
  }
}
GET /api/wholesale/robux/orders
HTTP 200

Wholesale အော်ဒါစာရင်း ရယူခြင်း

မိမိ အကောင့်ဖြင့် တင်ထားသော လတ်တလော Wholesale အော်ဒါများကို ပြသပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key

Query Parameters

Parameter Type Required Description
limit integer ရွေးချယ်ရန် Max orders (1-100, default: 50)
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/robux/orders" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/robux/orders", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/robux/orders', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "orders": [
      {
        "order_number": "ORD-20260904-2DDF3DED",
        "status": "processing",
        "total_amount_mmk": 42750.0,
        "balance_deducted_mmk": 42750.0,
        "payment_method": "Balance",
        "is_batch_split": true,
        "created_at": "2026-09-04 16:27:09.526216+00:00"
      }
    ]
  }
}
GET /api/wholesale/robux/orders/{order_number}
HTTP 200

အော်ဒါ အသေးစိတ်နှင့် Recipient အခြေအနေ

အော်ဒါတစ်ခုချင်းစီ၏ အသေးစိတ်နှင့် recipient တစ်ဦးချင်းစီသို့ Robux ရောက်ရှိမှု အခြေအနေကို စစ်ဆေးပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key

Query Parameters

Parameter Type Required Description
order_number string မဖြစ်မနေ Order number (e.g. ORD-20260904-2DDF3DED)
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/robux/orders/{order_number}?order_number=example" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}
params = {
    "order_number": "Builderman",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/robux/orders/{order_number}", headers=headers, params=params)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/robux/orders/{order_number}?order_number=Builderman', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "order_number": "ORD-20260904-2DDF3DED",
    "status": "processing",
    "total_amount_mmk": 42750.0,
    "payment_method": "Balance",
    "created_at": "2026-09-04T16:27:09.526216+00:00",
    "is_batch_split": true,
    "recipients": [
      {
        "id": 155,
        "recipient_username": "PlayerAlpha",
        "roblox_user_id": 12345678,
        "amount_robux": 500,
        "unit_price_mmk": 28.5,
        "line_total_mmk": 14250.0,
        "status": "completed",
        "error_message": null
      }
    ]
  }
}

Roblox Group & 15-Day Hold စစ်ဆေးမှု

Roblox စည်းမျဉ်းအရ Robux ပို့ဆောင်ရန် အကောင့်သည် Payout Group တွင် အနည်းဆုံး ၁၅ ရက် ကြိုတင် Join ထားရပါမည်။ ဤ endpoint များဖြင့် recipient အကောင့်များကို ကြိုတင် စစ်ဆေးနိုင်ပါသည်။

GET /api/wholesale/eligibility/check
HTTP 200

Roblox Account တစ်ခုချင်း စစ်ဆေးခြင်း

Roblox username အမှန်ဖြစ်မှု၊ Group Join ထားမှုနှင့် ၁၅ ရက် စည်းကမ်း ပြည့်မီမှုတို့ကို စစ်ဆေးပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key

Query Parameters

Parameter Type Required Description
username string မဖြစ်မနေ Roblox username
group_key string ရွေးချယ်ရန် Specific payout group key (optional)
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/eligibility/check?username=example" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}
params = {
    "username": "Builderman",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/eligibility/check", headers=headers, params=params)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/eligibility/check?username=Builderman', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "username": "builderman",
    "roblox_user_id": 156,
    "status": "eligible",
    "is_eligible": true,
    "is_member": true,
    "in_cooldown": false,
    "reason": "Account is eligible for instant Robux payout",
    "target_group": {
      "group_id": "12345678",
      "group_name": "BShop Alpha Vault",
      "join_url": "https://www.roblox.com/groups/12345678"
    }
  }
}
POST /api/wholesale/eligibility/batch
HTTP 200

Roblox Account အများအပြား တစ်ပြိုင်နက် စစ်ဆေးခြင်း

လူများစွာ၏ Roblox အကောင့်များကို တစ်ပြိုင်နက် scan ဖတ်စစ်ဆေးပေးပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key
Content-Type string မဖြစ်မနေ application/json
curl -X POST "https://api.bshopmyanmar.com/api/wholesale/eligibility/batch" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "recipients": [
    {
      "username": "Builderman",
      "amount_robux": 500
    },
    {
      "username": "RobloxPlayer",
      "amount_robux": 1000
    }
  ],
  "text": null
}'
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}
payload = {
    "recipients": [
        {
            "username": "Builderman",
            "amount_robux": 500
        },
        {
            "username": "RobloxPlayer",
            "amount_robux": 1000
        }
    ],
    "text": null
}

response = requests.post("https://api.bshopmyanmar.com/api/wholesale/eligibility/batch", headers=headers, json=payload)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/eligibility/batch', {
  method: 'POST',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "recipients": [
        {
            "username": "Builderman",
            "amount_robux": 500
        },
        {
            "username": "RobloxPlayer",
            "amount_robux": 1000
        }
    ],
    "text": null
}),
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "all_eligible": true,
    "summary": {
      "total": 2,
      "eligible": 2,
      "ineligible": 0
    },
    "results": [
      {
        "username": "builderman",
        "amount_robux": 500,
        "roblox_user_id": 156,
        "status": "eligible",
        "reason": null
      },
      {
        "username": "robloxplayer",
        "amount_robux": 1000,
        "roblox_user_id": 98765432,
        "status": "eligible",
        "reason": null
      }
    ],
    "excluded_clipboard_text": ""
  }
}

Payout Groups နှင့် Join ရန် လင့်ခ်များ

လက်ရှိ အသုံးပြုနေသော Roblox Payout Group များ၊ Group Join Link များ၊ လက်ကျန် Stock များနှင့် စည်းကမ်းချက်များကို ကြည့်ရှုနိုင်ပါသည်။

GET /api/wholesale/group-requirements
HTTP 200

Active Payout Groups အချက်အလက်များ

လက်ရှိ Payout Group များ၊ Group Join Link များနှင့် စည်းကမ်းချက်များကို ရယူပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/group-requirements" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/group-requirements", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/group-requirements', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "requirements": {
      "min_membership_days": 15,
      "policy": "Roblox requires accounts to remain in the group for 15 continuous days before group funds can be paid out.",
      "instructions": [
        "1. Click the group join URL and join the Roblox group.",
        "2. Maintain group membership for at least 15 days.",
        "3. Once 15 days elapse, accounts become permanently eligible for instant Robux payouts."
      ]
    },
    "groups": [
      {
        "group_key": "1",
        "group_id": "34567890",
        "group_name": "BShop Primary Vault",
        "join_url": "https://www.roblox.com/groups/34567890",
        "min_holding_days": 15,
        "balance_robux": 150000
      }
    ]
  }
}

Wallet Balance နှင့် စာရင်းမှတ်တမ်း

သင်၏ လက်ကျန် MMK ငွေပမာဏ၊ ဆိုင်၏ Robux Stock နှင့် Top-up / အော်ဒါနုတ်ယူမှု Transaction စာရင်းများကို စစ်ဆေးနိုင်ပါသည်။

GET /api/wholesale/balance
HTTP 200

Wallet လက်ကျန်ငွေနှင့် Robux Stock စစ်ဆေးခြင်း

Dealer ၏ သုံးစွဲနိုင်သော MMK လက်ကျန်ငွေနှင့် ဆိုင်၏ Robux Stock လက်ကျန် စုစုပေါင်းကို စစ်ဆေးပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/balance" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/balance", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/balance', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "dealer": {
      "user_id": 8599999,
      "username": "dealer_8599999",
      "tier_id": 1,
      "tier_name": "Bronze",
      "unit_rate_mmk": 28.5,
      "balance_mmk": 500000.0,
      "locked_balance_mmk": 0.0,
      "lifetime_deposited_mmk": 1000000.0,
      "lifetime_spent_mmk": 500000.0,
      "updated_at": "2026-09-04 16:21:30+00:00"
    },
    "stock": {
      "total_available_robux": 1382062,
      "groups": [
        {
          "key": "1",
          "name": "BShop Primary Vault",
          "balance_robux": 150000,
          "sellable_robux": 149999
        }
      ]
    }
  }
}
GET /api/wholesale/balance/transactions
HTTP 200

Wallet ငွေလွှဲပြောင်းမှု မှတ်တမ်း

ငွေဖြည့်သွင်းမှု၊ အော်ဒါနုတ်ယူမှုနှင့် ငွေပြန်အမ်းမှု မှတ်တမ်းများကို ကြည့်ရှုပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Secret dealer API key

Query Parameters

Parameter Type Required Description
limit integer ရွေးချယ်ရန် Max records (1-100, default: 50)
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/balance/transactions" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/balance/transactions", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/balance/transactions', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "transactions": [
      {
        "id": 169,
        "amount_mmk": 42750.0,
        "balance_before_mmk": 500000.0,
        "balance_after_mmk": 457250.0,
        "type": "order_debit",
        "reference_id": "ORD-20260904-2DDF3DED",
        "notes": "Wholesale Robux Order #ORD-20260904-2DDF3DED (1,500 R$)",
        "created_at": "2026-09-04 16:27:09+00:00"
      },
      {
        "id": 168,
        "amount_mmk": 500000.0,
        "balance_before_mmk": 0.0,
        "balance_after_mmk": 500000.0,
        "type": "topup",
        "reference_id": "TOP-10294",
        "notes": "Dealer Wallet Top-Up (KBZPay)",
        "created_at": "2026-09-04 16:19:47+00:00"
      }
    ]
  }
}

လုံခြုံရေး၊ Rate Limits နှင့် IP Whitelist

ငွေပေးချေမှုဆိုင်ရာ အော်ဒါတင်ခြင်းများတွင် X-Wholesale-Secret မဖြစ်မနေ လိုအပ်ခြင်း၊ Sliding-window rate limits (အော်ဒါများအတွက် 10 req/min၊ စစ်ဆေးမှုများအတွက် 30 req/min၊ ဈေးနှုန်းတွက်ချက်မှုအတွက် 60 req/min)၊ Timing attack ကာကွယ်မှုနှင့် Dealer IP Whitelist သတ်မှတ်နိုင်ခြင်း။ MiniApp / WebApp Wallet UI မှတစ်ဆင့်ဖြစ်စေ၊ REST API မှတစ်ဆင့်ဖြစ်စေ လွယ်ကူစွာ သတ်မှတ်နိုင်ပြီး ဖုန်းအသုံးပြုသူများ အပိတ်မခံရစေသော Mobile Session Safeguard နှင့် CLI Testing Tool များ ပါဝင်ပါသည် ခင်ဗျာ။

IP Whitelist & လုံခြုံရေး လမ်းညွှန်

IP Whitelist သတ်မှတ်နည်းနှင့် လုံခြုံရေး စနစ်များ

မိမိ၏ Wholesale Dealer Account ကို ခွင့်ပြုချက်မရှိဘဲ အော်ဒါတင်ခြင်းနှင့် API Key ပေါက်ကြားမှု အန္တရာယ်များမှ ကာကွယ်ရန် နည်းလမ်း ၂ မျိုးဖြင့် IP Whitelist သတ်မှတ်နိုင်ပါသည် ခင်ဗျာ။

နည်းလမ်း ၁။ MiniApp / WebApp UI (Code မလို)

BShop MiniApp သို့မဟုတ် WebApp ကိုဖွင့်ပြီး Wallet > Wholesale API & Security ကဏ္ဍသို့ သွားပါ။ Allowed IP Whitelist အကွက်တွင် မိမိ၏ Bot Server IP သို့မဟုတ် CIDR (ဥပမာ 198.51.100.42, 203.0.113.0/24) ကို ရိုက်ထည့်ကာ Save Allowed IPs ခလုတ်ကို ၁ ချက်နှိပ် သိမ်းဆည်းနိုင်ပါသည်။

Wallet > Wholesale API > Allowed IP Whitelist
နည်းလမ်း ၂။ Programmatic REST API

POST /api/wholesale/security/allowed-ips သို့ X-Wholesale-Key နှင့် X-Wholesale-Secret တို့ဖြင့် {"allowed_ips": ["198.51.100.42"]} ပေးပို့ကာ အလိုအလျောက် သတ်မှတ်နိုင်ပါသည်။ IP အကန့်အသတ်မထားလိုပါက စာရင်းအလွတ် {"allowed_ips": []} ပေးပို့နိုင်ပါသည်။

POST /api/wholesale/security/allowed-ips

Mobile Session လုံခြုံရေး — ဖုန်းအသုံးပြုသူများ လုံးဝ အပိတ်မခံရသော စနစ်

မိုဘိုင်းဒေတာ (MPT, ATOM, Ooredoo စသည်) ဖြင့် BShop MiniApp / WebApp အသုံးပြုချိန်တွင် IP မကြာခဏ ပြောင်းလဲသော်လည်း Wallet စာရင်းကို အဆင်ပြေစွာ ဆက်လက် ကြည့်ရှုနိုင်ပါသည်။ IP Whitelist စစ်ဆေးမှုကို Bot များနှင့် Server-to-server API Key/Secret ဖြင့် ခေါ်ယူမှုများတွင်သာ တင်းကျပ်စွာ စစ်ဆေးခြင်းဖြစ်သောကြောင့် ဖုန်းအသုံးပြုသူများအတွက် စိတ်ချလက်ချ အသုံးပြုနိုင်ပါသည် ခင်ဗျာ။

တရားဝင် Wholesale CLI စမ်းသပ် Tool (Zero Dependencies)

မိတ်ဖက် Dealer များအတွက် ပြင်ပ library သွင်းစရာမလိုဘဲ Python 3 Standard Library ဖြင့် အသင့် run နိုင်သော scripts/test_wholesale_client.py တွင် Option 11 ဖြင့် လက်ရှိ Server IP နှင့် Whitelist အခြေအနေကို စစ်ဆေးနိုင်ပြီး Option 12 ဖြင့် Whitelist IP အသစ်ကို ချက်ချင်း ပြင်ဆင်စမ်းသပ်နိုင်ပါသည်။ Repo အတွင်း python3 scripts/test_wholesale_client.py --all flag ဖြင့် endpoint အားလုံးကို တစ်ပြိုင်နက် automated test ပြုလုပ်နိုင်သလို အောက်ပါအတိုင်း သီးသန့် script ဖိုင်အဖြစ် ဒေါင်းလုဒ်ရယူ၍လည်း run နိုင်ပါသည် ခင်ဗျာ။

Terminal မှ တိုက်ရိုက် ရယူ၍ Run နည်း (cURL)
curl -sSL https://staging-api.bshopmyanmar.com/scripts/test_wholesale_client.py -o test_wholesale_client.py
python3 test_wholesale_client.py --all
GET /api/wholesale/security/status
HTTP 200

လုံခြုံရေးအခြေအနေနှင့် Rate Limit စစ်ဆေးခြင်း

လက်ရှိ လုံခြုံရေးသတ်မှတ်ချက်များ၊ ခွင့်ပြုထားသော IP စာရင်း၊ မိမိ Client IP နှင့် Rate Limit အခြေအနေများကို ကြည့်ရှုပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Dealer API key
curl -X GET "https://api.bshopmyanmar.com/api/wholesale/security/status" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY"
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
headers = {
    "X-Wholesale-Key": API_KEY,
    "Content-Type": "application/json",
}

response = requests.get("https://api.bshopmyanmar.com/api/wholesale/security/status", headers=headers)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/security/status', {
  method: 'GET',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'Content-Type': 'application/json',
  },
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "user_id": 8599999,
    "has_key": true,
    "has_secret": true,
    "allowed_ips": [
      "198.51.100.42",
      "203.0.113.0/24"
    ],
    "client_ip": "198.51.100.42",
    "auth_type": "key",
    "rate_limits": {
      "orders": "10 req / 60s",
      "eligibility": "30 req / 60s",
      "quotes": "60 req / 60s",
      "general": "120 req / 60s"
    }
  }
}
POST /api/wholesale/security/allowed-ips
HTTP 200

ခွင့်ပြုထားသော IP Whitelist အသစ်ပြင်ဆင်ခြင်း

Wholesale API ကို အသုံးပြုခွင့်ရှိသော IP သို့မဟုတ် CIDR subnet များကို သတ်မှတ်ပါသည်။ X-Wholesale-Secret မဖြစ်မနေ လိုအပ်ပါသည်။ အကန့်အသတ်မထားလိုပါက [] ပေးပို့နိုင်ပါသည်။

HTTP Headers

Header Type Required Description
X-Wholesale-Key string မဖြစ်မနေ Dealer API key
X-Wholesale-Secret string မဖြစ်မနေ Secret required to modify IP whitelist
Content-Type string မဖြစ်မနေ application/json
curl -X POST "https://api.bshopmyanmar.com/api/wholesale/security/allowed-ips" \
  -H "X-Wholesale-Key: bshop_ws_YOUR_SECRET_KEY" \
  -H "X-Wholesale-Secret: bshop_sec_YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "allowed_ips": [
    "198.51.100.42",
    "203.0.113.0/24"
  ]
}'
import requests

API_KEY = "bshop_ws_YOUR_SECRET_KEY"
API_SECRET = "bshop_sec_YOUR_SECRET"
headers = {
    "X-Wholesale-Key": API_KEY,
    "X-Wholesale-Secret": API_SECRET,
    "Content-Type": "application/json",
}
payload = {
    "allowed_ips": [
        "198.51.100.42",
        "203.0.113.0/24"
    ]
}

response = requests.post("https://api.bshopmyanmar.com/api/wholesale/security/allowed-ips", headers=headers, json=payload)
data = response.json()
print("Status:", response.status_code)
print("Response:", data)
const API_KEY = 'bshop_ws_YOUR_SECRET_KEY';
const API_SECRET = 'bshop_sec_YOUR_SECRET';

const response = await fetch('https://api.bshopmyanmar.com/api/wholesale/security/allowed-ips', {
  method: 'POST',
  headers: {
    'X-Wholesale-Key': API_KEY,
    'X-Wholesale-Secret': API_SECRET,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "allowed_ips": [
        "198.51.100.42",
        "203.0.113.0/24"
    ]
}),
});

const result = await response.json();
console.log('Status:', response.status);
console.log('Result:', result);
တုံ့ပြန်မှု ဥပမာ (Response Sample) 200 OK
{
  "ok": true,
  "data": {
    "user_id": 8599999,
    "allowed_ips": [
      "198.51.100.42",
      "203.0.113.0/24"
    ],
    "message": "IP allowlist updated successfully"
  }
}

Error Codes များ လမ်းညွှန်

Wholesale API မှ ပြန်လည်ပေးပို့နိုင်သော စံသတ်မှတ်ချက် Error Code များနှင့် ဖြေရှင်းရန် နည်းလမ်းများ။

HTTP Status Error Code ရှင်းလင်းချက်နှင့် အဓိပ္ပာယ်
400 INSUFFICIENT_DEALER_BALANCE အော်ဒါကျသင့်ငွေထက် Wallet လက်ကျန်ငွေ နည်းနေပါသည်။ ကျေးဇူးပြု၍ ငွေဖြည့်သွင်းပါ။
400 RECIPIENTS_REQUIRED Recipient username သို့မဟုတ် Robux ပမာဏ ထည့်သွင်းထားခြင်း မရှိပါ။
400 RECIPIENTS_INELIGIBLE အကောင့်တစ်ခု သို့မဟုတ် တစ်ခုထက်ပို၍ Group မဝင်ရသေးခြင်း သို့မဟုတ် ၁၅ ရက် မပြည့်သေးပါ။
400 BATCH_SIZE_EXCEEDED တစ်ကြိမ်လျှင် အများဆုံး လူ ၂၀၀ အထိသာ အော်ဒါတင်နိုင်ပါသည်။ ၂၀၀ ထက် ကျော်လွန်နေပါသည်။
401 UNAUTHORIZED API Key ပေးပို့ထားခြင်း မရှိပါ။
401 INVALID_WHOLESALE_API_KEY ပေးပို့ထားသော API Key မှားယွင်းနေပါသည်။
401 WHOLESALE_SECRET_REQUIRED ငွေနုတ်ယူရသော အော်ဒါတင်ခြင်း သို့မဟုတ် လုံခြုံရေးပြင်ဆင်မှုများအတွက် X-Wholesale-Secret မဖြစ်မနေ လိုအပ်ပါသည်။
401 INVALID_WHOLESALE_SECRET ပေးပို့ထားသော X-Wholesale-Secret မှားယွင်းနေပါသည်။
403 WHOLESALE_DEALER_NOT_APPROVED အရောင်းကိုယ်စားလှယ် လျှောက်ထားမှု ခွင့်ပြုချက် မရသေးပါ။
403 IP_NOT_ALLOWED ဤ Client IP သည် ခွင့်ပြုထားသော IP Whitelist ထဲတွင် မပါဝင်ပါ။
404 ORDER_NOT_FOUND ရှာဖွေသော အော်ဒါနံပါတ် မရှိပါ သို့မဟုတ် မိမိအော်ဒါ မဟုတ်ပါ။
409 IDEMPOTENCY_KEY_COLLISION အသုံးပြုထားသော Idempotency Key ဖြင့် မတူညီသော payload အသစ် ပေးပို့နေသောကြောင့် ပယ်ချပါသည်။
429 RATE_LIMIT_EXCEEDED တစ်မိနစ်အတွင်း ခွင့်ပြုထားသော အကြိမ်ရေ ကန့်သတ်ချက်ထက် ကျော်လွန်နေပါသည်။ Retry-After ကို စောင့်ဆိုင်းပါ။
503 MAINTENANCE စနစ် အဆင့်မြှင့်တင် ပြုပြင်နေပါသည်။ ခေတ္တစောင့်ဆိုင်းပေးပါ။

Wholesale Dealer လျှောက်ထားလိုပါသလား?

အော်ဒါအမြောက်အမြား တင်လိုသော အရောင်းကိုယ်စားလှယ်များ၊ Game Shop ပိုင်ရှင်များနှင့် Bot Developer များအနေဖြင့် BShop ၏ Telegram Support တွင် ဆက်သွယ်ကာ Wholesale Dealer Account ဖွင့်လှစ်ပြီး အထူးသက်သာသော ဈေးနှုန်းများ ရယူနိုင်ပါသည်။