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

# Primer payout

> Cotización y ejecución con POST /payouts/quote y POST /payouts.

Flujo mínimo del contrato de payouts (campos alineados con los tests del API). La implementación actual usa el **sandbox** de payouts: respuestas reales de forma y esquema, sin movimiento de fondos en producción.

## Prerrequisitos

* Clave Connect (`sk_test_` o `sk_live_`).
* Organización **aprobada** en Connect.
* Un `external_ref` que el API ya conozca para tu usuario (si no existe, la cotización puede responder `external_ref_unknown`).

## 1. Cotización

`POST /connect/v1/payouts/quote` requiere `Idempotency-Key` y este cuerpo (ejemplo usado en tests):

```bash theme={null}
curl -X POST "https://api.zopay.cash/connect/v1/payouts/quote" \
  -H "Authorization: Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "external_ref": "user_abc_123",
    "destination": "TRX1234567890ABCDEFGHIJKL",
    "asset": "USDT",
    "amount": "100.00"
  }'
```

La respuesta incluye al menos: `quote_id` (prefijo `qt_pay_`), `expires_at`, `user_sends`, `recipient_gets`, `fee_total_usd`, `route` (con `type`, `from_network`, `to_network`, `estimated_seconds`). El campo `recommendation` es opcional.

## 2. Ejecución

Dentro de la validez de la cotización, ejecuta con solo el `quote_id`:

```bash theme={null}
curl -X POST "https://api.zopay.cash/connect/v1/payouts" \
  -H "Authorization: Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "quote_id": "qt_pay_..."
  }'
```

Sustituye `qt_pay_...` por el `quote_id` devuelto en el paso 1. Cada ejecución debe usar una **nueva** `Idempotency-Key`; reutiliza la misma clave solo al **reintentar** la misma petición tras un fallo de red.

## 3. Consultar estado

```bash theme={null}
curl -X GET "https://api.zopay.cash/connect/v1/payouts/{payout_id}" \
  -H "Authorization: Bearer sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

## Notas

* Sin `Idempotency-Key` en quote o execute → `idempotency_key_required` (400).
* Cuenta no aprobada → `account_pending_approval` (403).
* Más reglas en [Idempotencia](/api-reference/idempotency) y [Payouts](/api-reference/endpoints/post-payouts-quote).
