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

# Payouts (Outbound)

> Understanding Payouts: How funds flow out from your Bluerails Accounts.

export const FiatPayoutFlowDiagram = () => {
  const AccountBoxIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-indigo-600 dark:text-indigo-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M8 4h10a2 2 0 0 1 2 2v10m-.584 3.412a1.994 1.994 0 0 1 -1.416 .588h-12a2 2 0 0 1 -2 -2v-12c0 -.552 .224 -1.052 .586 -1.414" /> <path d="M8 12h4" /> <path d="M8 16h4" /> <path d="M16 12v4" /> <path d="M3 3l18 18" />
    </svg>;
  const ConvertIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-amber-600 dark:text-amber-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" />
      <path d="M7 10h14l-4 -4" />
      <path d="M17 14h-14l4 4" />
    </svg>;
  const DeliveryIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-lime-600 dark:text-lime-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M15 11l4 4l-4 4m4 -4h-11a4 4 0 0 1 0 -8h1" />
    </svg>;
  const BankIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-cyan-600 dark:text-cyan-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M3 21l18 0" /> <path d="M3 10l18 0" /> <path d="M5 6l7 -3l7 3" /> <path d="M4 10l0 11" /> <path d="M20 10l0 11" /> <path d="M8 14l0 3" /> <path d="M12 14l0 3" /> <path d="M16 14l0 3" />
    </svg>;
  const ArrowDownIcon = () => <svg width="24" height="24" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 text-slate-400 dark:text-slate-500">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M12 5l0 14" /> <path d="M18 13l-6 6" /> <path d="M6 13l6 6" />
    </svg>;
  return <div className="my-8 flex flex-col items-center justify-center gap-2 p-4">

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <AccountBoxIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">
          Bluerails Account<span className="block text-xs text-gray-500 dark:text-slate-400">(USDC Balance)</span>
        </span>
      </div>

      <div className="py-1">
        <ArrowDownIcon />
      </div>

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <ConvertIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">
           Crypto-to-Fiat<span className="block text-xs text-gray-500 dark:text-slate-400">(USDC → EUR)</span>
         </span>
      </div>

      <div className="py-1">
        <ArrowDownIcon />
      </div>

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <DeliveryIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">
           Fiat Delivery<span className="block text-xs text-gray-500 dark:text-slate-400">(e.g., SEPA)</span>
         </span>
      </div>

      <div className="py-1">
        <ArrowDownIcon />
      </div>

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <BankIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">External Bank Account</span>
      </div>

    </div>;
};

export const CryptoPayoutFlowDiagram = () => {
  const AccountBoxIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-indigo-600 dark:text-indigo-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M8 4h10a2 2 0 0 1 2 2v10m-.584 3.412a1.994 1.994 0 0 1 -1.416 .588h-12a2 2 0 0 1 -2 -2v-12c0 -.552 .224 -1.052 .586 -1.414" /> <path d="M8 12h4" /> <path d="M8 16h4" /> <path d="M16 12v4" /> <path d="M3 3l18 18" />
    </svg>;
  const ProcessIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-purple-600 dark:text-purple-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /> <path d="M12 9h.01" /> <path d="M11 12h1v4h1" />
    </svg>;
  const BlockchainIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-orange-600 dark:text-orange-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M6 12l6 -6l6 6l-6 6z" /> <path d="M12 3l6 6l-6 6l-6 -6z" />
    </svg>;
  const CryptoIcon = () => <svg width="20" height="20" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 mr-2 text-emerald-600 dark:text-emerald-400">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M6 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M6 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M18 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M6 9l0 6" /> <path d="M18 9l0 6" /> <path d="M9 6l6 0" /> <path d="M9 18l6 0" />
    </svg>;
  const ArrowDownIcon = () => <svg width="24" height="24" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor" fill="none" strokeLinecap="round" strokeLinejoin="round" className="flex-shrink-0 text-slate-400 dark:text-slate-500">
      <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M12 5l0 14" /> <path d="M18 13l-6 6" /> <path d="M6 13l6 6" />
    </svg>;
  return <div className="my-8 flex flex-col items-center justify-center gap-2 p-4">

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <AccountBoxIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">
          Bluerails Account<span className="block text-xs text-gray-500 dark:text-slate-400">(ETH Balance)</span>
        </span>
      </div>

      <div className="py-1">
        <ArrowDownIcon />
      </div>

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <ProcessIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">Payout Processing</span>
      </div>

      <div className="py-1">
        <ArrowDownIcon />
      </div>

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <BlockchainIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">Blockchain Transaction</span>
      </div>

      <div className="py-1">
        <ArrowDownIcon />
      </div>

      <div className="flex items-center p-3 border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 rounded-lg shadow-sm w-full max-w-xs sm:max-w-sm">
        <CryptoIcon />
        <span className="text-sm text-gray-700 dark:text-slate-200">External Crypto Wallet</span>
      </div>

    </div>;
};

## What are Payouts?

A **Payout** in Bluerails represents an outbound transaction – funds flowing **out** from one of your Accounts to an external destination. Payouts allow you to send funds globally, either directly as cryptocurrency or converted into fiat currency delivered to a bank account.

Think of Payouts as the mechanism for initiating withdrawals or sending payments from your Bluerails Account balances to the outside world.

***

## How Payouts Work

You can initiate payouts from your Accounts in two main ways:

### 1. Direct Crypto Withdrawal

If your Bluerails Account holds a balance of a specific cryptocurrency (e.g., USDC, ETH), you can initiate a payout directly to an external crypto address on the corresponding blockchain.

* You specify the source Account, the crypto asset and amount, and the destination wallet address.
* Bluerails processes the request, constructs the blockchain transaction, and broadcasts it to the network.
* The Payout record tracks the transaction details and its status on the blockchain.

<CryptoPayoutFlowDiagram />

### 2. Fiat Payout (Crypto-to-Fiat)

You can send funds to traditional bank accounts globally, even if your Bluerails Account primarily holds stablecoins like USDC.

* You specify the source Account (typically holding USDC), the desired fiat currency and amount to be delivered (e.g., 1000 EUR), and the recipient's bank account details.
* Bluerails handles the conversion from your source crypto asset (e.g., USDC) to the target fiat currency (e.g., EUR) based on a provided quote.
* Bluerails then manages the delivery of the fiat funds through appropriate banking rails (e.g., SEPA, SWIFT, local ACH) to the recipient's bank account.
* The Payout record tracks the crypto amount debited, the conversion details, the fiat amount sent, and the delivery status.

<FiatPayoutFlowDiagram />

<Tip>
  Fiat Payouts often involve obtaining a quote first (`/transfer/quote` endpoint) to lock in an exchange rate before executing the payout (`/transfer/quote/{quote_id}` endpoint).
</Tip>

***

## Payout Lifecycle & Status

Similar to Payments, Payouts progress through various statuses:

1. **Pending/Initiated:** The payout request has been received but not yet fully processed.
2. **Processing/Converting:** Funds are being debited, conversion is happening (for fiat payouts), or the blockchain transaction is being prepared.
3. **Sent/In Transit:** The fiat transfer has been initiated with the banking partner, or the crypto transaction has been broadcast to the network.
4. **Completed:** The funds have successfully arrived at the destination bank account or received sufficient confirmations on the blockchain.
5. **Failed:** The payout could not be completed (e.g., insufficient funds, invalid recipient details, compliance rejection, network issue).

Tracking payout status is crucial for reconciliation and customer support. Use API calls and webhooks for real-time updates.

<Info>
  Refer to the **[Payout API Reference](/endpoints/payouts/accept-quote)** for detailed endpoint specifications for initiating and managing payouts.
</Info>

***

Payouts complete the cycle, allowing you to disburse funds received via [Payments (Inbound)](/concepts/payments) and held in your [Accounts](/concepts/accounts).
