Initiate Crypto Payout

Send cryptocurrency from your wallet to an external blockchain address.

POST /v1/payouts/crypto

Headers

Header Required Description
X-Api-Key Yes Your API key
X-Idempotency-Key Yes Unique key to prevent duplicate payouts
Content-Type Yes application/json

Request Body

Field Type Required Description
amount number Yes Amount to send. Must meet the per-currency minimum (see below).
currency string Yes Cryptocurrency: BTC, USDT, or USDC
protocol string Yes Blockchain protocol (see supported protocols)
address string Yes Destination wallet address
beneficiaryName string No Name of the beneficiary

Minimum Amounts

Currency Minimum
USDT 12
USDC 12
BTC 0.00033

Requests below the minimum for the selected currency are rejected with 400 Bad Request and a message of the form Minimum payout amount for <CURRENCY> is <amount>.

Supported Protocols

Protocol Networks
BTC Bitcoin
ERC20 Ethereum
TRC20 Tron
BEP20 BNB Smart Chain
POLYGON Polygon
SOLANA Solana

Example Request

curl -X POST "https://api.esca.finance/v1/payouts/crypto" \
  -H "X-Api-Key: your_api_key_here" \
  -H "X-Idempotency-Key: payout-550e8400-e29b-41d4-a716-446655440000" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100,
    "currency": "USDT",
    "protocol": "TRC20",
    "address": "TXqH4w2ZQ2C3Y5t4dKxzfPzF8w2141vJgb",
    "beneficiaryName": "John Doe"
  }'

Example Response

{
  "status": true,
  "message": "Payout initiated successfully",
  "data": {
    "payoutId": "f7a8b9c0-d1e2-3456-abcd-ef7890123456",
    "type": "crypto",
    "currency": "USDT",
    "amount": 100,
    "fee": 0.25,
    "status": "PROCESSING",
    "protocol": "TRC20",
    "address": "TXqH4w2ZQ2C3Y5t4dKxzfPzF8w2141vJgb",
    "transactionHash": null
  }
}

Address Validation

The API automatically validates the destination wallet address for the specified currency and protocol before initiating the payout. If the address is invalid, you will receive a 400 Bad Request:

{
  "status": false,
  "message": "Invalid wallet address for the specified currency and protocol."
}

Error Responses

Status Description
400 Invalid request or wallet address
401 Invalid or expired API key
409 Duplicate request (idempotency conflict)
429 Rate limit exceeded
500 Payout failed