Mobile Money Subscriptions
Spotflow supports recurring billing through mobile money, allowing you to charge customers on a set schedule using their mobile money wallets.How MoMo subscriptions differ from card subscriptionsCard subscriptions charge the customer automatically in the background after the first payment. Mobile money networks do not allow silent background charges. Because of telecom rules, the customer must approve each recurring payment directly on their phone.Spotflow handles this with a semi-automated workflow that sends reminders, renewal links, payment prompts, and retries on your behalf.
What Spotflow Handles for You
- Reminder emails sent to customers before their next billing date
- Renewal checkout links included in every reminder so customers can pay early
- Direct phone prompts (STK Push) sent on the due date for one-tap approval
- Automatic retries if the due-date payment fails
- Webhooks sent to your server whenever a subscription changes state
Supported Regions and Providers
Support for more providers and regions is ongoing. Contact support@spotflow.one to check availability for your requested region.
How Card and Mobile Money Subscriptions Compare
The Subscription Lifecycle
1
Create a Subscription Plan
Before subscribing a customer, create a plan that sets the price, currency, and billing frequency.See Create Plan below for all available fields including trials, cycle limits, and end dates.
2
Collect the First Payment
Start the subscription by initiating a payment with the customer’s mobile money details and the Once the first payment succeeds, the subscription becomes active and the billing cycle begins.
planId.3
Receive Renewal Reminders
Spotflow automatically sends reminder emails with a secure checkout link before each billing date.
- Weekly plans: Reminder sent 3 days before expiry
- Monthly and yearly plans: Reminders sent 1 week before expiry, then again 3 days before
4
Due Date Prompt
If the customer has not renewed early using the checkout link, Spotflow sends an automatic payment prompt directly to their phone on the due date. The customer approves it by entering their mobile wallet PIN.
5
Handle Retries or Cancellation
If the due-date payment fails:
- A retry email with a fresh checkout link is sent every 3 days after the due date
- If no payment is received by the 4th day after the due date, the subscription is automatically cancelled
Create Plan
Endpoint:POST /api/v1/plans
Request Body
Retrial Limits by Frequency
retrial defaults to 0, which means no retries. Set a value above 0 to enable automatic payment retries on card subscriptions.Subscription Statuses
Subscription Management Endpoints
Webhooks and Events
Spotflow sends aPOST request to your webhook URL whenever a subscription changes state. All events share the same payload structure.
Payload Structure
Event Reference
subscription_created
subscription_created
subscription_activated
subscription_activated
subscription_renewed
subscription_renewed
subscription_cancelled
subscription_cancelled
subscription_payment_failed
subscription_payment_failed
subscription_failed
subscription_failed
subscription_completed
subscription_completed
Cancelling a Mobile Money Subscription
- Cancel one customer’s subscription: Cancel Subscription
- Cancel an entire plan: Cancel Plan — stops all active subscriptions under that plan
- Reactivate a cancelled subscription: Activate Subscription
Best Practices
- Always collect the customer’s phone number at sign-up. Spotflow needs it to send the payment prompt to the right wallet.
- Tell customers what to expect. Let them know upfront that they will receive a phone prompt to approve recurring charges. Unexpected prompts are the most common reason for declines.
- Build a re-enrolment flow. If a mandate expires or a subscription is cancelled due to non-payment, customers should be able to restart easily with the same plan.
- Notify before the first charge after a trial. Spotflow triggers the charge automatically when a trial ends. Send your own reminder 24 hours before so the customer expects the prompt and has funds in their wallet.
- Test everything in test mode first. Simulate approvals, failures, and retries before going live.

