feat: sub-accounts, limit profiles, and refunds#15
Merged
Merged
Conversation
…tionsClient - Implemented methods for creating, retrieving, updating limit profiles and reserved accounts with limits. - Added support for creating, retrieving, updating, and deleting sub-accounts. - Updated API paths for limit profiles and sub-accounts. - Enhanced error handling for void responses in MonnifyHttpClientBase. - Added integration tests for limit profiles and sub-account functionalities.
…ew endpoints and models
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
Adds 12 new methods to
IMonnifyCollectionsClient, completing three previously planned API categories. All endpoints are unit-tested and sandbox-verified against the real API.Sub-accounts (
/api/v1/sub-accounts)CreateSubAccountsAsync— POST with array body, returns array. Requires RM approval for live.GetSubAccountsAsync— returns a flat array (not paged)UpdateSubAccountAsync—subAccountCodegoes in the PUT body, not the pathDeleteSubAccountAsync— noresponseBodyin the response; handled via newSendVoidAsynconMonnifyHttpClientBaseLimit profiles (
/api/v1/limit-profile/) + reserved accounts with limitCreateLimitProfileAsync,GetLimitProfilesAsync,UpdateLimitProfileAsyncCreateReservedAccountWithLimitAsync— separate from the existingCreateReservedAccountAsync(different path and version); requires alimitProfileCodeUpdateReservedAccountLimitAsync— attaches or replaces the limit profile on an existing reserved accountRefunds (
/api/v1/refunds)InitiateRefundAsync— optional destination fields use[JsonIgnore(WhenWritingNull)]so they're omitted from the body rather than sent asnull. Requires RM approval for live.GetRefundAsync,GetRefundsAsyncreference,completedOn, destination account name/bank name,currencyCode) — all added to theRefundmodelTest plan
FakeHttpMessageHandler(no network)InitiateRefundAsynccovered by unit tests; integration test requires a real completed payment reference to refunddotnet buildclean,dotnet format --verify-no-changesclean, full test suite passes