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

# Payouts

> Initiate single, batch, and recurring payments directly via the API

## Overview

Payouts let you initiate payments without a separate request creation step. The API creates the request and returns executable transaction calldata in a single call.

**Payout modes:**

* **Single** — Pay one recipient
* **Batch** — Pay multiple recipients in one transaction (same network, EVM)
* **Recurring** — Automated payment schedules with ERC20 permit signatures
* **Multicall** — Combine multiple existing payout links into one bundle, including across chains and on Tron

## Single Payout

Create a payment request and get transaction calldata in one call. Single payouts work on **all 8 supported networks (EVM and Tron)**.

<Tabs>
  <Tab title="EVM (USDC on Base)">
    ```bash theme={null}
    curl -X POST "https://api.request.network/v2/payouts" \
      -H "x-api-key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "amount": "100",
        "invoiceCurrency": "USD",
        "paymentCurrency": "USDC-base",
        "payee": "0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7",
        "reference": "PAYOUT-001"
      }'
    ```
  </Tab>

  <Tab title="Tron (USDT on Tron)">
    ```bash theme={null}
    curl -X POST "https://api.request.network/v2/payouts" \
      -H "x-api-key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "amount": "100",
        "invoiceCurrency": "USD",
        "paymentCurrency": "USDT-tron",
        "payee": "TJRabPrwbZy45sbavfcjinPJC18kjpRTv8",
        "reference": "PAYOUT-001"
      }'
    ```
  </Tab>
</Tabs>

**Required fields:**

* `amount` — Human-readable amount
* `invoiceCurrency` — Invoice currency (e.g., `"USD"`)
* `paymentCurrency` — Payment currency ID (e.g., `"USDC-base"`, `"USDT-tron"`)
* `payee` — Recipient wallet address (EVM `0x...` or Tron `T...`)

**Optional fields:**

* `reference` — Merchant reference for reconciliation
* `feePercentage` and `feeAddress` — Platform fee configuration
* `customerInfo` — optional structured metadata to attach to the request
* `payer` — Payer wallet address (required for recurring)

The response includes `requestId` and a `transactions` array with executable calldata.

## Batch Payout

Pay multiple recipients in a single blockchain transaction. All payments must be on the same network.

<Warning>
  **This endpoint is EVM-only.** `POST /v2/payouts/batch` settles a single same-network EVM transaction and rejects Tron with `Batch payments are not supported for TRON networks. Please submit individual payment requests.` To batch Tron payouts, use [multicall payouts](#multicall-payouts) with the `tron_batch` execution kind instead; single Tron payouts via `POST /v2/payouts` also remain available.
</Warning>

```bash theme={null}
curl -X POST "https://api.request.network/v2/payouts/batch" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "requests": [
      {
        "amount": "50",
        "invoiceCurrency": "USD",
        "paymentCurrency": "USDC-base",
        "payee": "0xb07d2398d2004378cad234da0ef14f1c94a530e4"
      },
      {
        "amount": "25",
        "invoiceCurrency": "USD",
        "paymentCurrency": "USDC-base",
        "payee": "0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7"
      }
    ],
    "payer": "0x1234567890123456789012345678901234567890"
  }'
```

The response includes approval transactions and a batch payment transaction to execute.

## Multicall payouts

Multicall payouts combine multiple **existing** outgoing payout links into a single hosted link the payer settles as one bundle. Unlike [batch payouts](#batch-payout) — which are same-network and EVM-only — multicall supports cross-chain routing and Tron.

Create a multicall link from previously created secure-payout tokens:

```bash theme={null}
curl -X POST "https://api.request.network/v2/secure-payments/multicall-payouts" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "childTokens": ["01JZ4PC7EXAMPLECHILD000001", "01JZ4PC7EXAMPLECHILD000002"]
  }'
```

The response returns a parent `token` and `securePaymentUrl`. Share the URL with whoever signs payouts; they review every recipient and settle the whole bundle in one flow.

**Execution kinds:**

* `evm_same_chain` — all recipients on one network and currency, settled as a single batch transaction.
* `evm_cross_chain` — recipients span chains/currencies (or the payer pays from a different source); each leg is routed via Li.Fi.
* `tron_batch` — all recipients on Tron, settled via the Tron batch contract.

When you omit `requestedExecutionKind`, it is derived from the payer's source selection at payment time. The default cap is 150 children (20 for cross-chain).

See [Multicall payouts in the Secure Payments reference](/api-reference/secure-payments#post-v2secure-paymentsmulticall-payouts) for the full request/response schema, eligibility rules, and validation errors.

## Recurring Payouts

Create automated payment schedules where the payer authorizes a series of payments with a single EIP-712 signature.

See [Recurring Payments](/api-features/recurring-payments) for the full lifecycle (create, authorize, monitor, manage).

**Endpoints:**

* `POST /v2/payouts` with `recurrence` object — Create a recurring schedule
* `POST /v2/payouts/recurring/:id` — Submit the payer's permit signature to activate
* `GET /v2/payouts/recurring/:id` — Check status and next payment date
* `PATCH /v2/payouts/recurring/:id` — Cancel or unpause

## Error Handling

| Status | Meaning                                                       |
| ------ | ------------------------------------------------------------- |
| `400`  | Invalid request body — check required fields and currency IDs |
| `401`  | Authentication failed — verify your `x-client-id` header      |
| `404`  | Request or recurring payment not found                        |
| `429`  | Rate limited — back off and retry                             |
| `500`  | Server error — safe to retry with exponential backoff         |

For batch payouts, a `400` may indicate that payments span multiple networks (all must be on the same chain).

## Endpoint Reference

<CardGroup cols={2}>
  <Card title="POST /v2/payouts" icon="paper-plane" href="https://api.request.network/open-api/#tag/v2payouts/POST/v2/payouts">
    Create a single or recurring payout.
  </Card>

  <Card title="POST /v2/payouts/batch" icon="layer-group" href="https://api.request.network/open-api/#tag/v2payouts/POST/v2/payouts/batch">
    Create a batch payout with multiple recipients.
  </Card>
</CardGroup>
