# Preparar la anulación de una factura o boleta en el SII

> Prepara en el Facturador Gratuito del SII la nota de crédito que anula un documento, sin firmarla ni emitirla.



{/* AUTO-GENERATED by @emisso/codegen. DO NOT EDIT. */}

|                     |                                                                   |
| ------------------- | ----------------------------------------------------------------- |
| **Tool ID**         | `sii.anulacion.previsualizar`                                     |
| **Nombre MCP**      | `sii__anulacion__previsualizar`                                   |
| **Conector**        | `sii`                                                             |
| **Plano**           | `action`                                                          |
| **Scope (permiso)** | `sii:write`                                                       |
| **Auth**            | `connection_credentials`                                          |
| **Versión**         | `3`                                                               |
| **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-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`](/docs/referencia/conexiones/estado-consultar).

## Qué hace [#qué-hace]

Identifica el documento por tipo, folio y fecha de emisión. Una factura afecta (33) tiene que estar en la lista de emitidos de ese portal: el SII construye la nota a partir de ella. Una boleta afecta (39) o exenta (41) tiene que haberla emitido Connect en esta conexión: la nota va por su total, con referencia a la boleta y al receptor de la boleta, o a la propia empresa si la boleta no tenía receptor. La de una boleta exenta no lleva IVA. Un documento emitido con otro proveedor se rechaza diciéndolo. Requiere habilitación de la organización, permiso de la conexión y credencial de representante, y que la conexión tenga guardada la clave del certificado: se resuelve en el servidor y nunca viaja en la llamada ni en el resultado.

## Entrada [#entrada]

| Campo                    | Tipo                        | Requerido | Descripción                                                                                                                                          |
| ------------------------ | --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `documento`              | objeto                      | sí        | El documento a anular, identificado como lo conoce quien lo emitió.                                                                                  |
| `documento.tipoDte`      | `"33"` · `"39"` · `"41"`    | sí        | 33: factura electrónica afecta emitida con el Facturador Gratuito. 39 o 41: boleta electrónica afecta o exenta emitida por Connect en esta conexión. |
| `documento.folio`        | string `^[1-9][0-9]{0,17}$` | sí        | Folio del documento a anular, en TEXTO: es un identificador, no una cantidad.                                                                        |
| `documento.fechaEmision` | string                      | sí        | Fecha de emisión del documento, AAAA-MM-DD: la de la lista del portal para una factura, el día de envío en Chile para una boleta.                    |

<details>
  <summary>
    JSON Schema de entrada
  </summary>

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "documento": {
        "type": "object",
        "properties": {
          "tipoDte": {
            "type": "string",
            "enum": [
              "33",
              "39",
              "41"
            ],
            "description": "33: factura electrónica afecta emitida con el Facturador Gratuito. 39 o 41: boleta electrónica afecta o exenta emitida por Connect en esta conexión."
          },
          "folio": {
            "type": "string",
            "pattern": "^[1-9][0-9]{0,17}$",
            "description": "Folio del documento a anular, en TEXTO: es un identificador, no una cantidad."
          },
          "fechaEmision": {
            "type": "string",
            "x-emisso-formato": "AAAA-MM-DD",
            "description": "Fecha de emisión del documento, AAAA-MM-DD: la de la lista del portal para una factura, el día de envío en Chile para una boleta."
          }
        },
        "required": [
          "tipoDte",
          "folio",
          "fechaEmision"
        ],
        "additionalProperties": false,
        "description": "El documento a anular, identificado como lo conoce quien lo emitió."
      }
    },
    "required": [
      "documento"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Ejemplo [#ejemplo]

```bash title="curl"
curl -X POST https://connect.emisso.ai/api/v1/tools/sii.anulacion.previsualizar/execute \
  -H "Authorization: Bearer connect_sk_…" \
  -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
  -H "Content-Type: application/json" \
  -d '{"input":{"documento":{"tipoDte":"33","folio":"1042","fechaEmision":"2026-09-15"}}}'
```

```json title="MCP · meta-tool execute"
{
  "tool": "sii.anulacion.previsualizar",
  "params": {
    "documento": {
      "tipoDte": "33",
      "folio": "1042",
      "fechaEmision": "2026-09-15"
    }
  },
  "connectionId": "conn_9tKfR2mQx4Vb"
}
```

**Salida esperada (200):**

```json
{
  "data": {
    "anulacion": {
      "tipoDte": "61",
      "operacion": "anula",
      "referencia": {
        "tipoDte": "33",
        "folio": "1042",
        "fechaEmision": "2026-09-15"
      },
      "totales": {
        "neto": 548000,
        "iva": 104120,
        "total": 652120
      }
    },
    "previewRef": "anr.1.1789482000000.Qm9Lr3Tx7Vb1Nz5Kc8Wp2Hs4.Jd6Yf0Ga9Ue3Ko7Mt1Rw5Xq8.Lb2Zn6Cv4Ej0Ph8Si3Dk7Fu1",
    "expiraEn": "2026-09-15T14:20:00.000Z",
    "advertencias": []
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "sii.anulacion.previsualizar",
    "plane": "action",
    "latency_ms": 7410,
    "audit_status": "recorded"
  }
}
```

> `referencia` y `totales` los escribió el SII: comprueba que sean los de la factura antes de emitir con `sii.anulacion.emitir`. Paso a paso en [Anular o corregir un documento](/docs/emitir/anular-o-corregir).

## Salida [#salida]

| Campo                               | Tipo                                       | Requerido         | Descripción                                                                                                                                                                                                                                                                             |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| ----------------------------------- | ------------------------------------------ | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ---------------------- | --------------------- | ------------------ | ------- | ------- | ---------- | -------------- | ------- | --- | ----------------- | --- | ------------------------ | -------------------------------------------- | ----------------- | ----------------------- | -- | ---------------------------------------------------------- |
| `anulacion`                         | objeto                                     | sí                | La nota de crédito que devolvió el SII para el documento, todavía sin firmar.                                                                                                                                                                                                           |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.tipoDte`                 | string                                     | sí                | Nota de crédito electrónica.                                                                                                                                                                                                                                                            |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.operacion`               | string                                     | sí                | Anula el documento referido; no corrige montos ni texto.                                                                                                                                                                                                                                |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.referencia`              | objeto                                     | sí                | El documento que esta nota anula, según lo escribió el propio SII.                                                                                                                                                                                                                      |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.referencia.tipoDte`      | `"33"` · `"39"` · `"41"`                   | sí                | Tipo del documento anulado: 33 factura, 39 boleta afecta o 41 boleta exenta.                                                                                                                                                                                                            |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.referencia.folio`        | string `^[1-9][0-9]{0,17}$`                | sí                | Folio del documento a anular, en TEXTO: es un identificador, no una cantidad.                                                                                                                                                                                                           |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.referencia.fechaEmision` | string                                     | sí                | Fecha de emisión del documento anulado, AAAA-MM-DD.                                                                                                                                                                                                                                     |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.totales`                 | objeto                                     | sí                | Totales de la vista previa del SII. En una factura los copia el SII de la original. En una boleta, Connect propone el neto que con el IVA redondeado del portal suma exactamente el total de la boleta.                                                                                 |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.totales.neto`            | entero                                     | sí                | Monto neto en pesos, según la vista previa del SII.                                                                                                                                                                                                                                     |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.totales.iva`             | entero                                     | sí                | IVA en pesos, calculado por el SII.                                                                                                                                                                                                                                                     |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.totales.exento`          | entero                                     | no                | Monto exento en pesos. Sólo en la anulación de una boleta exenta, donde neto e IVA son cero.                                                                                                                                                                                            |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `anulacion.totales.total`           | entero                                     | sí                | Total en pesos; siempre igual a neto + IVA + exento.                                                                                                                                                                                                                                    |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `previewRef`                        | string                                     | sí                | Referencia opaca y de vida corta que liga esta preparación a una eventual emisión.                                                                                                                                                                                                      |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |
| `expiraEn`                          | string \`^(?:(?:\d\d\[2468]\[048]          | \d\d\[13579]\[26] | \d\d0\[48]                                                                                                                                                                                                                                                                              | \[02468]\[048]00 | \[13579]\[26]00)-02-29 | \d{4}-(?:(?:0\[13578] | 1\[02])-(?:0\[1-9] | \[12]\d | 3\[01]) | (?:0\[469] | 11)-(?:0\[1-9] | \[12]\d | 30) | (?:02)-(?:0\[1-9] | 1\d | 2\[0-8])))T(?:(?:\[01]\d | 2\[0-3]):\[0-5]\d(?::\[0-5]\d(?:.\d+)?)?(?:Z | (\[+-]\(?:\[01]\d | 2\[0-3]):\[0-5]\d)))$\` | sí | Instante en que la preparación deja de servir para emitir. |
| `advertencias`                      | lista de `"confirmacion_humana_pendiente"` | sí                | Advertencias codificadas; nunca HTML ni datos del portal. Hoy la lista sale vacía: la preparación se confirma dentro de sii.anulacion.emitir tanto con clave de API como con una persona, así que `confirmacion_humana_pendiente` ya no se emite y se conserva sólo por compatibilidad. |                  |                        |                       |                    |         |         |            |                |         |     |                   |     |                          |                                              |                   |                         |    |                                                            |

<details>
  <summary>
    JSON Schema de salida
  </summary>

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "anulacion": {
        "type": "object",
        "properties": {
          "tipoDte": {
            "type": "string",
            "const": "61",
            "description": "Nota de crédito electrónica."
          },
          "operacion": {
            "type": "string",
            "const": "anula",
            "description": "Anula el documento referido; no corrige montos ni texto."
          },
          "referencia": {
            "type": "object",
            "properties": {
              "tipoDte": {
                "type": "string",
                "enum": [
                  "33",
                  "39",
                  "41"
                ],
                "description": "Tipo del documento anulado: 33 factura, 39 boleta afecta o 41 boleta exenta."
              },
              "folio": {
                "type": "string",
                "pattern": "^[1-9][0-9]{0,17}$",
                "description": "Folio del documento a anular, en TEXTO: es un identificador, no una cantidad."
              },
              "fechaEmision": {
                "type": "string",
                "x-emisso-formato": "AAAA-MM-DD",
                "description": "Fecha de emisión del documento anulado, AAAA-MM-DD."
              }
            },
            "required": [
              "tipoDte",
              "folio",
              "fechaEmision"
            ],
            "additionalProperties": false,
            "description": "El documento que esta nota anula, según lo escribió el propio SII."
          },
          "totales": {
            "type": "object",
            "properties": {
              "neto": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "Monto neto en pesos, según la vista previa del SII."
              },
              "iva": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991,
                "description": "IVA en pesos, calculado por el SII."
              },
              "exento": {
                "description": "Monto exento en pesos. Sólo en la anulación de una boleta exenta, donde neto e IVA son cero.",
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "total": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991,
                "description": "Total en pesos; siempre igual a neto + IVA + exento."
              }
            },
            "required": [
              "neto",
              "iva",
              "total"
            ],
            "additionalProperties": false,
            "description": "Totales de la vista previa del SII. En una factura los copia el SII de la original. En una boleta, Connect propone el neto que con el IVA redondeado del portal suma exactamente el total de la boleta."
          }
        },
        "required": [
          "tipoDte",
          "operacion",
          "referencia",
          "totales"
        ],
        "additionalProperties": false,
        "description": "La nota de crédito que devolvió el SII para el documento, todavía sin firmar."
      },
      "previewRef": {
        "type": "string",
        "minLength": 1,
        "description": "Referencia opaca y de vida corta que liga esta preparación a una eventual emisión."
      },
      "expiraEn": {
        "type": "string",
        "format": "date-time",
        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
        "description": "Instante en que la preparación deja de servir para emitir."
      },
      "advertencias": {
        "maxItems": 1,
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "confirmacion_humana_pendiente"
          ]
        },
        "description": "Advertencias codificadas; nunca HTML ni datos del portal. Hoy la lista sale vacía: la preparación se confirma dentro de sii.anulacion.emitir tanto con clave de API como con una persona, así que `confirmacion_humana_pendiente` ya no se emite y se conserva sólo por compatibilidad."
      }
    },
    "required": [
      "anulacion",
      "previewRef",
      "expiraEn",
      "advertencias"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Errores de esta tool [#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](/docs/referencia/errores).
