Consultar un DTE
Consulta el estado actual de un DTE en Notta por su id.
| Tool ID | notta.dte.consultar |
| Nombre MCP | notta__dte__consultar |
| Conector | notta |
| Plano | action |
| Scope (permiso) | notta:read |
| Auth | connection_credentials |
| Versión | 1 |
| Sensible | sí |
| Deprecado | no |
| Comportamiento | readOnly=true, destructive=false, idempotent=true, openWorld=true |
Requiere conexión. Indica cuál en cada llamada: header
X-Connect-Connectionen REST, campoconnectionIden elexecutede MCP y en las opciones del SDK. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale deconexiones.estado.consultar.
Qué hace
Es el seguimiento del flujo asíncrono que abre notta.dte.emitir: el estado avanza de 'queued' a 'EPR' (aceptado por el SII) o a un rechazo terminal (RFR/RCT/RSC), y en ese caso sii_glosa trae el motivo que dio el SII. Devuelve también folio, montos calculados y ambiente SII.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | sí | El id del documento en Notta: el que devolvió notta.dte.emitir, o el de una fila de notta.dte.listar. |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "El id del documento en Notta: el que devolvió notta.dte.emitir, o el de una fila de notta.dte.listar."
}
},
"required": [
"id"
]
}Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | sí | El identificador del documento en Notta. Es lo que reciben notta.dte.consultar, notta.dte.descargar y notta.dte.reenviar. |
tipo_dte | entero | sí | El código de tipo de documento del catálogo del SII. Los que esta conexión emite son 33 (factura afecta), 34 (factura exenta), 56 (nota de débito) y 61 (nota de crédito). |
folio | entero | null | sí |
estado | string | sí | El estado del documento. 'queued' es recién encolado con el folio ya asignado; 'EPR' es aceptado por el SII; 'RPR' y 'aceptado_con_reparos' son aceptado con reparos; 'RFR', 'RCT' y 'RSC' son rechazos terminales que ya no cambian. Decide por este campo, nunca por 'estado_legible'. |
rut_receptor | string | no | El RUT de quien recibe el documento, sin puntos y con guion. Ausente cuando Notta no lo informó. |
montos | objeto | sí | Los totales del documento, calculados por Notta a partir de las líneas. Quien emite no los manda. |
montos.neto | entero | sí | Suma de las líneas afectas, antes de IVA. |
montos.exento | entero | sí | Suma de las líneas marcadas con exento en true, que no pagan IVA. |
montos.iva | entero | sí | El IVA que corresponde al neto. |
montos.total | entero | sí | Lo que el receptor debe pagar: neto más exento más IVA. |
sii_env | string | sí | El ambiente del SII en el que vive el documento: 'cert' es certificación (pruebas) y 'prod' es producción. Lo decide la credencial de la conexión, nunca la llamada. |
fecha_emision | string | sí | La fecha de emisión declarada en el documento, en formato AAAA-MM-DD. |
sii_glosa | string | no | El texto con que el SII explicó un rechazo. Solo lo trae notta.dte.consultar, y solo cuando el SII dijo algo: la respuesta de la emisión nunca lo lleva. |
estado_legible | string | sí | El 'estado' traducido a una frase en español para mostrarle a una persona. Es texto de presentación, no contrato: para decidir usa 'estado'. |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "El identificador del documento en Notta. Es lo que reciben notta.dte.consultar, notta.dte.descargar y notta.dte.reenviar."
},
"tipo_dte": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "El código de tipo de documento del catálogo del SII. Los que esta conexión emite son 33 (factura afecta), 34 (factura exenta), 56 (nota de débito) y 61 (nota de crédito)."
},
"folio": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "El folio del documento: el correlativo que sale de los folios autorizados (CAF) y con el que el SII lo identifica. Se consume una sola vez y no se reutiliza, así que emitir dos veces por error gasta dos. Viene en null cuando Notta todavía no lo informó."
},
"estado": {
"type": "string",
"description": "El estado del documento. 'queued' es recién encolado con el folio ya asignado; 'EPR' es aceptado por el SII; 'RPR' y 'aceptado_con_reparos' son aceptado con reparos; 'RFR', 'RCT' y 'RSC' son rechazos terminales que ya no cambian. Decide por este campo, nunca por 'estado_legible'."
},
"rut_receptor": {
"description": "El RUT de quien recibe el documento, sin puntos y con guion. Ausente cuando Notta no lo informó.",
"type": "string"
},
"montos": {
"type": "object",
"properties": {
"neto": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Suma de las líneas afectas, antes de IVA."
},
"exento": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Suma de las líneas marcadas con exento en true, que no pagan IVA."
},
"iva": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "El IVA que corresponde al neto."
},
"total": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Lo que el receptor debe pagar: neto más exento más IVA."
}
},
"required": [
"neto",
"exento",
"iva",
"total"
],
"additionalProperties": false,
"description": "Los totales del documento, calculados por Notta a partir de las líneas. Quien emite no los manda."
},
"sii_env": {
"type": "string",
"description": "El ambiente del SII en el que vive el documento: 'cert' es certificación (pruebas) y 'prod' es producción. Lo decide la credencial de la conexión, nunca la llamada."
},
"fecha_emision": {
"type": "string",
"description": "La fecha de emisión declarada en el documento, en formato AAAA-MM-DD."
},
"sii_glosa": {
"description": "El texto con que el SII explicó un rechazo. Solo lo trae notta.dte.consultar, y solo cuando el SII dijo algo: la respuesta de la emisión nunca lo lleva.",
"type": "string"
},
"estado_legible": {
"type": "string",
"description": "El 'estado' traducido a una frase en español para mostrarle a una persona. Es texto de presentación, no contrato: para decidir usa 'estado'."
}
},
"required": [
"id",
"tipo_dte",
"folio",
"estado",
"montos",
"sii_env",
"fecha_emision",
"estado_legible"
],
"additionalProperties": false
}Errores de esta tool
| Código | HTTP | Reintentable | Qué hacer |
|---|---|---|---|
connection_disabled | 403 | no | Reactívala en /connections o usa otra conexión del mismo sistema. |
connection_credential_required | 428 | no | Crea un enlace con conexiones.enlace.crear (modo reconectar si la conexión ya existe) y pide a la persona que entregue la credencial de nuevo. No reintentes con la credencial anterior. |
connection_busy | 409 | sí | Espera unos segundos y reintenta. El candado es por conexión y se suelta solo. |
upstream_error | 502 | sí | Reintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración. |
timeout | 504 | sí | Reintenta. Para sincronizaciones largas usa la vía asíncrona y consulta el estado del trabajo. |
Toda llamada puede devolver además los códigos transversales (validation_error, unauthorized, scope_not_granted, rate_limited, entre otros): el detalle vive en el catálogo de errores.