Cash-in and cash-out callback routes are adapter-only. In this release, the supplied mock provider is the supported way to exercise them. A client application must not post a callback or claim a provider settlement result.
Send a cash-out in two stages
A cash-out is intentionally split into initiation and processing.- Call Initiate transfer with a new
X-Idempotencyvalue. The plugin validates the request and creates a transfer initiation. - Call Process transfer for that initiation. The plugin performs the required Midaz debit and submits work to the mock provider.
- Read the transfer with Get transfer. Processing acceptance is not a final payment result.
- Let the mock provider deliver the terminal callback. Read again until the transfer is completed, rejected, or otherwise terminal under the response contract.
Receive a cash-in through the adapter boundary
The adapter receives the external-side event, calls the plugin’s internal approval and settlement callbacks, and the plugin validates and credits the destination through Midaz. Your application observes this flow through public transfer reads; it does not invoke approval or settlement callbacks. A cash-in that cannot be approved or settled is not a client-side retry decision. Inspect the public operation state and the mock test evidence before taking another action.Create and observe a refund
Use Create refund against an eligible transfer, then read it through Get refund. A refund follows its own asynchronous lifecycle. Do not mark it complete until the plugin records the terminal provider outcome and the matching Midaz effect.Use the MED 2.0 Block Balancer
The Block Balancer holds funds for a contested transaction before a refund decision. It is a controlled operational flow, not a shortcut for ordinary transfers.- Create a hold for the contested transaction. The plugin places a pending Midaz hold from the available balance into the configured blocking account. A replay of the same
request_refreturns the existing hold. - If the case ends before settlement, release a
PENDINGhold. A hold already settling cannot be released. - Start Phase 1 settlement for one hold or an eligible group. The hold becomes
SETTLING; the branch either returns the pending hold and submits a refund or commits the hold, handles any surplus, and submits the required payment. - Complete Phase 2 only from the linked operation’s observed outcome. A success makes the hold
SETTLED; a failure compensates it toPENDING. - Use manual close, surplus return, and audit functions only through authorized operational controls. They are not normal application endpoints.

