Reverse (close) a payin by payin token
Changed onThis POST endpoint reverses, or closes, a pay-in transaction for the user and payin token provided. <br> Both the effect and the conditions depend on how the pay-in was funded: <ul><li><b>Temporary bank account (ACH/wire) or issued crypto deposit wallet:</b> reversing <i>closes the deposit account</i> so that it accepts no further deposits. This is permitted even after deposits have already settled — deposits already received are unaffected and remain recorded.</li><li><b>Card authorization:</b> reversing <i>releases the card authorization</i>. This is only permitted while the authorization has <i>not</i> been captured. A captured authorization represents settled funds and cannot be reversed; use the refund flow instead.</li></ul> A pay-in that has already been reversed, or that is in a non-reversible state for its funding type, returns a 400. <br> On success the pay-in transitions to CANCELLED and the updated pay-in object is returned.
Request
- Base URLhttps://api.masspay.io/v1.0.0
- Auth
- API key in header Authorization
- or API key in header x-api-key
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Headers
Unique key to prevent duplicate processing
Request body
Example request
{
"reason": "Customer requested cancellation before depositing funds"
}Response
OK
Example response
{
"payin_token": "payin_ba4275f2-bae1-488d-9d6f-20af1cd83574",
"funding_code": "CASH-9F2J7L",
"destination_token": "clnt_wlt_fd407907-4913-4a99-b653-5e868743a692",
"payment_reference": "REF-2025-04823",
"instructions": "Commit payin to finalize transaction",
"source_amount": 100.5,
"destination_amount": 100.5,
"fee": 2.99,
"source_currency_code": "USD",
"destination_currency_code": "USD",
"network_response": {
"action_code": "00",
"approval_code": "123456",
"address_verification": "Y",
"cvv2_result_code": "M",
"cavv_result_code": "2",
"ani_result": "MATCH",
"account_number": "1234567890",
"routing_number": "021000021",
"swift_bic": "CSRVUS33XXX",
"bank_name": "Cross River Bank",
"bank_address": "885 Teaneck Road, Teaneck, NJ 07666 USA",
"name_on_account": "Jane Doe",
"network_id": "VISA",
"response_reason_code": "00"
},
"deposits": [
{
"token": "payin_dep_1f7c9a2e-3b41-4c8d-9e5f-8a6b2c4d7e90",
"deposit_amount": 0.0025,
"deposit_currency": "BTC",
"fiat_amount": 100.5,
"fiat_currency": "USD",
"metadata": {
"method": "wire",
"account": "5500312884",
"routing": "123456780",
"name": "MARIA RIVERA",
"imad": "20260914L1B7761R001532",
"omad": "20260914FTB2007301846209141412FT01",
"sender_reference": "8812045371XK",
"beneficiary_reference": "INV 2026-0914-17",
"originator_to_beneficiary": [
"ORDER 48213 ACME WIDGETS"
]
},
"return_reason_code": "REFUSED_BY_BENEFICIARY",
"network_return_code": "R23",
"return_fee": 15
}
],
"error": "Insufficient funds or limit exceeded [51] Not sufficient funds"
}Changes
- info
endpoint added
- info