RombPay Company API Documentation

The Company API is built for B2B integrations: programmatic TRON wallet creation, TRX and USDT (TRC20) transfers with energy optimization for stablecoin flows, transparent billing against your API key balance, and an audit trail of operations. Every endpoint requires a valid credential pair sent as HTTP headers.

Access and support

API key provisioning (your X-Client-Id and X-Client-Api-Key), TRX balance top-ups for billing, and integration support are handled exclusively by RombPay support — there is no public self-service signup for these credentials.

Contact us on Telegram: @finkonory. Share your company name, expected volumes, and use case (TRX, USDT, or both) — we will issue credentials and onboarding terms.

Response format

Successful calls typically return { "code": 0, "msg": "OK", "result": ... }. The result field carries the payload. Auth and validation errors often omit the code wrapper — rely on the HTTP status and response body.

Interactive OpenAPI (Swagger UI): https://api.rombpay.io/docs. This page focuses on business behaviour and copy-paste examples for implementers.

API base URL

All Company API routes live under the /v1/api prefix on the host below.

https://api.rombpay.io/v1/api/...

Authentication

Send two headers on every request. The X-Client-Api-Key value is the exact 32-character key stored for your account (alphanumeric), not a hash. No separate internal API key is required for these routes.

X-Client-Id: <10_DIGIT_CLIENT_ID>
X-Client-Api-Key: <32_CHAR_API_KEY_SAME_AS_IN_DB>
Content-Type: application/json (for POST with body)

In curl, do not break the key value across lines inside quotes — libcurl will reject the request.

Pricing and balance

Balance checks and HTTP 402 apply only when asset is "usdt".

Endpoints

Generate TRON wallet

POSThttps://api.rombpay.io/v1/api/wallet/generate

Open

Creates a fresh TRON keypair and returns address, public key, and private key. Increments the key's wallet generation counter and appends a wallet_generate job (success, zero price) to api_jobs.

Request

curl -X POST "https://api.rombpay.io/v1/api/wallet/generate" \
  -H "X-Client-Id: <10_DIGIT_CLIENT_ID>" \
  -H "X-Client-Api-Key: <32_CHAR_KEY_AS_IN_DATABASE>"

Success response

{
  "code": 0,
  "msg": "OK",
  "result": {
    "address": "TFPTizeJ9J1WJDaBz1f7gyjPW7lybfrFHk",
    "publicKey": "<PUBLIC_KEY>",
    "privateKey": "<PRIVATE_KEY>"
  },
  "priceTrx": "0"
}

Error example

{
  "error": "Unauthorized"
}

Execute transfer (TRX or USDT)

POSThttps://api.rombpay.io/v1/api/transactions/execute

Open

Single entry point for native TRX and USDT TRC20. For USDT the server delegates energy to the sender, then builds and broadcasts the TRC20 transfer. For TRX a standard native transfer is broadcast.

Request body (JSON)

FieldDescription
fromPrivateKeySender wallet private key (hex, 64 characters). Send over HTTPS only; handle storage and logging per your security policy.
toAddressRecipient TRON address (base58).
amountAmount: for USDT, token units (e.g. 10.08 USDT); for TRX, in TRX. Must be positive.
assettrx — native TRX transfer. usdt — TRC20 USDT (energy preparation via RombPay, then contract call).
minTariffOptional, USDT only: integer 1 or 2 — energy rental tier (higher tier, more energy headroom). Defaults to 1.

Two curl examples below: USDT (with minTariff) and TRX (minTariff omitted).

Request

# USDT
curl -X POST "https://api.rombpay.io/v1/api/transactions/execute" \
  -H "X-Client-Id: <10_DIGIT_CLIENT_ID>" \
  -H "X-Client-Api-Key: <32_CHAR_KEY_AS_IN_DATABASE>" \
  -H "Content-Type: application/json" \
  -d '{
  "fromPrivateKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "toAddress": "TRFUoibJ8J7TREaAz2y6gtxRE4llstiTMo",
  "amount": 10.08,
  "asset": "usdt",
  "minTariff": 1
}'

# TRX
curl -X POST "https://api.rombpay.io/v1/api/transactions/execute" \
  -H "X-Client-Id: <10_DIGIT_CLIENT_ID>" \
  -H "X-Client-Api-Key: <32_CHAR_KEY_AS_IN_DATABASE>" \
  -H "Content-Type: application/json" \
  -d '{
  "fromPrivateKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "toAddress": "TRFUoibJ8J7TREaAz2y6gtxRE4llstiTMo",
  "amount": 1.5,
  "asset": "trx"
}'

Success response

{
  "code": 0,
  "msg": "OK",
  "result": {
    "txHash": "<TX_ID>",
    "from": "<SENDER_BASE58>",
    "chargedTrx": "6.5",
    "balanceTrx": "93.5"
  }
}

Error example

{
  "error": "Insufficient API key balance",
  "requiredTrx": "6.5",
  "balanceTrx": "2.0"
}

API key balance and counters

GEThttps://api.rombpay.io/v1/api/balance

Open

Returns billing state for the authenticated API key.

result fieldMeaning
balanceTrxTRX remaining on the key (debited only for successful USDT executes at the agreed rate).
walletsGeneratedCountHow many successful wallet/generate calls were made with this key.
transactionsCountCount of successful billed USDT executes (increments when the key balance is charged). TRX-only executes are not counted here.
spentTrxTotalCumulative TRX debited from the key for USDT operations.
lastUsedAtLast key usage timestamp (ISO 8601), or null.

Request

curl -X GET "https://api.rombpay.io/v1/api/balance" \
  -H "X-Client-Id: <10_DIGIT_CLIENT_ID>" \
  -H "X-Client-Api-Key: <32_CHAR_KEY_AS_IN_DATABASE>"

Success response

{
  "code": 0,
  "msg": "OK",
  "result": {
    "balanceTrx": "93.5",
    "walletsGeneratedCount": "12",
    "transactionsCount": "1",
    "spentTrxTotal": "6.5",
    "lastUsedAt": "2026-04-09T18:42:11.000Z"
  }
}

Error example

{
  "error": "Unauthorized"
}

Operations log (api_jobs)

GEThttps://api.rombpay.io/v1/api/jobs

Open

Paginated list of jobs for the current API key, newest first. Each row is either a wallet generation or an execute attempt; failed rows include errorText.

Query parameters

ParameterDescription
limitOptional, default 20. Maximum 100 rows per request.
offsetOptional, default 0. Pagination offset.
jobTypeOptional: wallet_generate or transaction_prepare_transfer.
statusOptional: success or failed.
result[] fieldDescription
jobTypeOperation type (see jobType filter).
statussuccess or failed.
priceTrxAmount billed to the key (0 for wallet_generate and for successful TRX execute).
walletAddressFor wallet_generate, the new address; otherwise usually null.
txHashOn-chain transaction id when available.
errorTextError message when status is failed.
createdAtRow creation time (ISO 8601).

Request

curl -X GET "https://api.rombpay.io/v1/api/jobs?limit=20&offset=0&jobType=wallet_generate&status=success" \
  -H "X-Client-Id: <10_DIGIT_CLIENT_ID>" \
  -H "X-Client-Api-Key: <32_CHAR_KEY_AS_IN_DATABASE>"

Success response

{
  "code": 0,
  "msg": "OK",
  "result": [
    {
      "id": "<UUID>",
      "jobType": "transaction_prepare_transfer",
      "status": "success",
      "priceTrx": "6.5",
      "walletAddress": null,
      "txHash": "<TX_ID>",
      "errorText": null,
      "createdAt": "2026-04-09T18:42:11.000Z"
    },
    {
      "id": "<UUID>",
      "jobType": "wallet_generate",
      "status": "success",
      "priceTrx": "0.00000000",
      "walletAddress": "T...",
      "txHash": null,
      "errorText": null,
      "createdAt": "2026-04-09T18:42:10.000Z"
    }
  ]
}

Error example

{
  "error": "Invalid query",
  "details": { ... }
}

HTTP status codes

HTTPMessageWhen it happensWhat to do
401Unauthorized / Invalid client credentialsInvalid X-Client-Id / X-Client-Api-Key pair, typo, or revoked key.Verify headers against values issued by support; the secret is a single 32-character string.
400Invalid body / Invalid queryMalformed JSON, wrong field types, bad address, asset, or jobs query params.Cross-check field tables above; for jobs, inspect the details object in the response.
402Insufficient API key balanceUSDT only: key balance is below the required TRX before execute.Top up via support: @finkonory.
404API key not foundRare: key row missing while auth middleware accepted the request.Contact support.
409Concurrent balance changeRace while debiting balance (concurrent USDT executes).Retry safely (use idempotency on your side).

Security