Skip to main content
You can customize the billing interval, amount, and duration when creating a payment plan. When you first charge a customer, they are automatically subscribed to the plan. Flutterwave will then manage future billing cycles and offer options to cancel or reactivate the subscription.

How Subscription Works

To use our subscription features, you will need to create a payment plan via our API or from your dashboard. Then, subscribe a customer to the plan by specifying the plan ID the first time you charge the customer. We’ll handle subsequent charges when the billing is due.
Subscriptions are tied to a customer’s email address and cannot be changed afterwards. This means that if a customer changes their email address on your app, you’ll need to cancel any existing subscription and create a new one with the new email.
On subsequent billing cycles, we’ll send the customer an email reminder before automatically charging them. If the charge fails, we’ll try 3 more times at 30-minute intervals.
If we attempt to charge a customer and it fails three consecutive times, we’ll cancel the user’s subscription.
We’ll send you a webhook notification whenever a charge succeeds or fails or when a subscription is cancelled. To learn more about payment plans, check out our Help Center.

Creating a Payment Plan

To create a payment plan, you’ll need to specify these details: Once you’ve got these details, call our create payment plans endpoint to create a new payment plan. Here’s an example using our backend SDKs:
And you’ll get a response like this:

Adding a Customer to a Subscription

To add a customer to a subscription, specify the payment plan ID when charging the customer for the first time. This works regardless of how you’re charging your customers—Inline, Standard, HTML checkout, or direct card charge.
The currency you specify when charging the customer must be the same as the currency you specified when creating the payment plan.
Card Payments OnlyIf you include a payment plan when initiating a payment, the payment method will automatically be fixed to card.
After the first successful payment, Flutterwave will charge the card subsequently based on the interval set for the payment plan.

Dynamic Amounts

When you want to charge customers different amounts on the same plan, or charge a different amount for the first month (for example, as a launch promo), you can do this by setting the amount when charging the customer. Here are your options:
  • To charge a different amount per customer: Don’t set amount when creating the payment plan. The amount you set when charging the customer will be used for that customer’s subscription.
  • To charge the customer a different amount the first time, and a standard amount for subsequent payments: Specify the standard amount when creating the payment plan, and specify the custom amount when charging the customer. We’ll charge the customer the custom amount for the first payment, and the standard amount on the plan for subsequent payments.

Cancelling and Activating

Cancelling a subscription can happen in one of three ways:
  1. A customer can cancel their subscription using the cancellation link in our email reminders. You can disable this in the Account Settings page of your dashboard.
  2. You can cancel an individual customer’s subscription, either from the Payment Plans page on your dashboard or via the cancel subscription endpoint.
  3. You can cancel an entire payment plan, which will cancel all associated subscriptions. You can also do this from the Payment Plans page on your dashboard or via the cancel payment plan endpoint.
Cancelling a subscription will tigger a webhook event. Cancelled subscriptions and payment plans can be activated later using the activate subscription and update payment plan endpoints respectively.

Webhooks

Each time we try to charge the customer’s card, we’ll send a notification to your webhook URL containing the details and result of the charge. We’ll also send a webhook when the subscription is cancelled. Here are some sample webhooks:

Learn More

To learn more about what you can do with payment plans on Flutterwave, check out our reference docs. If you have any questions, reach out to us.