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.

Create a tokenized charge

Charge a saved card or bank account token. Read the card tokenization or direct debit guide before you integrate.

Last updated 13 September 2026

Create a tokenized charge with a card or bank account token. We recommend that you read our overview before you proceed with your integration.

post

https://api.flutterwave.com/v3/tokenized-charges

authorization string required

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

FILL IN ALL REQUIRED FIELDS

token string required
This is the card or bank account token. Refer to the Card tokenization or Direct debit (E-mandate) section of the documentation to learn more about retrieving the token.

email string required
This is the email address of the customer. Note: This has to be the exact email address passed during the initial charge.

currency string required
This is the specified currency to charge the card in, It can be NGN, GHS, KES, UGX, TZS, USD etc.

country string required
This is the ISO country code of the merchant e.g. NG, GH, KE etc.

amount int 32 required
This is the amount to be charged

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

redirect_url string required
This is the url your customer's will be redirected to after completing payment.

first_name string
This is the first name of the card holder or the customer

last_name string
This is the last name of the card holder or the customer

ip number
IP - Internet Protocol. This represents the IP address of where the transaction is being carried out.

narration string
This is a custom description added by the merchant

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

payment_plan int 32
This is the ID of the plan you want to subscribe to. It is returned in the call to create a payment plan as data.id

subaccounts array of objects
This is an array of objects containing the subaccount IDs to split the payment into. Subaccount ID's are returned in the call to create a subaccount as data.subaccount_id

FILL IN ALL REQUIRED FIELDS

id string
This is the unique Id returned in the call to create a subaccount as data.subaccount_id

preauthorize boolean
Pass this value as true to preauthorize a tokenized charge

FILL IN ALL REQUIRED FIELDS

status string

message string

data object

FILL IN ALL REQUIRED FIELDS

id integer

tx_ref string

flw_ref string

redirect_url string

device_fingerprint string

amount integer

charged_amount integer

app_fee integer

merchant_fee integer

processor_response string

auth_model string

currency string

ip string

narration string

status string

payment_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

redirect string

FILL IN ALL REQUIRED FIELDS

status string

message string

data 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