EmployeesResubmit rejected time registrations

Resubmit rejected time registrations

Sends registrations that a manager rejected back for approval after the employee fixed them.

The second half of the rejection loop: a manager rejects (day status Rejected, registrations re-opened), the employee corrects the registrations, and this call submits them again. They are marked 'rejected and resubmitted' (employee-manager or project-manager variant), which the day status reports as HasResubmittedRejectedRegistration = true. Validation, partial success and errors are exactly those of submit-time-registrations; the call does NOT check that the registrations were actually rejected.

Use it to:

  • After get-status-by-dates?$expand=RejectedRegistrations shows rejected items and the integration has corrected them, resubmit those IDs.

Not for:

  • First-time submission — use POST /v1/approval/timesheets/submit-time-registrations.

Behaviour:

  • Not idempotent.
  • Safe to retry only under a condition. As submit-time-registrations: partly failed calls have already resubmitted the valid registrations.
  • Side effect: Valid registrations: status Closed; approval status 'rejected and resubmitted' on their approval context items.
  • On failure: Valid registrations are resubmitted even when the call returns 500 Code 102 for others.
  • Changes are visible to the next read immediately.
  • Batch: partial

Call first: GET /v1/approval/timesheets/get-status-by-dates, PUT /v1/time-registration

Next: GET /v1/approval/timesheets/get-status-by-dates

See also: POST /v1/approval/timesheets/submit-time-registrations

Not yet documented: behaviour → side effects; examples (success).

curl -X POST "https://app3.timelog.com/your-account/api/v1/approval/timesheets/resubmit-rejected-time-registrations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "EmployeeUserID": 123,
  "TimeRegistrationIds": [
    "null"
  ]
}'
"null"
POST
/v1/approval/timesheets/resubmit-rejected-time-registrations
POST
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.
Content-Typestring
Required

The media type of the request body

Options: application/json
EmployeeUserIDinteger
Required

User ID of the employee who owns the registrations. Every registration must belong to this user. Refers to UserRead.UserID. Look up valid values with GET /v1/user. - 0, negative or omitted — 400 "'Employee User ID' must be greater than '0'." - another user than the caller, without the needed rights — 500 Code 102, ErrorCode 37966; nothing is submitted.

Format: int32
TimeRegistrationIdsarray
Required

IDs of the registrations to submit. Each is validated on its own; valid ones are submitted even when others fail. Refers to TimeRegistrationRead.TimeRegistrationID. Look up valid values with GET /v1/time-registration/{timeRegistrationID}. - ID that does not exist — Not returned by the lookup, so silently skipped. - registration of another user than EmployeeUserID — ErrorCode 37972 for that registration. - registration already approved by the employee manager — ErrorCode 37615. - registration already submitted and not rejected — ErrorCode 37971. - null or omitted — No validation rule: fails in the lookup → 500. > Not yet documented: multiple. > Not yet documented: behaviour.

Format: int32
Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).

The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.

Not yet documented: how to obtain a token.

Not yet documented: token lifetime.

Body

application/json
EmployeeUserIDinteger
Required

User ID of the employee who owns the registrations. Every registration must belong to this user.

Refers to UserRead.UserID. Look up valid values with GET /v1/user.

  • 0, negative or omitted — 400 "'Employee User ID' must be greater than '0'."

  • another user than the caller, without the needed rights — 500 Code 102, ErrorCode 37966; nothing is submitted.

TimeRegistrationIdsarray
Required

IDs of the registrations to submit. Each is validated on its own; valid ones are submitted even when others fail.

Refers to TimeRegistrationRead.TimeRegistrationID. Look up valid values with GET /v1/time-registration/{timeRegistrationID}.

  • ID that does not exist — Not returned by the lookup, so silently skipped.

  • registration of another user than EmployeeUserID — ErrorCode 37972 for that registration.

  • registration already approved by the employee manager — ErrorCode 37615.

  • registration already submitted and not rejected — ErrorCode 37971.

  • null or omitted — No validation rule: fails in the lookup → 500.

Not yet documented: multiple.

Not yet documented: behaviour.

Responses

Success without content: HTTP 200 with the literal JSON body null. Literal JSON null.