VendemasRCOF

Generar XML de RVD de Boletas (ex RCOF)

Generar XML del RCOF/RVD (Reporte Ventas Diarias) y opcionalmente enviarlo al SII.

POST /api/v1/vendemas/dte/rcof/generar
import requests
 
headers = {
    "X-API-Token": "sk_live_replace_with_your_token",
}
 
response = requests.post(
    "https://api.fiscalbridge.cl/api/v1/vendemas/dte/rcof/generar",
    headers=headers,
)
response.raise_for_status()
print(response.json())

Generar XML del RCOF/RVD (Reporte Ventas Diarias) y opcionalmente enviarlo al SII.

Construye el XML del Reporte de Ventas Diarias firmado digitalmente. El RVD se debe enviar al SII de lunes a domingo, todos los dias, existan o no movimientos. Cada envio reemplaza al anterior siempre y cuando tenga una secuencia siguiente a la ultima enviada. Si enviar_sii == "1", ademas envia el XML al SII y retorna el track_id.

Autenticacion requerida: API token en header X-API-Token con scope vendemas:write

  • certificado digital del emisor en auth.cert (PFX o PEM).

Quota: Consume 1 consulta | Peso: 5x (operacion critica si enviar_sii=1)


Parametros de consulta

ParametroTipoDefaultDescripcion
enviar_siistring00 solo genera; 1 envia al SII y retorna track_id

Body (JSON)

CampoTipoRequeridoDescripcion
auth.cert.cert-data + auth.cert.pkey-datastringSi*Certificado + llave privada PEM en base64
auth.cert.pfx-data + auth.cert.passphrasestringSi*Alternativa: PKCS#12 (.pfx) en base64
emisorstringSiRUT del emisor
resolucion.fechastringSiFecha resolucion SII AAAA-MM-DD
resolucion.numerointSiNumero resolucion SII (0 = certificacion)
secuenciaintSiNumero de secuencia del dia
documentos[]arraySiLista de documentos del dia

*Usar cert-data + pkey-data (PEM) o pfx-data (PKCS#12).

Estructura de cada documento

CampoTipoDescripcion
TpoDocintTipo DTE (39, 41, etc.)
NroDocintFolio
FchDocstringAAAA-MM-DD
MntNeto / MntIVA / TasaImp / MntExe / MntTotalintMontos
Anuladobool (opcional)True si folio anulado

Respuesta exitosa (200)

{
    "certificacion": 1,
    "xml": "PD94bWwgdmVyc2lvbj0i...",
    "track_id": 123456,
    "estado": "OK"
}

Si el envio al SII falla, retorna track_id_error en vez de track_id.

Errores especificos

Codigoerror_codeCausaResolucion
400VALIDATION_ERRORDatos invalidos (emisor/documentos faltantes)Revisar body
400AUTH_ERRORCertificado invalido o passphrase incorrectaRenovar certificado
401HTTP_401API token ausente o invalidoEnviar X-API-Token valido
403INSUFFICIENT_SCOPEToken sin scope vendemas:writeGenerar token con scope
429SII_RATE_LIMIT / QUOTA_EXCEEDEDRate limitRespetar Retry-After
502SII_UPLOAD_ERRORSII rechazo el envioReintentar con mismo XML
503SII_UNAVAILABLESII en mantenimientoReintentar en 5 min

Args: body: Request body con estructura:

{
  "auth": {
    "cert": {
      "cert-data": "...",       // Certificado X.509 PEM/base64
      "pkey-data": "...",       // Llave privada PEM/base64
      "passphrase": "..."       // Contraseña (opcional)
    }
  },
  "emisor": "76192083-9",
  "resolucion": {
    "fecha": "2019-12-23",
    "numero": 0
  },
  "secuencia": 1,
  "documentos": [
    {
      "TpoDoc": 39,
      "NroDoc": 1,
      "FchDoc": "2024-01-15",
      "MntNeto": 100,
      "MntIVA": 19,
      "TasaImp": 19,
      "MntExe": 0,
      "MntTotal": 119
    }
  ]
}
    - ``emisor`` (str): RUT del emisor (ej: ``"76192083-9"``).

    Campos del objeto ``resolucion``:
    - ``fecha`` (str): Fecha de resolución SII (``"YYYY-MM-DD"``).
    - ``numero`` (int): Número de resolución (0 = certificación).

    Campos de cada documento en ``documentos``:
    - ``TpoDoc`` (int): Tipo de documento (39, 41, etc.).
    - ``NroDoc`` (int): Folio del documento.
    - ``FchDoc`` (str): Fecha del documento (``"YYYY-MM-DD"``).
    - ``MntNeto`` (int): Monto neto (0 si exento).
    - ``MntIVA`` (int): Monto IVA.
    - ``TasaImp`` (int): Tasa de impuesto (19).
    - ``MntExe`` (int): Monto exento.
    - ``MntTotal`` (int): Monto total.
    - ``Anulado`` (bool, opcional): True si el folio fue anulado.

enviar_sii: ``"0"`` solo genera el XML, ``"1"`` genera y envía al SII.

Returns: Diccionario con:

  • certificacion (int): 1 si NroResol == 0, 0 si producción.
  • xml (str): XML del RCOF firmado en base64.
  • track_id (int, opcional): ID de seguimiento SII (solo si enviar_sii == "1").
  • track_id_error (str, opcional): Mensaje de error si el envío falló.

Raises: ValueError: Si faltan datos de certificado, emisor o documentos. XmlSignatureError: Si la firma digital falla. RuntimeError: Si el envío al SII falla (solo cuando enviar_sii == "1").

Parámetros

Header / Body
Tipo
Descripción
Requerido
enviar_sii
string · query
`0` No se envia el XML generado al SII. `1` Se envia el XML generado al SII
No

Respuestas

200XML del RVD generado exitosamente (`xml` base64, `track_id` si se envio)
400Datos de certificado, emisor o documentos invalidos
401API token ausente o invalido
403Sin scope `vendemas:write` o cuenta bloqueada
422Body con formato invalido
429Limite de tasa excedido
502Error al enviar el XML al SII
503SII en mantenimiento

Forma de la respuesta

Código 200. Estructura del JSON devuelto.

{}

On this page