redeliverNotification
const url = 'https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/notification-recovery/deliveries/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/redelivery';const options = { method: 'POST', headers: { 'Idempotency-Key': '2489E9AD-2EE2-8E00-8EC9-32D5F69181C0', 'X-Katara-CSRF': '1', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"expected_version":1,"enrollment_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","enrollment_version":1,"mode":"test","reset_generation":1,"acknowledge":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.katara.com/katara/v1/orgs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/environments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/notification-recovery/deliveries/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/redelivery \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: 2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \ --header 'X-Katara-CSRF: 1' \ --data '{ "expected_version": 1, "enrollment_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "enrollment_version": 1, "mode": "test", "reset_generation": 1, "acknowledge": true }'Requires a signed-in human session and current organization membership. New recovery requires a separately enrolled, current notification recovery operator; owner and administrator roles do not imply this permission. Review retains current recipient and source access. Redelivery accepts only an exact dead-letter version or its frozen digest leader, never an unknown send. Preserve the same operation UUID and exact request after an unknown reply; inspect its historical receipt before an explicit retry. Receipt reads retain current actor and tenant visibility but do not assert current delivery or enrollment status. Test delivery remains intercepted. Provider feedback callbacks are not exposed.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Browser cookie mutations require value 1 and an allowed Origin. Session bearer clients may omit this header.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Responses
Section titled “Responses”Current review metadata or immutable historical recovery receipt. No provider delivery is implied.
object
Example
{ "mode": "test"}Headers
Section titled “Headers”default
Section titled “default”Refused, conflicting, or unavailable recovery request.
object
object
Stable; branch on it. Any operation can answer invalid_request, with param naming the refused field when there is one; human_session_required, when an API key, service account or workload calls an operation only a signed-in person may perform; reauthentication_required, when a person’s sign-in is too old for the operation; permission_denied; route_not_found and method_not_allowed, when no operation matches the path or method; and feature_unavailable, when the operation’s service is not enabled on this deployment.
The request field a refusal is about, such as the agent_id or run_id query parameter; null when the refusal is not about one field.
Example
{ "error": { "action": "sign_in" }}