Notta Docs

Boleta de honorarios (BHE)

Emite honorarios con la retención vigente del año, consulta el cálculo de líquido y anula dentro del plazo legal de 3 meses.

La Boleta de Honorarios Electrónica usa un pipeline propio del SII (distinto del de los DTE 33-61): tu clave tributaria custodiada cifrada, no el certificado .p12. Emites sobre un monto_bruto; Notta calcula la retención del año y el monto_liquido es lo que recibes.

Puedes emitirla por los 3 canales programáticos (API, CLI, MCP) + el dashboard — notta bhe emit en el CLI y la tool notta_bhe_emit en MCP. Los ejemplos de esta guía usan curl.

Tasa de retención por año

La tasa sube gradualmente según la Ley 21.420 y se determina por el año de fecha_emision:

Año de emisiónTasa de retención
Hasta 202210%
202312,25%
202413%
202514,5%
2026 y 202717%

Si el receptor es persona natural sin giro (consumidor final), marca persona_natural_sin_giro: true y la retención es 0.

Campos del request

CampoTipoRequeridoNotas
rut_emisorstringRUT del emisor persona natural, formato BODY-DV
receptor.rutstringRUT del receptor
receptor.razon_socialstring (1-100)Nombre o razón social del receptor
receptor.persona_natural_sin_girobooleantrue = consumidor final, retención 0
fecha_emisionYYYY-MM-DDDefine el año de la tasa de retención
monto_brutoentero positivoMonto bruto en CLP, sin decimales
descripcionstring (1-1000)Detalle del servicio prestado
sii_env"cert" | "prod"NoDefault "cert"

Request

curl -X POST https://app.notta.cl/api/v1/bhe \
  -H "Authorization: Bearer ntt_cert_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "rut_emisor": "12345678-5",
    "receptor": {
      "rut": "76123456-0",
      "razon_social": "Empresa Cliente SpA",
      "persona_natural_sin_giro": false
    },
    "fecha_emision": "2026-05-13",
    "monto_bruto": 1000000,
    "descripcion": "Servicios de consultoría mayo 2026"
  }'

Response

El endpoint responde 202 con el cálculo de retención ya resuelto: monto_liquido = monto_bruto - monto_retencion. Para 2026 la tasa es 17%.

{
  "id": "01957a91-0b50-7000-8000-0000000000be",
  "status": "queued",
  "sii_status": "queued",
  "tasa_retencion": 0.17,
  "monto_retencion": 170000,
  "monto_liquido": 830000,
  "period_year": 2026,
  "period_month": 5,
  "links": { "self": "/api/v1/bhe/01957a91-0b50-7000-8000-0000000000be" }
}

El detalle completo (folio asignado, monto_bruto, track_id, estado de anulación) está en GET /api/v1/bhe/:id. El listado GET /api/v1/bhe filtra por period_year, period_month, anulada y sii_status.

Anula una BHE

POST /api/v1/bhe/:id/anular con la razón en el body:

curl -X POST https://app.notta.cl/api/v1/bhe/01957a91-0b50-7000-8000-0000000000be/anular \
  -H "Authorization: Bearer ntt_cert_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "razon": "Servicio no prestado" }'
{
  "id": "01957a91-0b50-7000-8000-0000000000be",
  "anulada": true,
  "folio": 142
}

Plazo de anulación: 3 meses

El SII solo permite anular una BHE dentro de los 3 meses calendario desde su emisión. Pasado el plazo, la API responde 422 con código bhe.plazo_anulacion.expired.

Próximos pasos

  • Referencia API de BHE — shape completo de emisión, listado, detalle y anulación.
  • RCV y F29 — cómo se reflejan tus retenciones en la declaración mensual.
  • Errores — envelope de error y códigos de la API.
  • Referencia del CLInotta bhe emit y el resto de los comandos.

Última actualización

En esta página