| Type | Amount | Description | Date |
|---|---|---|---|
| No transactions yet | |||
| Type | Amount | Description | Date |
|---|---|---|---|
| No transactions yet | |||
| Order ID | Method | Amount | Status | Date |
|---|---|---|---|---|
| Loading… | ||||

Binance → Account → API Management → Edit key → Restrict access to trusted IPs



After changing this, re-download your gateway files and follow the updated INSTALL.txt.
Need the full walkthrough? Open the Setup Guide →
Move gatewaypro.php and gatewaypro_confirm.php to any public folder, enter its URL here, then Test.
23.88.55.180- Log in to binance.com → Profile → API Management
- Click "Create API" → choose "System generated" → label it PayGatePro
- Under API Restrictions enable only: Enable Reading — that's all PayGate Pro needs to check your payment history. Do not enable withdrawals or transfers; your key never needs the ability to move funds, only to read it.
- Under IP Access Restriction select "Restrict to trusted IPs only" and add:
23.88.55.180 - Save and complete any 2FA Binance asks for. Copy your API Key and Secret Key
- Go to Profile → Payment → Binance Pay and note your Merchant ID (a numeric ID, e.g.
37436613— length varies by account, that's normal)
PayGate Pro can accept USDT on three networks in addition to Binance Pay. You only need to set up the ones you want to offer — enable/disable each in Gateway Setup.
- Binance → Wallet → Spot → Deposit → search USDT → network TRC20 (Tron)
- Address starts with
T, 34 characters. Any TRC20 wallet works (Trust Wallet, TronLink, etc.) — verified via tronscan.org
- Same Binance deposit flow — search USDT → network BEP20 (BSC)
- Address starts with
0x. Any BSC-compatible wallet works (Trust Wallet, MetaMask on BSC, etc.) — same address format as ERC20, but a different network, so don't mix them up
- Same Binance deposit flow — search USDT → network ERC20 (Ethereum)
- Address also starts with
0x. Any Ethereum wallet works (MetaMask, etc.) — customers pay gas in ETH to send, but that's on them, not you
- Go to Gateway Setup in the sidebar
- Enter your Binance Merchant ID from Binance Pay profile
- Enter your Binance API Key and API Secret from Step 1
- Enter whichever of the TRC20 / BEP20 / ERC20 wallet addresses from Step 2 you want to accept — toggle each method on or off with its switch
- Click Save Credentials — all values are encrypted at rest
- In Gateway Setup, click Download Gateway Files
- Extract the ZIP — you will see a
modules/folder inside - Upload the files to your DHRU installation via cPanel File Manager or FTP:
Upload destinations
gatewaypro.php→public_html/modules/gateways/These 3 go insidecallback/gatewaypro/(upload the whole folder):callback/gatewaypro/gatewaypro.phpcallback/gatewaypro/gatewaypro_confirm.phpcallback/gatewaypro/.htaccess - ✅ No .htaccess editing required. The
callback/gatewaypro/subfolder in the ZIP has its own.htaccessthat handles this automatically. DHRU updates will never overwrite it. - Confirm these 4 files exist on your server:
modules/gateways/gatewaypro.phpmodules/gateways/callback/gatewaypro/gatewaypro.phpmodules/gateways/callback/gatewaypro/gatewaypro_confirm.phpmodules/gateways/callback/gatewaypro/.htaccess
- Create any public folder outside the blocked path, e.g.
public_html/pgpcb/ - Copy just
gatewaypro.phpandgatewaypro_confirm.phpinto it (leave the original in place — DHRU still needs it to show the gateway) - Go to Gateway Setup → Callback URL (Advanced) → enter that folder's URL (e.g.
https://yourstore.com/pgpcb) → click Test, then Save
- Log in to your DHRU Admin panel
- Go to Settings → Payment Gateways
- Find PayGate Pro and click Activate
- No API key entry needed in DHRU — it is already embedded in the PHP files
- Create a test order, select PayGate Pro, complete a small USDT payment
- Once confirmed, your gateway is live for all customers 🎉
In Normal mode the customer must pay the exact invoice amount — so an exchange/network fee that shaves a little off the transfer causes an amount mismatch. Auto-Detect flips the order: the customer pays any amount first, PayGate reads the real amount that arrived (on-chain or Binance Pay), then creates the invoice for exactly that amount and marks it paid. No more mismatches, no manual adding. Works for Binance Pay and TRC20 / BEP20 / ERC20.
- Go to Gateway Setup → Payment Mode and switch it to Auto-Detect.
- Re-download your gateway files. The ZIP now also contains
autodetect_addfunds_button.tpl— the floating button snippet (in the ZIP root). No extra PHP upload is needed — the button talks to PayGate directly using a public store token, so your existing gateway files stay exactly as they are. - Open your active theme's footer template —
templates/<your-theme>/footer.tpl— and paste the entire contents ofautodetect_addfunds_button.tpljust before the closing</body>tag, then save. - A floating "Add Funds" button now appears on your store. Customers pick a method, send USDT (or Binance Pay), paste their TxID / Order ID, and are credited the exact amount received. Only your enabled methods are shown.
"Payment gateway is temporarily unavailable" +
- Your subscription is not active — go to Subscription and activate/renew a plan
- Your prepaid balance is $0 or negative — top up via Add Balance
"Payment gateway is not set up for this store yet" +
- Your callback file (Step 4) isn't reachable — usually a 403/404 from your host
- Confirm the 4 files from Step 4 exist at those exact paths
- If your host blocks PHP in the callback folder (common on Hostinger), use the Callback URL (Advanced) fallback at the end of Step 4
"Order ID already used" +
"Transaction not found" after payment +
- Binance Pay: Order ID must match exactly what appears in your Binance Pay history
- TRC20: TxID must be the full 64-character hash from TronScan
- TRC20 transactions expire after 30 minutes — submit before the window closes
- Confirm IP 23.88.55.180 is whitelisted in your Binance API settings
Binance API returns authentication error +
- Confirm 23.88.55.180 is in your Binance API IP whitelist
- Re-check API Key and Secret — no extra spaces when copying
- API key must have Enable Reading enabled (transfers/withdrawals are not needed)
Auto-Detect: "Add Funds" button missing or not crediting +
- Button missing → the
autodetect_addfunds_button.tplsnippet isn't pasted into your active theme'sfooter.tpl(Step 6), or you're on a different theme - Detect fails → make sure you pasted the latest snippet: re-download after switching to Auto-Detect (the snippet embeds a store token) and re-paste it into your footer
- Same on-chain rules apply — correct network, sent to your wallet, within the time window, and Order IDs/TxIDs are single-use
