---
title: "Cancelar un comando de terminal"
method: DELETE
path: "/terminal_session_commands/{random_id}"
tags: ["terminalSessionCommands"]
---

# Cancelar un comando de terminal

`DELETE /terminal_session_commands/{random_id}`

Solicita la cancelación de forma idempotente. Un comando `pending` pasa directamente a `canceled` y responde `200`. Si la terminal ya lo tomó, responde `202` con `cancel_requested`; la terminal detiene la lectura y confirma `canceled` cuando el dispositivo reporta la cancelación.

Durante una autorización no se confirma la cancelación: el comando permanece en `cancel_requested` hasta resolver como `canceled`, `consumed` o `failed`. Consulta el comando hasta que `final` sea `true`. Esta separación evita declarar cancelado un pago que ya pudo llegar al procesador.

## Path parameters

- `random_id` string, required

## Headers

- `X-SECRET-KEY` string, required

## Response `200`

Cancelación confirmada o ya confirmada

- TerminalSessionCommand
  - `id` string — ID público aleatorio del comando
  - `external_id` string — ID único de tu sistema dentro de la cuenta autenticada
  - `status` 'pending' | 'dispatched' | 'cancel_requested' | 'canceled' | 'superseded' | 'consumed' | 'failed' — Estado del comando
  - `final` boolean — `true` cuando el comando alcanzó un resultado definitivo y ya no puede cambiar
  - `terminal_id` string — ID de la terminal POS
  - `amount_in_cents` integer — Monto en centavos
  - `currency` 'GTQ' | 'USD' — Moneda del cobro
  - `installments` integer, nullable — Meses sin intereses solicitados, o `null` si el cobro va sin cuotas
  - `show_post_payment_screens` boolean — Indica si el comando solicita mostrar las pantallas post-pago de NIT, correo y teléfono
  - `terminal_availability` 'available' | 'unavailable' — Disponibilidad observada de la terminal para recibir comandos
  - `checkout_id` string — ID del checkout generado
  - `checkout_url` string, uri — URL del checkout (la terminal usa esta URL internamente)
  - `checkout_status` 'unpaid' | 'paid' | 'failed' | 'payment_in_progress' | 'needs_verification' | 'no_payment_required' | 'verification_failed' | 'needs_payer_authentication' — Estado actual del checkout asociado
  - `cancellation_requested_at` string, date-time, nullable — Momento en que se solicitó detener un comando ya despachado
  - `canceled_at` string, date-time, nullable — Momento en que la cancelación se volvió definitiva

## Other responses

- `404` — No existe un comando con ese random_id en la cuenta autenticada
- `409` — El comando ya alcanzó un resultado definitivo y no se puede cancelar

---

[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)
