Skip to main content

Reverse Transaction

Overview

Reverse a SETTLED transaction, restoring all balances and creating offsetting journal entries. Works for any completed transaction type (deposits, loans, teller operations, etc.).

Note: Full API implementation pending. Use the existing universal-transaction-management.md documentation for reversal workflows.


Endpoint

POST /api/bpm/cmd/ReverseTransactionCommand

Request Body

FieldTypeRequiredDescription
transactionKeystringYesTransaction reference
reversalReasonstringYesDetailed reversal reason
reversalCategorystringNoCategory: ERROR_CORRECTION, FRAUD, CUSTOMER_REQUEST, SYSTEM_ERROR, DUPLICATE, OTHER

Reversal Categories

CategoryDescriptionUse Case
ERROR_CORRECTIONOperational error fixWrong amount, wrong account
FRAUDFraudulent transactionDetected after settlement
CUSTOMER_REQUESTCustomer dispute/requestCustomer claims unauthorized
SYSTEM_ERRORSystem/technical errorDuplicate processing
DUPLICATEDuplicate transactionSame payment twice
OTHEROther reasonsMiscellaneous

What Gets Reversed

1. Balance Changes

BEFORE REVERSAL: Balance = 60,000 (after +10,000 deposit)
AFTER REVERSAL: Balance = 50,000 (restored to original)

2. Accounting Entries

Creates offsetting journal entries:
- DR Customer Account 10,000
- CR Teller Cash 10,000

3. Transaction State

SETTLED → REVERSED (terminal state)

State Transition


For complete documentation, see Universal Transaction Management.