# Consultar RCV del SII

> Lee el Registro de Compra-Venta ya sincronizado para esta conexión, documento por documento, filtrable por período, perspectiva, tipo de documento (tipoDte) y estado del registro.



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

|                     |                                                                    |
| ------------------- | ------------------------------------------------------------------ |
| **Tool ID**         | `sii.rcv.consultar`                                                |
| **Nombre MCP**      | `sii__rcv__consultar`                                              |
| **Conector**        | `sii`                                                              |
| **Plano**           | `action`                                                           |
| **Lee el alcance**  | `rcv` (debe estar habilitado en la conexión)                       |
| **Scope (permiso)** | `sii:read`                                                         |
| **Auth**            | `none`                                                             |
| **Versión**         | `7`                                                                |
| **Sensible**        | sí                                                                 |
| **Deprecado**       | no                                                                 |
| **Comportamiento**  | readOnly=true, destructive=false, idempotent=true, openWorld=false |

> **Requiere conexión.** Indica cuál en cada llamada: header `X-Connect-Connection` en REST, campo `connectionId` en el `execute` de 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 de [`conexiones.estado.consultar`](../conexiones/estado-consultar).

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

Las boletas (39), los comprobantes de pago con tarjeta (48) y otros tipos que el SII informa sólo como TOTAL del mes no vienen aquí: léelos con 'sii.rcv\_totales.consultar'. Las ventas del mes son estos documentos (las notas de crédito restan) más los totales con 'sumable: true'; los pagos con tarjeta (48) se suman según el caso (ver 'sii.rcv\_totales.consultar'). Lectura pura: NO dispara una sincronización nueva ni contacta al SII. Si el mes no está cargado, devuelve una lista vacía y 'sincronizacion: null': no es cero movimiento. Solo informes cero ventas si el mes está cargado completo y los totales del mes ('sii.rcv\_totales.consultar') también son cero. Para traer datos nuevos, usa 'sii.conexion.sincronizar' primero. Pagina con 'cursor': cuando la respuesta trae 'cursor' distinto de null, hay más filas. reenvía ese valor tal cual en 'cursor' para pedir la página siguiente; nunca lo construyas a mano.

## Entrada [#entrada]

| Campo         | Tipo                                                          | Requerido          | Descripción                                                                                                      |
| ------------- | ------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------- |
| `periodo`     | string `^\d{4}-\d{2}$`                                        | no                 | Período tributario AAAA-MM. Sin él, la respuesta cruza períodos y 'sincronizacion' llega null.                   |
| `perspectiva` | `"compras"` · `"ventas"`                                      | no                 | compras = la empresa es el receptor; ventas = la empresa es el emisor.                                           |
| `tipoDte`     | entero                                                        | no                 | Tipo de DTE (33 factura electrónica, 34 exenta, 46 factura de compra, 56 nota de débito, 61 nota de crédito, …). |
| `estado`      | `"registro"` · `"pendiente"` · `"no_incluir"` · `"reclamado"` | no                 | Estado del documento en el RCV.                                                                                  |
| `cursor`      | string                                                        | no                 | Paginación: el valor que devolvió la respuesta anterior, tal cual.                                               |
| `limit`       | entero 1-500                                                  | no · default `100` | Filas por página.                                                                                                |

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

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "periodo": {
        "description": "Período tributario AAAA-MM. Sin él, la respuesta cruza períodos y 'sincronizacion' llega null.",
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}$"
      },
      "perspectiva": {
        "description": "compras = la empresa es el receptor; ventas = la empresa es el emisor.",
        "type": "string",
        "enum": [
          "compras",
          "ventas"
        ]
      },
      "tipoDte": {
        "description": "Tipo de DTE (33 factura electrónica, 34 exenta, 46 factura de compra, 56 nota de débito, 61 nota de crédito, …).",
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "estado": {
        "description": "Estado del documento en el RCV.",
        "type": "string",
        "enum": [
          "registro",
          "pendiente",
          "no_incluir",
          "reclamado"
        ]
      },
      "cursor": {
        "description": "Paginación: el valor que devolvió la respuesta anterior, tal cual.",
        "type": "string"
      },
      "limit": {
        "default": 100,
        "description": "Filas por página.",
        "type": "integer",
        "minimum": 1,
        "maximum": 500
      }
    }
  }
  ```
</details>

## Ejemplo [#ejemplo]

```bash title="curl"
curl -X POST https://connect.emisso.ai/api/v1/tools/sii.rcv.consultar/execute \
  -H "Authorization: Bearer connect_sk_…" \
  -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
  -H "Content-Type: application/json" \
  -d '{"input":{"periodo":"2026-07","perspectiva":"ventas"}}'
```

```ts title="SDK TypeScript"
const data = await connect.tools.sii.rcv.consultar({ periodo: "2026-07", perspectiva: "ventas" }, { connectionId: "conn_9tKfR2mQx4Vb" });
```

```json title="MCP · meta-tool execute"
{
  "tool": "sii.rcv.consultar",
  "params": {
    "periodo": "2026-07",
    "perspectiva": "ventas"
  },
  "connectionId": "conn_9tKfR2mQx4Vb"
}
```

**Salida esperada (200):**

```json
{
  "data": {
    "documentos": [
      {
        "tipoDte": 33,
        "folio": "4712",
        "rutEmisor": "77123456-9",
        "rutReceptor": "76543210-3",
        "razonSocial": "Constructora Los Robles Ltda",
        "fechaEmisionDate": "2026-07-09",
        "fechaEmision": "09/07/2026",
        "montoNeto": 1250000,
        "montoIva": 237500,
        "montoTotal": 1487500,
        "estado": "registro",
        "periodo": "2026-07",
        "montoExento": 0,
        "fechaRecepcion": "2026-07-09",
        "eventoReceptor": null,
        "eventoReceptorCod": null,
        "tipoDocRef": null,
        "folioDocRef": null,
        "fechaAcuse": null,
        "fechaReclamo": null,
        "tipoTransaccion": null,
        "perspectiva": "ventas"
      },
      {
        "tipoDte": 33,
        "folio": "4718",
        "rutEmisor": "77123456-9",
        "rutReceptor": "78900400-5",
        "razonSocial": "Ferretería El Volcán SpA",
        "fechaEmisionDate": "2026-07-28",
        "fechaEmision": "28/07/2026",
        "montoNeto": 480000,
        "montoIva": 91200,
        "montoTotal": 571200,
        "estado": "registro",
        "periodo": "2026-07",
        "montoExento": 0,
        "fechaRecepcion": "2026-07-29",
        "eventoReceptor": null,
        "eventoReceptorCod": null,
        "tipoDocRef": null,
        "folioDocRef": null,
        "fechaAcuse": null,
        "fechaReclamo": null,
        "tipoTransaccion": null,
        "perspectiva": "ventas"
      }
    ],
    "cursor": null,
    "sincronizacion": {
      "sincronizadoEn": "2026-08-06T03:15:42.000Z",
      "completo": true,
      "incompletos": 0,
      "fueraDeVentana": null,
      "perspectivasFallidas": []
    }
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "sii.rcv.consultar",
    "plane": "action",
    "latency_ms": 24,
    "audit_status": "recorded"
  }
}
```

> Recortado a dos documentos; una respuesta real trae hasta 'limit' filas por página. Las dos filas muestran a propósito lo que 'new Date(fechaEmision)' hace con datos reales: '09/07/2026' se lee como el 7 de septiembre sin avisar y '28/07/2026' da Invalid Date. Ordena y filtra siempre por 'fechaEmisionDate' (AAAA-MM-DD, o null cuando el SII no informó la fecha) y compárala como texto. En 'ventas' el emisor es la empresa de la conexión y 'razonSocial' nombra a la contraparte. Las boletas y los comprobantes de pago del mes están en 'sii.rcv\_totales.consultar'.

## Salida [#salida]

| Campo                                               | Tipo                         | Requerido | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| --------------------------------------------------- | ---------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `documentos`                                        | lista de objeto              | sí        | Los documentos del RCV que calzan con el filtro, uno por fila. Sale de la caché ya sincronizada, nunca de una consulta en vivo al SII.                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].tipoDte`                              | entero                       | sí        | Código del tipo de DTE: 33 factura electrónica, 34 exenta, 46 factura de compra, 56 nota de débito, 61 nota de crédito. Es un NÚMERO, a diferencia de 'folio': es un código de un vocabulario cerrado, no un identificador.                                                                                                                                                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].folio`                                | string                       | sí        | El folio del documento, en TEXTO decimal canónico (sin ceros a la izquierda). Junto con 'tipoDte' y 'rutEmisor' lo identifica de forma única. Es texto y no un número a propósito: un folio es un identificador con el que no se hace aritmética, y hay folios reales que no caben en un entero de 32 bits. Compáralo como cadena y no lo conviertas a número para ordenar ni para volver a mandarlo.                                                                                                        |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].rutEmisor`                            | string                       | sí        | Quien EMITIÓ el documento: en 'ventas' es la empresa de esta conexión, en 'compras' es la contraparte.                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].rutReceptor`                          | string                       | sí        | Quien RECIBIÓ el documento: en 'compras' es la empresa de esta conexión, en 'ventas' es la contraparte.                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].razonSocial`                          | string                       | sí        | La razón social de la CONTRAPARTE, nunca la de la empresa de esta conexión, tal como la informó el SII.                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].fechaEmisionDate`                     | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | La misma fecha de emisión en formato AAAA-MM-DD, o null si no se pudo parsear. Es un día calendario sin zona horaria: compáralo como texto o con Date.UTC, porque new Date('2026-09-07') es medianoche UTC y en Chile se muestra como el 6. Es el campo que conviene usar para ordenar y filtrar.                                                                                                                                                                                                       |
| `documentos[].fechaEmision`                         | string                       | sí        | **Deprecado.** No la pases por new Date(). Es la fecha tal cual la manda el SII, en formato chileno DD/MM/AAAA. JavaScript la lee como MM/DD: '07/09/2026' te da el 9 de julio y '28/08/2026' te da Invalid Date. Puede venir vacía ('') cuando el SII no informó la fecha. Usa 'fechaEmisionDate': AAAA-MM-DD, null cuando no se pudo parsear. Es un día calendario sin zona horaria: compáralo como texto o con Date.UTC, porque new Date('2026-09-07') es medianoche UTC y en Chile se muestra como el 6. |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].montoNeto`                            | entero                       | sí        | Monto neto en pesos chilenos, entero. Un 0 no distingue 'el documento no tiene neto' (uno sólo exento) de 'el SII no informó el campo': las dos formas llegan igual.                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].montoIva`                             | entero                       | sí        | IVA en pesos chilenos, entero. Un 0 es ambiguo por el mismo motivo que en 'montoNeto'.                                                                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].montoTotal`                           | entero                       | sí        | Monto total del documento en pesos chilenos, entero.                                                                                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].estado`                               | string                       | sí        | La casilla del Registro de Compras donde el SII tiene el documento: 'registro', 'pendiente', 'no\_incluir' o 'reclamado'. Las ventas son siempre 'registro'.                                                                                                                                                                                                                                                                                                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].periodo`                              | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | El período tributario con que se sincronizó el documento, en formato AAAA-MM. 'null' en filas viejas que no lo guardaron.                                                                                                                                                                                                                                                                                                                                                                               |
| `documentos[].montoExento`                          | entero                       | sí        | Monto exento de IVA en pesos chilenos, entero.                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `documentos[].fechaRecepcion`                       | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Cuándo el SII recibió el documento, en formato AAAA-MM-DD. 'null' si no vino.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `documentos[].eventoReceptor`                       | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | La leyenda del evento que registró el receptor (un acuse, un reclamo). 'null' cuando no hubo evento, pero también cuando no se sabe cuál fue: si en el período hay más de unos 1.000 documentos del mismo tipo, el SII entrega el registro sin este dato. Para saber si hubo un acuse o un reclamo, 'fechaAcuse' y 'fechaReclamo' son más completas que este campo.                                                                                                                                     |
| `documentos[].eventoReceptorCod`                    | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | El código de ese mismo evento: 'C' recibo otorgado, 'R' reclamado, 'A' no reclamado en plazo, 'P' forma de pago contado, entre otros. Decide por el código, nunca por la leyenda. 'null' NO asegura que no hubo evento: si en el período hay más de unos 1.000 documentos del mismo tipo, el SII entrega el registro sin el código, y en un documento sin fecha de acuse ni de reclamo no se puede distinguir 'A' ni 'P' de 'sin evento'. Un acuse o un reclamo se ve en 'fechaAcuse' y 'fechaReclamo'. |
| `documentos[].tipoDocRef`                           | entero                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Tipo del documento que este corrige o referencia (una nota de crédito sobre una factura 33). 'null' cuando no referencia a ninguno. Es un NÚMERO, a diferencia de 'folioDocRef': código de vocabulario cerrado contra identificador.                                                                                                                                                                                                                                                                    |
| `documentos[].folioDocRef`                          | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Folio del documento referenciado, en TEXTO decimal canónico igual que 'folio', o 'null' cuando no hay referencia. Es el campo más expuesto del conector porque sale de lo que tipeó el emisor en el DTE, así que trátalo como cadena y no lo conviertas a número.                                                                                                                                                                                                                                       |
| `documentos[].fechaAcuse`                           | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Fecha del acuse de recibo, en formato AAAA-MM-DD. 'null' si no se acusó.                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `documentos[].fechaReclamo`                         | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Fecha del reclamo, en formato AAAA-MM-DD. 'null' si no se reclamó.                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `documentos[].tipoTransaccion`                      | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Con qué tipo de transacción quedó clasificado el documento en el RCV, tal cual lo manda el SII. 'null' si no vino.                                                                                                                                                                                                                                                                                                                                                                                      |
| `documentos[].perspectiva`                          | `"compras"` · `"ventas"`     | sí        | compras = tú eres el receptor; ventas = tú eres el emisor                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `cursor`                                            | string                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | El cursor de la página siguiente, opaco. 'null' significa que no hay más filas; cualquier otro valor se reenvía tal cual en 'cursor' de la próxima llamada y nunca se construye a mano.                                                                                                                                                                                                                                                                                                                 |
| `sincronizacion`                                    | objeto                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Completitud del último sync del período consultado. Con 'periodo', 'null' y una lista vacía significa que ese mes no está cargado: dilo, no lo informes como cero (revisa 'historico' en 'conexiones.estado.consultar'). Sin 'periodo' siempre es 'null': usa ese bloque para saber qué meses hay.                                                                                                                                                                                                      |
| `sincronizacion.sincronizadoEn`                     | string                       | sí        | Cuándo terminó la última sincronización de este período, en ISO 8601 UTC. Es la frescura del dato que estás leyendo.                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `sincronizacion.completo`                           | booleano                     | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 'true' = el período se cargó entero. 'false' = quedaron casillas sin traer. 'null' = se está cargando o no hay registro de ese intento.                                                                                                                                                                                                                                                                                                                                                                 |
| `sincronizacion.incompletos`                        | entero                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Cuántas casillas quedaron sin traer en esa sincronización. 'null' cuando no se puede saber.                                                                                                                                                                                                                                                                                                                                                                                                             |
| `sincronizacion.fueraDeVentana`                     | entero                       | null      | sí                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Sólo aplica a guías: cuántas direcciones cayeron fuera de la ventana de 6 meses que el SII conserva. Un 0 dice que se verificó y no aplicó; 'null', que no aplica o no se conoce.                                                                                                                                                                                                                                                                                                                       |
| `sincronizacion.perspectivasFallidas`               | lista de objeto              | sí        | Qué direcciones fallaron en esa sincronización, con su código de error. La pueblan las guías de despacho y las boletas de honorarios; para los demás llega vacía.                                                                                                                                                                                                                                                                                                                                            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `sincronizacion.perspectivasFallidas[].perspectiva` | `"emitidas"` · `"recibidas"` | sí        | Qué lado falló: 'emitidas' son las que emitió esta empresa y 'recibidas' las que le emitieron.                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `sincronizacion.perspectivasFallidas[].code`        | string                       | sí        | El código del catálogo de errores que explica por qué falló ese lado. Decide por el código, nunca por el texto.                                                                                                                                                                                                                                                                                                                                                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

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

  ```json
  {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "documentos": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "tipoDte": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991,
              "description": "Código del tipo de DTE: 33 factura electrónica, 34 exenta, 46 factura de compra, 56 nota de débito, 61 nota de crédito. Es un NÚMERO, a diferencia de 'folio': es un código de un vocabulario cerrado, no un identificador."
            },
            "folio": {
              "type": "string",
              "description": "El folio del documento, en TEXTO decimal canónico (sin ceros a la izquierda). Junto con 'tipoDte' y 'rutEmisor' lo identifica de forma única. Es texto y no un número a propósito: un folio es un identificador con el que no se hace aritmética, y hay folios reales que no caben en un entero de 32 bits. Compáralo como cadena y no lo conviertas a número para ordenar ni para volver a mandarlo."
            },
            "rutEmisor": {
              "type": "string",
              "description": "Quien EMITIÓ el documento: en 'ventas' es la empresa de esta conexión, en 'compras' es la contraparte."
            },
            "rutReceptor": {
              "type": "string",
              "description": "Quien RECIBIÓ el documento: en 'compras' es la empresa de esta conexión, en 'ventas' es la contraparte."
            },
            "razonSocial": {
              "type": "string",
              "description": "La razón social de la CONTRAPARTE, nunca la de la empresa de esta conexión, tal como la informó el SII."
            },
            "fechaEmisionDate": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "x-emisso-formato": "AAAA-MM-DD",
              "description": "La misma fecha de emisión en formato AAAA-MM-DD, o null si no se pudo parsear. Es un día calendario sin zona horaria: compáralo como texto o con Date.UTC, porque new Date('2026-09-07') es medianoche UTC y en Chile se muestra como el 6. Es el campo que conviene usar para ordenar y filtrar."
            },
            "fechaEmision": {
              "type": "string",
              "deprecated": true,
              "x-emisso-formato": "DD/MM/AAAA",
              "x-emisso-canonico": "fechaEmisionDate",
              "x-emisso-admite-vacio": true,
              "description": "No la pases por new Date(). Es la fecha tal cual la manda el SII, en formato chileno DD/MM/AAAA. JavaScript la lee como MM/DD: '07/09/2026' te da el 9 de julio y '28/08/2026' te da Invalid Date. Puede venir vacía ('') cuando el SII no informó la fecha. Usa 'fechaEmisionDate': AAAA-MM-DD, null cuando no se pudo parsear. Es un día calendario sin zona horaria: compáralo como texto o con Date.UTC, porque new Date('2026-09-07') es medianoche UTC y en Chile se muestra como el 6."
            },
            "montoNeto": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991,
              "description": "Monto neto en pesos chilenos, entero. Un 0 no distingue 'el documento no tiene neto' (uno sólo exento) de 'el SII no informó el campo': las dos formas llegan igual."
            },
            "montoIva": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991,
              "description": "IVA en pesos chilenos, entero. Un 0 es ambiguo por el mismo motivo que en 'montoNeto'."
            },
            "montoTotal": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991,
              "description": "Monto total del documento en pesos chilenos, entero."
            },
            "estado": {
              "type": "string",
              "description": "La casilla del Registro de Compras donde el SII tiene el documento: 'registro', 'pendiente', 'no_incluir' o 'reclamado'. Las ventas son siempre 'registro'."
            },
            "periodo": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "El período tributario con que se sincronizó el documento, en formato AAAA-MM. 'null' en filas viejas que no lo guardaron."
            },
            "montoExento": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991,
              "description": "Monto exento de IVA en pesos chilenos, entero."
            },
            "fechaRecepcion": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Cuándo el SII recibió el documento, en formato AAAA-MM-DD. 'null' si no vino."
            },
            "eventoReceptor": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "La leyenda del evento que registró el receptor (un acuse, un reclamo). 'null' cuando no hubo evento, pero también cuando no se sabe cuál fue: si en el período hay más de unos 1.000 documentos del mismo tipo, el SII entrega el registro sin este dato. Para saber si hubo un acuse o un reclamo, 'fechaAcuse' y 'fechaReclamo' son más completas que este campo."
            },
            "eventoReceptorCod": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "El código de ese mismo evento: 'C' recibo otorgado, 'R' reclamado, 'A' no reclamado en plazo, 'P' forma de pago contado, entre otros. Decide por el código, nunca por la leyenda. 'null' NO asegura que no hubo evento: si en el período hay más de unos 1.000 documentos del mismo tipo, el SII entrega el registro sin el código, y en un documento sin fecha de acuse ni de reclamo no se puede distinguir 'A' ni 'P' de 'sin evento'. Un acuse o un reclamo se ve en 'fechaAcuse' y 'fechaReclamo'."
            },
            "tipoDocRef": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ],
              "description": "Tipo del documento que este corrige o referencia (una nota de crédito sobre una factura 33). 'null' cuando no referencia a ninguno. Es un NÚMERO, a diferencia de 'folioDocRef': código de vocabulario cerrado contra identificador."
            },
            "folioDocRef": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Folio del documento referenciado, en TEXTO decimal canónico igual que 'folio', o 'null' cuando no hay referencia. Es el campo más expuesto del conector porque sale de lo que tipeó el emisor en el DTE, así que trátalo como cadena y no lo conviertas a número."
            },
            "fechaAcuse": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Fecha del acuse de recibo, en formato AAAA-MM-DD. 'null' si no se acusó."
            },
            "fechaReclamo": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Fecha del reclamo, en formato AAAA-MM-DD. 'null' si no se reclamó."
            },
            "tipoTransaccion": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Con qué tipo de transacción quedó clasificado el documento en el RCV, tal cual lo manda el SII. 'null' si no vino."
            },
            "perspectiva": {
              "type": "string",
              "enum": [
                "compras",
                "ventas"
              ],
              "description": "compras = tú eres el receptor; ventas = tú eres el emisor"
            }
          },
          "required": [
            "tipoDte",
            "folio",
            "rutEmisor",
            "rutReceptor",
            "razonSocial",
            "fechaEmisionDate",
            "fechaEmision",
            "montoNeto",
            "montoIva",
            "montoTotal",
            "estado",
            "periodo",
            "montoExento",
            "fechaRecepcion",
            "eventoReceptor",
            "eventoReceptorCod",
            "tipoDocRef",
            "folioDocRef",
            "fechaAcuse",
            "fechaReclamo",
            "tipoTransaccion",
            "perspectiva"
          ],
          "additionalProperties": false
        },
        "description": "Los documentos del RCV que calzan con el filtro, uno por fila. Sale de la caché ya sincronizada, nunca de una consulta en vivo al SII."
      },
      "cursor": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "El cursor de la página siguiente, opaco. 'null' significa que no hay más filas; cualquier otro valor se reenvía tal cual en 'cursor' de la próxima llamada y nunca se construye a mano."
      },
      "sincronizacion": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "sincronizadoEn": {
                "type": "string",
                "description": "Cuándo terminó la última sincronización de este período, en ISO 8601 UTC. Es la frescura del dato que estás leyendo."
              },
              "completo": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "'true' = el período se cargó entero. 'false' = quedaron casillas sin traer. 'null' = se está cargando o no hay registro de ese intento."
              },
              "incompletos": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Cuántas casillas quedaron sin traer en esa sincronización. 'null' cuando no se puede saber."
              },
              "fueraDeVentana": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Sólo aplica a guías: cuántas direcciones cayeron fuera de la ventana de 6 meses que el SII conserva. Un 0 dice que se verificó y no aplicó; 'null', que no aplica o no se conoce."
              },
              "perspectivasFallidas": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "perspectiva": {
                      "type": "string",
                      "enum": [
                        "emitidas",
                        "recibidas"
                      ],
                      "description": "Qué lado falló: 'emitidas' son las que emitió esta empresa y 'recibidas' las que le emitieron."
                    },
                    "code": {
                      "type": "string",
                      "description": "El código del catálogo de errores que explica por qué falló ese lado. Decide por el código, nunca por el texto."
                    }
                  },
                  "required": [
                    "perspectiva",
                    "code"
                  ],
                  "additionalProperties": false
                },
                "description": "Qué direcciones fallaron en esa sincronización, con su código de error. La pueblan las guías de despacho y las boletas de honorarios; para los demás llega vacía."
              }
            },
            "required": [
              "sincronizadoEn",
              "completo",
              "incompletos",
              "fueraDeVentana",
              "perspectivasFallidas"
            ],
            "additionalProperties": false
          },
          {
            "type": "null"
          }
        ],
        "description": "Completitud del último sync del período consultado. Con 'periodo', 'null' y una lista vacía significa que ese mes no está cargado: dilo, no lo informes como cero (revisa 'historico' en 'conexiones.estado.consultar'). Sin 'periodo' siempre es 'null': usa ese bloque para saber qué meses hay."
      }
    },
    "required": [
      "documentos",
      "cursor",
      "sincronizacion"
    ],
    "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.             |
| `alcance_not_enabled` | 403  | no           | Habilita el alcance en /connections o quítalo del input de la sincronización. |

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](../errores).

## Próximos pasos [#próximos-pasos]

* [`sii.conexion.sincronizar`](./conexion-sincronizar): la tool que escribe los datos que esta lectura devuelve.
* [Sincronizar y consultar](/docs/conceptos/sincronizar-consultar): por qué leer datos reales son dos pasos.
