Create a schedule | Moov Documentation
Create a schedule
Describes the schedule to create or modify.
To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.write scope.
POST
/accounts/{accountID}/schedules
Ask
curl -X POST "https://api.moov.io/accounts/{accountID}/schedules" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.07.00"
Ask in Go
mc, _ := moov.NewClient()
var accountID string
now := time.Now()
start := now.AddDate(0, 1, 0)
mc.CreateSchedule(ctx, accountID, moov.CreateSchedule{
Description: "string",
Occurrences: []moov.CreateOccurrence{
{
RunOn: now,
RunTransfer: moov.CreateRunTransfer{
Description: "Gym Dues",
Amount: moov.ScheduleAmount{
Value: 1204,
Currency: "USD",
},
PartnerAccountID: "string",
Source: moov.SchedulePaymentMethod{
PaymentMethodID: "string",
},
Destination: moov.SchedulePaymentMethod{
PaymentMethodID: "string",
},
},
},
},
Recur: &moov.CreateRecur{
Start: &start,
RecurrenceRule: "FREQ=MONTHLY;COUNT=5",
RunTransfer: moov.CreateRunTransfer{
Description: "Gym Dues",
Amount: moov.ScheduleAmount{
Value: 1204,
Currency: "USD",
},
PartnerAccountID: "string",
Source: moov.SchedulePaymentMethod{
PaymentMethodID: "string",
},
Destination: moov.SchedulePaymentMethod{
PaymentMethodID: "string",
},
},
},
})
Ask in TypeScript
import { Moov } from "@moovio/sdk";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.scheduling.create({
accountID: "38fd6ae1-0e70-4162-9359-d64482d61854",
upsertSchedule: {
occurrences: [
{
occurrenceID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
runOn: new Date("2009-11-10T23:00:00Z"),
runTransfer: {
amount: {
currency: "USD",
value: 1204,
},
destination: {
paymentMethodID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
achDetails: {
companyEntryDescription: "Gym dues",
originatingCompanyName: "Whole Body Fit",
},
cardDetails: {
dynamicDescriptor: "WhlBdy *Yoga 11-12",
},
},
partnerAccountID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
source: {
paymentMethodID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
achDetails: {
companyEntryDescription: "Gym dues",
originatingCompanyName: "Whole Body Fit",
},
cardDetails: {
dynamicDescriptor: "WhlBdy *Yoga 11-12",
},
},
description: "sediment yahoo a rudely mmm massive helpful brr",
},
},
{
occurrenceID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
runOn: new Date("2009-11-10T23:00:00Z"),
runTransfer: {
amount: {
currency: "USD",
value: 1204,
},
destination: {
paymentMethodID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
achDetails: {
companyEntryDescription: "Gym dues",
originatingCompanyName: "Whole Body Fit",
},
cardDetails: {
dynamicDescriptor: "WhlBdy *Yoga 11-12",
},
},
partnerAccountID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
source: {
paymentMethodID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
achDetails: {
companyEntryDescription: "Gym dues",
originatingCompanyName: "Whole Body Fit",
},
cardDetails: {
dynamicDescriptor: "WhlBdy *Yoga 11-12",
},
},
description: "sediment yahoo a rudely mmm massive helpful brr",
},
},
],
recur: {
recurrenceRule: "<value>",
runTransfer: {
amount: {
currency: "USD",
value: 1204,
},
salesTaxAmount: {
currency: "USD",
value: 1204,
},
destination: {
paymentMethodID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
achDetails: {
companyEntryDescription: "Gym dues",
originatingCompanyName: "Whole Body Fit",
},
cardDetails: {
dynamicDescriptor: "WhlBdy *Yoga 11-12",
},
},
partnerAccountID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
source: {
paymentMethodID: "c520f1b9-0ba7-42f5-b977-248cdbe41c69",
achDetails: {
companyEntryDescription: "Gym dues",
originatingCompanyName: "Whole Body Fit",
},
cardDetails: {
dynamicDescriptor: "WhlBdy *Yoga 11-12",
},
},
description: "sediment yahoo a rudely mmm massive helpful brr",
lineItems: {
items: [],
},
},
start: new Date("2009-11-10T23:00:00Z"),
},
},
});
console.log(result);
}
run();
Ask in PHP
declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\