AI agents: this site is available as Markdown at /llms.txt. Each page has a Markdown version at its URL with a .md suffix, and the full API is described in /api/v3/openapi.json.

Card

Collect card payments with Flutterwave.
We recommend you read the method overview before you proceed.

Last updated 13 September 2026

Collect card payments with Flutterwave. We recommend you read the method overview before you proceed.

post

https://api.flutterwave.com/v3/charges?type=card

authorization string required

Pass your secret key as a bearer token in the request header to authorize this call

FILL IN ALL REQUIRED FIELDS

amount int 32 required
This is the amount to be charged.

currency string required
This is the specified currency to charge in.

card_number string required
This is the number on the cardholders card. E.g. 5399 6701 2349 0229.

cvv string required
Card security code. This is 3/4 digit code at the back of the customers card, used for web payments.

expiry_month int 32 required
Two-digit number representing the card's expiration month.

expiry_year int 32 required
Two digit number representing the card's expiration year

email string required
This is the email address of the customer

tx_ref string required
This is a unique reference peculiar to the transaction being carried out.

authorization object
This is an object that contains the authorization details of the card you want to charge. The authorization instructions for card charges are returned in the initiate charge call as meta.authorization

FILL IN ALL REQUIRED FIELDS

mode string
This is the auth model of the card to use when validating, it is returned in the initiate charge call as authorization.mode

pin int 32
This is the card's pin. Required when the suggested auth mode is PIN

city string
This is the city in the card's billing details. It is required when the suggested auth mode is avs_noauth

address string
This is the cards billing address. It is required when the suggested auth mode is avs_noauth

state string
This is the card issuing state. It is required when the suggested auth mode is avs_noauth

country string
This is the cards issuing country. It is required when the suggested auth mode is avs_noauth

zipcode string
This is cards billing address zipcod. It is required when the suggested auth mode is avs_noauth

preauthorize boolean
This should be set to true for preauthoize card transactions

fullname string
This is the name of the customer.

card_holder_name string
The full name of the cardholder. This is only required for charges on AMEX cards or Precium cards.

phone_number string
The phone number linked to the customer's bank account. This is required for AMEX card charge.

payment_plan string
This is the id of a previously created payment plan needed to add a card user to the payment plan.

redirect_url string
This is a url you provide, we redirect to it after the customer completes payment and append the response to it as query parameters. (3DSecure only)

meta object
This is used to include additional payment information

FILL IN ALL REQUIRED FIELDS

flightID string
This could be the extra information you want to pass

sideNote string
This could be any message you'd like to associate with this call

device_fingerprint string
This is the fingerprint for the device being used. It can be generated using a library on whatever platform is being used

client_ip string
IP - Internet Protocol. This represents the current IP address of the customer carrying out the transaction

eci string
This is the Electronic Commerce Indicator (ECI) value provided by the issuer's Access Control Server (ACS) to indicate the results of the attempt to authenticate the payer. This is required for external 3DS transactions.

a_authenticationtoken string required
This represents the base64 encoded value generated by the card issuer that is returned in the authentication response message and its a required fields from the card schemes documentation.

a_amount string
The amount for which the payer authentication has been performed. This is required for external 3DS transactions.

a_version string
EMV 3-D Secure protocol e.g. 2.1.0. This is required for external 3DS transactions.

a_transactionid string
A unique transaction identifier assigned by the Access Control Server to identify the 3DS transaction. This is required for external 3DS transactions.

a_transactionstatus string
Pass Y to indicate that the authorization was successful. Other options include N, U, A, R. It is recommended that you only attempt to charge for successful authorization. This is required for external 3DS transactions.

a_statusreasoncode string required
If a_transactionstatus Y then this becomes optional. This is required for external 3DS transactions.

is_custom_3ds_enabled boolean required
This indicates the use of a custom 3DS provider and as a result the eci, a_authentication, a_version, a_transactionid, a_transactionstatus, a_amount, a_time and a_statusreasoncode are taken into consideration. This is required for external 3DS transactions.

a_time string
It indicates the date and time of the payer's authentication and the card scheme makes use of UTC format. This is required for external 3DS transactions.

FILL IN ALL REQUIRED FIELDS

status string

message string

data object

FILL IN ALL REQUIRED FIELDS

id integer

tx_ref string

flw_ref string

device_fingerprint string

amount integer

charged_amount integer

app_fee number

merchant_fee integer

processor_response string

auth_model string

currency string

ip string

narration string

status string

auth_url string

payment_type string

fraud_status string

charge_type string

created_at string

account_id integer

customer object

FILL IN ALL REQUIRED FIELDS

id integer

phone_number string

name string

email string

created_at string

card object

FILL IN ALL REQUIRED FIELDS

first_6digits string

last_4digits string

issuer string

country string

type string

expiry string

meta object

FILL IN ALL REQUIRED FIELDS

authorization object

FILL IN ALL REQUIRED FIELDS

mode string

endpoint string

Shell

1
1


FL.AI

Answers from the Flutterwave docs

Hi, I’m FL.AI

Ask anything about Flutterwave’s APIs, guides and coverage.

FL.AI can make mistakes. Check important details in the docs.

Get API Keys