Fixed Periodic Schedule
Instructions fields for FixedPeriodicSchedule on POST /payment-requests.
FixedPeriodicSchedule creates a mandate that debits a fixed amount on a regular recurring schedule (daily, weekly, monthly, or yearly). Use it for subscriptions or rent where the amount and schedule are known up front.
Shared root fields (type, creditorAccount, redirects, and the rest) live on the Payment Request Deep Dives intro. This page covers Fixed Periodic Schedule instructions only.
periodicSchedule.controls is not used on periodic types. Rolling per-period caps apply only to on-demand types.
When To Use
Use FixedPeriodicSchedule when the amount is fixed and payments run on a regular recurring day or date (Day, Week, Month, or Year).
Typical products:
- Person-to-person standing orders
- Person-to-merchant monthly subscriptions
- Instalment payments on a regular schedule
- Buy Now, Pay Later plans with a fixed recurring amount
For a variable amount on the same schedule model, use Variable Periodic Schedule.
Example use case
A payer sets up a fixed monthly payment of AED 350.00 to the same creditor for nine months. Each debit is AED 350.00 on the same day each month.
Instructions
| Field | Presence | Description |
|---|---|---|
periodicSchedule | Required | Recurring schedule and fixed amount for each payment. |
maxCumulativeAmount | Optional | Maximum cumulative value of payments over the lifetime of the consent. When set, must be greater than periodicSchedule.amount, and must equal periodicSchedule.amount multiplied by the number of payments initiated over the lifetime of the consent. |
maxCumulativeNumberOfPayments | Optional | Maximum cumulative number of payments over the lifetime of the consent. When set, must equal the total number of payments that will be initiated over the schedule. Must be greater than zero. |
periodicSchedule
| Field | Presence | Description |
|---|---|---|
frequency | Required | How often the payment runs: Day, Week, Month, or Year. |
startDate | Required | Schedule start. Must be a future date (not today). |
amount | Required | Fixed debit amount each period. Must be greater than zero. |
endDate | Optional | Inclusive end bound. When set, must be after startDate and in the future. |
Example Request
Complete body for a 12-month Fixed Periodic Schedule. maxCumulativeNumberOfPayments is 12 and maxCumulativeAmount is 12 Γ AED 100.00.
{
"type": "FixedPeriodicSchedule",
"creditorType": "MERCHANT",
"creditorReference": "SUB1001",
"merchantReference": "fps-sub-1001",
"purpose": "GDDS",
"creditorAccount": {
"schemeName": "IBAN",
"identification": "AE070331234567890123456",
"name": "Acme Trading LLC"
},
"successRedirectUrl": "https://merchant.example/payments/success",
"failureRedirectUrl": "https://merchant.example/payments/failure",
"instructions": {
"maxCumulativeNumberOfPayments": 12,
"maxCumulativeAmount": { "amount": "1200.00", "currency": "AED" },
"periodicSchedule": {
"frequency": "Month",
"startDate": "2026-09-01",
"endDate": "2027-08-01",
"amount": { "amount": "100.00", "currency": "AED" }
}
}
}What Fails
Spare rejects the create when:
periodicScheduleis missingfrequency,startDate, oramountis missing insideperiodicScheduleamountis zero or negativemaxCumulativeAmountis set and is not greater thanperiodicSchedule.amountmaxCumulativeAmountis set and does not equalamountΓ lifetime payment countmaxCumulativeNumberOfPaymentsis set and does not equal the lifetime payment count on the schedule- root
maxCumulativeAmountis negative maxCumulativeNumberOfPaymentsis set to zero or a negative valuestartDateis today or in the pastendDateis set and is on or beforestartDate, or is not in the futureisInternationalPaymentistrue(not supported on this type)
See Error codes for response shapes.