Skip to main content

Overview

Transfer stablecoins from your Juice balance to external crypto addresses across multiple supported chains. This endpoint handles stablecoin payouts with automated rate conversion and chain validation.

Supported Tokens and Chains

USDT Support
  • Ethereum (ETH)
  • Tron (TRX)
  • BNB Smart Chain (BSC)
USDC Support
  • Ethereum (ETH)
  • Polygon (MATIC)
  • Avalanche C-Chain (AVAXC)
Always verify the destination chain matches the selected token to avoid lost transactions. Not all tokens are supported on all chains.

Transaction Limits

  • Minimum: 10 USDT/USDC
  • Maximum: 50,000 USDT/USDC per transaction
  • Daily Limit: 100,000 USDT/USDC

Endpoint

POST /payouts

Request Parameters

amount
integer
required
Amount in minor units (e.g., 100000 = 1000.00 USD)
  • Minimum: 1000 (10 USD)
  • Maximum: 10000000 (100,000 USD)
beneficiary
object
required
Beneficiary object
  "beneficiary": {
    "id": "",
    "type": ""
  }
beneficiary_type
string
required
Must be “crypto_address”
description
string
required
Purpose or description of the transfer
  • Maximum length: 140 characters
destination_currency
string
required
Stablecoin token type
  • Supported values: “USDT”, “USDC”
source_currency
string
required
Must be “USD”
reference
string
required
Unique identifier for the transfer
  • Must be unique across all transfers
  • Alphanumeric characters only
fee_charged_to
string
Must be one of: sender, recipient
Default: sender

Example Request

{
  "amount": 100000,
  "beneficiary": {
      "id": "juice-payout-5d906f6d-933b-4de9-927f-c7522823f5ec",
      "type": "bank_account",
    },
  "description": "Payment for services",
  "destination_currency": "USDT",
  "pin": "123456",
  "reference": "juice-payout-5d906f6d-933b-4de9-927f-c7522823f5ec",
  "source_currency": "USD",
  "fee_charged_to": "sender"
}

Success Response

{
  "data": {
    "beneficiary": {
      "chain": "TRX",
      "address": "TRDFGhjkytywooiueonuoo",
      "id": "d8c0226b-048c-4c44-9606-a93333f56283",
      "type": "crypto_address"
    },
    "beneficiary_type": "crypto_address",
    "created_at": "2024-03-01T02:29:49Z",
    "destination_amount": 100000,
    "destination_currency": "USDT",
    "id": "93cf071e-d773-11ee-bf78-c6d49632367b",
    "source_amount": 100000,
    "source_currency": "USD",
    "status": "pending",
    "updated_at": "2024-03-01T02:29:53Z"
  }
}

Error Responses

{
  "error": {
    "code": "invalid_request",
    "message": "Invalid parameters provided",
    "details": {
      "amount": ["Amount must be at least 1000"]
    }
  }
}
{
  "error": {
    "code": "invalid_pin",
    "message": "Invalid authorization PIN provided"
  }
}
{
  "error": {
    "code": "validation_error",
    "message": "The request contains invalid parameters",
    "details": {
      "destination_currency": ["Must be one of: USDT, USDC"]
    }
  }
}
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Too many requests. Please try again in 60 seconds."
  }
}

Best Practices

  1. Chain Selection
    • Use TRX for lowest fees
    • Consider ETH during low gas periods
    • Use MATIC/AVAXC for faster confirmations
  2. Error Handling
    • Implement retry logic with exponential backoff
    • Monitor network congestion
    • Handle timeouts gracefully
  3. Validation
    • Verify beneficiary addresses before transfer
    • Check sufficient balance
    • Validate against transfer limits
  4. Monitoring
    • Track transfer status via webhooks
    • Monitor blockchain confirmations
    • Log all transfer attempts

Need Help?

For additional assistance:
I