Skip to content
Payments & invoicing6 min read

How do I charge subscriptions or recurring payments on my website?

A practical guide to monthly and yearly subscriptions: choosing a gateway with recurring billing, plans, renewals, failed cards and cancellation.

Subscriptions turn one-off sales into steady income: a monthly coaching plan, a yearly membership, a weekly meal box. The technical side is smaller than people expect, but a few decisions at the start save a lot of pain later.

This guide walks through the steps for sellers in the Gulf, where card-on-file rules, 3-D Secure and local cards add a few details worth knowing.

Pick a gateway that supports tokenised recurring billing, define your plans, save the customer's card with consent, and let the gateway renew it. Your site only needs to react to payment results and handle cancellations.

Choose a gateway that really supports recurring billing

Not every gateway or card method can be charged automatically. Check that your provider offers saved cards or tokens for repeat charges, and ask which local cards work. Providers such as Stripe, Tap, HyperPay, Moyasar and PayTabs publish their recurring-billing options, and these change, so confirm against their current terms.

Some methods cannot be renewed automatically. Where that is the case, send a reminder with a payment link before each period instead.

Set up the plan clearly

Before building anything, write down these decisions:

  • Plan names, price in SAR or AED, and billing period (monthly or yearly).
  • Whether there is a free trial and what happens when it ends.
  • Whether the customer can upgrade, downgrade or pause.
  • What access stops when a payment fails, and after how many days.
  • VAT: show whether the price includes it.

The customer journey

At sign-up the customer pays the first amount with full 3-D Secure and explicitly agrees to future charges. The gateway stores a token, never the card number. Each renewal then runs on the gateway's schedule, and it notifies your site that it succeeded or failed.

Your site should handle three events: payment succeeded (extend access, send a receipt), payment failed (email the customer, retry a few times, then pause), and cancelled (keep access until the period ends).

Make cancelling easy

Put a clear cancel button in the account page and send a reminder email a few days before each renewal. It lowers disputes and chargebacks, and it is expected by consumers and often by regulators.

In Uttra you can ask: "Add three subscription plans with monthly and yearly pricing, a members area, a cancel button, and a renewal reminder email." Preview it, test with the gateway's test cards, then publish on your own domain.

Common questions

It depends on the provider and the issuing bank. Ask your gateway about current support before promising it to customers.

Notify the customer, retry a few times over several days, then pause access until they update their card.

No, and you should not. The gateway stores a token and you only keep that reference.

Try it on your own project

Describe what you want in your own words and watch your site or system get built — then change it by chatting.

Start free