> ## 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

> Usa este endpoint para revertir una transacción existente generando automáticamente una nueva en la dirección opuesta a la original.
La nueva transacción se vincula a la original usando el campo `parentTransactionId`, asegurando la trazabilidad completa entre ambas operaciones.
**Importante**:  Solo las transacciones con estado **APPROVED** pueden ser revertidas. Si la transacción original ya tiene un padre (es decir, ya fue revertida), la solicitud será rechazada.
Si la operación tiene éxito, este endpoint crea la transacción de reversión y devuelve un código 201 junto con el contenido de la transacción creada.



## OpenAPI

````yaml es/openapi/v3-current/ledger.yaml post /v2/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id}/revert
openapi: 3.1.0
info:
  title: API de Midaz Ledger
  version: 4.0.0
servers:
  - url: /
security: []
tags:
  - name: Tipos de cuenta (v1)
  - name: Tipos de cuenta (v2)
  - name: Cuentas (v1)
  - name: Cuentas (v2)
  - name: Tasas de activos (v1)
  - name: Activos (v1)
  - name: Activos (v2)
  - name: Saldos (v1)
  - name: Saldos (v2)
  - name: Cálculo de facturación (v2)
  - name: Paquetes de facturación (v2)
  - name: Composición (v2)
  - name: Cifrado (v2)
  - name: Comisiones (v2)
  - name: Titulares (v2)
  - name: Instrumentos (v2)
  - name: Ledgers (v1)
  - name: Ledgers (v2)
  - name: Índices de metadatos (v1)
  - name: Índices de metadatos (v2)
  - name: Rutas de operaciones (v1)
  - name: Rutas de operaciones (v2)
  - name: Operaciones (v1)
  - name: Operaciones (v2)
  - name: Organizaciones (v1)
  - name: Organizaciones (v2)
  - name: Paquetes (v2)
  - name: Carteras (v1)
  - name: Carteras (v2)
  - name: Protección (v2)
  - name: Segmentos (v1)
  - name: Segmentos (v2)
  - name: Rutas de transacciones (v1)
  - name: Rutas de transacciones (v2)
  - name: Transacciones (v1)
  - name: Transacciones (v2)
paths:
  /v2/organizations/{organization_id}/ledgers/{ledger_id}/transactions/{transaction_id}/revert:
    post:
      tags:
        - Transacciones (v2)
      summary: Revertir una Transacción
      description: >-
        Usa este endpoint para revertir una transacción existente generando
        automáticamente una nueva en la dirección opuesta a la original.

        La nueva transacción se vincula a la original usando el campo
        `parentTransactionId`, asegurando la trazabilidad completa entre ambas
        operaciones.

        **Importante**:  Solo las transacciones con estado **APPROVED** pueden
        ser revertidas. Si la transacción original ya tiene un padre (es decir,
        ya fue revertida), la solicitud será rechazada.

        Si la operación tiene éxito, este endpoint crea la transacción de
        reversión y devuelve un código 201 junto con el contenido de la
        transacción creada.
      operationId: revertTransactionV2
      parameters:
        - description: Organization ID (UUID)
          in: path
          name: organization_id
          required: true
          schema:
            description: Organization ID (UUID)
            type: string
        - description: Ledger ID (UUID)
          in: path
          name: ledger_id
          required: true
          schema:
            description: Ledger ID (UUID)
            type: string
        - description: Transaction ID (UUID)
          in: path
          name: transaction_id
          required: true
          schema:
            description: Transaction ID (UUID)
            type: string
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionV2'
          description: Created
          headers:
            X-Idempotency-Replayed:
              schema:
                type: string
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    TransactionV2:
      additionalProperties: false
      properties:
        amount:
          examples:
            - '1500'
          minimum: 0
          type:
            - string
            - 'null'
        assetCode:
          examples:
            - BRL
          maxLength: 10
          minLength: 2
          type: string
        createdAt:
          examples:
            - '2021-01-01T00:00:00Z'
          format: date-time
          type: string
        credit:
          examples:
            - - '@person2'
          items:
            type: string
          type:
            - array
            - 'null'
        debit:
          examples:
            - - '@person1'
          items:
            type: string
          type:
            - array
            - 'null'
        deletedAt:
          examples:
            - '2021-01-01T00:00:00Z'
          format: date-time
          type:
            - string
            - 'null'
        description:
          examples:
            - Transaction description
          maxLength: 256
          type: string
        feesSkipped:
          examples:
            - false
          type: boolean
        id:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        ledgerId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        metadata:
          additionalProperties: {}
          type: object
        operations:
          items:
            $ref: '#/components/schemas/OperationV2'
          type:
            - array
            - 'null'
        organizationId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        parentTransactionId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        routeId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        status:
          $ref: '#/components/schemas/TransactionStatus'
        tracerSkipped:
          examples:
            - false
          type: boolean
        updatedAt:
          examples:
            - '2021-01-01T00:00:00Z'
          format: date-time
          type: string
      required:
        - id
        - description
        - status
        - amount
        - assetCode
        - debit
        - credit
        - ledgerId
        - organizationId
        - feesSkipped
        - tracerSkipped
        - createdAt
        - updatedAt
        - deletedAt
        - operations
      type: object
    Error:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      type: object
    OperationV2:
      additionalProperties: false
      properties:
        accountAlias:
          examples:
            - '@person1'
          maxLength: 256
          type: string
        accountId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        amount:
          $ref: '#/components/schemas/OperationAmount'
        assetCode:
          examples:
            - BRL
          maxLength: 10
          minLength: 2
          type: string
        balance:
          $ref: '#/components/schemas/OperationBalance'
        balanceAffected:
          examples:
            - true
          format: boolean
          type: boolean
        balanceAfter:
          $ref: '#/components/schemas/OperationBalance'
        balanceId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        balanceKey:
          examples:
            - asset-freeze
          maxLength: 100
          type: string
        createdAt:
          examples:
            - '2021-01-01T00:00:00Z'
          format: date-time
          type: string
        deletedAt:
          examples:
            - '2021-01-01T00:00:00Z'
          format: date-time
          type:
            - string
            - 'null'
        description:
          examples:
            - Credit card operation
          maxLength: 256
          type: string
        direction:
          examples:
            - debit
          maxLength: 50
          type: string
        id:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        ledgerId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        metadata:
          additionalProperties: {}
          type: object
        organizationId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        routeCode:
          examples:
            - ROUTE-001
          maxLength: 100
          type: string
        routeDescription:
          examples:
            - Settlement route for service charges
          maxLength: 250
          type: string
        routeId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        status:
          $ref: '#/components/schemas/OperationStatus'
        transactionId:
          examples:
            - 00000000-0000-0000-0000-000000000000
          format: uuid
          type: string
        type:
          examples:
            - DEBIT
          maxLength: 50
          type: string
        updatedAt:
          examples:
            - '2021-01-01T00:00:00Z'
          format: date-time
          type: string
      required:
        - id
        - transactionId
        - description
        - type
        - assetCode
        - amount
        - balance
        - balanceAfter
        - status
        - accountId
        - accountAlias
        - balanceKey
        - balanceId
        - organizationId
        - ledgerId
        - balanceAffected
        - createdAt
        - updatedAt
        - deletedAt
        - metadata
      type: object
    TransactionStatus:
      additionalProperties: false
      properties:
        code:
          examples:
            - ACTIVE
          maxLength: 100
          type: string
        description:
          examples:
            - Active status
          maxLength: 256
          type:
            - string
            - 'null'
      required:
        - code
        - description
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
    OperationAmount:
      additionalProperties: false
      properties:
        value:
          examples:
            - '1500'
          minimum: 0
          type:
            - string
            - 'null'
      required:
        - value
      type: object
    OperationBalance:
      additionalProperties: false
      properties:
        available:
          examples:
            - '1500'
          minimum: 0
          type:
            - string
            - 'null'
        onHold:
          examples:
            - '500'
          minimum: 0
          type:
            - string
            - 'null'
        overdraftUsed:
          examples:
            - '130'
          minimum: 0
          type: string
        version:
          examples:
            - 2
          format: int64
          minimum: 0
          type:
            - integer
            - 'null'
      required:
        - available
        - onHold
        - version
        - overdraftUsed
      type: object
    OperationStatus:
      additionalProperties: false
      properties:
        code:
          examples:
            - ACTIVE
          maxLength: 100
          type: string
        description:
          examples:
            - Active status
          maxLength: 256
          type:
            - string
            - 'null'
      required:
        - code
        - description
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````