Connect

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 IDnotta.dte.totales
Nombre MCPnotta__dte__totales
Conectornotta
Planoaction
Scope (permiso)notta:read
Authconnection_credentials
Versión1
Sensiblesí
Deprecadono
ComportamientoreadOnly=true, destructive=false, idempotent=true, openWorld=true

Requiere conexión. Indica cuál en cada llamada: header X-Connect-Connection en REST y campo connectionId en el execute de MCP. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale de conexiones.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

CampoTipoRequeridoDescripción
periodostring `^\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

CampoTipoRequeridoDescripción
periodostringsíYYYY-MM del período agregado
datalista de objetosí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_dte33 · 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[].cantidadenterosíCuántos documentos cayeron en este bucket.
data[].monto_netonúmerosíSuma del neto afecto del bucket, EN PESOS CHILENOS.
data[].monto_exentonúmerosíSuma del monto exento del bucket, EN PESOS CHILENOS.
data[].ivanúmerosíSuma del IVA del bucket, EN PESOS CHILENOS.
data[].monto_totalnúmerosí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ódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
connection_not_found404noUsa uno de los connectionId que lista el error, o revisa la conexión en /connections. No hace falta reactivar nada.
connection_credential_required428noCrea 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_busy409síEspera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez.
upstream_error502síReintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración.
timeout504sí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.

En esta página