Recurring payments let you charge customers at regular intervals. Useful for subscriptions, rent collection, loan repayments, and any scenario where you need to collect money on a schedule.

How it works

1

Create a recurring payment

Define the amount, interval, payment method, and customer phone number.
2

Simiz processes automatically

On each scheduled date, Simiz initiates a payment via the configured payment method.
3

Get notified via webhooks

Receive recurring.executed, recurring.failed, or recurring.paused events after each execution.

API reference

Base path: /api/v1/projects/{projectId}/recurring

Create a recurring payment

POST /api/v1/projects/{projectId}/recurring

{
  "customerId": "cus_abc123",
  "amount": 5000,
  "currency": "XAF",
  "interval": "MONTHLY",
  "intervalCount": 1,
  "paymentMethod": "ORANGE_MONEY",
  "payerPhone": "237690000000",
  "startDate": "2026-04-01T00:00:00Z",
  "maxCycles": 12,
  "description": "Monthly subscription",
  "metadata": { "planId": "premium" }
}

Required fields

FieldTypeDescription
amountnumberAmount per cycle (minimum 100 XAF)
intervalenumDAILY, WEEKLY, MONTHLY, or YEARLY
paymentMethodenumPayment method (e.g. ORANGE_MONEY, MTN_MOMO)
payerPhonestringPayer’s phone number (e.g. 237690000000)
startDatestringISO 8601 start date

Optional fields

FieldTypeDescription
customerIdUUIDLink to a customer profile
currencystringCurrency code (default: XAF)
intervalCountnumberIntervals between payments (1-12, default: 1)
endDatestringISO 8601 end date
maxCyclesnumberMaximum number of payment cycles
descriptionstringDescription
metadataobjectAdditional key-value metadata

Available endpoints

MethodEndpointDescription
POST/Create a recurring payment
GET/List all recurring payments (with filters)
GET/statsGet recurring payment statistics
GET/{id}Get a single recurring payment
PUT/{id}Update a recurring payment
POST/{id}/pausePause a recurring payment
POST/{id}/resumeResume a paused payment
POST/{id}/cancelCancel a recurring payment
GET/{id}/executionsGet execution history

Statuses

StatusDescription
ACTIVECurrently executing on schedule
PAUSEDTemporarily paused (can be resumed)
CANCELLEDPermanently stopped
COMPLETEDAll scheduled cycles finished

Webhook events

EventTrigger
recurring.createdA recurring payment is created
recurring.executedA scheduled payment executed successfully
recurring.failedA scheduled payment failed
recurring.pausedA recurring payment was paused (manually or after failures)
recurring.cancelledA recurring payment was cancelled
When a recurring payment reaches the failureCount threshold, it is automatically paused and a recurring.paused event is emitted.