Saltar al contenido

Referencia de la API

Notificaciones

18 operaciones, cada una con sus parámetros, ejemplos en curl y TypeScript listos para copiar y sus errores.

Cada ejemplo supone una sesión iniciada; cómo obtenerla está en Autenticación

bounceAlerts

GET/_x/query/bounce-alerts

Miembro de la firmaPermiso: notification:readHerramienta MCP: bounceAlerts

Recipients whose notification could NOT be delivered (status bounced: the recipient's mail server refused it for good; status failed: our mail transport refused to send it) or who marked it as unwanted (complained), newest first, with the case radicado. Without notificationId: only those not yet re-issued to another address. With notificationId: that notification's failed recipients, `switched: true` when already re-issued. Next steps for bounced or failed: verify the address, re-issue to another sworn address in the panel (switchChannel), or notify by physical means. Read-only.

Parámetros de bounceAlerts
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)No
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/bounce-alerts?orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/bounce-alerts?orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

caseNotifications

GET/_x/query/case-notifications

Miembro de la firmaPermiso: notification:readHerramienta MCP: caseNotifications

List one case’s notifications, newest first (up to 200): id, case, status (draft | freezing | frozen | sending | sent | failed), subject, the frozen .eml SHA-256 and UTC timestamps. Read-only.

Parámetros de caseNotifications
NombreDóndeTipoObligatorio
caseIdConsultastring (uuid)Sí
limitConsultainteger 1–200No
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/case-notifications?caseId=<caseId>&orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/case-notifications?caseId=<caseId>&orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

listPendingApprovals

GET/_x/query/list-pending-approvals

Miembro de la firmaPermiso: notification:read

listPendingApprovals

Parámetros de listPendingApprovals
NombreDóndeTipoObligatorio
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/list-pending-approvals?orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/list-pending-approvals?orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

listPendingSends

GET/_x/query/list-pending-sends

Miembro de la firmaPermiso: and(notification:send, notification:send)

listPendingSends

Parámetros de listPendingSends
NombreDóndeTipoObligatorio
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/list-pending-sends?orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/list-pending-sends?orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

memorialReadiness

GET/_x/query/memorial-readiness

Miembro de la firmaPermiso: memorial:readHerramienta MCP: memorialReadiness

Whether a memorial can be generated now for one notification in your organization. One row: ready, and when not ready the reason — "bounce" (a recipient bounced: NOT notified; re-issue to another address first), "not-delivered" (a recipient server has not accepted the message yet), "constancia-pending" or "term-pending" (still being produced, retry in a minute) — with the X_ code createMemorial would refuse with. Read-only.

Parámetros de memorialReadiness
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/memorial-readiness?notificationId=<notificationId>&orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/memorial-readiness?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

notificationDetail

GET/_x/query/notification-detail

Miembro de la firmaPermiso: notification:readHerramienta MCP: notificationDetail

One notification by id: status, recipients with delivery status and how each address was obtained, attachments with SHA-256, and the evidence timeline (message.frozen, transport.sent, mail.delivery, bounces, downloads, acknowledgements) in chain order with UTC times. Opens are marked indicio (never proof of reading). Read-only.

Parámetros de notificationDetail
NombreDóndeTipoObligatorio
idConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/notification-detail?id=<id>&orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/notification-detail?id=<id>&orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

notificationList

GET/_x/query/notification-list

Miembro de la firmaPermiso: notification:readHerramienta MCP: notificationList

List the org’s notifications, newest first: id, case, status (draft | freezing | frozen | sending | sent | failed), subject, the frozen .eml SHA-256 and UTC timestamps. For the next page pass cursor = "<createdAt>_<id>" of the last row you got. Read-only.

Parámetros de notificationList
NombreDóndeTipoObligatorio
cursorConsultastring 1–64No
limitConsultainteger 1–200No
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/notification-list?orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/notification-list?orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

notificationMemorials

GET/_x/query/notification-memorials

Miembro de la firmaPermiso: memorial:readHerramienta MCP: notificationMemorials

The memorials generated for one notification in your organization, newest first: id, createdAt, and the SHA-256 and size of the DOCX and the PDF, plus factsSha256 (the hash of the facts the memorial cites). Poll it after createMemorial until the new memorialId appears (seconds), then fetch the files with downloadMemorial. Read-only.

Parámetros de notificationMemorials
NombreDóndeTipoObligatorio
limitConsultainteger 1–200No
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/notification-memorials?notificationId=<notificationId>&orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/notification-memorials?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

sendConfirmationDetail

GET/_x/query/send-confirmation-detail

Miembro de la firmaPermiso: notification:read

sendConfirmationDetail

Parámetros de sendConfirmationDetail
NombreDóndeTipoObligatorio
confirmationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–10000page size; present, the response is the page envelope rather than the bare rows (1 to 10000)No
_afterConsultastringthe endCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/send-confirmation-detail?confirmationId=<confirmationId>&orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/send-confirmation-detail?confirmationId=<confirmationId>&orgId=<orgId>', {
  headers: { cookie: sessionCookie },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 403 policy denied

switchChannel

POST/api/channels/switch

Miembro de la firmaPermiso: notification:send

switchChannel

Parámetros de switchChannel
NombreDóndeTipoObligatorio
emailCuerpostring 1–320Sí
evidenceDocumentIdsCuerpoarray of string 1–64No
juramentoCuerpoboolean | string 0–8No
nameCuerpostring 0–300No
notificationIdCuerpostring 1–64No
orgIdCuerpostring 1–64Sí
overrideReasonCuerpostring 0–2000 | nullNo
recipientIdCuerpostring 1–64Sí
sourceCuerpostring 1–64Sí
sourceTextCuerpostring 1–2000Sí
curl
curl -X POST 'https://www.notificado.co/api/channels/switch' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{
  "email": "<email>",
  "orgId": "<orgId>",
  "recipientId": "<recipientId>",
  "source": "<source>",
  "sourceText": "<sourceText>"
}'
TypeScript
const response = await fetch('https://www.notificado.co/api/channels/switch', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "email": "<email>",
    "orgId": "<orgId>",
    "recipientId": "<recipientId>",
    "source": "<source>",
    "sourceText": "<sourceText>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "caseId": "<caseId>",
  "createdAt": "2026-09-25T15:00:00Z",
  "emlSha256": "<emlSha256>",
  "frozenAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

createMemorial

POST/api/memorials/create

Miembro de la firmaPermiso: memorial:writeHerramienta MCP: createMemorial

Generates the memorial (DOCX + PDF draft, in Spanish) that informs the juzgado that personal notification under art. 8 Ley 2213 de 2022 was practised for one notification in your organization: radicado, juzgado, parties, each recipient with sent/delivered/acknowledged times in America/Bogota, the sworn forma de obtención, the constancia verify code and URL, the computed term dates with their disclaimer and inputsSha256, and the annexes with SHA-256. Returns the memorialId and the render job handle; download the files with downloadMemorial once notificationMemorials lists it (seconds). It is a DRAFT marked [LAWYER REVIEW]: a lawyer must review, sign and file it — nothing is sent to the court. Refused with X_MEMORIAL_BLOCKED_BOUNCE while any recipient bounced, X_MEMORIAL_NOT_DELIVERED before delivery, X_MEMORIAL_CONSTANCIA_PENDING / X_MEMORIAL_TERM_PENDING while those are still being produced.

Parámetros de createMemorial
NombreDóndeTipoObligatorio
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/memorials/create' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"notificationId":"<notificationId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/memorials/create', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "notificationId": "<notificationId>",
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "charge": "free",
  "jobId": "<jobId>",
  "memorialId": "<memorialId>",
  "templateId": "<templateId>"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

downloadMemorial

POST/api/memorials/download

Miembro de la firmaPermiso: memorial:readHerramienta MCP: downloadMemorial

Returns the bytes (base64, with filename, content type and SHA-256) of one generated memorial in your organization, as "docx" (editable, for the lawyer to review and sign) or "pdf" (with the constancia verification QR). The SHA-256 is re-checked against the memorial record before the bytes are served, and every download is recorded in the audit log. Fails X_MEMORIAL_NOT_FOUND for an unknown id or one whose render job has not finished.

Parámetros de downloadMemorial
NombreDóndeTipoObligatorio
formatCuerpo"docx" | "pdf"Sí
memorialIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/memorials/download' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"format":"docx","memorialId":"<memorialId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/memorials/download', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "format": "docx",
    "memorialId": "<memorialId>",
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "bytes": 0,
  "contentBase64": "<contentBase64>",
  "contentType": "<contentType>",
  "filename": "<filename>",
  "format": "docx",
  "memorialId": "<memorialId>",
  "sha256": "<sha256>"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

sendNotification

POST/api/notifications/send

Miembro de la firmaPermiso: or(and(approval:request, not(notification:send)), notification:send)Herramienta MCP: sendNotification

REQUEST the send of a draft notification — REQUIRES HUMAN CONFIRMATION. Over MCP this never sends: it checks the draft is ready (recipients sworn by the lawyer in the panel, at least one attachment, under 20 MB) and returns { status: "awaiting_confirmation", confirmUrl, expiresAt }; hand confirmUrl to the lawyer, who confirms in the panel within 24 hours — only then is one credit per recipient consumed and the exact message frozen, timestamped and emailed. Call it once, with confirm: true, only after showing the lawyer the recipients and attachments. Do NOT call it to test, and do not retry after awaiting_confirmation. Requires an approved lawyer KYC (X_KYC_REQUIRED otherwise). If your token belongs to a paralegal it returns { status: "awaiting_approval", approvalUrl } instead: a lawyer of the firm approves or rejects it in the panel (X_SEND_APPROVALS_OFF when the firm has not turned approvals on).

Parámetros de sendNotification
NombreDóndeTipoObligatorio
confirmCuerpotrueSí
noteCuerpostring 1–1000No
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/notifications/send' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"confirm":true,"notificationId":"<notificationId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/notifications/send', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "confirm": true,
    "notificationId": "<notificationId>",
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "caseId": "<caseId>",
  "createdAt": "2026-09-25T15:00:00Z",
  "emlSha256": "<emlSha256>",
  "frozenAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

addRecipient

POST/api/recipients/add

Miembro de la firmaPermiso: notification:send

addRecipient

Parámetros de addRecipient
NombreDóndeTipoObligatorio
emailCuerpostring (email)Sí
evidenceDocumentIdsCuerpoarray of string (uuid)Sí
juramentoCuerpobooleanSí
nameCuerpostring 1–300Sí
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
overrideReasonCuerpostring 1–2000 | nullNo
sourceCuerpo"comunicaciones_previas" | "camara_de_comercio" | "rut" | "contrato" | "web_oficial" | "otro"Sí
sourceTextCuerpostring 1–2000Sí
curl
curl -X POST 'https://www.notificado.co/api/recipients/add' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{
  "email": "<email>",
  "evidenceDocumentIds": [],
  "juramento": true,
  "name": "<name>",
  "notificationId": "<notificationId>",
  "orgId": "<orgId>",
  "source": "comunicaciones_previas",
  "sourceText": "<sourceText>"
}'
TypeScript
const response = await fetch('https://www.notificado.co/api/recipients/add', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "email": "<email>",
    "evidenceDocumentIds": [],
    "juramento": true,
    "name": "<name>",
    "notificationId": "<notificationId>",
    "orgId": "<orgId>",
    "source": "comunicaciones_previas",
    "sourceText": "<sourceText>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "email": "<email>",
  "id": "<id>",
  "name": "<name>",
  "notificationId": "<notificationId>",
  "status": "queued"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

requestSendApproval

POST/api/send-approvals/request

Miembro de la firmaPermiso: and(approval:request, not(notification:send))

requestSendApproval

Parámetros de requestSendApproval
NombreDóndeTipoObligatorio
noteCuerpostring 1–1000No
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/send-approvals/request' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"notificationId":"<notificationId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/send-approvals/request', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "notificationId": "<notificationId>",
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "approvalId": "<approvalId>",
  "approvalUrl": "<approvalUrl>",
  "notificationId": "<notificationId>",
  "status": "awaiting_approval"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

approveSend

POST/api/sends/approve

Miembro de la firmaPermiso: and(notification:send, notification:send)

approveSend

Parámetros de approveSend
NombreDóndeTipoObligatorio
approvalIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/sends/approve' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"approvalId":"<approvalId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/sends/approve', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "approvalId": "<approvalId>",
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "caseId": "<caseId>",
  "createdAt": "2026-09-25T15:00:00Z",
  "emlSha256": "<emlSha256>",
  "frozenAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

confirmSend

POST/api/sends/confirm

Miembro de la firmaPermiso: and(notification:send, notification:send)

confirmSend

Parámetros de confirmSend
NombreDóndeTipoObligatorio
confirmationIdCuerpostring (uuid)Sí
draftSha256Cuerpostring 64–64No
orgIdCuerpostring (uuid)Sí
returnToCuerpostring 1–2048No
curl
curl -X POST 'https://www.notificado.co/api/sends/confirm' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"confirmationId":"<confirmationId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/sends/confirm', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "confirmationId": "<confirmationId>",
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "caseId": "<caseId>",
  "createdAt": "2026-09-25T15:00:00Z",
  "emlSha256": "<emlSha256>",
  "frozenAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID

rejectSend

POST/api/sends/reject

Miembro de la firmaPermiso: and(notification:send, notification:send)

rejectSend

Parámetros de rejectSend
NombreDóndeTipoObligatorio
approvalIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
reasonCuerpostring 1–1000Sí
curl
curl -X POST 'https://www.notificado.co/api/sends/reject' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"approvalId":"<approvalId>","orgId":"<orgId>","reason":"<reason>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/sends/reject', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "approvalId": "<approvalId>",
    "orgId": "<orgId>",
    "reason": "<reason>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "approvedBy": "<approvedBy>",
  "createdAt": "2026-09-25T15:00:00Z",
  "decidedAt": "2026-09-25T15:00:00Z",
  "draftedBy": "<draftedBy>",
  "id": "<id>",
  "note": "<note>",
  "notificationId": "<notificationId>",
  "rejectReason": "<rejectReason>",
  "rejectedBy": "<rejectedBy>",
  "requestedVia": "panel",
  "status": "pending"
}

Errores

  • 400 X_INPUT_INVALID
  • 403 policy denied
  • 422 X_BODY_INVALID