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 endDate or occurrence
  • 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

ActionAllowed fromResult
UpdateACTIVE, PAUSEDChanges editable schedule fields.
PauseACTIVEMoves to PAUSED; no transactions generated until resumed.
ResumePAUSEDMoves back to ACTIVE.
CancelACTIVE, PAUSEDMoves to CANCELLED; permanent, can't be reverted.
DeleteACTIVE (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

FieldEditable?
transactionDetail.endDate, occurrence, interval, dayOfWeek, dayOfMonth, monthOfYearYes
transactionDetail.startDateOnly while ACTIVE/PAUSED and no transactions have been created yet
transactionDetail.frequencyNo
action.transaction.source, action.transaction.destinationNo, cancel the schedule and create a new one
action.transaction other fields, purpose, linkedDocument, metaData, comment, tagsYes
nameNo
externalIdNo, 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 moves

The source and destination of 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.

ParameterRequiredDescription
reasonWhy you're pausing: SERVICE_ON_HOLD, PAID_EXTERNALLY, or OTHERS.
resumeOnOptionalDate on which PCE resumes the schedule automatically. Must be before endDate.
commentConditionalRequired 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.

ParameterRequiredDescription
commentOptionalAny additional comment.

Request

POST /v1/transaction/recurring/id/12242/resume

{
  "comment": "Service resumed"
}

Response

204 No Content. The schedule moves back to ACTIVE.

📘

Automatic resume

If you set resumeOn when 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.

ParameterRequiredDescription
reasonWhy you're cancelling: INCORRECTLY_CREATED, PAID_EXTERNALLY, SERVICE_CONTRACT_TERMINATED, or OTHERS.
commentConditionalRequired 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 permanent

A 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. delete

Cancel 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:

PracticeDescription
Pause instead of cancel for a holdIf the arrangement will resume, pause (optionally with resumeOn) so you keep the same schedule and externalId.
Provide a comment for OTHERSPausing or cancelling with reason: OTHERS requires a comment; include it to avoid a rejection.
Cancel then recreate to change partiessource/destination and frequency are immutable; cancel and create a new schedule to change them.
Confirm with a GETManagement responses have no body (204); retrieve the schedule to confirm the new status.

Next steps

See also



Did this page help you?
.readme-logo { display: none !important; }