SIIBTE
Emitir una nueva BTE
Emitir una nueva boleta de terceros electronica (BTE).
POST
/api/v1/sii/bte/emitidas/emitirv1 · ESTABLEPOST /api/v1/sii/bte/emitidas/emitir
Emitir una nueva boleta de terceros electronica (BTE).
Crea una nueva BTE con Encabezado (Emisor, IdDoc, Receptor) y Detalle
(items). El SII asigna el folio y el track_id al confirmar la
emision. El RUT del emisor se deriva de auth.pass.rut.
Autenticacion requerida: API token en header X-API-Token con scope sii:write
- credenciales SII del emisor en el body (
auth.pass.rut/auth.pass.clave).
Quota: Consume 1 consulta | Peso: 5x (operacion critica de escritura)
Body (JSON)
| Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
auth.pass.rut | string | Si | RUT del emisor |
auth.pass.clave | string | Si | Clave tributaria SII |
boleta.Encabezado.Emisor.RUTEmisor | string | Si | RUT del emisor (debe coincidir con auth.pass.rut) |
boleta.Encabezado.IdDoc.FchEmis | string | Si | Fecha de emision YYYY-MM-DD |
boleta.Encabezado.Receptor.RUTRecep | string | Si | RUT del receptor |
boleta.Encabezado.Receptor.RznSocRecep | string | Si | Razon social del receptor |
boleta.Encabezado.Receptor.DirRecep | string | Si | Direccion del receptor |
boleta.Encabezado.Receptor.CmnaRecep | string | Si | Comuna del receptor |
boleta.Detalle | array | Si | Array de items con NmbItem y MontoItem |
Request de ejemplo
Respuesta exitosa (200)
Datos extraidos literal del HTML del SII paso 3 + hidden fields del borrador. Gateway transparente: HTTP 200 implica emision exitosa (cualquier rechazo en step 2/3 propaga error 4xx/5xx con mensaje real del SII).
Errores especificos
| Codigo | error_code | Causa | Resolucion |
|---|---|---|---|
| 400 | AUTH_ERROR | Credenciales SII incorrectas | Revisar RUT/clave |
| 400 | VALIDATION_ERROR | Datos de boleta rechazados por SII | Revisar message |
| 401 | HTTP_401 | API token ausente o invalido | Enviar X-API-Token valido |
| 403 | INSUFFICIENT_SCOPE | Token sin scope sii:write | Generar token con scope adecuado |
| 422 | VALIDATION_ERROR | Campos del body rechazados | Revisar errors[] |
| 429 | SII_RATE_LIMIT / QUOTA_EXCEEDED | Rate limit | Respetar Retry-After |
| 502 | SII_GATEWAY_ERROR | SII rechazo la emision | Revisar details |
Notas
- La retencion (10%-13.75%) se calcula por el SII segun el año tributario.
- El
RUTEmisordel boleta debe coincidir conauth.pass.ruto el SII rechaza. - Para anular una BTE emitida, usar
POST /emitidas/anular/{folio}. - Rate weight 5x refleja que es una operacion de escritura con side-effect.
Cuerpo de la solicitud
Requerido. Content-Type: application/json.
Respuestas
200Successful Response
400Datos de boleta invalidos o credenciales SII incorrectas
401API token ausente o invalido
403Sin scope `sii:write` o cuenta bloqueada
422Body con formato invalido
429Limite de tasa excedido
502SII rechazo la emision
503SII en mantenimiento
Forma de la respuesta
Código 200. Estructura del JSON devuelto.