> ## Documentation Index
> Fetch the complete documentation index at: https://docs.juicyway.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Initiate a Stablecoin Transfer

> Send stablecoin transfers to crypto addresses with support for multiple chains

## 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

<Card>
  **USDT Support**

  * Ethereum (ETH)
  * Tron (TRX)
  * BNB Smart Chain (BSC)

  **USDC Support**

  * Ethereum (ETH)
  * Polygon (MATIC)
  * Avalanche C-Chain (AVAXC)
</Card>

<Warning>
  Always verify the destination chain matches the selected token to avoid lost transactions. Not all tokens are supported on all chains.
</Warning>

## Transaction Limits

<AccordionGroup>
  <Accordion title="General Limits">
    * Minimum: 10 USDT/USDC
    * Maximum: 50,000 USDT/USDC per transaction
    * Daily Limit: 100,000 USDT/USDC
  </Accordion>
</AccordionGroup>

## Endpoint

```bash theme={null}
POST /payouts
```

### Request Parameters

<ParamField body="amount" type="integer" required>
  Amount in minor units (e.g., 100000 = 1000.00 USD)

  * Minimum: 1000 (10 USD)
  * Maximum: 10000000 (100,000 USD)
</ParamField>

<ParamField body="beneficiary" type="object" required>
  Beneficiary object

  ```json theme={null}
    "beneficiary": {
      "id": "",
      "type": ""
    }
  ```
</ParamField>

<ParamField body="beneficiary_type" type="string" required>
  Must be "crypto\_address"
</ParamField>

<ParamField body="description" type="string" required>
  Purpose or description of the transfer

  * Maximum length: 140 characters
</ParamField>

<ParamField body="destination_currency" type="string" required>
  Stablecoin token type

  * Supported values: "USDT", "USDC"
</ParamField>

<ParamField body="source_currency" type="string" required>
  Must be "USD"
</ParamField>

<ParamField body="reference" type="string" required>
  Unique identifier for the transfer

  * Must be unique across all transfers

  * Alphanumeric characters only
</ParamField>

<ParamField body="fee_charged_to" type="string">
  Must be one of: sender, recipient\
  Default: sender
</ParamField>

### Example Request

```json theme={null}
{
  "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

```json theme={null}
{
  "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

<AccordionGroup>
  <Accordion title="400 - Invalid Request">
    ```json theme={null}
    {
      "error": {
        "code": "invalid_request",
        "message": "Invalid parameters provided",
        "details": {
          "amount": ["Amount must be at least 1000"]
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="401 - Unauthorized">
    ```json theme={null}
    {
      "error": {
        "code": "invalid_pin",
        "message": "Invalid authorization PIN provided"
      }
    }
    ```
  </Accordion>

  <Accordion title="422 - Validation Error">
    ```json theme={null}
    {
      "error": {
        "code": "validation_error",
        "message": "The request contains invalid parameters",
        "details": {
          "destination_currency": ["Must be one of: USDT, USDC"]
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="429 - Rate Limited">
    ```json theme={null}
    {
      "error": {
        "code": "rate_limit_exceeded",
        "message": "Too many requests. Please try again in 60 seconds."
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## 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

<Card title="Need Help?">
  For additional assistance:

  * Review our [Error Handling Guide](/errors)
  * Contact [support@juicyway.com](mailto:support@juicyway.com)
</Card>
