SpareSpare Docs
GuidesAPI Reference

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

FieldPresenceDescription
periodicScheduleRequiredRecurring schedule and fixed amount for each payment.
maxCumulativeAmountOptionalMaximum 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.
maxCumulativeNumberOfPaymentsOptionalMaximum 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

FieldPresenceDescription
frequencyRequiredHow often the payment runs: Day, Week, Month, or Year.
startDateRequiredSchedule start. Must be a future date (not today).
amountRequiredFixed debit amount each period. Must be greater than zero.
endDateOptionalInclusive 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:

  • periodicSchedule is missing
  • frequency, startDate, or amount is missing inside periodicSchedule
  • amount is zero or negative
  • maxCumulativeAmount is set and is not greater than periodicSchedule.amount
  • maxCumulativeAmount is set and does not equal amount Γ— lifetime payment count
  • maxCumulativeNumberOfPayments is set and does not equal the lifetime payment count on the schedule
  • root maxCumulativeAmount is negative
  • maxCumulativeNumberOfPayments is set to zero or a negative value
  • startDate is today or in the past
  • endDate is set and is on or before startDate, or is not in the future
  • isInternationalPayment is true (not supported on this type)

See Error codes for response shapes.

On this page