Realtime Returns

Column allows you to return incoming Realtime transfers if you receive a transfer in error. You can use our Realtime Return API to initiate a new outgoing Realtime transfer to send funds back to the originating financial institution that sent the transfer.

When you return an incoming Realtime transfer, the status of the original transfer is not changed and the return transfer follows its own lifecycle as if it were an ordinary outgoing Realtime transfer. See Realtime Notifications and States for more information.

Return Reasons

You can return an incoming Realtime transfer at any time after receipt. We currently only allow incoming Realtime returns for the following reasons:

  • The beneficiary account number is invalid
  • The beneficiary information in the Realtime transfer does not match the corresponding information on the account
  • The beneficiary is refusing the Realtime transfer
  • The beneficiary is reversing the Realtime transfer as per the sender's request

If there is a an additional reason you are interested in supporting, please email us at developers@column.com.

Linking the Original Transfer and Reversal Transfer

The return_pair_transfer_id field of the realtime_transfer object is used to link the original transfer and the reversal transfer as:

original_transfer.return_pair_transfer_id = reversal_transfer.id
reversal_transfer.return_pair_transfer_id = original_transfer.id

The original_transfer.return_pair_transfer_id is finalized once the return_transfer.status is completed and no other reversals on original_transfer will be permitted. Further, another reversal cannot be initiated on original_transfer while return_transfer is in progress. A new reversal can only be initiated if and when return_transfer.status becomes rejected.

Return Requests on Incoming Transfers

It's possible Column receives a return request from the Realtime transfer originator on an incoming transfer. Column exposes Realtime return requests to you via API so that you may accept or reject a return request.

You'll receive a return request with event realtime.incoming_return_request.pending when Column receives the return request. You may then accept or reject the request. If you accept a request, Column will create a new outgoing transfer linked to the original incoming transfer.

When rejecting a Realtime Return Request, you can provide a reason to explain why the return request is being rejected. The following reasons are supported:

  • beneficiary_account_closed - Account is closed
  • non_sufficient_funds - Amount of funds available to cover specified message amount is insufficient
  • funds_already_returned - Already returned
  • rejected_by_beneficiary - Rejected by the beneficiary
  • legal_decision - request rejected due to regulatory or legal rules
  • no_response_from_beneficiary - Return request rejected due to no response from the beneficiary

Additionally, you can provide a comment to explain why the return request is being rejected.

Only Incoming Realtime Transfers May Be Returned

We currently only support returns and return requests on incoming Realtime transfers. If you’d like to recall an outgoing Realtime transfer, contact our Payment Operations team at paymentops@column.com.