Skip to content

Update Schedule

PATCH
/schedules/{schedule_id}
curl --request PATCH \
--url https://example.com/schedules/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Content-Type: application/json' \
--data '{ "amount": 1, "amount_type": "fixed", "autopost_policy": "auto_post", "category": "example", "counterparty_account": "example", "dtstart": "2026-04-15", "estimate_basis": "last", "name": "example", "payee": "example", "rrule": "example" }'

Edit the rule. Live un-pinned instances follow (slots the new rule no longer produces are voided and released, amounts re-estimated, missing slots materialized); pinned instances keep their amounts and dates. A new name or payee relabels every live instance — pinned ones too — whose description or payee still equals the old one; labels you changed stay.

schedule_id
required
Schedule Id
string format: uuid
Media typeapplication/json
ScheduleUpdate

Every field optional; only the fields sent change. A rule change resyncs live un-pinned instances; a new name or payee relabels live instances whose label still equals the old one (see DESIGN §6).

object
amount
Any of:
number
amount_type
Any of:
string
Allowed values: fixed estimated
autopost_policy
Any of:
string
Allowed values: auto_post wait_for_match reminder_only
category
Any of:
string
counterparty_account
Any of:
string
dtstart
Any of:
string format: date
estimate_basis
Any of:
string
Allowed values: last rolling_avg_3 rolling_avg_12 counterparty_balance
name
Any of:
string
payee
Any of:
string
rrule
Any of:
string

Successful Response

Media typeapplication/json
ScheduleDetail
object
account_id
required
Account Id
string format: uuid
amount
required
Any of:
string
amount_type
required
Amount Type
string
autopost_policy
required
Autopost Policy
string
category_path
Any of:
string
counterparty_account_id
Any of:
string format: uuid
currency
required
Currency
string
dtstart
required
Dtstart
string format: date
ended_at
required
Any of:
string format: date-time
estimate_basis
required
Any of:
string
id
required
Id
string format: uuid
instances
required
Instances
Array<object>
InstanceOut

A live (unmatched) expected instance of a schedule.

object
amount
required
Any of:
string
basis
required
Basis

Where the amount comes from: fixed, an estimate basis (last, rolling_avg_3, rolling_avg_12, counterparty_balance = the card’s current balance), override (a pinned instance: the amount is yours) or statement (a recorded card statement balance, decision 80)

string
Allowed values: fixed last rolling_avg_3 rolling_avg_12 counterparty_balance override statement
date
required
Date
string format: date
occurrence_date
required
Any of:
string format: date
overdue
required
Overdue
boolean
pinned
required
Pinned

Edited by a human/agent; exempt from rule refresh/resync

boolean
statement_balance
Any of:
string
statement_date
Any of:
string format: date
statement_source
Any of:
string
Allowed values: human agent
transaction_id
required
Transaction Id
string format: uuid
name
required
Name
string
next_due
required
Any of:
string format: date
rrule
required
Rrule
string
source
required
Source
string
status
required
Status
string

Example

{
"instances": [
{
"basis": "fixed",
"statement_source": "human"
}
]
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string

Example generated

{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}