---
title: "Crear un retiro"
method: POST
path: "/withdrawals"
tags: ["withdrawals"]
deprecated: true
---

# Crear un retiro

`POST /withdrawals`

> **Deprecated.**

> **Obsoleto:** usa el endpoint unificado [`POST /transfers`](/api-reference/transfers/crear-una-transferencia) con `destination: {type: bank_account, id: ...}`. Este endpoint sigue funcionando para integraciones existentes.

Paga el balance de tu cuenta a una de tus cuentas bancarias externas. Requiere una llave con movimiento de dinero habilitado. El retiro es **asíncrono**: la respuesta es el estado inicial (`pending`/`in_review`/`approved`); suscríbete a los webhooks `withdrawal.*` o consulta el estado.

En Sandbox esta operación está bloqueada: un balance simulado nunca es retirable.

## Headers

- `X-SECRET-KEY` string, required
- `Idempotency-Key` string

## Request body

- object
  - `bank_account_id` string, required — ID de la cuenta bancaria destino
  - `amount_in_cents` integer, required
  - `currency` 'GTQ' | 'USD' — Por defecto, la moneda de la cuenta bancaria
  - `is_instant` boolean — Retiro instantáneo (sujeto a elegibilidad y comisión)

## Response `201`

Retiro creado (asíncrono)

- Withdrawal — Retiro bancario asíncrono. Para retiros locales, `sent` es un estado terminal exitoso; no esperes `completed` para continuar tu flujo. `completed` puede aparecer como confirmación adicional en retiros históricos o rails que la reportan.
  - `id` string
  - `status` 'pending' | 'approved' | 'in_review' | 'review_requested' | 'sent' | 'completed' | 'rejected' | 'cancelled'
  - `amount_in_cents` integer
  - `currency` string
  - `bank_name` string
  - `note` string, nullable — Nota del retiro
  - `created_at` string, date-time
  - `bank_account` BankAccount
    - `id` string — ID único de la cuenta bancaria
    - `bank_name` string, nullable — Nombre del banco
    - `holder_name` string — Nombre del titular
    - `created_at` string, date-time — Fecha de creación
    - `status` 'active' | 'archived' — Estado de la cuenta bancaria
    - `currency` 'GTQ' | 'USD' — Moneda de la cuenta bancaria
    - `account_type` 'checking' | 'savings' — Tipo de cuenta bancaria
    - `is_preferred` boolean — Indica si es la cuenta preferida para su moneda
    - `ownership_type` 'external' | 'virtual' — Tipo de cuenta bancaria

## Other responses

- `400` — Retiro inválido; por ejemplo, la cuenta bancaria destino tiene un formato inválido
- `403` — La llave no tiene movimiento de dinero habilitado, o la cuenta está suspendida
- `422` — La creación de retiros no está disponible en Sandbox

---

[API](https://skmtc.dev/recurrente/apis/referencia-api.md) · [All operations](https://skmtc.dev/recurrente/apis/referencia-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/recurrente/referencia-api/revisions/da12dce50f30/schema)
