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

# Prefunded payouts

> Pay out from a stablecoin balance you top up in advance, with no transfer per order.

With prefunded payouts you top up a Zapyd wallet with USDT or USDC once, and each payout debits that balance. There's no crypto transfer or transaction hash per order. This works well for high-volume payouts and payroll-style batches.

<Note>
  Prefunded payouts must be enabled for your organization. Ask your Zapyd account manager for a prefunded wallet address. Without one, these endpoints return `This endpoint is not available for your organization.`
</Note>

**Base URL:** `https://sandbox.zapyd.com/pos/api/v1/prefunded/payout`

## Flow

<Steps>
  <Step title="Top up the balance">
    Send USDT or USDC to your prefunded wallet address. Check the balance with [`GET /pos/api/v1/payout/balance`](/api-reference-exchange/endpoint/remittance-payout/balance):

    ```json theme={null}
    { "available_balance": { "USDT": "15000.5" } }
    ```

    The balance is cached briefly, so a top-up can take a moment to appear.
  </Step>

  <Step title="Create a quotation">
    [`POST /prefunded/payout/quotation`](/api-reference-exchange/endpoint/prefunded-payout/quotation) takes the same body as a [standard payout quotation](/guides/payments/payouts#3-create-a-quotation). `network` is ignored: the quotation always uses your prefunded wallet's network.

    ```json theme={null}
    {
      "customer_id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4",
      "bank_id": "cab47575-bbcb-4294-81a3-30774104f3b6",
      "asset": "usdt",
      "fiat": "inr",
      "payment_method": "IMPS",
      "receiving_amount": "5100",
      "risk_parameters": { "ip_address": "203.0.113.10", "device_id": "device-123", "suspicious_activity_report": false, "law_enforcement_agency_report": false }
    }
    ```
  </Step>

  <Step title="Check the balance covers it">
    Compare the quotation's `sending_amount` with `available_balance` for that asset. If the balance is too low, top up before you initiate.
  </Step>

  <Step title="Initiate">
    [`POST /prefunded/payout/initiate`](/api-reference-exchange/endpoint/prefunded-payout/initiate) needs the quotation and both parties. `receiver.id` must be the quotation's customer. `sender.id` is the customer paying, and Zapyd stores it for reference.

    ```json theme={null}
    {
      "quotation_id": "59bf60c3-e9af-40a7-9d5c-2a1aa191e769",
      "customer": {
        "sender": { "id": "1b2c3d4e-5f60-4718-9a0b-1c2d3e4f5a6b" },
        "receiver": { "id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4" }
      },
      "client_reference_id": "payroll-2026-09-001"
    }
    ```

    Zapyd reserves the amount from your balance, and the payout starts as `PROCESSING`.
  </Step>

  <Step title="Track">
    Statuses and webhooks are the same as for [standard payouts](/guides/payments/payouts#6-track-the-result). To poll, use [`GET /prefunded/payout/{payout_id}`](/api-reference-exchange/endpoint/prefunded-payout/\{payout_id}) or [`GET /prefunded/payout/history`](/api-reference-exchange/endpoint/prefunded-payout/history).
  </Step>
</Steps>

## Endpoints

| Task | Endpoint |
| - | - |
| Supported assets and limits | [`GET /prefunded/payout/configuration`](/api-reference-exchange/endpoint/prefunded-payout/configuration) |
| Live rate | [`GET /prefunded/payout/fetch-rate`](/api-reference-exchange/endpoint/prefunded-payout/fetch-rate) |
| Quotation | [`POST /prefunded/payout/quotation`](/api-reference-exchange/endpoint/prefunded-payout/quotation), [`GET /prefunded/payout/quotation/{id}`](/api-reference-exchange/endpoint/prefunded-payout/quotation-\{quotation_id}) |
| Payout | [`POST /prefunded/payout/initiate`](/api-reference-exchange/endpoint/prefunded-payout/initiate), [`GET /prefunded/payout/{id}`](/api-reference-exchange/endpoint/prefunded-payout/\{payout_id}), [`GET /prefunded/payout/history`](/api-reference-exchange/endpoint/prefunded-payout/history) |
| Balance | [`GET /payout/balance`](/api-reference-exchange/endpoint/remittance-payout/balance) |

## Prefunded vs standard payouts

| | Standard | Prefunded |
| - | - | - |
| Funding | One crypto transfer per order | One top-up covers many orders |
| Initiate needs | `transaction_hash` | `customer.sender` and `customer.receiver` |
| Network | You choose one per quotation | Always your prefunded wallet's network |
| Best for | Occasional payouts, user-driven cash-outs | High volume, batches, remittance |
