API Guide

English Only HTTPS Only
Base URL
https://api.trxmon.com/

The TRONMON API is designed based on REST principles, securely providing real-time on-chain transaction detection and automated payment matching data in an HTTPS environment.

Authentication

All API requests must include your issued API Key in the Header.

Authorization: Bearer [your_api_key_here]

Webhook Security & Signature Verification

HMAC-SHA256

TRONMON sends an HTTP POST request to your registered Webhook URL upon real-time transaction detection and deposit matching completion.
To prevent tampered requests, all webhook headers contain X-Signature. You must perform HMAC-SHA256 verification using your issued API Key as the Secret Key.

HTTP Header
HTTP_X_SIGNATURE
The HMAC signature value delivered in the webhook request header.
Verification Algorithm
hash_hmac('sha256', $rawInput, $apiKey)
Verified by combining the RAW Payload string with your API Key.
Webhook Reception & Signature Verification Code Example
webhook_receiver.phpPHP 7.4+ / 8.x
<?php
// RAW Body parsing required (for HMAC verification)
$receivedSignature = $_SERVER['HTTP_X_SIGNATURE'] ?? '';
$apiKey = 'YOUR_TRONMON_API_KEY';

$rawInput = file_get_contents('php://input');

// Compute HMAC-SHA256
$computedSignature = hash_hmac('sha256', $rawInput, $apiKey);

// hash_equals(): Safe comparison against timing attacks
if (hash_equals($computedSignature, $receivedSignature)) {
    $payload = json_decode($rawInput, true);

    // Business Logic
    var_dump($payload);

    http_response_code(200);
    echo json_encode(['status' => 'success']);
} else {
    http_response_code(401);
    echo json_encode(['status' => 'error', 'message' => 'Invalid Signature']);
}
webhook_receiver.jsNode.js 16+
const express = require('express');
const crypto = require('crypto');
const app = express();

// RAW Body parsing required (for HMAC verification)
app.use(express.raw({ type: 'application/json' }));

const API_KEY = 'YOUR_TRONMON_API_KEY';

app.post('/webhook', (req, res) => {
    const receivedSignature = req.headers['x-signature'] || '';
    const rawInput = req.body.toString('utf-8');

    // Compute HMAC-SHA256
    const computedSignature = crypto
        .createHmac('sha256', API_KEY)
        .update(rawInput)
        .digest('hex');

    // Safe comparison against timing attacks
    const isSignatureValid = crypto.timingSafeEqual(
        Buffer.from(computedSignature),
        Buffer.from(receivedSignature)
    );

    if (isSignatureValid) {
        const payload = JSON.parse(rawInput);
        
        // Business Logic
        console.log('[TRONMON] Webhook Received:', payload);

        return res.status(200).json({ status: 'success' });
    } else {
        return res.status(401).json({ status: 'error', message: 'Invalid Signature' });
    }
});

app.listen(3000, () => console.log('Server running on port 3000'));
webhook_receiver.pyPython 3.8+
import hmac
import hashlib
import json
from fastapi import FastAPI, Request, HTTPException, Header
from fastapi.responses import JSONResponse

app = FastAPI()
API_KEY = "YOUR_TRONMON_API_KEY"

@app.post("/webhook")
async def webhook_receiver(request: Request, x_signature: str = Header(None)):
    raw_body = await request.body()
    
    # Compute HMAC-SHA256
    computed_signature = hmac.new(
        API_KEY.encode('utf-8'),
        raw_body,
        hashlib.sha256
    ).hexdigest()

    # Safe comparison against timing attacks
    if x_signature and hmac.compare_digest(computed_signature, x_signature):
        payload = json.loads(raw_body.decode('utf-8'))
        
        # Business Logic
        print("[TRONMON] Webhook Received:", payload)

        return JSONResponse(status_code=200, content={"status": "success"})
    else:
        raise HTTPException(status_code=401, detail="Invalid Signature")
main.goGo 1.18+
package main

import (
	"crypto/hmac"
	"crypto/sha256"
	"encoding/hex"
	"io"
	"net/http"
)

const apiKey = "YOUR_TRONMON_API_KEY"

func webhookHandler(w http.ResponseWriter, r *http.Request) {
	receivedSignature := r.Header.Get("X-Signature")
	rawBody, err := io.ReadAll(r.Body)
	if err != nil {
		http.Error(w, "Bad Request", http.StatusBadRequest)
		return
	}

	// Compute HMAC-SHA256
	mac := hmac.New(sha256.New, []byte(apiKey))
	mac.Write(rawBody)
	computedSignature := hex.EncodeToString(mac.Sum(nil))

	// Safe comparison against timing attacks
	if hmac.Equal([]byte(computedSignature), []byte(receivedSignature)) {
		w.Header().Set("Content-Type", "application/json")
		w.WriteHeader(http.StatusOK)
		w.Write([]byte(`{"status":"success"}`))
	} else {
		w.Header().Set("Content-Type", "application/json")
		w.WriteHeader(http.StatusUnauthorized)
		w.Write([]byte(`{"status":"error","message":"Invalid Signature"}`))
	}
}

func main() {
	http.HandleFunc("/webhook", webhookHandler)
	http.ListenAndServe(":8080", nil)
}

Webhook Response Sandbox

Default Endpoint

You can use the sandbox endpoint if you do not have a dedicated server or local test environment set up.

For testing without a server (Sandbox URL)
If no specific webhook destination URL is registered, successful matches will automatically dispatch test requests to this sandbox URL.
https://www.tronmon.com/webhook/sandbox
Receiving Server Response Specs (HTTP Status Codes)
Status CodeProcessing StateBehavior & Description
200 OKSuccessWebhook data successfully received (no retries).
400 Bad RequestErrorX-Signature verification failed or required payload missing.
405 MethodErrorCannot process HTTP methods other than POST.
500 / TimeoutFailInternal server error or request timeout exceeded 5 seconds (retry policy applies).

Rate Limits & Credits

By default, all TRONMON REST APIs are not provided under the free (GUEST) plan environment.
To use real-time monitoring and endpoint calls via API, your account must maintain a credit balance above the required threshold.

GUEST Plan Restriction Policy

REST API calls from accounts in GUEST status or with less than 20 CREDITS will be rejected with the following error response.

Error Response for Restricted Access (403 Forbidden)
Response (Restricted Plan)PLAN_RESTRICTED
{
  "success": false,
  "error_code": "PLAN_RESTRICTED",
  "msg": "This feature is not supported for GUEST plans with under 20 credits. Please top up your balance to use this endpoint."
}
IP Whitelisting
Error: INVALID_API_KEY

For security purposes, only API requests originating from server IPs (IPv4) registered under Trxmon Admin > Member Info are allowed.
Calling the API from an unregistered IP will return an INVALID_API_KEY error.

Common Specifications

Global Specs

Global standards for network designations, token symbols, fiat currencies, and timezones used across the Trxmon API.

Network (network)
Error: UNSUPPORTED_NETWORK

Among planned networks, currently only the TRON network is supported.

TRON (Available)ETHBNBXRPBTCLTCMATICSOL
Token Symbol (token_symbol)
Error: INVALID_SYMBOL

Currently supports TRX, TRXUSDT standards. Unsupported symbols return an error.

TRXTRXUSDTETHETHUSDTETHUSDCBNBBNBUSDT
Fiat Currency (currency)
Error: INVALID_CURRENCY

Supported ISO fiat currency codes for price conversions during payment and settlement processing.

KRWUSDJPYCNYEURTWDHKDSGDTHBIDRINRPHPMYRRUBBRLMXNZARVNDGBPAEDSAR
Timezone & Locale Policy

Timestamps and currency representations in API responses are automatically converted based on the account language and timezone settings configured in the Trxmon Admin portal.

POST /v1/wallet/subscription/add

Add Subscription

Registers a target wallet address in Trxmon for real-time monitoring and deposit matching. Processed using account credits or Free Tier allowances.

Request Body
ParameterTypeRequiredDescription
addressstringRequiredBlockchain wallet address to register
networkstringRequiredNetwork identifier (Currently supports TRON)
holder_namestringOptionalWallet owner name or identification alias
is_poolintegerOptionalPool wallet flag (0: Regular wallet, 1: Pool wallet, Default: 0)
Response Body Specification
Field NameTypeDescription
successbooleanRequest success status (true / false)
free_tier_usebooleanWhether Free Tier allowance was applied
idintegerUnique Primary Key of the created subscription wallet (insertId)
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/wallet/subscription/add \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "TTestAddress1234567890Owner",
    "network": "TRON",
    "holder_name": "name",
    "is_pool": 0
  }'
Response (200 OK)
{
  "success": true,
  "free_tier_use": false,
  "id": 1284
}
POST /v1/wallet/subscription

List Subscriptions

Retrieves a paginated list of monitored wallets with network, status (active/deleted), and keyword search filters.

Request Body
ParameterTypeRequiredDescription
networkstringRequiredNetwork identifier (TRX, TRXUSDT, etc. / Use ALL for all networks)
statusstringOptionalWallet status filter (active: Default, deleted, all)
searchstringOptionalSearch query for wallet address or holder name
pageintegerOptionalPage number (Default: 1)
limitintegerOptionalItems per page (Default: 20, Max: 100)
Response Body Specification
Field NameTypeDescription
successbooleanRequest success status (true / false)
listarrayList of subscription wallet objects
totalintegerTotal count matching search criteria
total_pagesintegerTotal page count
pageintegerCurrent page number
page_listarrayPagination list (page_num, is_active)
limitintegerRequested limit per page
has_previntegerPrevious page indicator (1 / 0)
prev_pageintegerPrevious page number
has_nextintegerNext page indicator (1 / 0)
next_pageintegerNext page number
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/wallet/subscription \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "network": "TRON",
    "status": "active",
    "search": "",
    "page": 1,
    "limit": 20
  }'
Response (200 OK)
{
  "success": true,
  "list": [
    {
      "id": "1",
      "address": "TX...",
      "holder_name": "",
      "is_active": 1,
      "is_pool": 0,
      "status": 1,
      "network": "TRON",
      "verified": 1,
      "verified_at": "2026-08-09 19:06:20",
      "verified_method": "wallet_sign",
      "trx_usdt_balance": "0",
      "trx_balance": "0",
      "eth_usdt_balance": "0",
      "eth_balance": "0",
      "bnb_balance": "0",
      "btc_balance": "0",
      "balance_updated_at": "2026-05-06 15:49",
      "updated_at": "2026-08-09 19:06:20"
    }
  ],
  "total": 1,
  "total_pages": 1,
  "page": 1,
  "page_list": [{"page_num": 1,"is_active": true}],
  "limit": 20,
  "has_prev": 0,
  "prev_page": 0,
  "has_next": 0,
  "next_page": 2
}
POST /v1/wallet/subscription/delete

Stop Subscription

Unregisters a currently monitored wallet address from real-time detection. Pass the network code and wallet address to stop monitoring target subscriptions.

Request Body
ParameterTypeRequiredDescription
addressstringRequiredTarget blockchain wallet address to unregister
networkstringRequiredNetwork identifier code (case-insensitive, e.g., TRON)
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/wallet/subscription/delete \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "TTestAddress1234567890Owner",
    "network": "TRON"
  }'
Response (200 OK)
{
  "success": true
}
POST /v1/wallet/subscription/restore

Restore Subscription

Reactivates an unregistered wallet subscription to resume real-time monitoring.

Request Body
ParameterTypeRequiredDescription
addressstringRequiredTarget blockchain wallet address to restore
networkstringRequiredNetwork identifier code (case-insensitive, e.g., TRON)
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/wallet/subscription/restore \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "TTestAddress1234567890Owner",
    "network": "TRON"
  }'
Response (200 OK)
{
  "success": true
}
POST /v1/wallet/subscription/pool

Switch Pool Mode

Swaps the usage type of a subscribed wallet to or from a matching pool wallet.

Request Body
ParameterTypeRequiredDescription
addressstringRequiredTarget blockchain wallet address
networkstringRequiredNetwork identifier code (case-insensitive, e.g., TRON)
is_poolintegerRequiredWallet mode flag (1: Detection + Matching Pool, 0: Detection Only)
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/wallet/subscription/pool \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "TTestAddress1234567890Owner",
    "network": "TRON",
    "is_pool": 1
  }'
Response (200 OK)
{
  "success": true
}
POST /v1/holder/add

Pre-register Holder

If webhooks are configured for your notification channels, pre-registering counterparty wallet addresses generates matching and identification metadata.
Custom payload parameters will apply globally across all monitored wallets.
* Note: Specific deposit matching records take priority over pre-registered holder settings.

POST /v1/holder/add

Pre-register Holder Wallet

If webhooks are configured for notification channels, you can pre-register counterparty wallet addresses to generate deposit matching and identification data.
You can specify custom data to be included in webhook payloads, which will apply across all subscribed wallets.
* Note: If individual deposit matching data exists, that specific matching info takes precedence.

Request Body
ParameterTypeRequiredDescription
networkstringRequiredNetwork identifier code (case-insensitive, e.g., TRON)
addressstringRequiredBase sender wallet address (Sender)
holder_namestringOptionalWallet owner identification name
holder_idnumberOptionalUnique numeric ID of the wallet owner
callback_jsonstringOptionalCustom JSON string passed along during webhook events
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
idnumberUnique ID of the generated holder wallet
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/holder/add \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "network": "TRON",
    "address": "TTestAddress1234567890Owner",
    "holder_name": "holder-1",
    "holder_id": 1001,
    "callback_json": "{\"user_ref\":\"REF1234\"}"
  }'
Response (200 OK)
{
  "success": true,
  "id": 158
}
POST /v1/holder/bulk-action

Bulk Delete Holders

Deletes multiple holder wallets in bulk based on the provided list of holder wallet IDs.

Request Body
ParameterTypeRequiredDescription
idsarrayRequiredArray of unique holder wallet IDs to delete (e.g., [158, 159])
modestringRequiredAction type to perform ("delete")
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
processed_countnumberNumber of items successfully deleted
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/holder/bulk-action \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [158, 159],
    "mode": "delete"
  }'
Response (200 OK)
{
  "success": true,
  "processed_count": 2
}
POST /v1/holder

Get Holder List

Retrieves a list of registered holder wallets matching the pagination and search conditions.

Request Body
ParameterTypeRequiredDescription
networkstringRequiredNetwork identifier code (case-insensitive, e.g., TRON)
pageintegerOptionalPage number to retrieve (default: 1)
limitintegerOptionalNumber of items per page (default: 20, max: 100)
searchstringOptionalSearch term for wallet address, counterparty address, or holder name
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
listarrayList of subscribed wallet objects (see below for detailed structure)
totalintegerTotal number of wallets matching the search criteria
total_pagesintegerTotal number of pages
pageintegerCurrent page number
page_listarrayPage navigation list (page_num, is_active)
limitintegerRequested items per page
has_previntegerIndicates if a previous page exists (1 / 0)
prev_pageintegerPrevious page number
has_nextintegerIndicates if a next page exists (1 / 0)
next_pageintegerNext page number
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/holder \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "network": "TRON",
    "page": 1,
    "limit": 20,
    "search": "name"
  }'
Response (200 OK)
{
  "success": true,
  "list": [
    {
      "id": 1,
      "holder_id": 1,
      "holder_name": "holder1",
      "callback_json": {
        "key": "value"
      },
      "address": "T...",
      "to_address": "T...",
      "network": "TRON",
      "created_at": "2026-01-01 00:00",
      "updated_at": "2026-01-01 00:00"
    }
  ],
  "total": 1,
  "total_pages": 1,
  "page": 1,
  "page_list": [{"page_num": 1,"is_active": true}],
  "limit": 20,
  "has_prev": 0,
  "prev_page": 0,
  "has_next": 0,
  "next_page": 2
}
POST /v1/api-pay/add

Register Deposit Detection Match

Creates a new deposit detection matching payment transaction and generates a dedicated matching UUID. Calculates the required crypto amount based on the selected fiat currency, fixing the rate for 15 minutes to await matching.

Request Body
ParameterTypeRequiredDescription
product_namestringRequiredProduct/Service name
base_typestringRequiredBase amount calculation method ("fiat" or "coin")
addressstringRequiredRegistered subscription+matching wallet address (or "RANDOM" for automatic allocation)
fiat_currencystringRequiredFiat currency code (e.g., "KRW", "USD")
networkstringRequiredNetwork identifier code (e.g., "TRON")
token_symbolstringRequiredToken symbol (e.g., "TRXUSDT", "TRX")
fiat_valuenumberConditionalRequired when base_type === "fiat"
coin_valuenumberConditionalRequired when base_type === "coin"
product_img_urlstringOptionalProduct image URL
product_descstringOptionalDetailed product description
callback_jsonstringOptionalCustom JSON string passed with webhook notifications
ref_idstringOptionalUnique client reference ID (must be unique if provided; returned upon successful match)
use_energy_supportbooleanOptionalWhether to enable energy delegation support (TRON network only)
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
uuidstringUnique UUID for the created deposit detection match transaction
💡 Note: https://www.tronmon.com/match/GENERATED_UUID
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/api-pay/add \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "product_name": "TEST",
    "base_type": "fiat",
    "address": "RANDOM",
    "fiat_currency": "KRW",
    "fiat_value": 50000,
    "network": "TRON",
    "token_symbol": "TRXUSDT",
    "ref_id": "ORDER_20260817_001"
  }'
Response (200 OK)
{
  "success": true,
  "uuid": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d"
}
POST /v1/api-pay/force_expire

Force Expire Match

Forcibly changes the status of an ongoing deposit detection matching transaction to Expired.

Request Body
ParameterTypeRequiredDescription
uuidstringRequiredUnique UUID of the matching transaction to be forcibly expired
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/api-pay/force_expire \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d"
  }'
Response (200 OK)
{
  "success": true
}
POST /v1/api-pay

Get Active Matches List

Retrieves a list of currently active deposit detection matching pages in progress.

Request Body
ParameterTypeRequiredDescription
uuidstringOptionalUUID of a specific matching transaction to look up
networkstringOptionalNetwork search filter (e.g., "TRON")
ref_idstringOptionalClient reference ID search filter
Response Body Specification
Field NameTypeDescription
successbooleanRequest processing success status (true / false)
listarrayArray of retrieved active matching objects (sanitized for security)
Request Example (cURL)
curl -X POST https://api.trxmon.com/v1/api-pay \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "network": "TRON"
  }'
Response (200 OK)
{
  "success": true,
  "list": [
    {
      "id": "1",
      "uuid": "13...",
      "ref_id": "ORDER_20260817_001",
      "fiat_rate": "0.0000",
      "host_rate": "466.5600",
      "fiat_value": "50000",
      "host_value": "50000",
      "fiat_currency": "KRW",
      "host_currency": "KRW",
      "match_amount": "107.167353",
      "match_base_fiat": "466.5600",
      "token_symbol": "TRX",
      "network": "TRON",
      "address": "T...",
      "credit_used": "0.000000",
      "use_energy_support": 0,
      "energy_target_address": null,
      "callback_json": null,
      "product_name": "Product Name Test",
      "product_desc": "",
      "product_img_url": null,
      "status": "pending",
      "memo": "",
      "expire_at": "2026-08-18 10:22",
      "created_at": "2026-08-18 10:05",
      "verified": 1,
      "holder_name": "",
      "company_name": "",
      "expire_at_timestamp": "1787016173"
    }
  ]
}
GET /v1/account

Account & Credit Balance

Retrieves basic account settings, current credit balance, plan details, and usage limits.

Request Headers
HeaderTypeRequiredDescription
AuthorizationstringRequiredAPI Authentication Token (Bearer )
Response Body Specification
FieldTypeDescription
successbooleanIndicates request success (true / false)
data.emailstringRegistered account email
data.timezonestringAccount timezone setting (e.g., "Asia/Seoul")
data.languagestringDefault language setting (e.g., "ko", "en")
data.currencystringBase currency setting (e.g., "KRW", "USD")
data.company_namestringVerified KYC entity/company name
data.webhook_urlstringRegistered webhook destination URL
data.creditnumberCurrent available credit balance
data.plannumber / stringSubscribed plan tier (e.g., "bronze")
data.countnumberTotal request count in current billing cycle
data.limitnumberMaximum allowed limit for current plan
Request Example (cURL)
curl -X GET https://api.trxmon.com/v1/account \
  -H "Authorization: Bearer your_api_key_here"
Response (200 OK)
{
  "success": true,
  "data": {
    "email": "user@example.com",
    "timezone": "Asia/Seoul",
    "language": "ko",
    "currency": "KRW",
    "company_name": "TRONMON",
    "webhook_url": "https://api.yourcompany.com/webhook",
    "credit": 83.3432,
    "plan": "bronze",
    "count": 12,
    "limit": 100
  }
}
ERROR API Error Codes Reference

Full Error Code Specification

When an error occurs during an API request, the returned error constant is passed via the error_code field.

1. Authentication & Security
Error CodeDescription & Message
INVALID_API_KEYInvalid API Key or access attempted from an unregistered IP address.
INVALID_API_ACCESS_IPUnregistered IP address.
UNAUTHORIZED_ROLEUnauthorized action. (Super Admin privileges required)
ACCOUNT_SUSPENDEDMerchant account is deactivated or suspended.
2. System & Maintenance
Error CodeDescription & Message
MAINTENANCE_MODESystem is currently undergoing scheduled maintenance.
MAINTENANCE_LOCKEDScheduled maintenance will start soon. Access is temporarily restricted for safe data processing.
EMERGENCY_MAINTENANCESystem is currently undergoing emergency maintenance for stabilization.
NODE_BUSYConnection delayed due to high node traffic. Please try again shortly.
SERVER_ERROR / DB_ERRORSystem error occurred during server or database processing.
TIMEOUTRequest processing time exceeded.
API_DISABLED / INVALID_MODEThis API endpoint is no longer supported.
3. Credit & Plan
Error CodeDescription & Message
ZERO_CREDITInsufficient balance. Please recharge and try again.
RATE_LIMIT_EXCEEDEDToo many requests. Please try again in a moment.
PLAN_RESTRICTED / REQUIRED_PLAN_LEVELFeature not supported by your current plan or requires a higher tier plan.
4. Wallet & Parameter
Error CodeDescription & Message
INVALID_ADDRInvalid wallet address format.
REQUIRED_ADDRWallet address is missing. (Required field)
DUPLICATE_ADDR / USED_ADDRAddress is already registered under your account.
ALREADY_MONITOREDAddress is already monitored by another user. (Recharge required)
SAME_ADDRSender and recipient addresses cannot be identical.
UNSUPPORTED_NETWORKUnsupported blockchain network.
INVALID_SYMBOL / TOKEN_SYMBOL_REQUIRED Invalid or missing asset (token symbol) type.
INVALID_JSONJSON parsing failed or request payload specification is invalid.
INVALID_PARAMETERInvalid parameter in request data.
ONLY_NUMBERS / ONLY_STRINGInvalid data type format. (Numbers only / String only)
MINIMUM_WALLET_REQUIREDAt least one target wallet must be maintained for monitoring.
5. Pay & Webhook
Error CodeDescription & Message
REQUIRED_WEBHOOK_URLWebhook URL is not registered in user profile.
DUPLICATE_REF_IDReference ID (REF_ID) already in use. Please retry after previous session expires.
REF_ID_TOO_LONGReference ID (REF_ID) exceeds maximum length limit.
REQUIRED_UUID / NOT_FOUNDMatching transaction ID (UUID) is missing, or matching data was not found.
INVALID_BASE_TYPEInvalid calculation base type. (Only fiat or coin supported)
REQUIRED_FIAT_VALUE / INVALID_FIAT_VALUE Fiat request amount missing or non-numeric value provided.
REQUIRED_COIN_VALUE / INVALID_COIN_VALUE Coin matching amount missing or non-numeric value provided.
INVALID_CURRENCYUnsupported currency type.
NOT_FOUND_PRICETABLEFailed to retrieve market price for the specified coin.
CANNOT_RESENDAlready resending or no target available for resend.
CANNOT_MANUALMATCHManual matching integration failed due to data mismatch.
Error Response Format
{
  "success": false,
  "msg": "messages..",
  "error_code": "Error Code"
}