# Backend Services This page documents the Bluetti cloud backend infrastructure: environment switching, production and dev/test service URLs, the complete Retrofit API endpoint catalog across all microservices, and the MQTT broker details. ## 2. Backend Infrastructure ### 2.1 Environment Switching The app contains a fully functional three-environment architecture controlled by `EnvManager` (`net.poweroak.bluetticloud.http.env.EnvManager`). The active environment defaults to **RELEASE** but can be toggled at runtime. | Environment | Gateway URL | |---|---| | **RELEASE (default)** | `https://gw.bluettipower.com` | | TEST | `https://test-gw.poweroak.ltd:18443` | | DEV | `https://dev-gw.poweroak.ltd:18443` | ### 2.2 Production Service URLs | Service | URL | |---|---| | API Gateway (primary) | `https://gw.bluettipower.com` | | API Gateway (secondary/PRY) | `https://gwpry.bluettipower.com` | | SSO / Auth | `https://sso.bluettipower.com` | | H5 Frontend | `https://h5.bluettipower.com` | | Community H5 | `https://h5.bluettipower.com/app/community/dist/index.html#/home` | | After-Sales | `https://after-sales.bluettipower.com` | | IoT/MQTT Broker | `ssl://iot.bluettipower.com:18760` | | File (by ID) | `https://gw.bluettipower.com/api/midpfilec/file/v1/getFile?id=` | | App Download | `https://download.bluetti.app?sn=` | | App Download (alternate) | `https://download.poweroak.ltd?sn=` | ### 2.3 Test / Dev Service URLs (also embedded in binary) | Service | URL | |---|---| | Dev Gateway | `https://dev-gw.poweroak.ltd:18443` | | Test Gateway | `https://test-gw.poweroak.ltd:18443` | | Dev SSO | `http://dev-sso.poweroak.ltd:18888` (**HTTP — no TLS**) | | Test SSO | `https://test-sso.poweroak.ltd:18443` | | Dev H5 | `https://dev-app-h5.poweroak.ltd:18443` | | Test H5 | `https://test-app-h5.poweroak.ltd:18443` | | Dev IoT/MQTT | `ssl://dev-iot.poweroak.ltd:18760` | | Test IoT/MQTT | `ssl://test-iot.poweroak.ltd:18760` | | Dev After-Sales | `http://dev-after.poweroak.ltd:18888` (**HTTP — no TLS**) | | Test After-Sales | `http://test-after.poweroak.ltd:18888` (**HTTP — no TLS**) | --- ## 3. API Endpoints (Retrofit Services) The backend follows a microservice architecture. All endpoints are served under the gateway base URL. Each microservice has a `blu*` or `midp*` prefix. ### Authentication & User Accounts (`midpauthc`) ``` POST /api/midpauthc/user/mgt/register/v1 POST /api/midpauthc/user/mgt/forgotpwd/step1/v1 POST /api/midpauthc/user/mgt/forgotpwd/step2/v1 GET /api/midpauthc/user/account/v1 POST /api/midpauthc/user/v1/update/password POST /api/midpauthc/user/v1/update/mail/change POST /api/midpauthc/user/v1/update/mail/verify POST /api/midpauthc/user/v1/update/phone POST /api/midpauthc/user/v1/update/phone/change POST /api/midpauthc/user/v1/update/phone/verify POST /api/midpauthc/user/v1/update/country POST /api/midpauthc/user/v1/country/reset POST /api/midpauthc/account/social/v1/bind GET /api/midpauthc/account/social/v1/list POST /api/midpauthc/account/social/v1/unbind POST /social/login POST /api/logout POST /accessToken ``` ### Notifications & Captcha (`midpnc`) ``` POST /api/midpnc/captcha/send/v1 POST /api/midpnc/captcha/validate/v1 POST /api/midpnc/notify/push/device/v1/client-register GET /api/midpnc/notify/push/v1/user/unreadTotal POST /api/midpnc/notify/push/v1/user/read DELETE /api/midpnc/notify/push/v1/user/deleteNotify GET /api/midpnc/notify/push/message/v1/userNotify GET /api/midpnc/notify/push/v1/message/userNotify ``` ### PKI / Certificates (`midppkic`) ``` POST /api/midppkic/cert/app/revoke POST /api/midppkic/cert/app/v1/pfx GET /api/midppkic/cert/app/v2/now/utc-time ``` ### File Management (`midpfilec`) ``` POST /api/midpfilec/file/pre/v1/apply POST /api/midpfilec/file/pre/v1/upload GET /api/midpfilec/file/v1/getFile POST /api/midpfilec/file/v1/upload POST /api/midpfilec/file/v1/upload/multi GET /api/midpfilec/vod/v1/play-url ``` ### Master Data / App Config (`midpmdata`) ``` GET /api/midpmdata/app/version/v1/latest GET /api/midpmdata/app/attribute/v1/engineering-machine GET /api/midpmdata/dictionary/v1/app/lookup GET /api/midpmdata/master/v1/ver/checkLatest GET /api/midpmdata/iso/country/v1/localized/all-countries GET /api/midpmdata/iso/country/v1/localized/administrative-divisions ``` ### Payment (`midppayc`) ``` GET /api/midppayc/payment/v1/ability POST /api/midppayc/payment/v1/create GET /api/midppayc/payment/v1/query ``` ### Logistics / Geo / Weather (`midplifec`) ``` GET /api/midplifec/api/logistics/v1/trackInfo GET /api/midplifec/express/v1/logisticsDetailList GET /api/midplifec/geo/v1/support-phone-registry GET /api/midplifec/meteo/v1/daily POST /api/midplifec/meteo/v1/find ``` ### IoT Device Management (`blusmartprod`) ``` POST /api/blusmartprod/device/basic/v2/bind POST /api/blusmartprod/device/basic/v2/unbind POST /api/blusmartprod/device/basic/v1/update GET /api/blusmartprod/device/basic/v1/findDeviceByBluetooth GET /api/blusmartprod/device/basic/v1/deviceRemoteSearch POST /api/blusmartprod/device/basic/v1/updateUserDeviceInfo POST /api/blusmartprod/device/basic/v1/updateEmissionRate POST /api/blusmartprod/device/group/v1/updateDeviceSortData GET /api/blusmartprod/device/basic/v1/shareGroupMemberList DELETE /api/blusmartprod/device/basic/v1/delShareMember GET /api/blusmartprod/device/basic/v1/getQrCodeEncrypt GET /api/blusmartprod/device/group/v1/homeDevices GET /api/blusmartprod/device/group/v1/findDevicePage (v1/v2/v3) POST /api/blusmartprod/device/group/v1/deviceTop GET /api/blusmartprod/device/group/v1/findParallelDevice POST /api/blusmartprod/device/group/v1/parallel/create POST /api/blusmartprod/device/group/v1/parallel/sendParallelCmd POST /api/blusmartprod/device/group/v1/parallel/unbind GET /api/blusmartprod/device/firmware/v1/latest/firmwareVerList/batch (v1/v2/v3) POST /api/blusmartprod/device/firmware/v1/appSentDeviceRemoteUpgrade POST /api/blusmartprod/device/firmware/v1/aeccSentDeviceRemoteUpgrade GET /api/blusmartprod/device/model/v1/detail (v1/v2) GET /api/blusmartprod/device/model/v1/category GET /api/blusmartprod/device/manual/v1/getManual GET /api/blusmartprod/device/deviceAlarm/v1/queryDeviceAlarm POST /api/blusmartprod/device/deviceAlarm/v1/handlingAlarm POST /api/blusmartprod/device/batteryAgingMaintenance/v1/handleAging GET /api/blusmartprod/device/scene/v1/getAeccBindDeviceList POST /api/blusmartprod/device/scene/v2/createScene POST /api/blusmartprod/device/scene/v1/sceneAddDevice POST /api/blusmartprod/device/scene/v1/sceneUnbindDevice POST /api/blusmartprod/device/upgrade/record/v1/save POST /api/blusmartprod/user/space/v1/createSpace GET /api/blusmartprod/user/space/v1/getSpaceDeviceList POST /api/blusmartprod/user/space/v1/spaceAddDevice POST /api/blusmartprod/user/space/v1/shareSpace GET /api/blusmartprod/aecc/workMode/v1/getWorkMode POST /api/blusmartprod/aecc/workMode/v1/setWorkMode POST /api/blusmartprod/aecc/workMode/v1/addCustomPlan GET /api/blusmartprod/aecc/advancedSetting/v1/getSettings POST /api/blusmartprod/aecc/advancedSetting/v1/saveSetting POST /api/blusmartprod/aecc/advancedSetting/v1/resetToDefault GET /api/blusmartprod/aecc/command/v1/querySystemPowerData GET /api/blusmartprod/vpp/v1/programs POST /api/blusmartprod/vpp/v1/enrollment GET /api/blusmartprod/vpp/v1/dispatches POST /api/blusmartprod/vpp/site/v1/create ``` ### IoT Telemetry Data (`bluiotdata`) ``` GET /api/bluiotdata/aecc/v1/getDeviceRealTimeData GET /api/bluiotdata/aecc/v1/getDeviceBatteryDetailData GET /api/bluiotdata/aecc/v1/getDevicePvDetailData GET /api/bluiotdata/aecc/v1/getDeviceLoadDetailData GET /api/bluiotdata/aecc/v1/getDeviceGridDetailData GET /api/bluiotdata/aecc/v1/getDeviceAlarmList GET /api/bluiotdata/dashboard/v2/getDeviceEnergyStatistics GET /api/bluiotdata/dashboard/v2/getDevicePowerStatistics GET /api/bluiotdata/dashboard/v1/getElectricCostSaveStatistics GET /api/bluiotdata/dashboard/v1/getSocChangeList POST /api/bluiotdata/dashboard/v1/exportDeviceEnergyStatistics GET /api/bluiotdata/realtime/v1/getDeviceLastAlive GET /api/bluiotdata/device/iotData/v1/blackout/stats POST /api/bluiotdata/device/iotData/v1/blackout/clear GET /api/bluiotdata/device/openWeatherAlert/v1/queryDeviceWeatherNoticePage GET /api/bluiotdata/device/openWeatherAlert/v1/queryDisasterDeviceBackupPowerPage ``` ### Dynamic Electricity Pricing / VPP (`bluiotvpp`) ``` GET /api/bluiotvpp/dynamicElectricityPrice/user/v1/dyEpEnabled GET /api/bluiotvpp/dynamicElectricityPrice/user/v1/dyEpStatus GET /api/bluiotvpp/dynamicElectricityPrice/user/v1/costStatistics GET /api/bluiotvpp/dynamicElectricityPrice/user/v1/aiCostStatistics GET /api/bluiotvpp/dynamicElectricityPrice/user/v1/policyInformationDownApp POST /api/bluiotvpp/dynamicElectricityPrice/user/v1/policyInformationUp ``` ### User Center (`bluuc`) ``` GET /api/bluuc/uc/v1/basic/get POST /api/bluuc/uc/v1/basic/update/{userId} POST /api/bluuc/uc/v1/basic/update/avatar/{userId} POST /api/bluuc/uc/v1/basic/closing POST /api/bluuc/uc/v1/basic/updateExtendInfo GET /api/bluuc/uc/v1/address/list/paged POST /api/bluuc/uc/v1/address/add DELETE /api/bluuc/uc/v1/address/delete POST /api/bluuc/uc/v3/address/update POST /api/bluuc/push/v1/devices POST /api/bluuc/push/v1/subscribe GET /api/bluuc/push/v1/topic/list POST /api/bluuc/uc/v1/merchant/apply/applyMerchant GET /api/bluuc/uc/functionGrayscale/v1/checkFunction ``` ### Community / Social (`blucomm`) ``` GET /api/blucomm/community/home/v1/findNews POST /api/blucomm/community/home/v1/saveComment DELETE /api/blucomm/community/home/v1/delComment POST /api/blucomm/community/endorseManager/v1/endorse POST /api/blucomm/community/attention/v1/attentionOrNot POST /api/blucomm/community/postLifeManager/v1/addPostLifeApp GET /api/blucomm/community/postLifeManager/v1/lifeListApp POST /api/blucomm/posts/v1/create POST /api/blucomm/posts/v1/upload DELETE /api/blucomm/posts/v1/delete/{id}/{force_destroy} GET /api/blucomm/topic/v1/latestTopicsPage GET /api/blucomm/disUser/v1/getUserHomeInfo POST /api/blucomm/disUser/v1/update/avatar ``` ### E-commerce / Shop (`blushopc`) ``` GET /api/blushopc/app/goods/v1/goodsDetail GET /api/blushopc/app/goods/v1/search POST /api/blushopc/app/shopping/cart/v1/add GET /api/blushopc/app/shopping/cart/v1/query POST /api/blushopc/app/checkout/v2/create POST /api/blushopc/app/checkout/v2/payment GET /api/blushopc/app/order/v1/page GET /api/blushopc/app/order/v1/detail POST /api/blushopc/app/order/refund/v1/create GET /api/blushopc/app/coupon/v1/page POST /api/blushopc/app/coupon/v1/exchange GET /api/blushopc/app/customer/v1/level POST /api/blushopc/app/birthday/gift/v1/claim ``` ### After-Sales (`bluas`) ``` POST /api/bluas/afterSaleOrder/v1/apply GET /api/bluas/afterSaleOrder/v1/detail POST /api/bluas/afterSaleOrder/v1/evaluate GET /api/bluas/faq/v1/faqCategoryList GET /api/bluas/faq/v1/findByCategoryId GET /api/bluas/deviceModelFault/v1/getFaultsByModel/{deviceModel} POST /api/bluas/contactUs/v2/add POST /api/bluas/installation/v1/installationBegins GET /api/bluas/user/v1/installationOrder/page POST /api/bluas/user/v1/repairOrder/page ``` ### Marketing / Banners / Wiki (`blumktc`) ``` GET /api/blumktc/banner/v2/listBanner GET /api/blumktc/v1/config?version=v1 GET /api/blumktc/wiki/v1/home GET /api/blumktc/wiki/v1/search GET /api/blumktc/wiki/v1/article GET /api/blumktc/app/config/v1/queryOpenAppConfig POST /api/blumktc/app/config/v1/rating/good POST /api/blumktc/push/task/v1/read DELETE /api/blumktc/push/task/v1/delete POST /api/blumktc/referral/v1/checkCode POST /api/blumktc/marketing/recovery/v1/createRecoveryOrder GET /api/blumktc/marketing/recovery/v1/getRecoveryCountry POST /api/blumktc/subscribe/v1/customerSubscribe ``` ### Loyalty / Bluetti Bucks (`blubucksc`) ``` GET /api/blubucksc/bucksApi/query/v1/summary GET /api/blubucksc/bucksApi/query/v1/journal POST /api/blubucksc/bucksApi/pointsEarn/v1/sign GET /api/blubucksc/bucksApi/query/v1/signInfo ``` ### Distribution / Partners (`bludistc`) ``` POST /api/bludistc/app/order/v1/add GET /api/bludistc/app/order/v1/paged POST /api/bludistc/app/orderReturn/v1/add GET /api/bludistc/app/pay/v1/allowedPayTransaction POST /api/bludistc/app/pay/v1/thirdPartyPayment/order GET /api/bludistc/app/taxExempt/v1/paged ``` ### Financial / Transactions (`blufic`) ``` GET /api/blufic/fic/app/transaction/v1/page POST /api/blufic/fic/app/withdrawal/v1/add GET /api/blufic/fic/app/bankCard/v1/info GET /api/blufic/fic/app/distributor/v1/accountStats ``` ### Installation Services (`bluinstp`) ``` POST /api/bluinstp/app/order/v2/add GET /api/bluinstp/app/order/v2/page GET /api/bluinstp/app/device/v1/overview ``` ### Learning / Video (`bluelearn`) ``` GET /api/bluelearn/app/videoClassify/v1/classifications GET /api/bluelearn/app/videoClassify/v1/getAppVideos GET /api/bluelearn/app/videoClassify/v1/countrys ``` --- ## 4. IoT Communication — MQTT over SSL/TLS The app uses Eclipse Paho MQTT client (`org.eclipse.paho.client.mqttv3`) for real-time device communication. - **Broker (prod):** `ssl://iot.bluettipower.com:18760` - **Transport:** TLS with optional mutual TLS (mTLS) via client certificates - **Certificate source:** Client certificates are fetched from `/api/midppkic/cert/app/v1/pfx` (PKCS#12) and stored locally; the `MqttManager` loads them via `SSLHelper` using BouncyCastle - **`certPassword` field** is set dynamically at runtime (not hardcoded) - **Reconnect logic:** Exponential backoff with `ScheduledExecutorService`