Revert a Transaction
Use this endpoint to reverse an existing transaction by automatically generating a new one in the opposite direction of the original.
The new transaction is linked to the original using the parentTransactionId field, ensuring full traceability between both operations.
Important: Only transactions with status APPROVED can be reverted. If the original transaction already has a parent (i.e., was already reverted) the request will be rejected. On success this endpoint creates the reversing transaction and returns 201 Created with the created transaction payload.
Headers
A unique identifier used to trace and track each request.
Bearer JWT token for authentication.
Required when PLUGIN_AUTH_ENABLED=true (enforced in multi-tenant deployments).
Optional in default OSS single-tenant mode.
Format: Bearer <token>
A unique key that ensures transaction idempotency. If not provided, the system automatically generates a SHA-256 hash based on the request body. Keys are scoped per organization and ledger.
Always validate the X-Idempotency-Replayed response header to distinguish new transactions from cached replays.
See Retries and idempotency for best practices.
The time-to-live for the idempotency key, defined in seconds. Defaults to 300 seconds (5 minutes) if not provided. Only the TTL from the first request is used; changing it on retries has no effect.
See Retries and idempotency for details.
Path Parameters
The unique identifier of the Organization associated with the Ledger.
The unique identifier of the associated Ledger.
The unique identifier of the transaction you want to retrieve.
Response
Indicates that the request was successful and the response contains the expected data.
The response includes the X-Idempotency-Replayed header.
If the value is false, the transaction was just processed. If the value is true, the response is a replay of a previously processed request.
See Retries and idempotency for more details.
The unique identifier of the transaction.
The unique identifier of the parent/original transaction for reversals. This field is populated by the server when a transaction is reverted and should be treated as read-only by clients.
The unique identifier of the Organization.
The unique identifier of the Ledger.
Description of the transaction.
Specifies the Transaction Route associated with the transaction.
The transaction status (pending, completed, reversed).
The sent amount.
The name of the asset used in the operation.
The name of the chart-of-accounts group.
The list of accounts used as source.
The list of accounts used as destination.
Timestamp of creation (UTC).
Timestamp of last update (UTC).
Timestamp of soft deletion, if applicable (UTC).
An object containing key-value pairs to add as metadata, where the field name is the key and the field value is the value. For example, to add a Cost Center, use 'costCenter': 'BR_11101997'.
Constraints: keys must be at most 100 characters; string values at most 2000 characters. Nested objects are not allowed (values must be string, number, or boolean), the structure may not exceed a maximum depth of 10, and a maximum of 100 keys is permitted.

