Dispute V2 System Documentation¶
Overview¶
The Dispute v2 System consists of two key components:
- Hydra: Responsible for determining if a transaction can be disputed and if the user has the necessary permissions to perform dispute actions.
- Dispute: Manages the flow and lifecycle of a dispute once it is initiated.
Hydra Responsibilities¶
Hydra is responsible for all validation and eligibility checks related to disputes. Its core responsibilities include:
- Permission Validation: Checks if a user has permission to initiate or take actions on a dispute.
- Transaction Eligibility:
- Verifies if a transaction can be disputed (based on flags, types such as
preauth,completed, etc.). - Determines if actions can be taken on a dispute.
- Determines which transactions can be disputed, by using BE configurations
- Verifies if a transaction can be disputed (based on flags, types such as
- Timeframe Enforcement: Applies rules for how long after a transaction a dispute can be initiated or resolved.
- Re-disputation Logic: Controls whether a transaction can be disputed again (only if previous disputes were marked as Denied status).
Dispute Responsibilities¶
Dispute handles the operational flow of the dispute lifecycle. It does not enforce business rules — it purely executes valid dispute transitions and actions once initiated.
Dispute Status Lifecycle¶
There are five statuses in a dispute's lifecycle:
ReportedOngoingDeniedRejectedApproved
1. Reported¶
- First status when a dispute is initiated.
- Requires a
Transaction ID. - The transaction is validated via the Transaction Service.
- All subsequent actions use the
Dispute IDandTransaction ID.
Actions by Risk Team¶
Once a dispute is in the Reported state, the Risk Team can perform one of the following actions through Hydra:
- Deny:
- Dispute is marked as
Denied. - No money movement.
- The dispute can be reported again if requested via support.
- Dispute is marked as
- Approve:
- Dispute is marked as
Approved. - A permanent credit is issued to the user.
- The dispute is resolved.
- Dispute is marked as
- Mark as Ongoing:
- Dispute is marked as
Ongoing. - A provisional credit is issued to the user.
- The case remains open and under investigation (typically involving external providers).
- Dispute is marked as
Ongoing State Actions¶
While in Ongoing status, RT can take the following actions:
- Reject:
- Reverses the provisional credit.
- Marks the dispute as
Rejected. - Final state. Dispute cannot be re-initiated.
- Approve:
- Reverses the provisional credit.
- Issues a new permanent credit.
- Marks the dispute as
Approved. - Final state. Dispute cannot be re-initiated.
Status Transition Summary¶
| Current Status | Action | New Status | Credit Impact |
|---|---|---|---|
Reported |
Deny | Denied |
No credit issued |
Reported |
Approve | Approved |
Permanent credit issued |
Reported |
Ongoing | Ongoing |
Provisional credit issued |
Ongoing |
Reject | Rejected |
Provisional credit reversed |
Ongoing |
Approve | Approved |
Provisional credit reversed + permanent credit issued |
Important Notes¶
- All business logic and permission checks are handled by Hydra.
- Dispute is only responsible for processing the dispute flow.
- Once a dispute reaches
ApprovedorRejected, it is considered final. - Only
Denieddisputes may be reported again — this logic is controlled by Hydra.