Public Endpoints (Plaintext, No Encryption or Signing)
The platform provides 4 public utility endpoints under the base URL https://api.anonypay.io/api/common/, for querying currency fee rates, validating addresses and on-chain transactions, and generating deposit-address QR codes.
Do not apply the v2 encryption flow to these endpoints
Unlike the business endpoints (/api/merchant/*), the endpoints on this page are unencrypted, unsigned, and require no token — both request parameters and responses are plaintext (the QR code endpoint returns a PNG image directly). Do not wrap them in the v2 encryption / signing / anti-replay flow, and there is no need to call getToken first.
Endpoint Overview
| Endpoint | Method & Path | Description |
|---|---|---|
| getCurrencies | POST /api/common/getCurrencies | Currency and fee-rate list |
| isAddress | POST /api/common/isAddress | Validate an address |
| checkTransfer | POST /api/common/checkTransfer | Verify an on-chain transfer |
| generateAddresssQrCode | GET /api/common/generateAddresssQrCode | Generate an address QR code (returns PNG) |
The first three endpoints respond with plaintext JSON: { "code": ..., "data": ..., "message": ... }. code == 10000 means success; 9999 means failure, with the reason in message. No signature verification or decryption is needed — just parse the response directly.
Currency and Fee-Rate List — getCurrencies
POST https://api.anonypay.io/api/common/getCurrencies
Request parameters: none.
bash
curl -X POST https://api.anonypay.io/api/common/getCurrenciesResponse: data is an array of currencies, each with the following fields:
| Field | Description |
|---|---|
name | Currency name |
symbol | Currency symbol (e.g. trx.usdt) |
deposit_fixed_fee / deposit_percent_fee | Fixed / percentage deposit fee |
withdraw_fixed_fee / withdraw_percent_fee | Fixed / percentage withdrawal fee |
deposit_min_fee / deposit_max_fee | Deposit fee floor / cap |
withdraw_min_fee / withdraw_max_fee | Withdrawal fee floor / cap |
deposit_min / withdraw_min | Minimum deposit / minimum withdrawal amount |
The authoritative list of externally supported currency symbols is the enum in the API Reference Overview (13 currencies). Before creating a withdrawal order, we recommend fetching each currency's withdraw_min and fee rates from this endpoint and validating on the merchant side first, to reduce withdrawMinAmount / invalidAmount errors.
TRON-USDC deposits are closed
The platform does not support USDC deposits on the TRON chain (trx.usdc): USDC sent to a platform-generated TRON (trx) deposit address will not be credited and will not trigger a callback, and the funds cannot automatically reach the merchant balance. The external currency enum (13 currencies) does not include trx.usdc — do not direct users to deposit USDC on TRON. USDC on ETH / Solana / BNB is unaffected.
Validate an Address — isAddress
POST https://api.anonypay.io/api/common/isAddress
Checks whether an address is valid on the chain corresponding to the given currency. We recommend validating user-submitted withdrawal addresses with this endpoint before calling create withdrawal order, so obviously invalid addresses are rejected on the merchant side.
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
address | string | Yes | Address to validate |
coin_type | string | Yes | Currency symbol (e.g. trx, eth.usdt) |
bash
curl -X POST https://api.anonypay.io/api/common/isAddress \
--data-urlencode "address=TXYZ...your-address..." \
--data-urlencode "coin_type=trx"Response: code == 10000 means the address is valid; 9999 means the address is invalid or the currency does not exist (a misspelled coin_type also lands in this branch — take care to distinguish it from a genuinely invalid address).
Verify a Transfer — checkTransfer
POST https://api.anonypay.io/api/common/checkTransfer
Verifies whether an on-chain transfer is valid, by transaction hash.
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
txid | string | Yes | On-chain transaction hash |
coin_type | string | Yes | Currency symbol |
bash
curl -X POST https://api.anonypay.io/api/common/checkTransfer \
--data-urlencode "txid=d5b2...on-chain-tx-hash...c91a" \
--data-urlencode "coin_type=trx.usdt"Response: code == 10000 means the transaction is valid; 9999 means it is invalid (the reason is in message).
Implementation details: rate limits
- Each
txidhas a 5-second query cooldown; repeated queries within the cooldown window will not return fresh results. - The endpoint is rate-limited to 20 requests per minute overall; requests beyond that are rejected outright.
Do not use this endpoint for high-frequency polling to confirm deposits — the platform's deposit callback is the source of truth for deposit crediting. This endpoint is only meant for manual checks or low-frequency verification.
Generate an Address QR Code — generateAddresssQrCode
GET https://api.anonypay.io/api/common/generateAddresssQrCode
Generates a deposit QR code image for an address. This is the only GET endpoint in this group, and the response is not JSON — it returns a PNG image directly (Content-Type: image/png), so you can reference it in a page with a plain <img src>.
Endpoint name spelling
In the path generateAddresssQrCode, Addresss has three consecutive s characters (a historical spelling). Copy it verbatim — do not "correct" it to two s, or you will get a 404.
Request parameters (query string)
| Field | Type | Required | Description |
|---|---|---|---|
address | string | Yes | The address; only A-Za-z0-9, -, _, ., + characters are allowed |
address_type | string | Yes | One of trx solana eth_bnb ton eth bnb; btc is reserved until Bitcoin opens |
bash
curl -G "https://api.anonypay.io/api/common/generateAddresssQrCode" \
--data-urlencode "address=TXYZ...your-address..." \
--data-urlencode "address_type=trx" \
-o qrcode.pnghtml
<img
src="https://api.anonypay.io/api/common/generateAddresssQrCode?address=TXYZ...your-address...&address_type=trx"
alt="Deposit address QR code"
/>Response: PNG image binary (Content-Type: image/png), not JSON; if the parameters are invalid, no image is generated.
Implementation details: parameter validation
addressis validated server-side against the regex^[A-Za-z0-9\-\_\.\+]+$as a whole string; anything containing spaces or other characters is rejected outright.- Beyond the live business
addressTypevalues (trx/solana/eth_bnb/ton),address_typehere additionally acceptsethandbnb.btcremains a reserved value until Bitcoin deposits are opened.
Related Pages
- API Reference Overview — endpoint list, currency / address-type enums, unified response envelope
- Create a deposit address / Create a withdrawal order
- Callbacks — asynchronous notifications for deposit crediting and withdrawal status
- Error codes — the list of
messagevalues whencode=9999 - Troubleshooting