Manage Recurring Transaction
Update a schedule, pause and resume it, or cancel and delete it, once it's been created.
Once a recurring transaction exists, you manage its lifecycle with a small set of actions: update its schedule, pause and resume it, cancel it permanently, or delete it before it has run. Which actions are allowed depends on the schedule's current status. For creating one, see Create Recurring Transaction.
Common use cases
- Extend or shorten a schedule by changing its
endDateoroccurrence - Temporarily pause a schedule while a service is on hold, then resume it
- Cancel a schedule that's no longer needed, or delete one created in error
What you can do in each status
| Action | Allowed from | Result |
|---|---|---|
| Update | ACTIVE, PAUSED | Changes editable schedule fields. |
| Pause | ACTIVE | Moves to PAUSED; no transactions generated until resumed. |
| Resume | PAUSED | Moves back to ACTIVE. |
| Cancel | ACTIVE, PAUSED | Moves to CANCELLED; permanent, can't be reverted. |
| Delete | ACTIVE (and only if no transactions have been created yet) | Removes the schedule entirely. |
Each of these targets the schedule by id or externalId. Trying an action from a status that doesn't allow it returns an error; see Recurring Transaction Error Codes.
Update a schedule
Change editable fields on an ACTIVE or PAUSED schedule. Send a POST to /v1/transaction/recurring/id/{id} (or /externalId/{externalId}) with only the fields you want to change. On success you get 204 No Content.
What you can and can't update
| Field | Editable? |
|---|---|
transactionDetail.endDate, occurrence, interval, dayOfWeek, dayOfMonth, monthOfYear | Yes |
transactionDetail.startDate | Only while ACTIVE/PAUSED and no transactions have been created yet |
transactionDetail.frequency | No |
action.transaction.source, action.transaction.destination | No, cancel the schedule and create a new one |
action.transaction other fields, purpose, linkedDocument, metaData, comment, tags | Yes |
name | No |
externalId | No, once set |
Request (extend the end date)
POST /v1/transaction/recurring/id/5441
{
"transactionDetail": {
"endDate": "03/10/2027"
}
}Response
204 No Content. Retrieve the schedule to confirm the change.
Changing where money movesThe
sourceanddestinationof a schedule can't be modified. To move money to or from a different account, cancel this schedule and create a new one.
Pause a schedule
Suspend an ACTIVE schedule so no transactions are generated until you resume it. Send a POST to /v1/transaction/recurring/id/{id}/pause (or /externalId/{externalId}/pause). On success you get 204 No Content.
| Parameter | Required | Description |
|---|---|---|
reason | ✓ | Why you're pausing: SERVICE_ON_HOLD, PAID_EXTERNALLY, or OTHERS. |
resumeOn | Optional | Date on which PCE resumes the schedule automatically. Must be before endDate. |
comment | Conditional | Required when reason is OTHERS. |
Request
POST /v1/transaction/recurring/id/12242/pause
{
"reason": "SERVICE_ON_HOLD",
"resumeOn": "10/16/2026",
"comment": "Service paused during renovation"
}Response
204 No Content. The schedule moves to PAUSED.
Resume a schedule
Reactivate a PAUSED schedule. Send a POST to /v1/transaction/recurring/id/{id}/resume (or /externalId/{externalId}/resume). On success you get 204 No Content.
| Parameter | Required | Description |
|---|---|---|
comment | Optional | Any additional comment. |
Request
POST /v1/transaction/recurring/id/12242/resume
{
"comment": "Service resumed"
}Response
204 No Content. The schedule moves back to ACTIVE.
Automatic resumeIf you set
resumeOnwhen pausing, PCE resumes the schedule on that date without an explicit resume call. Call resume yourself to reactivate it earlier.
Cancel a schedule
Stop an ACTIVE or PAUSED schedule permanently. Send a POST to /v1/transaction/recurring/id/{id}/cancel (or /externalId/{externalId}/cancel). On success you get 204 No Content.
| Parameter | Required | Description |
|---|---|---|
reason | ✓ | Why you're cancelling: INCORRECTLY_CREATED, PAID_EXTERNALLY, SERVICE_CONTRACT_TERMINATED, or OTHERS. |
comment | Conditional | Required when reason is OTHERS. |
Request
POST /v1/transaction/recurring/id/544/cancel
{
"reason": "SERVICE_CONTRACT_TERMINATED",
"comment": "Contract ended"
}Response
204 No Content. The schedule moves to CANCELLED.
Cancel is permanentA cancelled schedule can't be reactivated. Transactions already generated aren't affected, they continue through the Transaction lifecycle. To resume the arrangement later, create a new schedule.
Delete a schedule
Remove a schedule entirely. Send a DELETE to /v1/transaction/recurring/id/{id} (or /externalId/{externalId}). Delete is allowed only while the schedule is ACTIVE and no transactions have been created or processed under it yet, use it to remove a schedule created in error. On success you get 200 OK.
DELETE /v1/transaction/recurring/id/9106
If any transaction has already been generated, delete is rejected (EC-BL-9911); cancel the schedule instead.
Cancel vs. deleteCancel stops a schedule that has already run (or is running) and keeps it on record as
CANCELLED. Delete removes a schedule that never ran. If in doubt, cancel.
Statuses
These actions move the schedule between ACTIVE, PAUSED, and CANCELLED, and a schedule reaches COMPLETED on its own when its endDate or occurrence is met. The full status model and reasons are on Recurring transactions.
Best practices
General practices are in Getting Started. Specific to managing a schedule:
| Practice | Description |
|---|---|
| Pause instead of cancel for a hold | If the arrangement will resume, pause (optionally with resumeOn) so you keep the same schedule and externalId. |
Provide a comment for OTHERS | Pausing or cancelling with reason: OTHERS requires a comment; include it to avoid a rejection. |
| Cancel then recreate to change parties | source/destination and frequency are immutable; cancel and create a new schedule to change them. |
| Confirm with a GET | Management responses have no body (204); retrieve the schedule to confirm the new status. |
Next steps
See also
- Recurring transactions: the schedule model and status overview
- Transaction lifecycle: what happens to transactions a schedule already generated
- Recurring Transaction Error Codes: resolve a rejected management action
Updated about 4 hours ago