Saltar al contenido
Notificado

Notificaciones

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

Las operaciones marcadas /v1 se autentican con un token de agente; las demás, con una sesión del panel. Cómo funcionan ambas está en Autenticación

approvalSettings

GET/_x/query/approval-settings

Miembro de la firmaPermiso: notification:readHerramienta MCP: approvalSettings

Always required: sendNotification by anyone who cannot send (a paralegal, an unverified lawyer) files a request (awaiting_approval) a verified lawyer decides. noDecider: nobody but you could decide yours. Read-only.

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

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

bounceAlerts

GET/v1/bounce-alerts

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: bounceAlerts

Recipients bounced, failed or complained and not re-issued yet; the lawyer re-issues in the panel.

Parámetros de bounceAlerts
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)No
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–200page size; present, the response is the page envelope rather than the bare rows (1 to 200)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/bounce-alerts?orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/bounce-alerts?orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  {
    "at": "<at>",
    "caseId": "<caseId>",
    "email": "<email>",
    "id": "<id>",
    "name": "<name>",
    "notificationId": "<notificationId>",
    "radicado": "<radicado>",
    "recipientId": "<recipientId>",
    "status": "bounced",
    "switched": true
  }
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

caseCourtOutcomes

GET/v1/case-court-outcomes

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: caseCourtOutcomes

The current court outcome per notification of a case.

Parámetros de caseCourtOutcomes
NombreDóndeTipoObligatorio
caseIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/case-court-outcomes?caseId=<caseId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/case-court-outcomes?caseId=<caseId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

caseMemorials

GET/v1/case-memorials

Miembro de la firmaPermiso: memorial:read/v1 · token BearerHerramienta MCP: caseMemorials

A case's memoriales with their hashes.

Parámetros de caseMemorials
NombreDóndeTipoObligatorio
caseIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–200page size; present, the response is the page envelope rather than the bare rows (1 to 200)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/case-memorials?caseId=<caseId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/case-memorials?caseId=<caseId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  {
    "caseId": "<caseId>",
    "createdAt": "<createdAt>",
    "docxBytes": 1,
    "docxSha256": "<docxSha256>",
    "id": "<id>",
    "keysetAt": "<keysetAt>",
    "notificationId": "<notificationId>",
    "orgId": "<orgId>",
    "pdfBytes": 1,
    "pdfSha256": "<pdfSha256>"
  }
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

caseNotifications

GET/v1/case-notifications

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: caseNotifications

One case's notifications, newest first (up to 200), with their status and where the evidence stands.

Parámetros de caseNotifications
NombreDóndeTipoObligatorio
caseIdConsultastring (uuid)Sí
limitConsultainteger 1–200No
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/case-notifications?caseId=<caseId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/case-notifications?caseId=<caseId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

caseRecipients

GET/v1/case-recipients

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: caseRecipients

Recipients of a case's notifications with delivery, acuse and surtida (UTC).

Parámetros de caseRecipients
NombreDóndeTipoObligatorio
caseIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–1000page size; present, the response is the page envelope rather than the bare rows (1 to 1000)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/case-recipients?caseId=<caseId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/case-recipients?caseId=<caseId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  {
    "acknowledgedAt": "<acknowledgedAt>",
    "caseId": "<caseId>",
    "conservativeSurtidaAt": "<conservativeSurtidaAt>",
    "createdAt": "<createdAt>",
    "email": "<email>",
    "id": "<id>",
    "name": "<name>",
    "notificationCreatedAt": "<notificationCreatedAt>",
    "notificationId": "<notificationId>",
    "orgId": "<orgId>",
    "position": 1,
    "status": "<status>",
    "surtidaAt": "<surtidaAt>"
  }
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

creditsSummary

GET/_x/query/credits-summary

Miembro de la firmaPermiso: notification:readHerramienta MCP: creditsSummary

How many sends the caller's firm has left: `balance` is how many recipients can still be notified (one credit per recipient, consumed on send); `mode` is 'free' while Notificado sells nothing (never tell the lawyer to buy) or 'paid'; `trial` is { granted, remaining, expiresAt (UTC) } of the free sends, or null. For lawyers and paralegals; the credit statement is ledgerList (billing role). Read-only.

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

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

getNotification

GET/v1/get-notification

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: getNotification

One notification: recipients, attachments with SHA-256 and the evidence timeline (UTC). Opens are indicio.

Parámetros de getNotification
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
curl
curl 'https://www.notificado.co/v1/get-notification?notificationId=<notificationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/get-notification?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "attachments": [
    {
      "bytes": 1,
      "delivery": "attached",
      "filename": "<filename>",
      "id": "<id>",
      "kind": "auto_admisorio",
      "mime": "<mime>",
      "pageCount": 1,
      "position": 1,
      "retainUntil": "<retainUntil>",
      "sha256": "<sha256>"
    }
  ],
  "bodyText": "<bodyText>",
  "caseId": "<caseId>",
  "createdAt": "<createdAt>",
  "emlSha256": "<emlSha256>",
  "frozenAt": "<frozenAt>",
  "id": "<id>",
  "mensaje": "<mensaje>",
  "orgId": "<orgId>",
  "providencia": "<providencia>",
  "providenciaFecha": "<providenciaFecha>",
  "recipients": [
    {
      "delivered": true,
      "email": "<email>",
      "failure": {
        "at": "<at>",
        "code": "<code>",
        "detail": "<detail>",
        "kind": "rejected",
        "refunded": true
      },
      "id": "<id>",
      "messageId": "<messageId>",
      "name": "<name>",
      "provenance": {
        "evidenceDocumentIds": [
          null
        ],
        "juramentoVersion": "<juramentoVersion>",
        "overrideReason": "<overrideReason>",
        "source": "comunicaciones_previas",
        "sourceText": "<sourceText>",
        "swornAt": "<swornAt>",
        "swornBy": "<swornBy>"
      },
      "sendUnconfirmed": true,
      "status": "queued"
    }
  ],
  "scheduledFor": "<scheduledFor>",
  "sentAt": "<sentAt>",
  "sentBy": "<sentBy>",
  "signerId": "<signerId>",
  "status": "draft",
  "subject": "<subject>",
  "template": "<template>",
  "terminoDias": 1,
  "tier": "standard",
  "timeline": [
    {
      "hash": "<hash>",
      "id": "<id>",
      "indicio": true,
      "linkedFile": "start",
      "occurredAt": "<occurredAt>",
      "openSignal": "likely_person",
      "payload": {},
      "recipientId": "<recipientId>",
      "recordedAt": "<recordedAt>",
      "seq": "<seq>",
      "type": "<type>"
    }
  ],
  "timestampProviderIds": [
    "<timestampProviderIds>"
  ],
  "transportId": "<transportId>"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 404 X_NOT_FOUND — the read matched no row for this input
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

getSendConfirmation

GET/v1/get-send-confirmation

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: getSendConfirmation

One send request: pending, confirmed or expired (after 24 h).

Parámetros de getSendConfirmation
NombreDóndeTipoObligatorio
confirmationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
curl
curl 'https://www.notificado.co/v1/get-send-confirmation?confirmationId=<confirmationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/get-send-confirmation?confirmationId=<confirmationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "attachments": [
    {
      "bytes": 1,
      "filename": "<filename>",
      "sha256": "<sha256>"
    }
  ],
  "confirmedAt": "<confirmedAt>",
  "confirmedBy": "<confirmedBy>",
  "cost": {
    "attachedBytes": 1,
    "canPay": true,
    "creditsPerRecipient": 1,
    "linkedBytes": 1,
    "linkedCreditsPerRecipient": 1,
    "reason": "ok",
    "recipients": 1,
    "shortBy": 1,
    "total": 1
  },
  "createdAt": "<createdAt>",
  "currentSha256": "<currentSha256>",
  "draftSha256": "<draftSha256>",
  "expiresAt": "<expiresAt>",
  "id": "<id>",
  "notificationId": "<notificationId>",
  "orgId": "<orgId>",
  "recipients": [
    {
      "email": "<email>",
      "name": "<name>"
    }
  ],
  "requestedBy": "<requestedBy>",
  "requestedWhen": "now",
  "status": "pending",
  "subject": "<subject>",
  "tokenId": "<tokenId>",
  "tokenName": "<tokenName>",
  "tokenPrefix": "<tokenPrefix>",
  "unchanged": true
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 404 X_NOT_FOUND — the read matched no row for this input
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

listMessageTemplates

GET/v1/list-message-templates

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: listMessageTemplates

The firm's message templates and merge fields; pass an id as messageTemplateId.

Parámetros de listMessageTemplates
NombreDóndeTipoObligatorio
archivedConsultabooleanNo
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/list-message-templates?orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/list-message-templates?orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

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–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor 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
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

listPendingSends

GET/v1/list-pending-sends

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: listPendingSends

Send requests still waiting for a lawyer to confirm, newest first.

Parámetros de listPendingSends
NombreDóndeTipoObligatorio
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/list-pending-sends?orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/list-pending-sends?orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

memorialReadiness

GET/v1/memorial-readiness

Miembro de la firmaPermiso: memorial:read/v1 · token BearerHerramienta MCP: memorialReadiness

Whether createMemorial can run now for a notification, and why not.

Parámetros de memorialReadiness
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/memorial-readiness?notificationId=<notificationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/memorial-readiness?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

notificationApprovals

GET/_x/query/notification-approvals

Miembro de la firmaPermiso: notification:read

notificationApprovals

Parámetros de notificationApprovals
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/_x/query/notification-approvals?notificationId=<notificationId>&orgId=<orgId>' \
  -b cookies.txt
TypeScript
const response = await fetch('https://www.notificado.co/_x/query/notification-approvals?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
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

notificationCourtOutcomes

GET/v1/notification-court-outcomes

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: notificationCourtOutcomes

What the juzgado decided on one notification, newest first; the first row is current. Not evidence.

Parámetros de notificationCourtOutcomes
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/notification-court-outcomes?notificationId=<notificationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/notification-court-outcomes?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

notificationList

GET/v1/notification-list

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: notificationList

Notifications, newest first; filter by q, status and from/to (Bogotá days); page with the last row's cursor.

Parámetros de notificationList
NombreDóndeTipoObligatorio
cursorConsultastring 1–64No
fromConsultastring 1–10No
limitConsultainteger 1–200No
orgIdConsultastring (uuid)Sí
qConsultastring 1–200No
statusConsulta"draft" | "awaiting_approval" | "scheduled" | "sent" | "delivered" | "acknowledged" | "bounced" | "failed"No
toConsultastring 1–10No
_firstConsultainteger 1–200page size; present, the response is the page envelope rather than the bare rows (1 to 200)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/notification-list?orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/notification-list?orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

notificationMemorials

GET/v1/notification-memorials

Miembro de la firmaPermiso: memorial:read/v1 · token BearerHerramienta MCP: notificationMemorials

A notification's memoriales with their hashes; poll it after createMemorial.

Parámetros de notificationMemorials
NombreDóndeTipoObligatorio
limitConsultainteger 1–200No
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/notification-memorials?notificationId=<notificationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/notification-memorials?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

notificationTrace

GET/v1/notification-trace

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: notificationTrace

One notification’s evidence events in chain order (UTC). Opens are indicio.

Parámetros de notificationTrace
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
curl
curl 'https://www.notificado.co/v1/notification-trace?notificationId=<notificationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/notification-trace?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "events": [
    {
      "hash": "<hash>",
      "ipAddress": "<ipAddress>",
      "isIndicio": true,
      "linkedFile": "start",
      "occurredAt": "<occurredAt>",
      "recipient": "<recipient>",
      "remoteMtaIp": "<remoteMtaIp>",
      "seq": "<seq>",
      "smtpResponse": "<smtpResponse>",
      "type": "<type>",
      "userAgent": "<userAgent>"
    }
  ],
  "id": "<id>",
  "orgId": "<orgId>"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 404 X_NOT_FOUND — the read matched no row for this input
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

notificationsPerWeek

GET/_x/query/notifications-per-week

Miembro de la firmaPermiso: notification:readHerramienta MCP: notificationsPerWeek

The caller's firm's notifications per week for the last `weeks` weeks (default 12), oldest first, weeks starting Monday 00:00 America/Bogota (weekStart, YYYY-MM-DD; the last one is the current week, still filling): sent, delivered (every recipient reached the receiving server and none bounced), constancia (a constancia was issued) and bounced (a recipient bounced or was refused; a complaint counts as delivered). Counts only. Read-only.

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

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

openBatchRequests

GET/_x/query/open-batch-requests

Miembro de la firmaPermiso: notification:read

openBatchRequests

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

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

recentApprovalDecisions

GET/_x/query/recent-approval-decisions

Miembro de la firmaPermiso: notification:read

recentApprovalDecisions

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

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

recentNotifications

GET/v1/recent-notifications

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: recentNotifications

The 10 newest notifications and where their evidence stands.

Parámetros de recentNotifications
NombreDóndeTipoObligatorio
limitConsultainteger 1–10No
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/recent-notifications?orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/recent-notifications?orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

recentSendsTo

GET/v1/recent-sends-to

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: recentSendsTo

Earlier sends to these addresses in this case, or, without caseId, in the firm’s correos con constancia (default 30 days). A warning for the lawyer, never a block.

Parámetros de recentSendsTo
NombreDóndeTipoObligatorio
caseIdConsultastring (uuid) | nullNo
daysConsultainteger 1–365No
emailsConsultaarray of string (email)Sí
excludeConsultastring (uuid)No
orgIdConsultastring (uuid)Sí
_firstConsultainteger 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500)No
_afterConsultastringthe nextCursor a previous page answered; needs _firstNo
curl
curl 'https://www.notificado.co/v1/recent-sends-to?emails=&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/recent-sends-to?emails=&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
[
  null
]

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

requestableDrafts

GET/_x/query/requestable-drafts

Miembro de la firmaPermiso: notification:read

requestableDrafts

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

Errores

  • 400 X_INPUT_INVALID or X_CURSOR_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

sendCost

GET/v1/send-cost

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: sendCost

What a send costs (per recipient: 1 credit + one per 10 MB linked; the total) and whether the firm can pay it now: canPay, shortBy, reason.

Parámetros de sendCost
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
curl
curl 'https://www.notificado.co/v1/send-cost?notificationId=<notificationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/send-cost?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "attachedBytes": 1,
  "canPay": true,
  "creditsPerRecipient": 1,
  "id": "<id>",
  "linkedBytes": 1,
  "linkedCreditsPerRecipient": 1,
  "orgId": "<orgId>",
  "paidAvailable": 1,
  "reason": "ok",
  "recipients": 1,
  "shortBy": 1,
  "total": 1,
  "trialAvailable": 1
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 404 X_NOT_FOUND — the read matched no row for this input
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

sendTiming

GET/v1/send-timing

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: sendTiming

What sending a draft NOW would read as: the instant, the next opening of a business day (nextOpen), whether two readings of the send date differ (divergent) and each date, the hold policy, whether scheduling is on. Dates are estimates; the judge decides.

Parámetros de sendTiming
NombreDóndeTipoObligatorio
notificationIdConsultastring (uuid)Sí
orgIdConsultastring (uuid)Sí
curl
curl 'https://www.notificado.co/v1/send-timing?notificationId=<notificationId>&orgId=<orgId>' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN"
TypeScript
const response = await fetch('https://www.notificado.co/v1/send-timing?notificationId=<notificationId>&orgId=<orgId>', {
  headers: { authorization: `Bearer ${token}` },
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "calendarVersion": "<calendarVersion>",
  "conservative": {
    "deemedSentOn": "<deemedSentOn>",
    "surtidaOn": "<surtidaOn>"
  },
  "divergent": true,
  "holdMs": 1,
  "id": "<id>",
  "maxAutoHoldMs": 1,
  "nextOpen": "<nextOpen>",
  "now": "<now>",
  "orgId": "<orgId>",
  "policy": "opt_in",
  "reason": "in_hours",
  "scheduling": "off",
  "sendWindowVersion": "<sendWindowVersion>",
  "standard": {
    "surtidaOn": "<surtidaOn>"
  }
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 404 X_NOT_FOUND — the read matched no row for this input
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

addRecipient

POST/api/add-recipient

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

addRecipient

Parámetros de addRecipient
NombreDóndeTipoObligatorio
emailCuerpostring (email)Sí
evidenceDocumentIdsCuerpoarray of string (uuid)Sí
juramentoCuerpobooleanSí
juramentoTextCuerpostring 1–4000No
nameCuerpostring 1–300Sí
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
overrideReasonCuerpostring 1–2000 | nullNo
saveToPartyIdCuerpostring (uuid) | 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/add-recipient' \
  -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/add-recipient', {
  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
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

approveSend

POST/api/approve-send

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

approveSend

Parámetros de approveSend
NombreDóndeTipoObligatorio
approvalIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
swornRecipientIdsCuerpostring (uuid) | array of string (uuid)No
whenCuerpo"now" | "next_business_open"No
curl
curl -X POST 'https://www.notificado.co/api/approve-send' \
  -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/approve-send', {
  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>",
  "scheduledFor": "2026-09-25T15:00:00Z",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

archiveMessageTemplate

POST/api/archive-message-template

Miembro de la firmaPermiso: notification:send

archiveMessageTemplate

Parámetros de archiveMessageTemplate
NombreDóndeTipoObligatorio
archivedCuerpoboolean | "true" | "false"Sí
orgIdCuerpostring (uuid)Sí
templateIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/archive-message-template' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"archived":true,"orgId":"<orgId>","templateId":"<templateId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/archive-message-template', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "archived": true,
    "orgId": "<orgId>",
    "templateId": "<templateId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "archivedAt": "2026-09-25T15:00:00Z",
  "body": "<body>",
  "createdAt": "2026-09-25T15:00:00Z",
  "especialidad": "<especialidad>",
  "id": "<id>",
  "name": "<name>",
  "seedKey": "<seedKey>",
  "subject": "<subject>",
  "updatedAt": "2026-09-25T15:00:00Z"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

cancelScheduledSend

POST/api/cancel-scheduled-send

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

cancelScheduledSend

Parámetros de cancelScheduledSend
NombreDóndeTipoObligatorio
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/cancel-scheduled-send' \
  -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/cancel-scheduled-send', {
  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
{
  "caseId": "<caseId>",
  "createdAt": "2026-09-25T15:00:00Z",
  "emlSha256": "<emlSha256>",
  "frozenAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "scheduledFor": "2026-09-25T15:00:00Z",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

confirmBatchSend

POST/api/confirm-batch-send

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

confirmBatchSend

Parámetros de confirmBatchSend
NombreDóndeTipoObligatorio
idempotencyKeyCuerpostring 8–80Sí
importIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
rowIdsCuerpostring (uuid) | array of string (uuid)Sí
swornRowIdsCuerpostring (uuid) | array of string (uuid)No
curl
curl -X POST 'https://www.notificado.co/api/confirm-batch-send' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{
  "idempotencyKey": "<idempotencyKey>",
  "importId": "<importId>",
  "orgId": "<orgId>",
  "rowIds": "<rowIds>"
}'
TypeScript
const response = await fetch('https://www.notificado.co/api/confirm-batch-send', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "idempotencyKey": "<idempotencyKey>",
    "importId": "<importId>",
    "orgId": "<orgId>",
    "rowIds": "<rowIds>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "createdAt": "2026-09-25T15:00:00Z",
  "failedCount": -9007199254740991,
  "finishedAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "importId": "<importId>",
  "juramentoVersion": "<juramentoVersion>",
  "note": "<note>",
  "requestedBy": "<requestedBy>",
  "scheduledCount": -9007199254740991,
  "sentCount": -9007199254740991,
  "status": "requested",
  "swornAt": "2026-09-25T15:00:00Z",
  "swornBy": "<swornBy>",
  "total": -9007199254740991
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

confirmSend

POST/api/confirm-send

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
swornRecipientIdsCuerpostring (uuid) | array of string (uuid)No
whenCuerpo"now" | "next_business_open"No
curl
curl -X POST 'https://www.notificado.co/api/confirm-send' \
  -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/confirm-send', {
  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>",
  "scheduledFor": "2026-09-25T15:00:00Z",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

createMemorial

POST/v1/create-memorial

Miembro de la firmaPermiso: memorial:write/v1 · token BearerIdempotency-KeyHerramienta MCP: createMemorial

Generate the memorial DRAFT (DOCX and PDF) for the juzgado; the lawyer signs and files it.

Parámetros de createMemorial
NombreDóndeTipoObligatorio
Idempotency-KeyEncabezadostring ≤ 255Replays the first response for a repeated key.No
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/v1/create-memorial' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H "idempotency-key: $(uuidgen)" \
  -H 'content-type: application/json' \
  -d '{"notificationId":"<notificationId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/create-memorial', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json', 'idempotency-key': crypto.randomUUID() },
  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
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 409 X_IDEMPOTENCY_CONFLICT
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

createMessageTemplate

POST/v1/create-message-template

Miembro de la firmaPermiso: notification:send/v1 · token BearerIdempotency-KeyHerramienta MCP: createMessageTemplate

Create a template with merge fields. Never write the art. 8 statements: they are appended.

Parámetros de createMessageTemplate
NombreDóndeTipoObligatorio
Idempotency-KeyEncabezadostring ≤ 255Replays the first response for a repeated key.No
bodyCuerpostring 1–20000Sí
especialidadCuerpostring 1–60 | nullNo
nameCuerpostring 1–120Sí
orgIdCuerpostring (uuid)Sí
subjectCuerpostring 1–998Sí
curl
curl -X POST 'https://www.notificado.co/v1/create-message-template' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H "idempotency-key: $(uuidgen)" \
  -H 'content-type: application/json' \
  -d '{
  "body": "<body>",
  "name": "<name>",
  "orgId": "<orgId>",
  "subject": "<subject>"
}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/create-message-template', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json', 'idempotency-key': crypto.randomUUID() },
  body: JSON.stringify({
    "body": "<body>",
    "name": "<name>",
    "orgId": "<orgId>",
    "subject": "<subject>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "archivedAt": "2026-09-25T15:00:00Z",
  "body": "<body>",
  "createdAt": "2026-09-25T15:00:00Z",
  "especialidad": "<especialidad>",
  "id": "<id>",
  "name": "<name>",
  "seedKey": "<seedKey>",
  "subject": "<subject>",
  "updatedAt": "2026-09-25T15:00:00Z"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 409 X_IDEMPOTENCY_CONFLICT
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

downloadMemorial

POST/v1/download-memorial

Miembro de la firmaPermiso: memorial:read/v1 · token BearerHerramienta MCP: downloadMemorial

A memorial as docx or pdf bytes (base64), re-hashed first. Recorded.

Parámetros de downloadMemorial
NombreDóndeTipoObligatorio
formatCuerpo"docx" | "pdf"Sí
memorialIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/v1/download-memorial' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"format":"docx","memorialId":"<memorialId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/download-memorial', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json' },
  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
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

exportEvents

POST/v1/export-events

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: exportEvents

Excel workbook (base64) of evidence events, a line each, exportNotifications' filters and cursor.

Parámetros de exportEvents
NombreDóndeTipoObligatorio
cursorCuerpostring 1–1024No
fromCuerpostring 1–10No
orgIdCuerpostring (uuid)Sí
qCuerpostring 1–200No
statusCuerpo"draft" | "awaiting_approval" | "scheduled" | "sent" | "delivered" | "acknowledged" | "bounced" | "failed"No
toCuerpostring 1–10No
curl
curl -X POST 'https://www.notificado.co/v1/export-events' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/export-events', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json' },
  body: JSON.stringify({
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "filename": "<filename>",
  "nextCursor": "<nextCursor>",
  "rows": -9007199254740991,
  "truncated": true,
  "xlsx": "<xlsx>"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

exportNotifications

POST/v1/export-notifications

Miembro de la firmaPermiso: notification:read/v1 · token BearerHerramienta MCP: exportNotifications

Excel workbook (base64) of notifications, a line per recipient, notificationList's filters; 5,000 a call, then cursor.

Parámetros de exportNotifications
NombreDóndeTipoObligatorio
cursorCuerpostring 1–1024No
fromCuerpostring 1–10No
orgIdCuerpostring (uuid)Sí
qCuerpostring 1–200No
statusCuerpo"draft" | "awaiting_approval" | "scheduled" | "sent" | "delivered" | "acknowledged" | "bounced" | "failed"No
toCuerpostring 1–10No
curl
curl -X POST 'https://www.notificado.co/v1/export-notifications' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/export-notifications', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json' },
  body: JSON.stringify({
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "filename": "<filename>",
  "nextCursor": "<nextCursor>",
  "rows": -9007199254740991,
  "truncated": true,
  "xlsx": "<xlsx>"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

rejectSend

POST/api/reject-send

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/reject-send' \
  -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/reject-send', {
  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",
  "requestedWhen": "now",
  "status": "pending",
  "withdrawnBy": "<withdrawnBy>"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

reportCourtOutcome

POST/v1/report-court-outcome

Miembro de la firmaPermiso: notification:send/v1 · token BearerIdempotency-KeyHerramienta MCP: reportCourtOutcome

Report what the juzgado decided on a SENT notification; a later report corrects it. Not evidence.

Parámetros de reportCourtOutcome
NombreDóndeTipoObligatorio
Idempotency-KeyEncabezadostring ≤ 255Replays the first response for a repeated key.No
attachmentUploadIdCuerpo"" | string (uuid)No
courtCuerpostring 1–300No
decidedOnCuerpostring 8–10Sí
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
outcomeCuerpo"accepted" | "rejected" | "nulidad_requested"Sí
reasonCuerpostring 1–2000No
curl
curl -X POST 'https://www.notificado.co/v1/report-court-outcome' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H "idempotency-key: $(uuidgen)" \
  -H 'content-type: application/json' \
  -d '{
  "decidedOn": "<decidedOn>",
  "notificationId": "<notificationId>",
  "orgId": "<orgId>",
  "outcome": "accepted"
}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/report-court-outcome', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json', 'idempotency-key': crypto.randomUUID() },
  body: JSON.stringify({
    "decidedOn": "<decidedOn>",
    "notificationId": "<notificationId>",
    "orgId": "<orgId>",
    "outcome": "accepted"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "court": "<court>",
  "createdAt": "2026-09-25T15:00:00Z",
  "decidedOn": "<decidedOn>",
  "id": "<id>",
  "notificationId": "<notificationId>",
  "outcome": "accepted",
  "reason": "<reason>",
  "source": "customer"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 409 X_IDEMPOTENCY_CONFLICT
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

requestBatchSend

POST/api/request-batch-send

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

requestBatchSend

Parámetros de requestBatchSend
NombreDóndeTipoObligatorio
importIdCuerpostring (uuid)Sí
noteCuerpostring 1–1000No
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/request-batch-send' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"importId":"<importId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/request-batch-send', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "importId": "<importId>",
    "orgId": "<orgId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "createdAt": "2026-09-25T15:00:00Z",
  "failedCount": -9007199254740991,
  "finishedAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "importId": "<importId>",
  "juramentoVersion": "<juramentoVersion>",
  "note": "<note>",
  "requestedBy": "<requestedBy>",
  "scheduledCount": -9007199254740991,
  "sentCount": -9007199254740991,
  "status": "requested",
  "swornAt": "2026-09-25T15:00:00Z",
  "swornBy": "<swornBy>",
  "total": -9007199254740991
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

requestSendApproval

POST/api/request-send-approval

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í
whenCuerpo"now" | "next_business_open"No
curl
curl -X POST 'https://www.notificado.co/api/request-send-approval' \
  -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/request-send-approval', {
  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>",
  "noDecider": true,
  "notificationId": "<notificationId>",
  "status": "awaiting_approval"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

sendNotification

POST/v1/send-notification

Miembro de la firmaPermiso: or(and(approval:request, not(notification:send)), notification:send)/v1 · token BearerIdempotency-KeyHerramienta MCP: sendNotification

REQUEST a send; REQUIRES HUMAN CONFIRMATION: verified lawyer: awaiting_confirmation + confirmUrl; others (unverified, paralegal): awaiting_approval + approvalUrl. Once; never to test. Optional when (now | next_business_open) is a PROPOSAL shown to the lawyer: nothing is sent or scheduled by it.

Parámetros de sendNotification
NombreDóndeTipoObligatorio
Idempotency-KeyEncabezadostring ≤ 255Replays the first response for a repeated key.No
confirmCuerpotrueSí
noteCuerpostring 1–1000No
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
swornRecipientIdsCuerpostring (uuid) | array of string (uuid)No
whenCuerpo"now" | "next_business_open"No
curl
curl -X POST 'https://www.notificado.co/v1/send-notification' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H "idempotency-key: $(uuidgen)" \
  -H 'content-type: application/json' \
  -d '{"confirm":true,"notificationId":"<notificationId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/send-notification', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json', 'idempotency-key': crypto.randomUUID() },
  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>",
  "scheduledFor": "2026-09-25T15:00:00Z",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 409 X_IDEMPOTENCY_CONFLICT
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

sendScheduledNow

POST/api/send-scheduled-now

Miembro de la firmaPermiso: and(notification:send, notification:send)Idempotency-Key

sendScheduledNow

Parámetros de sendScheduledNow
NombreDóndeTipoObligatorio
Idempotency-KeyEncabezadostring ≤ 255Replays the first response for a repeated key.No
notificationIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/send-scheduled-now' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H "idempotency-key: $(uuidgen)" \
  -H 'content-type: application/json' \
  -d '{"notificationId":"<notificationId>","orgId":"<orgId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/send-scheduled-now', {
  method: 'POST',
  headers: { 'content-type': 'application/json', 'idempotency-key': crypto.randomUUID(), origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "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>",
  "scheduledFor": "2026-09-25T15:00:00Z",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 409 X_IDEMPOTENCY_CONFLICT
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

switchChannel

POST/api/switch-channel

Miembro de la firmaPermiso: and(notification:send, 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í
whenCuerpostring 0–32No
curl
curl -X POST 'https://www.notificado.co/api/switch-channel' \
  -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/switch-channel', {
  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>",
  "scheduledFor": "2026-09-25T15:00:00Z",
  "sentAt": "2026-09-25T15:00:00Z",
  "status": "draft",
  "subject": "<subject>",
  "tier": "standard"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

updateMessageTemplate

POST/v1/update-message-template

Miembro de la firmaPermiso: notification:send/v1 · token BearerHerramienta MCP: updateMessageTemplate

Rewrite a template; drafts already composed keep their text.

Parámetros de updateMessageTemplate
NombreDóndeTipoObligatorio
bodyCuerpostring 1–20000Sí
especialidadCuerpostring 1–60 | nullNo
nameCuerpostring 1–120Sí
orgIdCuerpostring (uuid)Sí
subjectCuerpostring 1–998Sí
templateIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/v1/update-message-template' \
  -H "authorization: Bearer $NOTIFICADO_TOKEN" \
  -H 'content-type: application/json' \
  -d '{
  "body": "<body>",
  "name": "<name>",
  "orgId": "<orgId>",
  "subject": "<subject>",
  "templateId": "<templateId>"
}'
TypeScript
const response = await fetch('https://www.notificado.co/v1/update-message-template', {
  method: 'POST',
  headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json' },
  body: JSON.stringify({
    "body": "<body>",
    "name": "<name>",
    "orgId": "<orgId>",
    "subject": "<subject>",
    "templateId": "<templateId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "archivedAt": "2026-09-25T15:00:00Z",
  "body": "<body>",
  "createdAt": "2026-09-25T15:00:00Z",
  "especialidad": "<especialidad>",
  "id": "<id>",
  "name": "<name>",
  "seedKey": "<seedKey>",
  "subject": "<subject>",
  "updatedAt": "2026-09-25T15:00:00Z"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

withdrawBatchSend

POST/api/withdraw-batch-send

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

withdrawBatchSend

Parámetros de withdrawBatchSend
NombreDóndeTipoObligatorio
importIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
sendIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/withdraw-batch-send' \
  -b cookies.txt \
  -H 'origin: https://www.notificado.co' \
  -H 'content-type: application/json' \
  -d '{"importId":"<importId>","orgId":"<orgId>","sendId":"<sendId>"}'
TypeScript
const response = await fetch('https://www.notificado.co/api/withdraw-batch-send', {
  method: 'POST',
  headers: { 'content-type': 'application/json', origin: 'https://www.notificado.co', cookie: sessionCookie },
  body: JSON.stringify({
    "importId": "<importId>",
    "orgId": "<orgId>",
    "sendId": "<sendId>"
  }),
});
const result = await response.json();
Ejemplo de respuesta
200
{
  "createdAt": "2026-09-25T15:00:00Z",
  "failedCount": -9007199254740991,
  "finishedAt": "2026-09-25T15:00:00Z",
  "id": "<id>",
  "importId": "<importId>",
  "juramentoVersion": "<juramentoVersion>",
  "note": "<note>",
  "requestedBy": "<requestedBy>",
  "scheduledCount": -9007199254740991,
  "sentCount": -9007199254740991,
  "status": "requested",
  "swornAt": "2026-09-25T15:00:00Z",
  "swornBy": "<swornBy>",
  "total": -9007199254740991
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds

withdrawSendApproval

POST/api/withdraw-send-approval

Miembro de la firmaPermiso: notification:read

withdrawSendApproval

Parámetros de withdrawSendApproval
NombreDóndeTipoObligatorio
approvalIdCuerpostring (uuid)Sí
orgIdCuerpostring (uuid)Sí
curl
curl -X POST 'https://www.notificado.co/api/withdraw-send-approval' \
  -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/withdraw-send-approval', {
  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
{
  "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",
  "requestedWhen": "now",
  "status": "pending",
  "withdrawnBy": "<withdrawnBy>"
}

Errores

  • 400 X_INPUT_INVALID
  • 401 X_UNAUTHENTICATED — no credential, or one that did not resolve
  • 403 policy denied
  • 422 X_BODY_INVALID
  • 429 X_RATE_LIMITED — retry after Retry-After seconds