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
GET /_x/query/approval-settings
Miembro de la firma Permiso: notification:read Herramienta 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 Nombre Dónde Tipo Obligatorio orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/approval-settings?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /v1/bounce-alerts
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: bounceAlerts
Recipients bounced, failed or complained and not re-issued yet; the lawyer re-issues in the panel.
Parámetros de bounceAlerts Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–200page size; present, the response is the page envelope rather than the bare rows (1 to 200) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/bounce-alerts?orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
{
"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 GET /v1/case-court-outcomes
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: caseCourtOutcomes
The current court outcome per notification of a case.
Parámetros de caseCourtOutcomes Nombre Dónde Tipo Obligatorio caseIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/case-court-outcomes?caseId=<caseId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /v1/case-memorials
Miembro de la firma Permiso: memorial:read /v1 · token Bearer Herramienta MCP: caseMemorials
A case's memoriales with their hashes.
Parámetros de caseMemorials Nombre Dónde Tipo Obligatorio caseIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí _firstConsulta integer 1–200page size; present, the response is the page envelope rather than the bare rows (1 to 200) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/case-memorials?caseId=<caseId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
{
"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 GET /v1/case-notifications
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: caseNotifications
One case's notifications, newest first (up to 200), with their status and where the evidence stands.
Parámetros de caseNotifications Nombre Dónde Tipo Obligatorio caseIdConsulta string (uuid)Sí limitConsulta integer 1–200No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/case-notifications?caseId=<caseId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /v1/case-recipients
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: caseRecipients
Recipients of a case's notifications with delivery, acuse and surtida (UTC).
Parámetros de caseRecipients Nombre Dónde Tipo Obligatorio caseIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí _firstConsulta integer 1–1000page size; present, the response is the page envelope rather than the bare rows (1 to 1000) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/case-recipients?caseId=<caseId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
{
"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 GET /_x/query/credits-summary
Miembro de la firma Permiso: notification:read Herramienta 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 Nombre Dónde Tipo Obligatorio orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/credits-summary?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /v1/get-notification
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: getNotification
One notification: recipients, attachments with SHA-256 and the evidence timeline (UTC). Opens are indicio.
Parámetros de getNotification Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí
curl Copiar curl 'https://www.notificado.co/v1/get-notification?notificationId=<notificationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar {
"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 GET /v1/get-send-confirmation
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: getSendConfirmation
One send request: pending, confirmed or expired (after 24 h).
Parámetros de getSendConfirmation Nombre Dónde Tipo Obligatorio confirmationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí
curl Copiar curl 'https://www.notificado.co/v1/get-send-confirmation?confirmationId=<confirmationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar {
"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 GET /v1/list-message-templates
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: listMessageTemplates
The firm's message templates and merge fields; pass an id as messageTemplateId.
Parámetros de listMessageTemplates Nombre Dónde Tipo Obligatorio archivedConsulta booleanNo orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/list-message-templates?orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /_x/query/list-pending-approvals
Miembro de la firma Permiso: notification:read
listPendingApprovals
Parámetros de listPendingApprovals Nombre Dónde Tipo Obligatorio orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/list-pending-approvals?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /v1/list-pending-sends
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: listPendingSends
Send requests still waiting for a lawyer to confirm, newest first.
Parámetros de listPendingSends Nombre Dónde Tipo Obligatorio orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/list-pending-sends?orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /v1/memorial-readiness
Miembro de la firma Permiso: memorial:read /v1 · token Bearer Herramienta MCP: memorialReadiness
Whether createMemorial can run now for a notification, and why not.
Parámetros de memorialReadiness Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/memorial-readiness?notificationId=<notificationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /_x/query/notification-approvals
Miembro de la firma Permiso: notification:read
notificationApprovals
Parámetros de notificationApprovals Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/notification-approvals?notificationId=<notificationId>&orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /v1/notification-court-outcomes
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: notificationCourtOutcomes
What the juzgado decided on one notification, newest first; the first row is current. Not evidence.
Parámetros de notificationCourtOutcomes Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/notification-court-outcomes?notificationId=<notificationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /v1/notification-list
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta 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 Nombre Dónde Tipo Obligatorio cursorConsulta string 1–64No fromConsulta string 1–10No limitConsulta integer 1–200No orgIdConsulta string (uuid)Sí qConsulta string 1–200No statusConsulta "draft" | "awaiting_approval" | "scheduled" | "sent" | "delivered" | "acknowledged" | "bounced" | "failed"No toConsulta string 1–10No _firstConsulta integer 1–200page size; present, the response is the page envelope rather than the bare rows (1 to 200) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/notification-list?orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /v1/notification-memorials
Miembro de la firma Permiso: memorial:read /v1 · token Bearer Herramienta MCP: notificationMemorials
A notification's memoriales with their hashes; poll it after createMemorial.
Parámetros de notificationMemorials Nombre Dónde Tipo Obligatorio limitConsulta integer 1–200No notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/notification-memorials?notificationId=<notificationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /v1/notification-trace
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: notificationTrace
One notification’s evidence events in chain order (UTC). Opens are indicio.
Parámetros de notificationTrace Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí
curl Copiar curl 'https://www.notificado.co/v1/notification-trace?notificationId=<notificationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar {
"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 GET /_x/query/notifications-per-week
Miembro de la firma Permiso: notification:read Herramienta 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 Nombre Dónde Tipo Obligatorio orgIdConsulta string (uuid)Sí weeksConsulta integer 1–52No _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/notifications-per-week?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /_x/query/open-batch-requests
Miembro de la firma Permiso: notification:read
openBatchRequests
Parámetros de openBatchRequests Nombre Dónde Tipo Obligatorio orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/open-batch-requests?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /_x/query/recent-approval-decisions
Miembro de la firma Permiso: notification:read
recentApprovalDecisions
Parámetros de recentApprovalDecisions Nombre Dónde Tipo Obligatorio limitConsulta integer 1–100No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/recent-approval-decisions?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /v1/recent-notifications
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: recentNotifications
The 10 newest notifications and where their evidence stands.
Parámetros de recentNotifications Nombre Dónde Tipo Obligatorio limitConsulta integer 1–10No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/recent-notifications?orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /v1/recent-sends-to
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta 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 Nombre Dónde Tipo Obligatorio caseIdConsulta string (uuid) | nullNo daysConsulta integer 1–365No emailsConsulta array of string (email)Sí excludeConsulta string (uuid)No orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/v1/recent-sends-to?emails=&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar [
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 GET /_x/query/requestable-drafts
Miembro de la firma Permiso: notification:read
requestableDrafts
Parámetros de requestableDrafts Nombre Dónde Tipo Obligatorio orgIdConsulta string (uuid)Sí _firstConsulta integer 1–500page size; present, the response is the page envelope rather than the bare rows (1 to 500) No _afterConsulta stringthe nextCursor a previous page answered; needs _first No
curl Copiar curl 'https://www.notificado.co/_x/query/requestable-drafts?orgId=<orgId>' \
-b cookies.txtTypeScript Copiar 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 Copiar [
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 GET /v1/send-cost
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta 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 Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí
curl Copiar curl 'https://www.notificado.co/v1/send-cost?notificationId=<notificationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar {
"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 GET /v1/send-timing
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta 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 Nombre Dónde Tipo Obligatorio notificationIdConsulta string (uuid)Sí orgIdConsulta string (uuid)Sí
curl Copiar curl 'https://www.notificado.co/v1/send-timing?notificationId=<notificationId>&orgId=<orgId>' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" TypeScript Copiar 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 Copiar {
"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 POST /api/add-recipient
Miembro de la firma Permiso: or(and(notification:send, notification:send), and(and(approval:request, not(notification:send)), approval:request))
addRecipient
Parámetros de addRecipient Nombre Dónde Tipo Obligatorio emailCuerpo string (email)Sí evidenceDocumentIdsCuerpo array of string (uuid)Sí juramentoCuerpo booleanSí juramentoTextCuerpo string 1–4000No nameCuerpo string 1–300Sí notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí overrideReasonCuerpo string 1–2000 | nullNo saveToPartyIdCuerpo string (uuid) | nullNo sourceCuerpo "comunicaciones_previas" | "camara_de_comercio" | "rut" | "contrato" | "web_oficial" | "otro"Sí sourceTextCuerpo string 1–2000Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/approve-send
Miembro de la firma Permiso: and(notification:send, notification:send)
approveSend
Parámetros de approveSend Nombre Dónde Tipo Obligatorio approvalIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí swornRecipientIdsCuerpo string (uuid) | array of string (uuid)No whenCuerpo "now" | "next_business_open"No
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/archive-message-template
Miembro de la firma Permiso: notification:send
archiveMessageTemplate
Parámetros de archiveMessageTemplate Nombre Dónde Tipo Obligatorio archivedCuerpo boolean | "true" | "false"Sí orgIdCuerpo string (uuid)Sí templateIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/cancel-scheduled-send
Miembro de la firma Permiso: and(notification:send, notification:send)
cancelScheduledSend
Parámetros de cancelScheduledSend Nombre Dónde Tipo Obligatorio notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/confirm-batch-send
Miembro de la firma Permiso: and(notification:send, notification:send)
confirmBatchSend
Parámetros de confirmBatchSend Nombre Dónde Tipo Obligatorio idempotencyKeyCuerpo string 8–80Sí importIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí rowIdsCuerpo string (uuid) | array of string (uuid)Sí swornRowIdsCuerpo string (uuid) | array of string (uuid)No
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/confirm-send
Miembro de la firma Permiso: and(notification:send, notification:send)
confirmSend
Parámetros de confirmSend Nombre Dónde Tipo Obligatorio confirmationIdCuerpo string (uuid)Sí draftSha256Cuerpo string 64–64No orgIdCuerpo string (uuid)Sí returnToCuerpo string 1–2048No swornRecipientIdsCuerpo string (uuid) | array of string (uuid)No whenCuerpo "now" | "next_business_open"No
curl Copiar 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 Copiar 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 Copiar {
"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 POST /v1/create-memorial
Miembro de la firma Permiso: memorial:write /v1 · token Bearer Idempotency-Key Herramienta MCP: createMemorial
Generate the memorial DRAFT (DOCX and PDF) for the juzgado; the lawyer signs and files it.
Parámetros de createMemorial Nombre Dónde Tipo Obligatorio Idempotency-KeyEncabezado string ≤ 255Replays the first response for a repeated key. No notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /v1/create-message-template
Miembro de la firma Permiso: notification:send /v1 · token Bearer Idempotency-Key Herramienta MCP: createMessageTemplate
Create a template with merge fields. Never write the art. 8 statements: they are appended.
Parámetros de createMessageTemplate Nombre Dónde Tipo Obligatorio Idempotency-KeyEncabezado string ≤ 255Replays the first response for a repeated key. No bodyCuerpo string 1–20000Sí especialidadCuerpo string 1–60 | nullNo nameCuerpo string 1–120Sí orgIdCuerpo string (uuid)Sí subjectCuerpo string 1–998Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /v1/download-memorial
Miembro de la firma Permiso: memorial:read /v1 · token Bearer Herramienta MCP: downloadMemorial
A memorial as docx or pdf bytes (base64), re-hashed first. Recorded.
Parámetros de downloadMemorial Nombre Dónde Tipo Obligatorio formatCuerpo "docx" | "pdf"Sí memorialIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /v1/export-events
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: exportEvents
Excel workbook (base64) of evidence events, a line each, exportNotifications' filters and cursor.
Parámetros de exportEvents Nombre Dónde Tipo Obligatorio cursorCuerpo string 1–1024No fromCuerpo string 1–10No orgIdCuerpo string (uuid)Sí qCuerpo string 1–200No statusCuerpo "draft" | "awaiting_approval" | "scheduled" | "sent" | "delivered" | "acknowledged" | "bounced" | "failed"No toCuerpo string 1–10No
curl Copiar curl -X POST 'https://www.notificado.co/v1/export-events' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" \
-H 'content-type: application/json' \
-d '{"orgId":"<orgId>"}' TypeScript Copiar 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 Copiar {
"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 POST /v1/export-notifications
Miembro de la firma Permiso: notification:read /v1 · token Bearer Herramienta MCP: exportNotifications
Excel workbook (base64) of notifications, a line per recipient, notificationList's filters; 5,000 a call, then cursor.
Parámetros de exportNotifications Nombre Dónde Tipo Obligatorio cursorCuerpo string 1–1024No fromCuerpo string 1–10No orgIdCuerpo string (uuid)Sí qCuerpo string 1–200No statusCuerpo "draft" | "awaiting_approval" | "scheduled" | "sent" | "delivered" | "acknowledged" | "bounced" | "failed"No toCuerpo string 1–10No
curl Copiar curl -X POST 'https://www.notificado.co/v1/export-notifications' \
-H "authorization: Bearer $NOTIFICADO_TOKEN" \
-H 'content-type: application/json' \
-d '{"orgId":"<orgId>"}' TypeScript Copiar 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 Copiar {
"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 POST /api/reject-send
Miembro de la firma Permiso: and(notification:send, notification:send)
rejectSend
Parámetros de rejectSend Nombre Dónde Tipo Obligatorio approvalIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí reasonCuerpo string 1–1000Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /v1/report-court-outcome
Miembro de la firma Permiso: notification:send /v1 · token Bearer Idempotency-Key Herramienta MCP: reportCourtOutcome
Report what the juzgado decided on a SENT notification; a later report corrects it. Not evidence.
Parámetros de reportCourtOutcome Nombre Dónde Tipo Obligatorio Idempotency-KeyEncabezado string ≤ 255Replays the first response for a repeated key. No attachmentUploadIdCuerpo "" | string (uuid)No courtCuerpo string 1–300No decidedOnCuerpo string 8–10Sí notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí outcomeCuerpo "accepted" | "rejected" | "nulidad_requested"Sí reasonCuerpo string 1–2000No
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/request-batch-send
Miembro de la firma Permiso: and(and(approval:request, not(notification:send)), approval:request)
requestBatchSend
Parámetros de requestBatchSend Nombre Dónde Tipo Obligatorio importIdCuerpo string (uuid)Sí noteCuerpo string 1–1000No orgIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/request-send-approval
Miembro de la firma Permiso: and(approval:request, not(notification:send))
requestSendApproval
Parámetros de requestSendApproval Nombre Dónde Tipo Obligatorio noteCuerpo string 1–1000No notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí whenCuerpo "now" | "next_business_open"No
curl Copiar 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 Copiar 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 Copiar {
"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 POST /v1/send-notification
Miembro de la firma Permiso: or(and(approval:request, not(notification:send)), notification:send) /v1 · token Bearer Idempotency-Key Herramienta 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 Nombre Dónde Tipo Obligatorio Idempotency-KeyEncabezado string ≤ 255Replays the first response for a repeated key. No confirmCuerpo trueSí noteCuerpo string 1–1000No notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí swornRecipientIdsCuerpo string (uuid) | array of string (uuid)No whenCuerpo "now" | "next_business_open"No
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/send-scheduled-now
Miembro de la firma Permiso: and(notification:send, notification:send) Idempotency-Key
sendScheduledNow
Parámetros de sendScheduledNow Nombre Dónde Tipo Obligatorio Idempotency-KeyEncabezado string ≤ 255Replays the first response for a repeated key. No notificationIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/switch-channel
Miembro de la firma Permiso: and(notification:send, notification:send)
switchChannel
Parámetros de switchChannel Nombre Dónde Tipo Obligatorio emailCuerpo string 1–320Sí evidenceDocumentIdsCuerpo array of string 1–64No juramentoCuerpo boolean | string 0–8No nameCuerpo string 0–300No notificationIdCuerpo string 1–64No orgIdCuerpo string 1–64Sí overrideReasonCuerpo string 0–2000 | nullNo recipientIdCuerpo string 1–64Sí sourceCuerpo string 1–64Sí sourceTextCuerpo string 1–2000Sí whenCuerpo string 0–32No
curl Copiar 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 Copiar 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 Copiar {
"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 POST /v1/update-message-template
Miembro de la firma Permiso: notification:send /v1 · token Bearer Herramienta MCP: updateMessageTemplate
Rewrite a template; drafts already composed keep their text.
Parámetros de updateMessageTemplate Nombre Dónde Tipo Obligatorio bodyCuerpo string 1–20000Sí especialidadCuerpo string 1–60 | nullNo nameCuerpo string 1–120Sí orgIdCuerpo string (uuid)Sí subjectCuerpo string 1–998Sí templateIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/withdraw-batch-send
Miembro de la firma Permiso: or(and(and(approval:request, not(notification:send)), approval:request), and(notification:send, notification:send))
withdrawBatchSend
Parámetros de withdrawBatchSend Nombre Dónde Tipo Obligatorio importIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí sendIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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 POST /api/withdraw-send-approval
Miembro de la firma Permiso: notification:read
withdrawSendApproval
Parámetros de withdrawSendApproval Nombre Dónde Tipo Obligatorio approvalIdCuerpo string (uuid)Sí orgIdCuerpo string (uuid)Sí
curl Copiar 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 Copiar 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 Copiar {
"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