> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.recurrente.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.recurrente.com/_mcp/server.

# Transferencia en evaluación automática

POST 

El envío P2P está siendo evaluado automáticamente. El monto queda reservado y no se acredita al destinatario.

Reference: https://docs.recurrente.com/referencia-api/api-reference/webhook-events/transfer-pending-webhook

## Request

### Payload

- `event_type` (string, required) — Tipo exacto del evento enviado por Recurrente.
- `api_version` (string, required)
- `transfer` (Transfer, required) — Movimiento unificado de dinero saliendo de un balance. El prefijo del `id` indica el registro subyacente: `wi_` retiro bancario, `tr_` transferencia p2p, `sw_` envío de stablecoin. Los registros p2p (`tr_`) conservan además los campos legados `sender` y `recipient`. Un P2P puede quedar en `in_review`: su monto está reservado hasta que se apruebe. Un rechazo cambia el estado a `cancelled` y devuelve el monto al remitente. Los controles de riesgo y las restricciones de cuenta también aplican a envíos por API.
- `connected` (boolean, optional, nullable) — Presente como `true` cuando el evento proviene de una cuenta conectada.
- `account_id` (string, optional, nullable) — ID de la cuenta conectada que originó el evento.

## Types

### Transfer

Movimiento unificado de dinero saliendo de un balance. El prefijo del `id` indica el registro subyacente: `wi_` retiro bancario, `tr_` transferencia p2p, `sw_` envío de stablecoin. Los registros p2p (`tr_`) conservan además los campos legados `sender` y `recipient`. Un P2P puede quedar en `in_review`: su monto está reservado hasta que se apruebe. Un rechazo cambia el estado a `cancelled` y devuelve el monto al remitente. Los controles de riesgo y las restricciones de cuenta también aplican a envíos por API.

- `id` (string, optional) — ID del movimiento (tr_ / wi_ / sw_)
- `status` (enum, optional) — Estado canónico del movimiento
  - Allowed values: `pending`, `in_review`, `processing`, `sent`, `unclaimed`, `completed`, `failed`, `cancelled`
- `status_detail` (string, optional) — Estado crudo del registro subyacente (p. ej. `approved`, `rejected`, `review_requested`)
- `amount_in_cents` (integer, optional) — Monto en centavos debitado del balance
- `currency` (string, optional) — Moneda del balance de origen
- `fee_in_cents` (integer, optional) — Comisión en centavos (retiros instantáneos / internacionales; 0 para p2p)
- `net_amount_in_cents` (integer, optional) — Monto neto que llega al destino después de comisiones
- `note` (string, optional, nullable) — Nota del movimiento
- `recipient_email` (string, optional, nullable) — Correo del beneficiario al que le avisamos el estado del retiro. Solo aplica a movimientos `wi_`.
- `tracking_url` (string, optional, nullable) — Página pública de seguimiento para el beneficiario (monto que recibe, cuenta enmascarada, estado y fecha estimada de llegada). Solo aplica a movimientos `wi_`; compártela con quien recibe el dinero.
- `account_id` (string, optional) — Cuenta cuyo balance movió este envío. Siempre presente, para que una lista que abarca varias cuentas de una organización siga siendo atribuible.
- `sent_at` (datetime, optional, nullable) — Momento en que Recurrente envió el retiro al banco; solo aplica a retiros bancarios (`wi_`).
- `settled_at` (datetime, optional, nullable) — Momento de liquidación bancaria confirmada. Solo está presente para retiros bancarios confirmados o completados (`wi_`).
- `bank_reference` (string, optional, nullable) — Referencia que devolvió el riel de envío, cuando ese riel devuelve una. Solo aplica a movimientos `wi_`; no identifica ni enumera transacciones que conformen el retiro.
- `bank_reference_status` (enum, optional, nullable) — Qué esperar de `bank_reference`: `available` si ya existe, `pending` si el retiro aún no sale y podría traerla, y `unsupported` si ya salió por un riel que nunca devuelve una. Con `unsupported`, concilia el depósito por `statement_descriptor`.
  - Allowed values: `available`, `pending`, `unsupported`
- `statement_descriptor` (string, optional, nullable) — Lo que le pedimos al banco que imprima en el estado de cuenta del beneficiario. Solo aplica a movimientos `wi_`.
- `balance_transaction_id` (string, optional, nullable) — Fila del ledger que registró este movimiento (`GET /api/balance_transactions/{id}`). Vacío mientras el dinero no haya salido del balance.
- `destination` (TransferDestination, optional) — Destino del movimiento. Los campos presentes dependen de `type`.
- `created_at` (datetime, optional) — Fecha de creación
- `sender` (TransferSender, optional) — (Solo registros tr_) Cuenta emisora — campo legado
- `recipient` (TransferRecipient, optional) — (Solo registros tr_) Destinatario — campo legado
- `reversal_of_id` (string, optional) — ID del transfer original; solo aparece en reversos por reembolso
- `refund_id` (string, optional) — ID del reembolso que originó el reverso

### TransferDestination

Destino del movimiento. Los campos presentes dependen de `type`.

- `type` (enum, optional)
  - Allowed values: `bank_account`, `account`, `phone_number`, `crypto_address`
- `id` (string, optional, nullable) — ID del recurso destino (`ba_` cuenta bancaria, `ac_` cuenta, `cr_` dirección cripto)
- `bank_name` (string, optional) — bank_account: banco destino
- `holder_name` (string, optional) — bank_account: titular de la cuenta bancaria
- `currency` (string, optional) — bank_account: moneda de la cuenta bancaria. crypto_address: stablecoin enviada
- `name` (string, optional) — account: nombre de la cuenta destinataria
- `number` (string, optional) — phone_number: teléfono del destinatario
- `address` (string, optional) — crypto_address: dirección on-chain
- `chain` (string, optional) — crypto_address: red del envío
- `amount` (integer, optional) — crypto_address: monto en unidades menores de la stablecoin que llega al destino

### TransferSender

(Solo registros tr_) Cuenta emisora — campo legado

- `id` (string, optional)
- `name` (string, optional)
- `type` (string, optional)

### TransferRecipient

(Solo registros tr_) Destinatario — campo legado

- `id` (string, optional, nullable)
- `name` (string, optional)
- `type` (string, optional)