Skip to contentTalk to us
Payments & commerce

Subscription billing in the Gulf: plans, renewals and failed payments

How to add monthly or yearly subscriptions to your app in the Gulf: plan design, saved cards, automatic renewals, failed payments, invoices and VAT.

Fanann Team9 min read
WhatsApp
Quick answer

To add recurring subscriptions to your app you need a payment gateway that saves the card as a secure token and supports repeat charges, a subscriptions table that tracks each customer's status, and logic that renews on schedule and retries failed payments with a grace period and customer reminders. Issue a tax invoice on every renewal, and confirm your gateway supports recurring charges on mada cards before you build around it.

People look for this as
  • how to add subscriptions to my app
  • recurring payments saudi arabia payment gateway
  • how to handle failed subscription payments
  • subscription billing for gym app
  • does mada support recurring payments
  • how to build a subscription app without coding

How do you add recurring subscriptions to your app?

To add recurring subscriptions to your app you need four pieces working together: a payment gateway that saves the customer's card as a secure token and lets you charge it later, a subscriptions table in your database that knows each subscriber's status and renewal date, a scheduled job that runs renewals and retries failures, and messages that keep the customer informed before and after each charge. A payment button alone is not a subscription.

The subscription model fits a lot of Gulf ideas: a gym with monthly memberships, an Arabic course platform, a Quran memorization app with a family plan, a SaaS tool for appointment management, or a specialty coffee box delivered every month. What they share is recurring revenue, and the fact that losing one payment to an expired card can mean losing a whole customer if you handle it badly.

This guide walks from plan design to failed-payment recovery and invoices. If you are adding payments for the first time, start with how to add payments to your app and come back here.

A subscription is a promise renewed every month, and every renewal is a chance for the customer to stay or leave.

How should you design plans before writing any code?

The classic mistake is starting with technology before the offer is settled. Write it down first: what does a subscriber get? How do the plans differ? What happens when someone upgrades or downgrades mid-month? These answers shape the entire database.

DecisionCommon optionsPractical advice
Billing periodMonthly, quarterly, yearlyOffer yearly with a clear discount; fewer renewals means fewer chances to fail
Free trialNone, limited days, discounted first monthIf you take the card upfront, show the first charge date explicitly
Upgrades and downgradesImmediate with proration, or from next renewalSimplest start: upgrades are immediate, downgrades apply next cycle
Plan limitsUsers, quotas, featuresStore limits in the plans table, not inside the code
PauseAllowed or notUseful for gyms and courses during Ramadan or the summer
CurrencySAR, AED or severalFix each plan's currency; do not convert on the fly

What does your database need to store?

Subscription data is simple if you think in clear tables. In plain words: plans (name, price, period, limits), subscriptions (who, which plan, status, current period start and end, the card token held by the gateway), invoices (amount, VAT, status, gateway transaction id) and payment attempts (date, result, decline reason).

The most important field is status. Make it a fixed list: trialing, active, past due, paused, cancels at period end, ended. Every screen in the app asks one question: does this user's status allow this feature? For tables and relations in depth, read database design for non-developers.

How does automatic renewal work, step by step?

  1. 1
    First payment

    The customer pays the first time, usually with 3D Secure, and you ask the gateway to save the card for recurring charges with the customer's explicit consent.

  2. 2
    Server-side confirmation

    Do not activate the subscription when the browser returns; activate it when the gateway's webhook confirms the payment succeeded.

  3. 3
    Pre-renewal reminder

    Send a message a few days before the charge, especially for yearly plans: amount, date and a link to manage or cancel.

  4. 4
    Scheduled job

    A daily job finds subscriptions whose period ends today and asks the gateway to charge the saved token.

  5. 5
    Success

    Extend the period, issue the tax invoice and send it with a short thank-you message.

  6. 6
    Failure

    Move the subscription to past due and start the retry plan described in the next section.

One Gulf-specific point: recurring support varies by gateway and card type. Some gateways handle saved-card charges on international cards easily, while recurring charges on mada cards or through Apple Pay may need special setup or may not work the same way. Get your gateway's answer in writing before you promise customers automatic renewal on every method.

What should you do when a renewal payment fails?

Failed payments are a normal part of any subscription business: an expired card, insufficient balance, a monthly limit, or a bank declining for security reasons. The difference between an app that bleeds customers and one that keeps them is a deliberate recovery plan, often called dunning.

  1. Grace period: keep the service running for a limited number of days instead of cutting it immediately.
  2. Spaced retries: retry after a day, then after a few more days, not ten times in an hour; rapid retries can look suspicious to banks.
  3. A clear message: send a direct link to update the card by WhatsApp and email, without blame or threats.
  4. Smart timing: many Gulf salaries land at month end, so a retry after payday may succeed where an earlier one failed.
  5. A clean ending: after the final retry, pause the subscription and keep the customer's data so they can return in one tap.

Track your failure rate and your recovery rate every month; they are among the most honest signals of revenue health. Churn comes in two kinds: customers who decide to leave, and customers who leave by accident because of a card. The second kind is the easiest to save. For reminders, see sending WhatsApp notifications from your app.

Invoices, VAT and cancellation: what is expected of you?

Every successful renewal is a separate sale. In Saudi Arabia VAT is 15% and invoices fall under ZATCA's e-invoicing (Fatoora) requirements; in the UAE VAT is 5%, administered by the Federal Tax Authority. Your system must issue a correct invoice on every renewal, not just the first payment. For background, see ZATCA e-invoicing phases explained.

  • Show prices clearly as VAT-inclusive, or show the VAT separately, on the plans page.
  • State the renewal date, amount and how to cancel before the customer taps subscribe.
  • Let people cancel from inside their account, not only by messaging support.
  • Keep a record of the customer's consent to recurring charges and when it was given.
  • Set a clear refund policy for cancellations mid-period.

Build your subscription system with Fanann

You can describe the whole system in one message and review the plan before anything is built. The Fanann Agent creates the tables, plan screens, subscriber account and admin dashboard, connects local payments and issues invoices with VAT calculated.

Ready prompt for a subscription system

Build a subscription app for a gym in Jeddah, Arabic-first with an English option. Plans: monthly, quarterly and yearly, each with a SAR price and a visit limit. Sign-in with phone number and OTP. First payment by mada, Apple Pay and cards, saving the card as a gateway token for automatic renewal. Subscription statuses: trialing, active, past due, paused, cancelled, ended. Send a WhatsApp reminder 3 days before renewal. On failed payment: 5-day grace period, retry after 1 day and again after 3 days, with a link to update the card. Issue a tax invoice on every renewal. Admin dashboard showing active and past-due members and monthly revenue. Show me the plan before building.

Try it in Fanann

Pre-launch checklist

  • In test mode, try a successful signup, a declined card, an expired card and a cancellation.
  • Move a renewal date forward manually and confirm the scheduled job runs.
  • Confirm the gateway webhook, not the success page, activates the subscription.
  • Review invoice wording and VAT with your accountant.
  • Test cancelling and upgrading on a small phone screen.

If your idea is a gym, read building a gym membership app; if you are weighing revenue models, see app monetization models.

Key takeaways

  • A subscription is a whole system: plans, a status per subscriber, renewals, retries, cancellation and invoices.
  • Never store card data; the gateway keeps the card and gives you a token for the next charge.
  • Failed payments are normal; a grace period plus WhatsApp and email reminders saves many subscriptions.
  • Ask your gateway directly whether recurring charges work on mada and Apple Pay before designing the experience.
  • Every renewal is a separate sale that needs a correct invoice with VAT calculated.

Frequently asked questions

Can I run monthly subscriptions on mada cards?
It depends on your gateway. Some support saving mada cards and charging them on a schedule, others need special setup. Ask in writing, and plan a fallback such as a payment link sent before the period ends.
Do I need to store the customer's card to renew?
No. The gateway stores the card and gives you a token for future charges. Never keep card numbers or CVV codes in your database.
How do I handle failed subscription payments?
Move the subscription to past due, give a grace period, retry at spaced intervals and send the customer a link to update their card. Only pause the service after the final retry.
Do iPhone app subscriptions have to go through Apple?
Digital content and features consumed inside an iOS app usually fall under Apple's in-app purchase system, while real-world services such as a gym membership or deliveries can use your own gateway. Check the App Store Review Guidelines for your case.
Do I issue a tax invoice on every renewal?
Yes. Each successful renewal is a separate sale that needs a correct invoice. Confirm the detailed requirements with ZATCA or the Federal Tax Authority.

Ask your AI assistant about this

Copy this prompt into the AI assistant you use, then add the details of your own case.

I am reading this guide: “Subscription billing in the Gulf: plans, renewals and failed payments” https://fanann.com/en/blog/subscription-billing-apps-gulf/ My question: how to add subscriptions to my app Use that page as a source and explain the answer step by step for my situation, tell me what to check before I start, and cite the page link.

Terms in this article

Your idea deserves to see the light.

Describe it in Arabic or English and Fanann builds, tests and ships it — no coding knowledge needed. Start free, no credit card.