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:

  1. Marie's Bakery sent an outgoing Domestic Wire A to Betty Bank
  2. 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
  3. 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:

  1. Marie's Bakery receives Domestic Wire B from Betty Bank
  2. Marie's Bakery receives Wire Return Request B from Betty Bank
  3. 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:

  1. Marie's Bakery receives Domestic Wire C from Betty Bank
  2. Marie's Bakery receives Wire Return Request C from Betty Bank
  3. 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 a reject_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 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

How To Test Approving / Rejecting an Incoming Wire Return Request

Approve a Wire Return Request

  1. Use our simulation API to simulate receiving a wire transfer. You will need a destination_account_number, an amount, and the currency_code
  2. Use our simulation API to simulate receiving a wire return request using the wire_transfer_id from #1
  3. 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

  1. Use our simulation API to simulate receiving a wire transfer. You will need a destination_account_number, an amount, and the currency_code
  2. Use our simulation API to simulate receiving a wire return request using the wire_transfer_id from #1
  3. Use the reject a wire return request API using the wire_return_request_id generated in #2 and include a reject_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.