Connect

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.

Tool IDnotta.folios.listar
Nombre MCPnotta__folios__listar
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 de documento aparece en VARIAS filas cuando tiene varios rangos cargados, así que cuántos folios le quedan a un tipo es la suma del remaining de sus filas y jamás una sola de ellas. Es la respuesta a por qué una emisión falla por falta de folios.

Entrada

Sin parámetros: envía {}.

JSON Schema de entrada
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {}
}

Salida

CampoTipoRequeridoDescripción
datalista de objetosíCAF de la organización EN EL AMBIENTE de tu credencial, una fila por rango de folios. Una empresa puede tener varios rangos vivos del mismo tipo.
data[].idstring `^([0-9a-fA-F]8-[0-9a-fA-F]4-[1-8][0-9a-fA-F]3-[89abAB][0-9a-fA-F]3-[0-9a-fA-F]1200000000-0000-0000-0000-000000000000ffffffff-ffff-ffff-ffff-ffffffffffff)$`
data[].rut_emisorstringsíRUT de la empresa que emitió, en formato CUERPO-DV sin puntos (76123456-0).
data[].tipo_dteenterosíCódigo SII del tipo de documento para el que sirven estos folios. Un CAF vale para UN tipo: los folios de una factura (33) no se pueden usar en una nota de crédito (61).
data[].sii_env"cert" · "prod"síAmbiente al que pertenece este CAF, y al que está RECORTADA toda la lista. Certificación y producción son secuencias de folios independientes, así que una organización puede tener un CAF del mismo tipo en cada una y esta respuesta sólo trae los de uno. Lo decide la CREDENCIAL con la que llamas: una API key de certificación ve los folios de certificación aunque la empresa ya esté autorizada en producción. En el navegador lo decide el ambiente activo de la sesión. Para ver los del otro ambiente, usa una API key de ese ambiente.
data[].folio_desdestringsíPrimer folio del rango que autorizó el SII, inclusive.
data[].folio_hastastringsíÚltimo folio del rango que autorizó el SII, inclusive.
data[].next_foliostringsíPróximo folio que se va a asignar de este rango. Los anteriores ya se consumieron y el SII no permite reutilizarlos.
data[].remainingenterosíFolios sin asignar EN ESTE rango (folio_hasta - next_folio + 1). No es el total de la empresa: si hay varios rangos vivos del mismo tipo, súmalos.
data[].low_foliosbooleanosítrue cuando a ESTE rango le quedan 10 folios o menos. Con varios rangos del mismo tipo, uno en true no significa que la empresa se esté quedando sin folios.
data[].not_afterstringsíFecha hasta la que sirve este rango. Vencido, sus folios ya no se asignan aunque queden sin usar, y hay que pedirle al SII un CAF nuevo.
data[].exhaustedbooleanosítrue cuando el rango quedó marcado como agotado y ya no se usa.
data[].created_atstringsíInstante en que este CAF quedó registrado en Notta, no la fecha en que el SII lo otorgó.
JSON Schema de salida
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "UUID de este CAF en Notta."
          },
          "rut_emisor": {
            "type": "string",
            "description": "RUT de la empresa que emitió, en formato `CUERPO-DV` sin puntos (`76123456-0`)."
          },
          "tipo_dte": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Código SII del tipo de documento para el que sirven estos folios. Un CAF vale para UN tipo: los folios de una factura (33) no se pueden usar en una nota de crédito (61)."
          },
          "sii_env": {
            "type": "string",
            "enum": [
              "cert",
              "prod"
            ],
            "description": "Ambiente al que pertenece este CAF, y al que está RECORTADA toda la lista. Certificación y producción son secuencias de folios independientes, así que una organización puede tener un CAF del mismo tipo en cada una y esta respuesta sólo trae los de uno. Lo decide la CREDENCIAL con la que llamas: una API key de certificación ve los folios de certificación aunque la empresa ya esté autorizada en producción. En el navegador lo decide el ambiente activo de la sesión. Para ver los del otro ambiente, usa una API key de ese ambiente."
          },
          "folio_desde": {
            "type": "string",
            "description": "Primer folio del rango que autorizó el SII, inclusive."
          },
          "folio_hasta": {
            "type": "string",
            "description": "Último folio del rango que autorizó el SII, inclusive."
          },
          "next_folio": {
            "type": "string",
            "description": "Próximo folio que se va a asignar de este rango. Los anteriores ya se consumieron y el SII no permite reutilizarlos."
          },
          "remaining": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Folios sin asignar EN ESTE rango (`folio_hasta - next_folio + 1`). No es el total de la empresa: si hay varios rangos vivos del mismo tipo, súmalos."
          },
          "low_folios": {
            "type": "boolean",
            "description": "`true` cuando a ESTE rango le quedan 10 folios o menos. Con varios rangos del mismo tipo, uno en `true` no significa que la empresa se esté quedando sin folios."
          },
          "not_after": {
            "type": "string",
            "description": "Fecha hasta la que sirve este rango. Vencido, sus folios ya no se asignan aunque queden sin usar, y hay que pedirle al SII un CAF nuevo."
          },
          "exhausted": {
            "type": "boolean",
            "description": "`true` cuando el rango quedó marcado como agotado y ya no se usa."
          },
          "created_at": {
            "type": "string",
            "description": "Instante en que este CAF quedó registrado en Notta, no la fecha en que el SII lo otorgó."
          }
        },
        "required": [
          "id",
          "rut_emisor",
          "tipo_dte",
          "sii_env",
          "folio_desde",
          "folio_hasta",
          "next_folio",
          "remaining",
          "low_folios",
          "not_after",
          "exhausted",
          "created_at"
        ],
        "additionalProperties": false,
        "description": "UN rango de folios autorizado por el SII (un CAF) para un tipo de documento, no todos los de ese tipo: el mismo tipo puede tener varios rangos, cada uno en su propia fila."
      },
      "description": "CAF de la organización EN EL AMBIENTE de tu credencial, una fila por rango de folios. Una empresa puede tener varios rangos vivos del mismo tipo."
    }
  },
  "required": [
    "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