1. Home
  2. Blog
  3. Mobile App Development
  4. How to Build a Mobile App With Subscriptions: Recurring Billing, Entitlements and Renewals for Nigerian Apps

How to Build a Mobile App With Subscriptions: Recurring Billing, Entitlements and Renewals for Nigerian Apps

African business colleagues working in an office — an article about mobile app with subscriptions

What a subscription system inside an app consists of

A subscription system is the combination of a plan catalogue, a billing engine, an entitlement store and a lifecycle manager, plus the admin tools to oversee them. Concretely:

  • Plans: what is sold (Basic, Premium, Family), at what price, for what period (weekly, monthly, yearly), with which trial or introductory offer.
  • Billing engine: the system that takes the first payment and renews it: the app stores, a Nigerian gateway, or a manual process.
  • Entitlements: a backend record per user stating which features are enabled and the date access expires. The app reads this, never the raw payment history.
  • Lifecycle events: started, trial converted, renewed, payment failed, in grace period, cancelled (still active until period end), expired, refunded, restored, upgraded, downgraded.
  • Admin tools: view a subscriber's status, extend or comp access, handle refund requests, see churn and failed-renewal queues.

The single principle that keeps this manageable is that the backend owns entitlements. Whether the money came through Apple, Google, Paystack or a bank transfer confirmed by staff, the result is the same: an entitlement row with an expiry date.

Three ways to bill subscriptions in a Nigerian app

For a Nigerian app there are three realistic billing routes, and many apps use more than one.

RouteHow it worksUse it forTrade-offs
Store in-app subscriptions (Apple App Store, Google Play)Customer subscribes through the store; the store bills their store payment method and renews automatically; your backend receives server notificationsDigital content and features consumed in the app (courses, media, premium tools)Store commission; store controls pricing tiers and refunds; excellent renewal reliability; Nigerian store payment methods vary
Gateway recurring card billing (Paystack, Flutterwave and similar plans or tokenised cards)First payment via the gateway; the card is tokenised with consent; your backend or the gateway charges it each periodPhysical goods and real-world services (meal plans, gym memberships, cleaning, tutoring with human tutors, software used by businesses)Recurring debits fail more often; you own dunning and retries; no store commission
Manual or semi-automatic renewal (transfer, USSD, wallet)Customer pays each period via a virtual account or wallet; webhook confirms; entitlement extendedCustomers without cards; B2B accounts paying by transfer; markets where trust in auto-debit is lowNo true auto-renewal; needs reminders; higher churn without good nudges

Most Nigerian consumer apps selling real-world services combine gateway card billing with a transfer-based renewal option and reminder notifications. Apps selling digital content on iOS and Android are generally required to use store subscriptions for those products.

Store subscriptions or your own gateway? A decision framework

The difference between the two routes is not just commission; it is who controls the relationship. The decision usually resolves in four questions:

  1. Is the subscription for digital content consumed in the app? If yes, Apple's and Google's policies as of 2026 generally require in-app subscriptions on their platforms. Verify the current text of App Store Review Guideline 3.1 and Google Play's payments policy, because both have changed and have regional exceptions.
  2. Is it for physical goods or services delivered outside the app? Then you may bill through your own gateway on both platforms.
  3. Do you also sell on the web? Web subscriptions can use your gateway regardless; many apps let customers subscribe on the web and simply sign in to the app with access enabled, which is permitted so long as the app follows store rules about how it references external purchases (rules vary; check current guidance).
  4. Do you need business-to-business invoicing? Corporate customers paying yearly by transfer are better served by your own billing than by a store.

If your product is digital and you object to the commission, the realistic answer is to accept it for in-app sales and focus on web sign-ups for price-sensitive channels, rather than trying to route around the stores, which leads to rejection.

Designing plans, entitlements and the subscription lifecycle

The first step is to define the plan catalogue and the entitlements each plan grants, in a table your developers and finance team both sign off. Then model the lifecycle explicitly:

Subscription stateMeaningApp behaviour
TriallingFree or introductory period activeFull access; show trial end date
ActivePaid through the current periodFull access
Cancelled (active until period end)Auto-renew turned offFull access; show expiry; offer resubscribe
Past due / in grace periodRenewal failed; access kept for a defined windowAccess continues; prominent "update payment" prompt
PausedCustomer or store paused billingAccess suspended; easy resume
ExpiredGrace period ended without paymentAccess removed; retain data; show resubscribe
Refunded / revokedStore or gateway reversed the paymentAccess removed immediately

Design decisions to make now, not later:

  • Grace period length. Three to seven days is common for monthly plans. Longer is kinder in Nigeria where card issues take time to fix, but increases unpaid usage.
  • Proration on upgrades and downgrades. Store systems handle this for you; with your own gateway you decide whether upgrades apply immediately with a prorated charge or at the next renewal.
  • Multi-device and restore. A customer who changes phones must regain access by signing in; store purchases also need a "restore purchases" button.
  • Family or team seats. If plans cover multiple users, entitlements must attach to a group, not one account.

Step-by-step: implementing subscriptions

  1. Classify your products (digital versus physical or real-world) and settle the billing route for each platform.
  2. Create the plans in the relevant systems: products and subscription groups in App Store Connect and Google Play Console; plans or recurring settings in your gateway; and the master plan table in your backend.
  3. Build the entitlement service on the backend: a table per user with plan, status, current period end, billing route and external references (store transaction ID or gateway subscription code).
  4. Integrate purchase flows in the app. For store subscriptions use StoreKit (iOS) and the Google Play Billing Library (Android), or a cross-platform subscription SDK such as RevenueCat or the equivalent Flutter and React Native packages. For gateway billing use the gateway SDK for the first charge with card tokenisation enabled.
  5. Receive and verify server events. Configure App Store Server Notifications and Google Play real-time developer notifications; configure gateway webhooks for successful and failed recurring charges. Verify signatures, process idempotently, and update entitlements.
  6. Implement the renewal reminder and manual-renewal path for transfer-based customers: notifications before expiry, a one-tap renewal screen with a virtual account, webhook-driven extension.
  7. Build cancellation, pause and refund handling in the app and the admin dashboard, including comp or extension tools for support.
  8. Add reporting: active subscribers, trial conversion, failed renewals, churn, revenue by route, with export for finance.
  9. Test every state with sandbox accounts (both stores provide accelerated renewal cycles in test) and gateway test cards for declines; then run a small live cohort for at least one full billing cycle before launch.

Handling failed renewals: grace periods, retries and dunning

Failed renewals are the main source of involuntary churn, and in Nigeria they are common. Dunning is the process of recovering a failed payment through retries and reminders.

  • Store subscriptions handle retries and grace periods themselves; you configure grace period length and receive notifications. Your job is to show the right message in the app and keep access during the grace window.
  • Gateway recurring billing puts the burden on you. A sensible schedule: retry on day 1, day 3 and day 5 after a failure; notify the customer after the first failure via push and WhatsApp or SMS with a direct link to update the card or pay by transfer; move to expired after the grace window.
  • Offer an alternative method on failure. A customer whose card was declined can usually pay by transfer within minutes. Present that option in the same notification.
  • Detect card expiry in advance. Where the gateway exposes expiry dates, prompt the customer to update the card before the renewal date.
  • Log everything. Support will ask why a customer lost access on a given day; the answer must be in the subscription event history.

What changes for Nigerian businesses

Subscription mechanics are universal; the failure patterns and customer expectations are local.

  • Auto-debit trust. Many Nigerian customers dislike giving standing permission to debit a card. Be explicit at sign-up about the amount, date and how to cancel, and expect a meaningful share of customers to prefer manual renewal by transfer.
  • Recurring card failures. Bank limits, expired cards and issuer rules cause more failures than in markets tutorials are written for. Build the dunning flow before launch, not after the first month's churn report.
  • Salary cycles. Renewals scheduled around month-end salary dates tend to succeed more often; consider letting customers choose or move their renewal date.
  • Store payment methods. The ways Nigerian customers can pay Apple and Google vary over time (cards, carrier billing, gift cards). Check what is currently available in Nigeria before assuming store subscriptions will convert.
  • Naira pricing versus dollar costs. Your hosting, model APIs and some SDKs are billed in US dollars. Price plans with headroom and review them at set intervals; avoid frequent small price changes, which drive cancellations.
  • Data protection. Tokenised card references, billing history and contact details are personal data under the Nigeria Data Protection Act 2023. State how they are used and honour deletion requests; confirm obligations with the Nigeria Data Protection Commission.

Example (hypothetical): an Ibadan online tutoring app

Example (hypothetical): an Ibadan education company sells two things through its app: live tutoring sessions with human tutors (a real-world service) and a library of recorded lessons and practice tests (digital content). It wants a single "Premium" plan. Because the recorded library is digital content consumed in the app, a single combined plan sold through the company's own gateway would risk rejection on both stores. The team restructures:

  • Tutoring plan (live sessions): billed through the gateway with card tokenisation, plus a transfer-based renewal option for parents who prefer it. Backend runs a day 1/3/5 retry schedule with WhatsApp reminders.
  • Library plan (recorded content): sold as an in-app subscription on iOS and Android, and as a gateway subscription on the web.
  • Entitlements live on the backend. A parent who buys both sees one "Premium" experience in the app, while billing runs on two routes. Restoring purchases on a new phone and signing in both resolve to the same entitlement record.
  • Grace period of seven days on the tutoring plan, chosen because parents often fix card issues at month-end.

The lesson is that the customer sees one plan while the business runs two compliant billing routes, and that this was far cheaper to design up front than to unpick after a store rejection.

How much does subscription billing add to app cost?

Subscription machinery is a distinct module on top of a normal payment integration. The figures below are indicative 2026 ranges; actual quotes vary with scope, vendor and exchange rate. Compare two or three written quotations on identical scope and ask for the subscription module to be itemised.

ComponentIncludesIndicative one-off cost (₦)
Entitlement service and lifecycle on backendPlan table, states, event processing, admin views₦500,000–₦1,800,000
Store subscriptions (iOS and Android)Product setup, StoreKit and Play Billing or cross-platform SDK, server notification handling, restore₦600,000–₦2,000,000
Gateway recurring billingTokenised first charge, renewal scheduling, webhook handling, retries and dunning messaging₦400,000–₦1,500,000
Manual renewal path (transfer, reminders)Renewal screen, virtual account, expiry reminders₦200,000–₦600,000
Reporting and finance exportsSubscriber metrics, churn, revenue by route₦200,000–₦800,000

A subscription app with accounts, one or two billing routes, admin dashboard and notifications typically sits in the indicative medium band for Nigerian apps (₦5,000,000–₦15,000,000). Recurring costs include store commission on in-app subscriptions (historically 15–30% depending on programme; verify), gateway fees per charge, any subscription-management SDK priced in US dollars above its free tier, messaging costs for reminders, and app maintenance at roughly 15–25% of build cost per year.

Mistakes to avoid

  • Reading purchase status from the device. Receipts can be faked and phones change. The backend entitlement record is the only truth.
  • Selling digital content through your own gateway inside iOS and Android apps. Expect rejection; classify products first.
  • No grace period or dunning. Every failed card becomes a lost customer instead of a recovered one.
  • Ignoring server notifications from the stores. Without them, refunds and cancellations happen in the store while your app keeps granting access, or worse, revokes it wrongly.
  • Non-idempotent event handling. Duplicate webhooks extend a subscription twice or double-count revenue.
  • Hiding the cancellation path. Both stores require clear cancellation for in-app subscriptions, and hidden cancellation destroys trust with Nigerian customers who already distrust auto-debit.
  • Frequent price changes. Each change triggers consent flows in the stores and churn everywhere; price with headroom instead.
  • Forgetting restore and multi-device. Customers who change phones and lose access will request refunds and leave one-star reviews.

Conclusion

Building subscriptions into a mobile app is a matter of choosing the right billing route for each product (store subscriptions for digital content, gateway or transfer-based billing for real-world services), keeping entitlements on the backend as the single source of truth, modelling the full lifecycle including grace periods and refunds, and building dunning before launch because Nigerian renewals fail often enough to matter. Get these right and subscriptions become predictable revenue; get them wrong and they become a support queue. If you are planning an app with recurring revenue and want the billing routes, entitlements and renewal handling designed to survive Nigerian card behaviour and store review, Linestech builds subscription-based mobile apps for Nigerian businesses and can help you structure plans and compliance before development starts.

Frequently asked questions

Can I use Paystack or Flutterwave for subscriptions in my app?

Yes, for physical goods and real-world services such as meal plans, memberships, cleaning or tutoring with human tutors, on iOS, Android and the web. For digital content consumed in the app, Apple and Google generally require their in-app subscription systems as of 2026. Verify the current policy text before you design the checkout.

What happens when a customer's card fails at renewal?

With store subscriptions, the store retries and applies your configured grace period, notifying your server at each step. With gateway billing, your backend must schedule retries, notify the customer and offer an alternative such as bank transfer, then expire access after the grace period if nothing is paid.

Do I need a subscription-management SDK such as RevenueCat?

Not necessarily. Such services simplify store subscriptions across iOS and Android, receipt validation and analytics, and are worth considering if you sell digital subscriptions on both platforms. If your subscriptions run through a Nigerian gateway only, they add little. Most are priced in US dollars above a free tier.

How do I handle a customer who wants to pay yearly by bank transfer?

Create a plan with a yearly period, generate a virtual account or invoice through your gateway, confirm payment by webhook (or by finance in the admin dashboard for corporate transfers), and extend the entitlement by one year. Send a reminder before expiry with the same renewal path.

Can customers subscribe on my website and use the app?

Yes. A web subscription through your gateway can enable access in the app once the customer signs in, because the entitlement lives on your backend. Be careful about how the app refers to web purchases and pricing; Apple and Google have specific rules about steering users to external payment, and they change.

How should trials work in a Nigerian app?

Keep them short and honest: a clear end date, a reminder before conversion, and no charge without explicit consent. Free trials that require a card up front convert better but attract fewer sign-ups; trials without a card are simpler with gateway billing. Store subscriptions offer their own introductory offer mechanics that you configure in the consoles.

Sources and further reading

Figures, platform rules and regulations change. These are the primary references behind this article and the places to check before you act on it.