Create Schedule

Create a fixed-amount recurring debit schedule for an approved UPI Mandate. Notifications and debit executions are handled automatically according to the configured frequency and schedule dates.

API Details

FieldValue
MethodPOST
Endpoint/mandate-schedule
Base URL{{BASE_URL}}
Content-Typeapplication/json

Authentication

Include the following credentials in the JSON request body:

Parameter / HeaderLocationTypeMandatoryDescription
clientIdJSON bodyStringYesMerchant client ID from the WowPe Dashboard.
secretKeyJSON bodyStringYesMerchant secret key from the WowPe Dashboard. Keep it on your server.
Content-TypeHeaderStringYesapplication/json

Both credential fields must be included in every request.

Request Parameters

The authentication fields above are required in addition to the following parameters:

ParameterTypeMandatoryDescription / Default
orderIdStringYesMerchant mandate reference.
amountNumberYesAmount of each recurring debit.
frequencyStringYesRecurring frequency. Supported values: DAILY, WEEKLY, FORTNIGHTLY, MONTHLY, BIMONTHLY, QUARTERLY, HALFYEARLY, YEARLY.
startDateTimeString (Datetime)YesFirst scheduled debit date and time in IST. The supplied guide states that it must be at least 24 hours from the current time.
endDateString (Date)YesLast possible debit date. Must fall within the mandate validity period.
notifyBeforeHoursNumberNoNotification lead time in hours. Supported range: 25–71. Default: 26.
remarksStringNoRemarks associated with the schedule.

Sample Request

Request Body

{
  "clientId": "YOUR_CLIENT_ID",
  "secretKey": "YOUR_SECRET_KEY",
  "orderId": "ORDSCHEDULE01",
  "amount": 99,
  "frequency": "MONTHLY",
  "startDateTime": "2026-12-03T10:00:00",
  "endDate": "2027-10-31T00:00:00",
  "notifyBeforeHours": 26,
  "remarks": "Monthly plan"
}

cURL Request

curl --request POST '{{BASE_URL}}/mandate-schedule' \
  --header 'Content-Type: application/json' \
  --data-binary '@mandate-schedule.json'

Sample Response

Illustrative response from the supplied integration guide; not a verified UAT capture.

{
  "statusCode": 1,
  "message": "Schedule saved. Notify will be sent at 2026-12-02 08:00 for the debit at 2026-12-03 10:00 (IST).",
  "orderId": "ORDSCHEDULE01",
  "scheduleStatus": "Active",
  "amount": "99.00",
  "frequency": "MONTHLY",
  "startDateTime": "2026-12-03T10:00:00",
  "endDate": "2027-10-31",
  "notifyBeforeHours": 26,
  "cyclesDone": 0,
  "nextExecutionDateTime": "2026-12-03T10:00:00",
  "nextNotifyDateTime": "2026-12-02T08:00:00",
  "lastDebitId": null,
  "lastMessage": null
}

Response Parameters

ParameterTypeDescription
statusCodeNumberOperation status: 0 = Failed, 1 = Succeeded, 2 = Pending. Interpret business-status fields separately.
messageStringOperation or schedule message.
orderIdStringMerchant mandate reference.
scheduleStatusStringCurrent schedule state: Active, Stopped, or Completed.
amountStringScheduled debit amount, returned as a decimal string.
frequencyStringSaved schedule frequency.
startDateTimeStringFirst scheduled debit date and time.
endDateStringLast possible scheduled debit date.
notifyBeforeHoursNumberSaved notification lead time in hours.
cyclesDoneNumberReturned cycle count. Whether this counts attempts or successful debits is not specified.
nextExecutionDateTimeStringNext scheduled debit date and time.
nextNotifyDateTimeStringNext notification date and time.
lastDebitIdString / NullMost recent cycle debit ID, used for execute-status lookup when available.
lastMessageString / NullLatest schedule message, when available.

Error Handling

ConditionHandling
statusCode: 0Operation failed. Inspect the message and any operation-specific status fields.
statusCode: 2Operation is pending. Use the applicable status endpoint to check the outcome.
Timeout or unknown outcomeCheck the existing operation before submitting another mutation.

The supplied integration guide does not define endpoint-specific HTTP status mappings or a complete error response structure. Confirm these in UAT before documenting them.

Important Notes

  • Allow sufficient lead time for the selected notifyBeforeHours and processing time.
  • The stated 24-hour minimum for startDateTime is shorter than the default notification lead time of 26 hours. Ensure the selected schedule timing accommodates the notification requirement.
  • The backend's handling of an already-past notification time needs confirmation.
  • A successful schedule creation confirms that the schedule was saved. It does not confirm that any debit has been successfully processed.
  • The supplied example uses ORDSCHEDULE01 as a separate approved mandate without an automatic plan, permitting ₹99 debits and valid through 31 October 2027.
  • Do not add a separate schedule to another mandate as an additional collector for the same subscription without confirming the intended setup.
  • The integration guide states that creating a new schedule replaces the old schedule. The effect on already-notified or executing debits, and its interaction with an automatic plan, must be confirmed before replacing an existing schedule.

What's Next

Use the Schedule Status API to retrieve the current schedule configuration and progress.

Use the Execute Status API to check the outcome of each debit using its corresponding debit ID.