Realtime Payments
Request For Payment (RFP)
A Realtime Request For Payment (RFP) is a request sent by an originator to a receiver requesting funds be sent to the originator's account. Currently, permitted uses of Requests For Payment are limited by the FedNow Service and the Real Time Payments Network.
Request for Payment Workflow
RFPs have a workflow with two distinct steps:
- An originator will send an RFP to a recipient. This request contains information to help the recipient approve or reject the request, including information about the requester, requested amount, and identifiable request details.
- An RFP can be approved, rejected, or simply ignored. If an incoming RFP is approved, Column will initiate an outgoing Realtime transfer in accordance with the instructions specified in the incoming request. If ignored or rejected, no transfer will be sent.
Sending a Request for Payment
You can create an outgoing RFP via API, Create RFP. Outgoing RFPs may be accepted, rejected, or ignored (typically resulting in expiration) by the recipient.
Responding to a Request for Payment
When Column receives a RFP to a bank account on your platform, we will emit a webhook for realtime.incoming_request_for_payment.received which contains the Realtime RFP object. The object contains all information you need to accept or reject the request.
To accept the RFP, call our API Accept a Realtime RFP. Once you accept the RFP request, Column will automatically create an outgoing realtime transfer according to the instructions in the request and provide the realtime_transfer_id of the credit transfer to you.
If you do not want to honor the request, call our API Reject a Realtime RFP. This allows the ODFI to notify the requester the RFP was rejected by the recipient.
SLAs Around Responding to a RFP Request
Incoming RFPs will have expired_at set to a specific timestamp at which the requester considers the request expired. As such, incoming RFPs should be surfaced to customers immediately. RFPs may have a maximum expiration date of 365 days in the future.
Column sends outgoing RFPs with an expiration date set equal to 1 business day following the request origination date.
States and Events
When you initiate a Realtime RFP with Column, it goes through multiple state transitions. One of Column's most powerful features lies in our ability to notify you during each transition. This keeps you updated throughout the payment process and allows you to track the outcome of any transfer.
Below are the states and events that an outgoing Realtime RFP may go through.
realtime.outgoing_request_for_payment.initiatedrealtime.outgoing_request_for_payment.receivedrealtime.outgoing_request_for_payment.presentedrealtime.outgoing_request_for_payment.acceptedrealtime.outgoing_request_for_payment.completedrealtime.outgoing_request_for_payment.rejectedrealtime.outgoing_request_for_payment.expiredrealtime.outgoing_request_for_payment.canceledBelow are the states and events that an incoming Realtime RFP may go through.
realtime.incoming_request_for_payment.receivedrealtime.incoming_request_for_payment.acceptedrealtime.incoming_request_for_payment.completedrealtime.incoming_request_for_payment.rejectedrealtime.incoming_request_for_payment.expiredrealtime.incoming_request_for_payment.canceled