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:

  1. 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.
  2. 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.

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 RFP has been canceled by the originator.