Mark an expiry done
post
https://api.expiryedge.com/v1/markExpiryDoneeditor or admin60/minAny method
Request
curl -X POST 'https://api.expiryedge.com/v1/markExpiryDone?id=exp_4Tq9sLm2' \
-H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"expiryId": "exp_4Tq9sLm2",
"closingNotes": "Renewed with the State Board; certificate filed.",
"checklistCompleted": [
"chk_submit_form",
"chk_pay_fee"
]
}'Response
{
"message": "Expiry marked as done",
"next_expiry": {
"next_expiry_id": "exp_8Wd3nQ1v",
"next_expiry_date": "2027-10-15",
"mode": "renew_as_copy",
"occurrence_number": 2
}
}Pass the id as query id or body id / expiryId. Sets is_done, state: completed, fires on_done workflows and,
for recurring expiries, creates the next occurrence (returned in next_expiry). Every required checklist item id
must be in checklistCompleted.
idstringExpiry id (alternative to bodyid/expiryId).
idstringExpiry id (alternative to queryid).expiryIdstringExpiry id (alias ofid).closingNotesstringchecklistCompletedarray of stringIds of completed checklist items; must include every required item.checklistCommentsByIdmap of stringChecklist item id -> comment.
200
Marked done.
messagestringrequirednext_expiryobject | nullrequiredThe next occurrence created for a recurring expiry, else null.
400 | Missing id, or required checklist items not completed. |
401 | Missing, expired or invalid bearer token. |
403 | Authenticated, but your role or organization does not allow this action. |
404 | The record does not exist or is not in your organization. |
429 | Too many requests for this endpoint from your IP. Wait Retry-After seconds. |
