Estado de una aprobación pendiente
Devuelve en qué quedó una aprobación pendiente. El id NO es el del documento: lo devuelve la emisión cuando el documento queda esperando que una persona lo apruebe en Notta. Dice si sigue pendiente, si se aprobó, se rechazó o venció, el documento que salió de ella cuando lo hay, y qué le toca hacer a quien llama.
API key de la organización, en 'Authorization: Bearer connect_sk_…'. Es la credencial para tu backend y tus agentes propios; se crea en el dashboard con permisos explícitos y su valor completo se muestra una sola vez. Autentica como agente: la bitácora atribuye la acción a la clave, nunca a la persona que la creó.
In: header
Header Parameters
Cuál conexión (conn_…) ejecuta esta llamada. Obligatoria en todo sistema conectable y sin resolución implícita, ni siquiera cuando la organización tiene una sola conexión activa: la conexión ES la empresa, y elegir por ti una que hoy acierta mañana acierta distinto sin que nadie cambie nada. Los ids salen de la tool 'conexiones.estado.consultar'. Si falta, la respuesta es 'validation_error' y no se contacta al sistema externo.
^conn_Request Body
application/json
La entrada de la tool, envuelta en 'input'. Manda '{"input": {}}' cuando la tool no toma argumentos: el sobre es obligatorio aunque esté vacío.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/tools/notta.dte.aprobacion/execute" \ -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \ -H "Content-Type: application/json" \ -d '{ "input": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" } }'{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "pending", "kind": "emit_dte", "result_ref": "b21afb5d-bcd2-4ffc-be64-88ed7707fde5", "rejection_reason": "string", "expires_at": "string", "resolved_at": "string", "created_at": "string", "next_action": "wait_for_human_approval", "links": { "dte": "string" } }, "meta": { "request_id": "string", "tool_id": "string", "plane": "action", "latency_ms": 0, "audit_status": "recorded", "idempotency": "replayed" }}{ "error": { "code": "alcance_not_enabled", "message": "string", "suggested_fix": "string", "request_id": "string", "details": null }}{ "error": { "code": "alcance_not_enabled", "message": "string", "suggested_fix": "string", "request_id": "string", "details": null }}{ "error": { "code": "alcance_not_enabled", "message": "string", "suggested_fix": "string", "request_id": "string", "details": null }}{ "error": { "code": "alcance_not_enabled", "message": "string", "suggested_fix": "string", "request_id": "string", "details": null }}{ "error": { "code": "alcance_not_enabled", "message": "string", "suggested_fix": "string", "request_id": "string", "details": null }}{ "error": { "code": "alcance_not_enabled", "message": "string", "suggested_fix": "string", "request_id": "string", "details": null }}{ "error": { "code": "alcance_not_enabled", "message": "string", "suggested_fix": "string", "request_id": "string", "details": null }}Verificar conexión Notta POST
Prueba las credenciales de la conexión contra Notta haciendo un login real (y su logout, a cargo del pipeline). No sincroniza ni devuelve datos: solo confirma si las credenciales sirven.
Emitir DTE (factura o nota) POST
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.