Skip to content

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

EndpointMethod & PathDescription
getCurrenciesPOST /api/common/getCurrenciesCurrency and fee-rate list
isAddressPOST /api/common/isAddressValidate an address
checkTransferPOST /api/common/checkTransferVerify an on-chain transfer
generateAddresssQrCodeGET /api/common/generateAddresssQrCodeGenerate 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/getCurrencies

Response: data is an array of currencies, each with the following fields:

FieldDescription
nameCurrency name
symbolCurrency symbol (e.g. trx.usdt)
deposit_fixed_fee / deposit_percent_feeFixed / percentage deposit fee
withdraw_fixed_fee / withdraw_percent_feeFixed / percentage withdrawal fee
deposit_min_fee / deposit_max_feeDeposit fee floor / cap
withdraw_min_fee / withdraw_max_feeWithdrawal fee floor / cap
deposit_min / withdraw_minMinimum 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

FieldTypeRequiredDescription
addressstringYesAddress to validate
coin_typestringYesCurrency 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

FieldTypeRequiredDescription
txidstringYesOn-chain transaction hash
coin_typestringYesCurrency 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 txid has 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)

FieldTypeRequiredDescription
addressstringYesThe address; only A-Za-z0-9, -, _, ., + characters are allowed
address_typestringYesOne 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.png
html
<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

  • address is 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 addressType values (trx/solana/eth_bnb/ton), address_type here additionally accepts eth and bnb. btc remains a reserved value until Bitcoin deposits are opened.