SIIRCV

Obtener detalle de compras del RCV

Obtener detalle de compras del RCV por tipo DTE, estado y modo de consulta.

POST /api/v1/sii/rcv/compras/detalle/{receptor}/{periodo}/{dte}/{estado}
import requests
 
headers = {
    "X-API-Token": "sk_live_replace_with_your_token",
}
 
response = requests.post(
    "https://api.fiscalbridge.cl/api/v1/sii/rcv/compras/detalle/76192083-9/202601/33/REGISTRO",
    headers=headers,
)
response.raise_for_status()
print(response.json())

Obtener detalle de compras del RCV por tipo DTE, estado y modo de consulta.

Consulta el detalle del Registro de Compras y Ventas del contribuyente y soporta 4 modos de respuesta segun tipo + formato: detalle base, detalle enriquecido con observaciones cruzadas, CSV como estructura JSON, o descarga binaria CSV.

Autenticacion requerida: API token en header X-API-Token con scope sii:read.

Quota: Consume 1 consulta | Peso: 2x (el modo iecv puede consumir peso extra por fanout a observaciones cruzadas).


Parametros de ruta

ParametroTipoRequeridoDescripcion
receptorstringSiRUT del contribuyente. Formato: XX.XXX.XXX-X
periodostringSiPeriodo tributario. Formato: YYYYMM
dtestringSiCodigo tipo DTE (33, 34, 46, 56, 61, ...)
estadostringSiREGISTRO / PENDIENTE / NO_INCLUIR / RECLAMADO

Parametros de consulta

ParametroTipoDefaultValores validosDescripcion
ambientestring00, 10 produccion, 1 certificacion
tipostringrcvrcv, iecv, rcv_csvModo de consulta (ver tabla de modos)
formatostringjsonjson, csvFormato de respuesta. Con csv fuerza descarga binaria
csv_delimiterstring;-Reservado

Body (JSON)

CampoTipoRequeridoDescripcion
authobjectSiContenedor de credenciales SII
auth.pass.rutstringSiRUT del contribuyente (XX.XXX.XXX-X)
auth.pass.clavestringSiClave tributaria del contribuyente

Request de ejemplo

{
    "auth": {
        "pass": {
            "rut": "12.345.678-9",
            "clave": "clave_tributaria"
        }
    }
}

Modos soportados

tipoformatoRespuestaCuando usar
rcvjsonDetalle base del RCV con todos los campos por documento
(respuesta SII tal cual)Consulta estandar de documentos
iecvjsonDetalle base + campo iec02 en items con observacion cruzada tipo
IEC02. El campo iec02 contiene la respuesta del SII literal para ese documento
Datos cruzados sin consultas manuales adicionales
rcv_csvjsonListado CSV como array de strings + nombreArchivo
(respuesta SII tal cual)Procesar el CSV programaticamente sin descarga binaria
cualquieracsvDescarga binaria text/csv; charset=utf-8 con
Content-Disposition: attachmentDescarga directa para software contable

Cada campo del response proviene directamente del SII. En modo iecv se combinan dos respuestas del SII (listado + cruce por documento), pero los valores se transmiten sin transformacion.

Respuesta exitosa (200)

Modo tipo=rcv o tipo=iecv (formato=json) — shape 1:1 con el SII, 67 campos por documento (valores ficticios conforme regla 4.5):

{
    "data": [
        {
            "dhdrCodigo": 37019572,
            "dcvCodigo": 14794127,
            "dcvEstadoContab": null,
            "detCodigo": 33114212,
            "detTipoDoc": null,
            "detRutDoc": 12345678,
            "detDvDoc": "9",
            "detRznSoc": "Empresa Ejemplo SpA",
            "detNroDoc": 1234,
            "detFchDoc": "01/03/2026",
            "detFecAcuse": null,
            "detFecReclamado": null,
            "detFecRecepcion": "01/03/2026 15:22:50",
            "detMntExe": 0,
            "detMntNeto": 100000,
            "detMntActFijo": 0,
            "detMntIVAActFijo": 0,
            "detMntIVANoRec": 0,
            "detMntCodNoRec": 0,
            "detMntSinCredito": 0,
            "detMntIVA": 19000,
            "detMntTotal": 119000,
            "detTasaImp": null,
            "detAnulado": null,
            "detIVARetTotal": null,
            "detIVARetParcial": null,
            "detIVANoRetenido": 0,
            "detIVAPropio": null,
            "detIVATerceros": null,
            "detIVAUsoComun": 0,
            "detLiqRutEmisor": null,
            "detLiqDvEmisor": null,
            "detLiqValComNeto": null,
            "detLiqValComExe": null,
            "detLiqValComIVA": null,
            "detIVAFueraPlazo": null,
            "detTipoDocRef": 0,
            "detFolioDocRef": null,
            "detExpNumId": null,
            "detExpNacionalidad": null,
            "detCredEc": null,
            "detLey18211": null,
            "detDepEnvase": null,
            "detIndSinCosto": null,
            "detIndServicio": null,
            "detMntNoFact": null,
            "detMntPeriodo": null,
            "detPsjNac": null,
            "detPsjInt": null,
            "detNumInt": null,
            "detCdgSIISucur": 0,
            "detEmisorNota": 0,
            "detTabPuros": 0,
            "detTabCigarrillos": 0,
            "detTabElaborado": 0,
            "detImpVehiculo": 0,
            "detTpoImp": 1,
            "detTipoTransaccion": 1,
            "detEventoReceptor": null,
            "detEventoReceptorLeyenda": null,
            "cambiarTipoTran": true,
            "detPcarga": 202603,
            "descTipoTransaccion": "Del Giro",
            "totalDtoiMontoImp": 0,
            "totalDinrMontoIVANoR": null,
            "emisorAgresivo": false,
            "fechaActivacionAnotacion": null
        }
    ],
    "esDocPapel": false,
    "respEstado": {
        "codRespuesta": 0,
        "msgeRespuesta": null,
        "codError": null
    }
}

En modo tipo=iecv, los items con observacion IEC02 agregan el campo iec02 con el detalle cruzado del SII. Si ningun item del periodo tiene observacion aplicable, el response es identico al modo tipo=rcv.

Modo tipo=rcv_csv (formato=json):

{
    "data": [
        "Nro;Tipo Compra;RUT Proveedor;Razon Social;Folio;Fecha Docto;...;Tasa Otro Impuesto",
        "1;Del Giro;12.345.678-9;Empresa Ejemplo SpA;1234;01/03/2026;...;119000"
    ],
    "nombreArchivo": "RCV_COMPRA_REGISTRO_XXXXXXXX-X_YYYYMM_33.csv",
    "respEstado": {
        "codRespuesta": 0,
        "msgeRespuesta": null,
        "codError": null
    }
}

Modo formato=csv (descarga binaria):

  • Content-Type: text/csv; charset=utf-8
  • Content-Disposition: attachment; filename="RCV_COMPRA_REGISTRO_XXXXXXXX-X_YYYYMM_33.csv"
  • Body con las mismas lineas CSV del modo rcv_csv pero como archivo descargable en lugar de estructura JSON.

Errores especificos

Codigoerror_codeCausaResolucion
400AUTH_ERRORCredenciales SII incorrectasRevisar RUT/clave
401HTTP_401API token ausente o invalidoEnviar X-API-Token valido
403INSUFFICIENT_SCOPEToken sin scope sii:readGenerar token con scope sii:read
422VALIDATION_ERRORtipo o formato fuera de valores validos
Usar solo valores listados en Parametros de consulta
429SII_RATE_LIMITRate limit del SIIRespetar header Retry-After
429QUOTA_EXCEEDEDCuota diaria del plan agotadaEsperar reset o hacer upgrade
502SII_GATEWAY_ERRORSII respondio con error estructuradoRevisar message
503SII_UNAVAILABLESII en mantenimientoReintentar en 5 minutos
504SII_TIMEOUTTimeout hacia el SIIReintentar

Rate Limiting

Consume 1 consulta de la cuota diaria del plan. Modo iecv puede incrementar el peso efectivo si hay documentos con observaciones cruzadas (un fanout por documento).

Notas

  • Los datos provienen del SII y pueden tener hasta 24h de desfase.
  • tipo=rcv_csv y formato=csv solo funcionan con estado=REGISTRO. Otros estados pueden fallar.
  • El campo iec02 solo aparece en items con observacion cruzada aplicable; para el resto se omite del JSON.

Parámetros

Header / Body
Tipo
Descripción
Requerido
dte
string · path
Codigo de tipo DTE
estado
string · path
Estado: `REGISTRO`, `PENDIENTE`, `NO_INCLUIR`, `RECLAMADO`
periodo
string · path
Periodo `AAAAMM`
receptor
string · path
RUT del receptor
ambiente
string · query
`0` produccion, `1` certificacion
No
csv_delimiter
string · query
Reservado
No
formato
string · query
`json` (default) | `csv` (descarga binaria)
No
tipo
string · query
`rcv` detalle base | `iecv` detalle + obs cruzadas | `rcv_csv` CSV como JSON
No

Cuerpo de la solicitud

Requerido. Content-Type: application/json.

{
  "auth": {
    "pass": {
      "clave": "string",
      "rut": "string"
    }
  }
}

Respuestas

200Respuesta segun tipo y formato
400`AUTH_ERROR` credenciales SII incorrectas | `VALIDATION_ERROR` parametros invalidos
401`HTTP_401` API token ausente o invalido
403`INSUFFICIENT_SCOPE` token sin scope `sii:read` | `ACCOUNT_BLOCKED`
422`VALIDATION_ERROR` body o query params con formato invalido
429`SII_RATE_LIMIT` / `QUOTA_EXCEEDED` / `THROTTLE_EXCEEDED`
502`SII_GATEWAY_ERROR` SII respondio con error estructurado
503`SII_UNAVAILABLE` SII en mantenimiento
504`SII_TIMEOUT` timeout hacia el SII

On this page