API Reference
Scheduled Payments — API Reference
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /api/v2/scheduled-payment | Create a scheduled payment |
GET | /api/v2/scheduled-payment | List or retrieve scheduled payments |
POST | /api/v2/scheduled-payment/cancel | Cancel an entire schedule |
POST | /api/v2/scheduled-payment/edit | Update the amount for an entire schedule |
POST | /api/v2/scheduled-payment/upcoming-payment/cancel | Cancel a single upcoming payment |
POST | /api/v2/scheduled-payment/upcoming-payment/edit | Edit a single upcoming payment |
POST /api/v2/scheduled-payment
/api/v2/scheduled-paymentCreates a scheduled payment. All future payment dates are calculated and stored at creation time.
Request parameters
Required
| Parameter | Type | Description |
|---|---|---|
Amount | decimal | Payment amount (e.g. 100.00) |
Currency | string | Currency code (e.g. CAD, USD) |
PaymentType | string | debit to collect funds from the customer; credit to send funds to the customer |
PaymentRail | string | Payment method (e.g. EFT, ACH) |
StartDateTime | string | Earliest date to begin payments. Format: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Must be tomorrow or later. |
Token | string | Bank account or payment method token |
NumberOfPayments | integer | How many payments to schedule (required when Repeats is set) |
Optional
| Parameter | Type | Default | Description |
|---|---|---|---|
Repeats | string | — | Recurrence frequency. Omit for a one-time payment. See Frequency values. |
Interval | integer | 1 | How many units to advance per period. Only applies to daily, weekly, monthly, and annually. Range: 1–365. |
ByDay | string | — | Pin payments to a specific weekday. Only applies to weekly and monthly. See ByDay values. |
ClientReferenceNumber | string | — | Your own reference ID for this payment |
Notes | string | — | Free-text notes attached to the payment |
GLCode | string | — | General ledger code for accounting purposes |
ClientAccountID | string | — | Client account to associate this payment with |
Frequency values
Repeats | Description |
|---|---|
daily | Every calendar day |
weekly | Every 7 days (use Interval to skip multiples; use ByDay to pin to a weekday) |
bi-weekly | Every 14 days |
monthly | Same date each month (use Interval for every N months; use ByDay for a specific weekday) |
semi-monthly | Twice a month — 15th and last day |
quarterly | Every 3 months |
semi-annually | Every 6 months |
annually | Once a year |
weekdays | Every Monday through Friday |
ByDay values
With Repeats: weekly — two-letter weekday abbreviation only:
MO TU WE TH FR SA SU
With Repeats: monthly — ordinal (1–4 or -1 for last) followed by weekday:
| Example | Meaning |
|---|---|
1MO | First Monday of the month |
2TU | Second Tuesday of the month |
3FR | Third Friday of the month |
4WE | Fourth Wednesday of the month |
-1FR | Last Friday of the month |
-1MO | Last Monday of the month |
ByDaycannot be used withbi-weekly,semi-monthly,quarterly,semi-annually,annually, orweekdays.
Request examples
One-time payment
{
"Amount": "250.00",
"Currency": "CAD",
"PaymentType": "debit",
"PaymentRail": "EFT",
"StartDateTime": "2026-06-01",
"Token": "bank-token-abc",
"NumberOfPayments": 1
}Monthly recurring (every month on the same date)
{
"Amount": "99.00",
"Currency": "CAD",
"PaymentType": "debit",
"PaymentRail": "EFT",
"StartDateTime": "2026-06-01",
"Token": "bank-token-abc",
"Repeats": "monthly",
"NumberOfPayments": 12
}Every other Friday
{
"Amount": "500.00",
"Currency": "CAD",
"PaymentType": "credit",
"PaymentRail": "EFT",
"StartDateTime": "2026-06-01",
"Token": "bank-token-abc",
"Repeats": "weekly",
"Interval": 2,
"ByDay": "FR",
"NumberOfPayments": 26
}3rd Friday of every month
{
"Amount": "1000.00",
"Currency": "USD",
"PaymentType": "debit",
"PaymentRail": "ACH",
"StartDateTime": "2026-06-01",
"Token": "bank-token-abc",
"Repeats": "monthly",
"ByDay": "3FR",
"NumberOfPayments": 12
}Response
{
"Success": true,
"ErrorMessage": "",
"ScheduledPaymentsID": 1042,
"Amount": "99.00",
"Repeats": "monthly",
"Interval": 1,
"ByDay": "",
"StartDateTime": "2026-06-01 21:00:00",
"Notes": "",
"ClientReferenceNumber": "",
"GLCode": ""
}| Field | Description |
|---|---|
ScheduledPaymentsID | Unique ID for this schedule. Use it to retrieve, edit, or cancel. |
Interval | The interval in effect (1 if not specified) |
ByDay | The ByDay value in effect (empty string if not specified) |
GET /api/v2/scheduled-payment
/api/v2/scheduled-paymentReturns scheduled payments for your account. Pass ScheduledPaymentsID to fetch a single record, or use filters to list multiple.
Request parameters (all optional)
| Parameter | Type | Description |
|---|---|---|
ScheduledPaymentsID | integer | Fetch a specific scheduled payment by ID |
Limit | integer | Maximum number of results to return |
Offset | integer | Number of results to skip (for pagination) |
StartDate | string | Filter by schedule start date (from) — format YYYY-MM-DD HH:MM:SS |
EndDate | string | Filter by schedule start date (to) — format YYYY-MM-DD HH:MM:SS |
Repeats | string | Filter by frequency |
PaymentType | string | Filter by debit or credit |
Currency | string | Filter by currency code |
PaymentRail | string | Filter by payment method |
Token | string | Filter by token |
GLCode | string | Filter by GL code |
ClientAccountID | string | Filter by client account |
Response
{
"PaginationMetaData": {
"TotalRecords": 1,
"Offset": 0,
"Limit": 10
},
"ScheduledPayment": [
{
"ID": 1042,
"ClientAccountID": "",
"Amount": "99.00",
"Currency": "CAD",
"PaymentType": "debit",
"TransactionType": "EFT",
"Token": "bank-token-abc",
"ClientReferenceNumber": "",
"Notes": "",
"StartDateTime": "2026-06-01 21:00:00",
"NumberOfPayments": 12,
"Repeats": "monthly",
"Interval": 1,
"ByDay": "",
"GLCode": "",
"UpcomingTransactions": [
{
"ID": 5501,
"TransactionID": "",
"ScheduledDate": "2026-07-01 21:00:00",
"LastModified": "",
"Status": "upcoming",
"Amount": "99.00"
}
],
"CompletedTransactions": [
{
"ID": 5500,
"TransactionID": "txn-789",
"ScheduledDate": "2026-06-01 21:00:00",
"LastModified": "2026-06-01 21:00:42",
"Status": "successful",
"Amount": "99.00"
}
]
}
]
}POST /api/v2/scheduled-payment/cancel
/api/v2/scheduled-payment/cancelCancels an entire schedule, marking all remaining upcoming payments as cancelled.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ScheduledPaymentsID | integer | Yes | ID of the schedule to cancel |
Response
{
"Success": true,
"ErrorMessage": "",
"Status": "cancelled"
}POST /api/v2/scheduled-payment/edit
/api/v2/scheduled-payment/editUpdates the amount for all remaining upcoming payments in a schedule.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ScheduledPaymentsID | integer | Yes | ID of the schedule to update |
Amount | decimal | Yes | New amount to apply to all upcoming payments |
Response
{
"Success": true,
"ErrorMessage": ""
}POST /api/v2/scheduled-payment/upcoming-payment/cancel
/api/v2/scheduled-payment/upcoming-payment/cancelCancels a single upcoming payment without affecting the rest of the schedule.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ScheduledPaymentDetailsID | integer | Yes | ID of the specific upcoming payment to cancel |
Response
{
"Success": true,
"ErrorMessage": "",
"Status": "cancelled"
}POST /api/v2/scheduled-payment/upcoming-payment/edit
/api/v2/scheduled-payment/upcoming-payment/editUpdates the amount and/or date of a single upcoming payment without affecting the rest of the schedule.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ScheduledPaymentDetailsID | integer | Yes | ID of the specific upcoming payment to edit |
Amount | decimal | No | New amount for this payment only |
Date | string | No | New date for this payment only — format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Must be tomorrow or later. |
Response
{
"Success": true,
"ErrorMessage": ""
}Error responses
All endpoints return a consistent error shape when something goes wrong:
{
"Success": false,
"ErrorMessage": "A description of what went wrong."
}Common error conditions:
| Scenario | Message |
|---|---|
StartDateTime is today or in the past | StartDateTime must be greater than or equal to tomorrow's date |
ByDay used with an incompatible Repeats | ByDay can only be used with weekly or monthly frequency |
ByDay format is wrong for the frequency | ByDay for monthly frequency must include an ordinal and weekday (e.g. 3FR, -1MO) |
Interval is out of range | Interval must be between 1 and 365 |
ScheduledPaymentsID not found | Scheduled payment does not exist in our records |
| Trying to edit/cancel an already-cancelled schedule | You can only modify scheduled payments that are in upcoming status |
Updated about 6 hours ago