Approval RequiredThis feature is available only on request. To gain access to the feature, please send an email to hi@flutterwavego.com requesting approval.
Key Concepts
Before we dive into how to use Card on File (COF), it’s important to understand some key concepts:- 3D Secure (3DS): A security protocol that redirects customers to their bank’s authentication page during online payments. It adds an extra layer of protection by verifying the customer’s identity to prevent fraud.
- Customer Initiated Transaction (CIT): This happens when a customer provides their card details during an initial payment and consents to store them for future transactions. The payment request typically includes a special parameter (e.g.,
is_unscheduledset totrue) to indicate this consent. - Merchant Initiated Transaction (MIT): Any subsequent payment made by the merchant based on the customer’s initial consent. MITs don’t require the customer to take further action.
agreement_id: A unique reference generated by Flutterwave during the initial CIT, used by the merchant to manage future MITs.trace_id: A reference generated by the card scheme during the initial CIT. It can be used across multiple platforms and processors that support COF (not just Flutterwave).
Handling a Customer-Initiated Transaction (CIT)
To set up recurring payments with COF, addis_unscheduled: true to the first customer charge request. For one-time tokenized charges, include the correct agreement_id linked to the card token.
Handling a Merchant-Initiated Transaction (MIT)
Direct Charge
To initiate an MIT using the direct charge method:- First, retrieve the customer’s
trace_idfrom the initial CIT. - Next, initiate the charge by sending a tokenized charge request with the
trace_idand theis_unscheduledflag set totrue.
Direct Charge Payload (cURL)
NOAUTH method based on the trace_id.
After processing the request, the COF information (with the trace_id) can be retrieved from the charge response, the transaction verification service, or webhooks will include the COF information. Samples can be found below:
Single Tokenized Charge
To initiate recurring MIT payments using the Single Tokenized Charge method:- First, retrieve the customer’s
tokenandtrace_idfrom the initial CIT step completed above. - Initiate the charge by sending a tokenized charge request with the
token,trace_id, and theis_unscheduledflag set to true.
Single Tokenized Charge (cURL)
NOAUTH method based on the trace_id.
After processing, the tokenized charge response, transaction verification service, or webhooks will include the COF information with the trace_id.