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

# Revertir una transacción (API)

> Crea la reversión de una transacción aprobada, una nueva transacción en sentido inverso, por la API de Midaz.

Deshaz el efecto de una transacción aprobada. Midaz registra una nueva transacción en sentido inverso y mantiene la transacción original como está.

## Participantes

***

* **Tu institución.** Tu sistema. Pide la reversión.
* **Midaz.** El ledger. Comprueba la solicitud y registra la reversión.

## Antes de empezar

***

* La transacción a revertir está en `APPROVED`. Guarda su `id`.

## Diagrama

***

![Revertir una transacción](https://mintcdn.com/lerian-49cb71fc/MbifquGny5fsdtVy/images/es/d2/id-midaz-reverse-a-transaction.svg?fit=max\&auto=format\&n=MbifquGny5fsdtVy\&q=85\&s=4157aa4e161c99fbf1a71df8257148da)

## Pasos por la API

***

| # | Origen | Destino | Mensaje | API de Lerian | Qué ocurre |
| - | - | - | - | - | - |
| 1 | Tu institución | Midaz | Llamada a la API | [`POST /v2/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id}/revert`](https://docs.lerian.studio/es/reference/products/midaz/v2/revert-transaction) | Pide la reversión de la transacción. |
| 2 | Midaz | Midaz | Paso interno | | Midaz comprueba que la transacción está en `APPROVED`, que todavía no tiene reversión y que no es una reversión. |
| 3 | Midaz | Midaz | Paso interno | | Midaz registra una nueva transacción que mueve los montos de la original en sentido inverso. Su `parentTransactionId` es el `id` de la original. |
| 4 | Midaz | Tu institución | Respuesta de la API | | Midaz responde `201` con la reversión. |
| 5 | Tu institución | Midaz | Llamada a la API | [`GET /v2/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id}`](https://docs.lerian.studio/es/reference/products/midaz/v2/get-transaction) | Lee la transacción original. |
| 6 | Midaz | Tu institución | Respuesta de la API | | La transacción original sigue en `APPROVED`. |

## Reglas

***

* No puedes revertir un bloqueo ni un desbloqueo.
* Cada operación que usa una ruta de operación necesita una ruta de tipo `bidirectional`.
* La reversión no cobra una comisión nueva. Devuelve las comisiones de la transacción original.

## Cómo saber que terminó

***

Lee la reversión con [`GET /v2/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id}`](https://docs.lerian.studio/es/reference/products/midaz/v2/get-transaction). Su estado es `APPROVED`, y su `parentTransactionId` es el `id` de la transacción original.

## Qué puede salir mal

***

| Situación | Qué ves | Qué hacer |
| - | - | - |
| La transacción ya tiene una reversión | `409` con `0087` | No crees otra reversión. La primera sigue en el ledger. |
| La transacción es una reversión | `409` con `0088` | Para mover el monto otra vez, registra una nueva transacción. |
| La transacción no está en `APPROVED` | `409` con `0099` | Cancela una transacción en `PENDING`. |
| Una ruta de operación de la transacción no es `bidirectional` | `422` con `0150` | Midaz no puede revertir esta transacción. |
| El ledger valida rutas, y ninguna ruta de operación de la transacción tiene una entrada contable `revert` | `422` con `0157` | Agrega una entrada `revert` a las rutas de operación y revierte otra vez. |
| El registro de deuda de comisión de la transacción no está completo | `409` con `0529` | Midaz no movió nada. Inténtalo otra vez más tarde. |
| La respuesta no llega | Ninguna respuesta, o un timeout | Envía la misma reversión otra vez. Un `201` devuelve la reversión. Un `409` con `0087` significa que la reversión existe. Después de un `409` con `0084`, espera y envía la misma reversión otra vez. |

## Relacionados

***

* [Montar un ledger y registrar la primera transacción](https://docs.lerian.studio/es/diagrams/lerian-products/midaz-create-and-transact.md)
* [Liquidar la deuda de comisión](https://docs.lerian.studio/es/diagrams/lerian-products/midaz-settle-fee-debt.md)
* [Lista de errores de Midaz](https://docs.lerian.studio/es/reference/products/midaz/error-list.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.