Return Requests
Following the Fed's adoption of Fedwire ISO 20022, your platform now has the ability to manage incoming and outgoing wire return requests. Wire return requests are always associated to an existing wire that was either sent already or has been previously received.
Wire Return Request Examples
Creating a wire return request
Your platform, Marie's Bakery, sent Domestic Wire A to Betty Bank, and now wishes to request Betty Bank to return the funds sent in Domestic Wire A.
The sequence of events for this use case are:
- Marie's Bakery sent an outgoing Domestic Wire A to Betty Bank
- After the funds have been sent, Marie's Bakery wishes to ask Betty Bank to send the funds back to Marie's Bakery's platform at Column
- Marie's Bakery uses Column's create a wire return request API to send outgoing Wire Return Request A using the wire ID of the original wire (Domestic Wire A) sent to Betty Bank.
Outgoing wire return requests are not guaranteed to be accepted by the receiving FI. Using the example above, Betty Bank is not obliged to approve the wire return request sent by Marie's Bakery.
If your outgoing wire return request is updated, a wire.outgoing_return_request.approved
webhook event will be sent to your platform. Similarly, if your outgoing wire return request is rejected, a wire.outgoing_return_request.rejected
webhook event will be sent to your platform. Read more on the wire return request webhook events.
Accepting a wire return request
Your platform, Marie's Bakery, received Wire Return Request B from Betty Bank asking you to return Domestic Wire B, which was previously sent from Betty Bank to your platform. You wish to approve this request to send the funds received in Domestic Wire B back to Betty Bank.
The sequence of events for this use case are:
- Marie's Bakery receives Domestic Wire B from Betty Bank
- Marie's Bakery receives Wire Return Request B from Betty Bank
- Marie's Bakery uses Column's approve a wire return request API to approve Wire Return Request B using the
wire_return_request_id
Note: once Wire Return Request B is approved using the endpoint above, an outgoing wire is automatically created using the details received in Wire Return Request B.
Rejecting a wire return request
Your platform, Marie's Bakery, received an incoming wire return request from Betty Bank asking you to return Domestic Wire C, which was previously sent from Betty Bank to your platform. You wish to reject the request.
The sequence of events for this use case are:
- Marie's Bakery receives Domestic Wire C from Betty Bank
- Marie's Bakery receives Wire Return Request C from Betty Bank
- Marie's Bakery uses Column's reject a wire return request API to reject Wire Return Request C using the
wire_return_request_id
and specifying areject_reason
When rejecting a Wire Return Request, you must provide a return_reason
to explain why the return request is being rejected. The following return reasons are supported:
beneficiary_account_closed
- Account is closednon_sufficient_funds
- Amount of funds available to cover specified message amount is insufficientfunds_already_returned
- Already returnedrejected_by_beneficiary
- Rejected by the beneficiarylegal_decision
- Request rejected due to regulatory or legal rulesno_response_from_beneficiary
- Return request rejected due to no response from the beneficiary
How To Test Approving / Rejecting an Incoming Wire Return Request
Approve a Wire Return Request
- Use our simulation API to simulate receiving a wire transfer. You will need a
destination_account_number
, anamount
, and thecurrency_code
- Use our simulation API to simulate receiving a wire return request using the
wire_transfer_id
from #1 - Use the approve a wire return request API using the
wire_return_request_id
generated in #2 to approve the wire return request
Reject a Wire Return Request
- Use our simulation API to simulate receiving a wire transfer. You will need a
destination_account_number
, anamount
, and thecurrency_code
- Use our simulation API to simulate receiving a wire return request using the
wire_transfer_id
from #1 - Use the reject a wire return request API using the
wire_return_request_id
generated in #2 and include areject_reason
to reject the wire return request
Return Reasons
The wire return can be sent at any time after the original transfer was received. We currently only allow incoming wire returns for the following reasons:
- the beneficiary account number is incorrect
- the amount of the transfer is incorrect or invalid
- the originator requested the return
- the transfer was a duplicate
- the transfer was fraudulent
- the transfer couldn't be applied due to technology issue
- the transfer was not justified
Currently, these are the only reasons supported for initiating a wire return request. If there is a reason you feel should be supported that is outside the scope of the reasons above please email us at developers@column.com to see if it makes sense to add.