feat: compliance improvements (limit request, stop transaction, chargeback)#3576
Merged
feat: compliance improvements (limit request, stop transaction, chargeback)#3576
Conversation
Extend CreateSupportIssueSupportDto with optional limitRequest field and set department to COMPLIANCE when limitRequest is present, matching the logic of the public createIssue endpoint. This allows COMPLIANCE users to create a Limit Request on behalf of a user.
Add PUT /support/transaction/:id/chargeback for COMPLIANCE users to release a refund for BuyCrypto, BuyFiat or unassigned BankTx, recording the agent identity in chargebackAllowedBy. Add GET /support/me to expose the agent's own user data, and chargebackAmount override on TransactionRefundDto. Expose chargebackAsset on the transaction DTO.
davidleomay
reviewed
Apr 16, 2026
…to compliance - Merge PUT /refund and PUT /chargeback into single PUT /refund endpoint - Move chargebackAmount from TransactionRefundDto to new ChargebackRefundDto - Remove GET /me endpoint, agent name is resolved from JWT server-side - Remove redundant processTransactionRefund, use unified method for all refund types
davidleomay
approved these changes
Apr 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
bf5f6956a→ddfe3f858): extendCreateSupportIssueSupportDtowith optionallimitRequestand route to COMPLIANCE department, mirroring the public createIssue endpoint.6da95caa2→723ee4c7a): newPOST /transaction/admin/:id/stopfor COMPLIANCE users to halt a BuyCrypto transaction (setsBuyCryptoStatus.STOPPED). Mapper exposes the newSTOPPEDtransaction state.a0da59e98): newPUT /support/transaction/:id/chargebackto release a refund for BuyCrypto / BuyFiat / unassigned BankTx, recording the agent identity (Compliance/<Vorname>.<Nachname>). AddsGET /support/me, exposeschargebackAsseton the transaction DTO and adds an optionalchargebackAmountoverride onTransactionRefundDto.Companion PRs
TransactionState.STOPPED)Test plan
npm run format:check✅npm run lint✅npm test✅ (66 suites, 927 tests passing)POST /transaction/admin/{id}/stopand the transaction state becomesStopped.GET /support/transaction/{id}/refundfollowed byPUT /support/transaction/{id}/chargebackfor BuyCrypto, BuyFiat and unassigned BankTx;chargebackAllowedByrecords the agent.GET /support/mereturns{ id, firstname, surname }of the calling COMPLIANCE user.POST /support/issue/...withlimitRequestpayload; department resolves to COMPLIANCE.