The Scheduled Transactions API lists future-dated payments and transfers for the business linked to your API Access Token - money that is committed but has not gone out yet. The endpoint requires the transactions:read scope.
The Scheduled Transactions API is in Beta. Additive changes are normal, and breaking changes may be made with notice while the resource incorporates customer feedback. See Versioning and compatibility.
GET /api/v1/scheduled-transactions returns a paginated list of scheduled transactions, one-time and recurring. Search matches the schedule's identifier, amount, and counterparty name.
curl "https://rhoapi.rho.co/api/v1/scheduled-transactions?payment_type=ach&sort_by=next_release_date&order=asc&page_size=20" \
-H "Authorization: Bearer $RHO_API_TOKEN"| Parameter | Type | Description |
|---|---|---|
payment_type | string[] | Filter by rail: ach, domestic_wire, international_wire. Repeat the key to pass several. |
counterparty_id | string[] | Filter by the counterparty being paid. Repeat the key to pass several. |
initiating_user_id | string[] | Filter by the team member who created the schedule. Repeat the key to pass several. |
search | string | Free-text across the schedule's identifier, amount, and counterparty name. |
sort_by | string | next_release_date (default) or amount. |
order | string | asc (default) or desc. |
page_size | integer | 1 to 100, defaults to 20. |
page_token | string | Opaque cursor from the previous response. |
Unlike most list endpoints here, this one defaults to ascending order, so the soonest release leads the page. Follow the cursor as described in Pagination until next_page_token is null, and keep filters and sort unchanged while paginating. Page tokens belong to the API version that created them, so restart pagination when migrating from v0 to v1.
{
"scheduled_transactions": [
{
"id": "3f2b1a44-9c1e-4a8b-bb0e-8b7c2d5e1a90",
"amount": {"amount": 450000, "currency": "USD"},
"payment_type": "ach",
"source_account": {"id": "8b7c2d5e-1a90-4a8b-bb0e-3f2b1a449c1e"},
"counterparty": {
"id": "bb0e8b7c-2d5e-1a90-4a8b-3f2b1a449c1e",
"name": "Northside Property Co"
},
"initiating_user": {"id": "9c1e4a8b-bb0e-8b7c-2d5e-1a903f2b1a44"},
"schedule": {
"frequency": "monthly",
"next_release_date": "2026-09-01",
"end_condition": {
"type": "never",
"end_date": null,
"occurrence_count": null
},
"failed": false
},
"bill": null
},
{
"id": "1a904a8b-3f2b-4a8b-bb0e-8b7c2d5e1a44",
"amount": {"amount": 128000, "currency": "USD"},
"payment_type": "domestic_wire",
"source_account": {"id": "8b7c2d5e-1a90-4a8b-bb0e-3f2b1a449c1e"},
"counterparty": {
"id": "2d5e1a90-bb0e-4a8b-8b7c-3f2b1a449c1e",
"name": "Kestrel Legal LLP"
},
"initiating_user": {"id": "9c1e4a8b-bb0e-8b7c-2d5e-1a903f2b1a44"},
"schedule": {
"frequency": "one_time",
"next_release_date": "2026-08-15",
"end_condition": {
"type": "never",
"end_date": null,
"occurrence_count": null
},
"failed": false
},
"bill": {"id": "4a8b3f2b-1a44-9c1e-bb0e-8b7c2d5e1a90"}
}
],
"page": {
"next_page_token": null
}
}Amounts use the currency's smallest unit (cents for USD), so 450000 is $4,500.00, and it's the amount of each occurrence rather than the total across them.
frequency is one of one_time, daily, weekly, semi_monthly, monthly, or yearly. semi_monthly is anchored to the 1st and 15th; weekly, monthly and yearly to the same weekday or calendar day.
next_release_date is null once the schedule has permanently stopped producing occurrences - after its single release for one_time, or once its end condition is reached.
failed is true when a recurring schedule has stopped executing, as distinct from one that completed normally or was canceled. It's always false for one_time.
end_condition.type is never, end_date, or occurrence_count, and only the matching field is populated. end_date is exclusive: the schedule stops before it, so an occurrence landing exactly on that date doesn't fire, and the last release is on the preceding scheduled date. The end condition isn't meaningful for one_time, which always ends after its single release.
bill is set when the schedule pays a bill from Bill Pay and null for a plain scheduled transfer. Recurring isn't supported in bill pay yet, so a schedule with a bill is always one_time today.
counterparty.id is the counterparty identifier returned with the schedule, and initiating_user.id resolves through Users; bill.id is the Bill Pay identifier.
Canceled schedules aren't returned.
To link an occurrence to the transaction you have to match on amount, date, and counterparty.
Full endpoint catalogue - paths, parameters, response shapes, and required scopes - lives in the API Reference.