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 a RFP to a recipient. This request contains information to help the recipient approve or reject the request including information of the requester, requested amount, and identifiable request details.
- A 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.
Stage | Webhook Event | Description |
---|---|---|
Initiated | realtime.outgoing_request_for_payment.initiated | Column will submit your realtime RFP to the Federal Reserve or The Clearing House. |
Received | realtime.outgoing_request_for_payment.received | The RDFI has received your realtime RFP. |
Presented | realtime.outgoing_request_for_payment.presented | Your realtime RFP has been presented to the recipient. |
Accepted | realtime.outgoing_request_for_payment.accepted | The recipient of your realtime RFP has accepted the RFP. |
Completed | realtime.outgoing_request_for_payment.completed | Your realtime RFP has been completed and funds are available to you at Column. |
Rejected | realtime.outgoing_request_for_payment.rejected | Your realtime RFP has been rejected. |
Expired | realtime.outgoing_request_for_payment.expired | Your realtime RFP has expired without approval or rejection from the recipient. |
Canceled | realtime.outgoing_request_for_payment.canceled | Your realtime RFP has been canceled. |
Below are the states and events that an incoming Realtime RFP may go through.
Stage | Webhook Event | Description |
---|---|---|
Received | realtime.incoming_request_for_payment.received | You have received an incoming realtime RFP. |
Accepted | realtime.incoming_request_for_payment.accepted | You have accepted an incoming realtime RFP. |
Completed | realtime.incoming_request_for_payment.completed | An incoming realtime RFP has been accepted and funds have been withdrawn from your account. |
Rejected | realtime.incoming_request_for_payment.rejected | You have rejected an incoming realtime RFP. |
Expired | realtime.incoming_request_for_payment.expired | An incoming realtime RFP has expired without your explicit acceptance or rejection. |
Canceled | realtime.incoming_request_for_payment.canceled | An incoming realtime realtime RFP has been canceled by the originator. |