---
title: "Create Scheduled Payment"
method: POST
path: "/scheduled-payment"
tags: ["Scheduled Payments"]
---

# Create Scheduled Payment

`POST /scheduled-payment`

## Request

- Base URL: `https://earthnode-dev.vopay.com/api/v2`
- URL: `https://earthnode-dev.vopay.com/api/v2/scheduled-payment`
- Auth: none declared

Create a new scheduled transaction to be processed on a particular time depending on the frequency.

## Request body `application/x-www-form-urlencoded`

- object
  - `AccountID` string, required: Your account ID
  - `Key` string, required: API key for the account
  - `Signature` string, required: Hashed signature for the request
  - `Amount` number, required: The transaction amount
  - `Currency` string, required: The currency code (e.g., USD, CAD)
  - `PaymentType` string, required: The type of payment (e.g., debit, credit)
  - `PaymentRail` string, required: The payment rail to use for the transaction
  - `StartDateTime` string, date-time, required: The start date and time for the scheduled payment
  - `Token` string, required: The payment token for the transaction
  - `Repeats` 'daily' | 'weekly' | 'bi-weekly' | 'monthly' | 'semi-monthly' | 'quarterly' | 'semi-annually' | 'annually' | 'weekdays': The recurrence frequency. Omit for a one-time payment. Accepted values: daily, weekly, bi-weekly, monthly, semi-monthly (15th and last day of month), quarterly, semi-annually, annually, weekdays (Mon–Fri).
  - `Interval` integer: How many units to advance per period. For example, Repeats=weekly with Interval=2 fires every other week. Must be a whole number from 1 to 365. Only applies to daily, weekly, monthly, and annually — for bi-weekly, semi-monthly, quarterly, semi-annually, and weekdays the interval is fixed and this value is ignored. Interval never affects the first payment date. Defaults to 1 when omitted.
  - `ByDay` string: Pins payments to specific weekdays. Only applies to Repeats weekly or monthly. For weekly, provide one weekday abbreviation or a comma-separated list of them — MO, TU, WE, TH, FR, SA, SU (e.g. FR, or MO,WE,FR); each weekday may appear at most once. For monthly, provide exactly one value with a mandatory ordinal prefix, 1–4 or -1 for last (e.g. 1MO, 3FR, -1FR); comma-separated lists are not accepted for monthly. Input is case-insensitive; for weekly, whitespace around each entry is ignored, but a monthly value must have no surrounding whitespace. The stored and echoed value is canonicalized — uppercased and, for weekly, re-ordered into calendar order starting Monday — so ByDay=FR,MO is returned as MO,FR. A weekday repeated within one value is rejected rather than de-duplicated. Weeks run Monday to Sunday: the first payment is the earliest selected weekday on or after StartDateTime, so a schedule starting on a Thursday with ByDay=MO,WE,FR fires only on the Friday of its first week.
  - `NumberOfPayments` integer: The number of payments to process. Required if Repeats is specified and EndDate is omitted. When both NumberOfPayments and EndDate are provided, NumberOfPayments takes precedence and the end date is derived from it.
  - `EndDate` string, date: The last date of the schedule in YYYY-MM-DD format (inclusive: a payment landing on this date still runs). Alternative to NumberOfPayments for recurring schedules — the number of payments is derived from StartDateTime, Repeats and EndDate. Ignored for one-time payments and when NumberOfPayments is provided.
  - `ClientReferenceNumber` string: Client reference number for the transaction
  - `Notes` string: Additional notes for the scheduled payment
  - `GLCode` string: General ledger code for accounting purposes
  - `ClientAccountID` string: The client account ID for the transaction

## Response `200`

Scheduled payment created successfully

- object
  - `Success` boolean, required: Indicates whether the request was successful
  - `ErrorMessage` string, required: Error message if the request failed
  - `Amount` number, required: The transaction amount
  - `ScheduledPaymentsID` integer, required: The ID of the created scheduled payment
  - `Repeats` string, required: The recurrence frequency
  - `Interval` integer, required: The interval in effect (1 if not specified). Only meaningful for daily, weekly, monthly, and annually; ignored for the fixed frequencies.
  - `ByDay` string, required: The weekday pin in effect, in canonical form — uppercased and, for weekly, re-ordered into calendar order starting Monday (so a request of FR,MO is echoed as MO,FR). Empty string if not specified.
  - `Notes` string, required: Notes for the scheduled payment
  - `ClientReferenceNumber` string, required: Client reference number
  - `GLCode` string, required: General ledger code
  - `StartDateTime` string, date-time, required: The start date and time
  - `EndDate` string, date, required: The date of the final payment in YYYY-MM-DD format. Always set: derived from NumberOfPayments when EndDate was not provided, and equal to the payment date for one-time payments.
  - `NumberOfPayments` string, required: The total number of payments in the schedule. Always set: derived from EndDate when NumberOfPayments was not provided, and 1 for one-time payments.

---

[API](https://skmtc.dev/vopay/apis/scheduled-payments.md) - [All operations](https://skmtc.dev/vopay/apis/scheduled-payments/llms.txt) - [OpenAPI document](https://skmtc.dev/vopay/apis/scheduled-payments/revisions/93370d431cb0?raw)
