---
title: "Cancelar un movimiento"
method: POST
path: "/transfers/{id}/cancel"
tags: ["transfers"]
---

# Cancelar un movimiento

`POST /transfers/{id}/cancel`

Cancela un movimiento que aún puede cancelarse: una transferencia a teléfono no reclamada (`tr_`), o un retiro pendiente que no ha entrado a un lote de pago (`wi_`). Los envíos de stablecoin (`sw_`) no se pueden cancelar.

## Path parameters

- `id` string, required

## Headers

- `X-SECRET-KEY` string, required

## Response `200`

Movimiento cancelado

- 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`.
  - `id` string — ID del movimiento (tr_ / wi_ / sw_)
  - `status` 'pending' | 'in_review' | 'processing' | 'sent' | 'unclaimed' | 'completed' | 'failed' | 'cancelled' — Estado canónico del movimiento
  - `status_detail` string — Estado crudo del registro subyacente (p. ej. `approved`, `rejected`, `review_requested`)
  - `amount_in_cents` integer — Monto en centavos debitado del balance
  - `currency` string — Moneda del balance de origen
  - `fee_in_cents` integer — Comisión en centavos (retiros instantáneos / internacionales; 0 para p2p)
  - `net_amount_in_cents` integer — Monto neto que llega al destino después de comisiones
  - `note` string, nullable — Nota del movimiento
  - `account_id` string — 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` string, date-time, nullable — Momento en que Recurrente envió el retiro al banco; solo aplica a retiros bancarios (`wi_`).
  - `settled_at` string, date-time, nullable — Momento de liquidación bancaria confirmada. Solo está presente para retiros bancarios confirmados o completados (`wi_`).
  - `bank_reference` string, 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` 'available' | 'pending' | 'unsupported' — 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`.
  - `statement_descriptor` string, 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, 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 — Destino del movimiento. Los campos presentes dependen de `type`.
    - `type` 'bank_account' | 'account' | 'phone_number' | 'crypto_address'
    - `id` string, nullable — ID del recurso destino (`ba_` cuenta bancaria, `ac_` cuenta, `cr_` dirección cripto)
    - `bank_name` string — bank_account: banco destino
    - `holder_name` string — bank_account: titular de la cuenta bancaria
    - `currency` string — bank_account: moneda de la cuenta bancaria. crypto_address: stablecoin enviada
    - `name` string — account: nombre de la cuenta destinataria
    - `number` string — phone_number: teléfono del destinatario
    - `address` string — crypto_address: dirección on-chain
    - `chain` string — crypto_address: red del envío
    - `amount` integer — crypto_address: monto en unidades menores de la stablecoin que llega al destino
  - `created_at` string, date-time — Fecha de creación
  - `sender` TransferSender — (Solo registros tr_) Cuenta emisora — campo legado
    - `id` string
    - `name` string
    - `type` string
  - `recipient` TransferRecipient — (Solo registros tr_) Destinatario — campo legado
    - `id` string, nullable
    - `name` string
    - `type` string
  - `reversal_of_id` string — ID del transfer original; solo aparece en reversos por reembolso
  - `refund_id` string — ID del reembolso que originó el reverso

## Other responses

- `422` — El movimiento ya no puede cancelarse (transfer_not_cancellable)

---

[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/f494a078482c/schema)
