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

# Payouts Overview

> Disburse funds from your pre-funded balance directly to beneficiaries

## What are Payouts?

Payouts let you send money from your pre-funded KillB balance directly to any beneficiary — bank accounts, crypto wallets, or local payment aliases. Unlike ramps, there's no quotation step or payment URL: you already hold the balance and push it out instantly.

<Info>
  Payouts require an active pre-funded account with sufficient balance. Make sure you have funds deposited before creating a payout.
</Info>

<CardGroup cols={2}>
  <Card title="Bank Transfer" icon="building-columns">
    **Balance → Bank Account**

    Disburse COP to Colombian bank accounts via Bank Transfer
  </Card>

  <Card title="BREB" icon="id-card">
    **Balance → Registered Alias**

    Send to phone number, email, or national ID via BREB
  </Card>
</CardGroup>

## Transaction Flow

<Steps>
  <Step title="Check Balance">
    Verify your pre-funded account has sufficient funds
  </Step>

  <Step title="Create Payout">
    Submit the payout with pre-fund account ID, amount, and beneficiary details
  </Step>

  <Step title="Processing">
    KillB routes the payment to the beneficiary's bank or wallet
  </Step>

  <Step title="Settlement">
    Funds delivered — receive a webhook notification on completion
  </Step>
</Steps>

## Key Concepts

<AccordionGroup>
  <Accordion title="Pre-Fund Account Required" icon="vault">
    Every payout is debited from a pre-funded account. You must have one created and funded before initiating a payout. Payouts will fail if the balance is insufficient.
  </Accordion>

  <Accordion title="Beneficiary Types" icon="users">
    Currently supported beneficiary types are **Bank Transfer** (standard bank account transfer) and **BREB** (registered alias: phone, email, or national ID). Each type requires specific account fields.
  </Accordion>

  <Accordion title="Idempotency via Header" icon="fingerprint">
    Send an `Idempotency-Key` header to safely retry payout creation without risk of duplicate disbursements.
  </Accordion>

  <Accordion title="Webhook Notifications" icon="bell">
    Subscribe to `PAYOUT` webhook events to receive real-time status updates for each disbursement.
  </Accordion>
</AccordionGroup>

## Quick Start

```javascript theme={null}
// 1. Check your pre-fund balance
const balances = await fetch('/api/v2/customers/balances', {
  headers: { 'Authorization': `Bearer ${token}` }
}).then(r => r.json());

// 2. Create a payout
const payout = await fetch('/api/v2/payouts', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': 'payout-2024-001'
  },
  body: JSON.stringify({
    preFundAccountId: 'prefund-account-id',
    amount: 500000, // 500,000 COP
    beneficiary: {
      type: 'BANK',
      account: {
        firstName: 'Maria',
        lastName: 'Garcia',
        email: 'maria@example.com',
        phone: '3001234567',
        document: { type: 'CC', number: '12345678' },
        accountNumber: '123456789',
        bankCode: '001',
        type: 'savings',
        countryCode: 'CO'
      }
    }
  })
}).then(r => r.json());

console.log('Payout created:', payout.id, '| Status:', payout.status);
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Create a Payout" icon="paper-plane" href="/guides/payouts/create-payout">
    Step-by-step implementation with code examples
  </Card>

  <Card title="Status Tracking" icon="chart-line" href="/guides/payouts/payout-status">
    Monitor payout progress with polling and webhooks
  </Card>

  <Card title="Pre-Funded Accounts" icon="vault" href="/guides/pre-fund/pre-fund-accounts">
    Set up and fund your pre-fund account
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/endpoint/payouts-create">
    Complete Payouts API documentation
  </Card>
</CardGroup>
