Added
July 29th 2026
1 day ago by Ran Grushkowsky
Added
[Deposit returns]
You can now return (reverse) a single deposit received toward a pay-in, without closing the pay-in itself.
- Added POST /payin/{'{user_token}'}/{'{payin_token}'}/deposit/{'{deposit_token}'}/return
A pay-in funded through a temporary bank account can receive multiple ACH or wire deposits over its lifetime, each with its owndeposit_token. This endpoint sends a single settled deposit back to the sender through the originating network, while POST /payin/{'{user_token}'}/{'{payin_token}'}/reverse closes the deposit account and stops future deposits. - The request requires a normalized
reason_code(e.g.UNEXPECTED_PAYMENT,DUPLICATE_DEPOSIT,SUSPECTED_FRAUD,SENDER_RECALL_REQUEST— 14 values in total); MassPay translates it to the network-specific code (NACHARxxfor ACH, ISO 20022 for wires), surfaced on the deposit asnetwork_return_code - A free-text
reasoncan be supplied for audit purposes, and is required whenreason_codeisOTHER fee_payercontrols who absorbs the return fee:CLIENT(default) debits the wallet for the deposit amount plus the fee and returns the full deposit;DEPOSITOR(wire deposits only) withholds the fee from the returned funds- Only deposits in
COMPLETEDstatus can be returned; on success the updated deposit is returned with statusRETURNED
Added
[Standalone bank account validation]
You can now validate a bank account against MassPay's verification providers independently of any payout.
- Added POST /payout/account/validate/{'{user_token}'}
Submit the account attributes to validate (BankAccountNumberis required; routing number, SWIFT, account type, and identification are also supported). The account holder name on record for the user is used for name matching. - If a finalized result is available within ~5 seconds (including cached results), it is returned synchronously with HTTP
200 - Otherwise HTTP
202is returned with statusPROCESSING, and the finalized result arrives via the newavs.completedwebhook event - Results include a
statusofMATCH,CLOSE_MATCH,NO_MATCH, orUNSUPPORTED, plusownership_verified, first/last name match outcomes, a 0–100match_score, and provider risk scoring (score_value,score_rag,score_description) when available
Validations are charged per validation based on your pricing configuration;UNSUPPORTEDresults are not charged.
Added
[avs.completed webhook event]
Added the avs.completed event type to the webhook catalog on GET /payout/account/webhooks and webhook registration.
Subscribe to receive finalized bank account validation results when a validation completes asynchronously.
Improved
[Deposit model]
Deposits now carry full return details, visible on pay-in status and history responses.
- New deposit status:
RETURNED - New fields:
return_reason_code,return_reason,network_return_code,return_fee,fee_payer, andreturned_at(all null unless the deposit was returned) - New
feefield reporting the fee applied to the deposit in fiat currency
