Back to index You are here because A contract of yours reads Approval expired , or you got the email with the subject "Contract approval expired: ..." , and nothing is posting. That is the system...
Last updated
A contract of yours reads Approval expired, or you got the email with the subject "Contract approval expired: ...", and nothing is posting.
That is the system working. Now you renew it.
Which path you get depends on whether the contract has an end date. You do not have to work this out. The button on the row tells you.
| Your contract | Row button | What renewing means |
|---|---|---|
| Has an end date (dated, or "After N occurrences") | Extend term | Push the end date out. That is a new term, so it needs a new approval. |
| Has no end date (open-ended) | Re-submit | The 12-month clock ran out. Ask for another 12 months. |
That is it. The button label is not decoration: saving here submits the contract for a fresh approval. It does not just quietly save a new date.
The 12-month clock restarts from the day the new approval lands.
From the email: the open-ended expiry email's button is Re-submit for approval, and it opens the renewal editor for you directly. One click from the inbox to the form.
Renewal is not a rubber stamp. When you submit, the contract goes through:
Nothing is skipped. Nothing is shortened. Approvers see the commitment: the contract type, the cadence, the term you are proposing, the occurrences remaining, and the total committed amount you are asking them to re-commit to. See What approvers see.
While the approval is in flight:
When the approval lands, the badge flips to Approved · covers recurring and generation resumes automatically. The next run is computed forward from today. It does not backfill the occurrences you missed while it was paused. If you need those, enter them as one-off expenses.
This is a real state, and it is deliberately not the same as "expired".
The row's badge reads Renewal rejected, and the primary button reads Revise.
Open it and the editor shows you the rejection on the record:
Renewal rejected: revise and re-submit
This renewal was declined at the amount submitted. The schedule stays paused: it will not fall back to "Approval expired." Revise the amount, cadence, or term, then re-submit for a fresh vote.
Underneath that you get:
Do not just press save again. A rejected renewal that is re-submitted unchanged will be rejected again. Change something real: the amount (negotiate the vendor down), the cadence, or the term. Then Save and submit for approval.
A rejected renewal does not fall back to "expired" and it does not silently resume. It sits paused until a human revises it and it clears a vote.
There is a third state that looks similar in the list but is not the same thing:
"Approval rejected" (rather than "Renewal rejected") means a different kind of re-approval was voted down. Not a renewal, but an amendment (somebody changed the price) or a contract-type change (somebody flipped FIXED to VARIABLE or back).
The fix is the same: Revise, change something, re-submit. But the cause is different, so read the badge. The system tracks the real reason the approval was re-armed, so it can tell you truthfully which one you are looking at.
Then do not. Delete the schedule from the Scheduled tab.
Delete recurring schedule? This deactivates the schedule (soft delete). Previously generated expenses keep their history and are unaffected.
This is a deactivation, not a destruction. Everything the contract already posted stays exactly where it is, in the books, with its history intact. What stops is the future.
The re-arming of the approval is written to the audit trail with its reason, so a renewal is distinguishable from an amendment from a contract-type flip. The rejection, if there is one, is recorded with who rejected it and when. The eventual approval, and the resumption of generation, are recorded too.