BTI-16: add Split Payments (Marketplaces) solution#17
Merged
Conversation
- add MarketplacesBuilder with split, transfer, refund_supplementary and manual_transfer - register "marketplaces" solution in SolutionMethodFactory - add combine() to BaseBuilder so a supplementary service rides in one ServiceList - add CombinableService model returned by split/refund_supplementary - split and refund_supplementary combine into a payment/refund; transfer and manual_transfer post standalone DataRequests - map grouped Marketplace/Seller split params from a single spec dict - add unit and feature tests asserting the exact wire body per request type - add examples/marketplaces.py demoing all six request types - document Split Payments usage in README
cb50179 to
0ed5bd4
Compare
DjellzeBllaca
approved these changes
Jul 15, 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.
Adds the Split Payments (
Marketplaces) service to the SDK, following the pattern used by the official PHP and Node SDKs.What changed
split,transfer(I/II),refund_supplementary(I/II), andmanual_transfer.combine()pattern —split/refund_supplementarybuild a supplementary service that is combined into a payment/refund (payments.create_payment("ideal", {...}).combine(mp).pay()/.refund());transfer/manual_transferpost standalone DataRequests.combine()+CombinableServiceto the builder base. The empty default keeps every existing builder's output byte-identical (no behavior change for other payment methods).examples/marketplaces.pyand a README section.Verification
Marketplaces/Splitshape (rejects only placeholder account IDs).transfer/refund_supplementary/manual_transferare covered by mocked tests only. They still need real Split Payments account data (valid seller GUIDs + a live split transaction key) to verify end-to-end against the gateway. Their/json/DataRequestendpoint matches the PHP/Node SDKs but is not yet live-proven.