Commits the per-withdrawal redemptions of a Metcap ACH-credit batch against its single settlement bank debit.
Callers pass the complete filed set — every redemption for the
batch's withdrawals, any status. Metcap debits the batch gross, so the
amount check sums the whole set, including an in-window return (its
return posts as a separate out-and-back credit) and rows from a prior
partial run, so retries converge. The reconciliation record
(REDEMPTION_IDS / WITHDRAWAL_IDS) is written last and covers the
whole filed set — so a retry after an all-committed-but-unrecorded run
still converges.
Commits run sequentially: every redemption debits the same pending ledger account, so we avoid concurrent on-chain movements from one source.
Reconciles a pending redemption against a posted bank transaction: validates amounts, commits the redemption workflow, and records the reconciliation on the bank transaction.
A withdrawal's redemption burns the source amount net of fees, which is what leaves the bank, so its debit is checked against the quote's
sourceAmountAfterFees; a standalone redemption against its own amount.Lives in
withdrawal-services(notredemption-services) because the logic requiresBankTransactionService, and a direct dependency fromredemption-servicesontobank-transaction-serviceswould close a package cycle viavirtual-account-services.