Totales facturados de un período
Devuelve los totales de un mes, agregados por tipo de documento Y estado en el SII: cantidad, neto, exento, IVA y total.
| Tool ID | notta.dte.totales |
| Nombre MCP | notta__dte__totales |
| 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 y campoconnectionIden elexecutede MCP. 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
Un mismo tipo aparece en VARIAS filas cuando sus documentos están en estados distintos, así que el total de un tipo es la suma de sus filas y jamás una sola de ellas. Sin período usa el mes en curso del calendario chileno.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
periodo | string `^\d4-(0[1-9] | 1[0-2])$` | no |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"periodo": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "YYYY-MM. Default: el mes actual (calendario chileno)"
}
}
}Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
periodo | string | sí | YYYY-MM del período agregado |
data | lista de objeto | sí | Una fila por combinación de tipo_dte y sii_status del período. Nunca trae identificadores de contraparte: son conteos y montos. |
data[].tipo_dte | 33 · 34 · 39 · 41 · 46 · 52 · … | sí | Código SII del tipo de documento: 33 factura afecta, 34 factura exenta, 46 factura de compra, 52 guía de despacho, 56 nota de débito, 61 nota de crédito, 110/112 exportación. |
data[].sii_status | "queued" · "sending" · "awaiting_sii" · "SOK" · "CRT" · "FOK" · … | sí | Vocabulario de dtes.sii_status, generado del catálogo de estados. Cada valor con su glosa, si tiene VEREDICTO del SII (terminal) y la acción sugerida. La descripción larga de cada uno viaja en el bloque estado de esta misma respuesta: queued: en cola · terminal: no · acción: esperar sending: enviando · terminal: no · acción: esperar signed: firmado, sin subir al SII · terminal: no · acción: esperar awaiting_sii: esperando al SII · terminal: no · acción: esperar · DEPRECADO SOK: schema del envío validado · terminal: no · acción: esperar CRT: carátula del envío validada · terminal: no · acción: esperar FOK: firma del envío validada · terminal: no · acción: esperar PDR: envío en proceso · terminal: no · acción: esperar PRD: envío en proceso · terminal: no · acción: esperar -11: procesando en el SII · terminal: no · acción: esperar EPR: aceptado · terminal: sí · acción: ninguna RPR: aceptado con reparos · terminal: sí · acción: ninguna aceptado_con_reparos: aceptado con reparos · terminal: sí · acción: ninguna · DEPRECADO accepted: aceptado (importado del Respaldo del SII) · terminal: sí · acción: ninguna RFR: rechazo por firma · terminal: sí · acción: contactar_soporte RCT: rechazo por carátula · terminal: sí · acción: contactar_soporte RSC: rechazo por schema · terminal: sí · acción: contactar_soporte RCH: documento rechazado · terminal: sí · acción: reemitir stuck: atascado en SII · terminal: no · acción: reintentar_consulta sin_permiso_sii: sin permiso para consultar en el SII · terminal: no · acción: accion_en_sii Corta cualquier bucle de espera por estado.terminal, NUNCA por sii_status === "EPR": un rechazo (RFR, RCT, RSC y RCH) también es final, y ese bucle no saldría nunca. stuck y sin_permiso_sii no son terminales (el SII no llegó a juzgar el documento) pero tampoco avanzan solos: los destraba POST /dtes/\{id\}/refresh-status. |
data[].cantidad | entero | sí | Cuántos documentos cayeron en este bucket. |
data[].monto_neto | número | sí | Suma del neto afecto del bucket, EN PESOS CHILENOS. |
data[].monto_exento | número | sí | Suma del monto exento del bucket, EN PESOS CHILENOS. |
data[].iva | número | sí | Suma del IVA del bucket, EN PESOS CHILENOS. |
data[].monto_total | número | sí | Suma de los totales del bucket, EN PESOS CHILENOS. Una exportación entra por su equivalente en pesos, nunca por la cifra en su moneda. |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"periodo": {
"type": "string",
"description": "YYYY-MM del período agregado"
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tipo_dte": {
"type": "number",
"enum": [
33,
34,
39,
41,
46,
52,
56,
61,
110,
112
],
"description": "Código SII del tipo de documento: 33 factura afecta, 34 factura exenta, 46 factura de compra, 52 guía de despacho, 56 nota de débito, 61 nota de crédito, 110/112 exportación."
},
"sii_status": {
"type": "string",
"enum": [
"queued",
"sending",
"awaiting_sii",
"SOK",
"CRT",
"FOK",
"PDR",
"PRD",
"-11",
"EPR",
"RPR",
"aceptado_con_reparos",
"RFR",
"RCT",
"RSC",
"RCH",
"stuck",
"signed",
"accepted",
"sin_permiso_sii"
],
"description": "Vocabulario de `dtes.sii_status`, generado del catálogo de estados. Cada valor con su glosa, si tiene VEREDICTO del SII (`terminal`) y la acción sugerida. La descripción larga de cada uno viaja en el bloque `estado` de esta misma respuesta:\n\n`queued`: en cola · terminal: no · acción: `esperar`\n`sending`: enviando · terminal: no · acción: `esperar`\n`signed`: firmado, sin subir al SII · terminal: no · acción: `esperar`\n`awaiting_sii`: esperando al SII · terminal: no · acción: `esperar` · DEPRECADO\n`SOK`: schema del envío validado · terminal: no · acción: `esperar`\n`CRT`: carátula del envío validada · terminal: no · acción: `esperar`\n`FOK`: firma del envío validada · terminal: no · acción: `esperar`\n`PDR`: envío en proceso · terminal: no · acción: `esperar`\n`PRD`: envío en proceso · terminal: no · acción: `esperar`\n`-11`: procesando en el SII · terminal: no · acción: `esperar`\n`EPR`: aceptado · terminal: sí · acción: `ninguna`\n`RPR`: aceptado con reparos · terminal: sí · acción: `ninguna`\n`aceptado_con_reparos`: aceptado con reparos · terminal: sí · acción: `ninguna` · DEPRECADO\n`accepted`: aceptado (importado del Respaldo del SII) · terminal: sí · acción: `ninguna`\n`RFR`: rechazo por firma · terminal: sí · acción: `contactar_soporte`\n`RCT`: rechazo por carátula · terminal: sí · acción: `contactar_soporte`\n`RSC`: rechazo por schema · terminal: sí · acción: `contactar_soporte`\n`RCH`: documento rechazado · terminal: sí · acción: `reemitir`\n`stuck`: atascado en SII · terminal: no · acción: `reintentar_consulta`\n`sin_permiso_sii`: sin permiso para consultar en el SII · terminal: no · acción: `accion_en_sii`\n\nCorta cualquier bucle de espera por `estado.terminal`, NUNCA por `sii_status === \"EPR\"`: un rechazo (`RFR`, `RCT`, `RSC` y `RCH`) también es final, y ese bucle no saldría nunca. `stuck` y `sin_permiso_sii` no son terminales (el SII no llegó a juzgar el documento) pero tampoco avanzan solos: los destraba `POST /dtes/{id}/refresh-status`."
},
"cantidad": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Cuántos documentos cayeron en este bucket."
},
"monto_neto": {
"type": "number",
"description": "Suma del neto afecto del bucket, EN PESOS CHILENOS."
},
"monto_exento": {
"type": "number",
"description": "Suma del monto exento del bucket, EN PESOS CHILENOS."
},
"iva": {
"type": "number",
"description": "Suma del IVA del bucket, EN PESOS CHILENOS."
},
"monto_total": {
"type": "number",
"description": "Suma de los totales del bucket, EN PESOS CHILENOS. Una exportación entra por su equivalente en pesos, nunca por la cifra en su moneda."
}
},
"required": [
"tipo_dte",
"sii_status",
"cantidad",
"monto_neto",
"monto_exento",
"iva",
"monto_total"
],
"additionalProperties": false,
"description": "El total de un tipo de documento en UN estado del SII, dentro del periodo consultado. El estado viaja en sii_status."
},
"description": "Una fila por combinación de `tipo_dte` y `sii_status` del período. Nunca trae identificadores de contraparte: son conteos y montos."
}
},
"required": [
"periodo",
"data"
],
"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_not_found | 404 | no | Usa uno de los connectionId que lista el error, o revisa la conexión en /connections. No hace falta reactivar nada. |
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. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez. |
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.
Reenviar un documento por correo
Manda un correo REAL al receptor, con el PDF y el XML de un documento ya emitido, a la dirección que tiene registrada en Notta.
Listar los rangos de folios autorizados (CAF)
Lista los rangos de folios que el SII autorizó (los CAF) y que esta empresa tiene cargados en Notta, por tipo de documento y ambiente: desde qué folio hasta cuál, cuál es el próximo por usar, cuántos quedan, si están por agotarse y hasta cuándo son válidos.