---
title: "Vetting Invite Tick"
method: POST
path: "/api/internal/cron/vetting-invite-tick"
tags: ["Internal Cron"]
---

# Vetting Invite Tick

`POST /api/internal/cron/vetting-invite-tick`

## Request

- Base URL: `https://api.ruzora.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ruzora.com/api/internal/cron/vetting-invite-tick`
- Auth: none declared

PR #528 (VETTING_SEND_INVITE_ENABLED): retry a first invite that
failed (within 24 hours of the request), send the ONE 48-hour reminder,
then delete invite addresses 30 days after their request ended.

External cron (.github/workflows/grading-retry-cron.yml, hourly), never
the in-process scheduler: interval jobs starve on Railway replicas (the
enrollment stall, 2026-08-18; PR #528 e2e W5). Idempotent: every send is
claimed by a conditional UPDATE in the send's own transaction, so a
double call sends nothing twice. The sends are flag-gated; the purge
runs whatever the flags say.

## Headers

- `x-cron-token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api.md) · [All operations](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/revisions/f9b8223f3ac4?raw)
