# Emitir DTE (factura o nota)

> Emite un DTE ante el SII vía Notta: factura afecta (33), exenta (34), nota de débito (56) o nota de crédito (61, que exige references[] al documento original, y este solo puede ser una factura 33 o 34; su folio_ref va en TEXTO, tal como lo devuelve sii.rcv.consultar). Cada item declara si es exento y su monto_item (cantidad × precio_unitario, ya con el descuento de la línea aplicado); los TOTALES del documento (neto, exento, IVA, total) los calcula Notta. Las NOTAS (56/61) exigen además rut_emisor (el RUT de la empresa de esta conexión, que Notta no deriva en esa ruta) y la nota de débito (56) exige nd_reason; a cambio, no llevan forma_pago ni descuento_global. La emisión es ASÍNCRONA: esta llamada devuelve el documento con folio asignado y estado 'queued'; haz el seguimiento con notta.dte.obtener hasta EPR (aceptado) o un rechazo. Si un intento anterior falló por transporte o timeout, revisa los documentos RECIENTES con notta.dte.listar antes de reintentar, para no duplicar. Con correo_receptor, Notta envía el PDF+XML al receptor cuando el SII acepta. SEGUNDO DESENLACE: sobre el umbral de escritura de la empresa, Notta no emite y abre una aprobación humana que vive 24 horas. En ese caso la respuesta NO es un documento sino {status:'pending', pending_id, approve_url, expires_at, reason}: no trae folio ni id, y nada llegó al SII. Se reconoce SIEMPRE por ese cuerpo; por REST y por el SDK viaja además meta.idempotency='pending', que por MCP no llega. No reintentes para forzarla: con la misma Idempotency-Key te devuelve el mismo pendiente sin volver a emitir. Pasa approve_url a una persona de la empresa y sigue el desenlace con notta.dte.aprobacion, llamándola con id = ese pending_id: devuelve status (pending/approved/rejected/expired), result_ref con el documento que salió de la aprobación y next_action. NO uses notta.dte.listar para esto: lista documentos ya EMITIDOS, y mientras la aprobación viva no hay ninguno que listar; si la rechazan o vence, no lo habrá nunca.

Referencia interactiva generada desde el contrato OpenAPI — ver el contrato completo, máquina-legible, en [/docs/openapi.json](/docs/openapi.json).