Emisso Connect

Detallar un documento respaldado del SII

Devuelve UN documento tributario respaldado, con su detalle completo: los ítems (nombre, cantidad, unidad, precio unitario y monto), los giros, direcciones y comunas de emisor y receptor, y la forma de pago. El documento se identifica con las tres partes que lo hacen único ('tipoDte', 'folio' y 'rutEmisor'), y las tres salen de una fila de 'sii.documentos.consultar'. Lectura pura: NO contacta al SII, lee el XML que ya se respaldó y lo parsea en el momento. Si ese documento no está sincronizado, devuelve 'documento: null'. No es un error: es que no lo tenemos, así que sincroniza su período con 'sii.conexion.sincronizar' y vuelve a preguntar. El XML firmado sólo viaja si se pide 'incluirXml: true'; sin eso la respuesta trae el detalle ya estructurado, que es lo que casi siempre se necesita. Un ítem con 'cantidad', 'unidad' o 'precioUnitario' en null es un ítem que no los declaró (un flete, un descuento): no debe leerse como cero.

POST
/v1/tools/sii.documentos.detallar/execute
AuthorizationBearer <token>

API key de la organización, en 'Authorization: Bearer connect_sk_…'. Es la credencial para tu backend y tus agentes propios; se crea en el dashboard con permisos explícitos y su valor completo se muestra una sola vez. Autentica como agente: la bitácora atribuye la acción a la clave, nunca a la persona que la creó.

In: header

Header Parameters

X-Connect-Connection*string

Cuál conexión (conn_…) ejecuta esta llamada. Obligatoria en todo sistema conectable y sin resolución implícita, ni siquiera cuando la organización tiene una sola conexión activa: la conexión ES la empresa, y elegir por ti una que hoy acierta mañana acierta distinto sin que nadie cambie nada. Los ids salen de la tool 'conexiones.estado.consultar'. Si falta, la respuesta es 'validation_error' y no se contacta al sistema externo.

Match^conn_

Request Body

application/json

La entrada de la tool, envuelta en 'input'. Manda '{"input": {}}' cuando la tool no toma argumentos: el sobre es obligatorio aunque esté vacío.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/tools/sii.documentos.detallar/execute" \  -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \  -H "Content-Type: application/json" \  -d '{    "input": {      "tipoDte": -9007199254740991,      "folio": "string",      "rutEmisor": "string"    }  }'
{  "data": {    "documento": {      "tipoDte": -9007199254740991,      "folio": "string",      "rutEmisor": "string",      "rutReceptor": "string",      "razonSocialContraparte": "string",      "perspectiva": "emitidos",      "periodo": "string",      "fechaEmision": "string",      "montoNeto": -9007199254740991,      "iva": -9007199254740991,      "montoTotal": -9007199254740991,      "estado": "string",      "dteHash": "string",      "ultimaLecturaEn": "string",      "detalle": {        "formaPago": "string",        "razonSocialEmisor": "string",        "giroEmisor": "string",        "dirEmisor": "string",        "cmnaEmisor": "string",        "razonSocialReceptor": "string",        "giroReceptor": "string",        "dirReceptor": "string",        "cmnaReceptor": "string",        "items": [          {            "numeroLinea": -9007199254740991,            "nombre": "string",            "cantidad": 0,            "unidad": "string",            "precioUnitario": 0,            "montoItem": 0          }        ]      }    },    "xml": "string"  },  "meta": {    "request_id": "string",    "tool_id": "string",    "plane": "action",    "latency_ms": 0,    "audit_status": "recorded",    "idempotency": "replayed"  }}
{  "error": {    "code": "alcance_not_enabled",    "message": "string",    "suggested_fix": "string",    "request_id": "string",    "details": null  }}
{  "error": {    "code": "alcance_not_enabled",    "message": "string",    "suggested_fix": "string",    "request_id": "string",    "details": null  }}
{  "error": {    "code": "alcance_not_enabled",    "message": "string",    "suggested_fix": "string",    "request_id": "string",    "details": null  }}
{  "error": {    "code": "alcance_not_enabled",    "message": "string",    "suggested_fix": "string",    "request_id": "string",    "details": null  }}
{  "error": {    "code": "alcance_not_enabled",    "message": "string",    "suggested_fix": "string",    "request_id": "string",    "details": null  }}
{  "error": {    "code": "alcance_not_enabled",    "message": "string",    "suggested_fix": "string",    "request_id": "string",    "details": null  }}
{  "error": {    "code": "alcance_not_enabled",    "message": "string",    "suggested_fix": "string",    "request_id": "string",    "details": null  }}

Consultar documentos respaldados del SII POST

Lista los documentos tributarios (DTE) cuyo XML firmado ya se respaldó para esta conexión, filtrables por período, perspectiva y tipo de documento. Devuelve SOLO las columnas de cabecera: ni el XML ni el detalle de ítems viaja aquí. Para el detalle de UN documento (sus ítems con cantidad, unidad y precio, los giros y direcciones de emisor y receptor, y la forma de pago) usa 'sii.documentos.detallar' con el 'tipoDte', el 'folio' y el 'rutEmisor' de la fila correspondiente. Lectura pura: NO dispara una sincronización nueva ni contacta al SII. Si el período nunca se sincronizó, devuelve una lista vacía y 'sincronizacion: null'; para traer datos nuevos usa 'sii.conexion.sincronizar' primero. Este respaldo es lo que el RCV no tiene y no puede tener: el RCV dice qué documentos EXISTEN, este respaldo trae el documento. Sólo lo sirven las conexiones cuya credencial es la clave tributaria de una persona que representa a la empresa. 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.

Consultar guías de despacho del SII POST

Lee las guías de despacho electrónicas (DTE 52) ya sincronizadas para esta conexión, filtradas por período y/o perspectiva (emitidas = las que emitió esta empresa; recibidas = las que le emitieron). Lectura pura: NO dispara una sincronización nueva ni contacta al SII. Si el período nunca se sincronizó, devuelve una lista vacía y 'sincronizacion: null'. Para traer datos nuevos, use 'sii.conexion.sincronizar' primero. Ojo: el SII solo conserva el detalle de guías de los últimos 6 meses, así que un período más viejo no se puede sincronizar aunque exista. 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.