Reenviar un DTE por correo
Reenvía el PDF y el XML de un DTE ya emitido al correo del receptor.
| Tool ID | notta.dte.reenviar |
| Nombre MCP | notta__dte__reenviar |
| Conector | notta |
| Plano | action |
| Scope (permiso) | notta:write |
| Auth | connection_credentials |
| Versión | 1 |
| Sensible | sí |
| Deprecado | no |
| Comportamiento | readOnly=false, destructive=false, idempotent=false, openWorld=true |
Requiere conexión. Indica cuál en cada llamada: header
X-Connect-Connectionen REST, campoconnectionIden elexecutede MCP y en las opciones del SDK. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale deconexiones.estado.consultar.
Qué hace
Sin correo_receptor usa el que ya tiene guardado el documento; con él, lo envía a esa dirección y la recuerda. Es el camino conversacional para entregar un documento: no descarga nada, lo envía. No emite ni modifica el DTE.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | sí | El id del documento en Notta: el que devolvió notta.dte.emitir, o el de una fila de notta.dte.listar. |
correo_receptor | string ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ | no | A qué dirección enviarlo. Si la indicas, Notta manda el documento ahí y la recuerda para la próxima. Si la omites, usa el correo que el documento ya tiene guardado; si no tiene ninguno, la llamada responde un error de validación pidiéndolo. |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "El id del documento en Notta: el que devolvió notta.dte.emitir, o el de una fila de notta.dte.listar."
},
"correo_receptor": {
"description": "A qué dirección enviarlo. Si la indicas, Notta manda el documento ahí y la recuerda para la próxima. Si la omites, usa el correo que el documento ya tiene guardado; si no tiene ninguno, la llamada responde un error de validación pidiéndolo.",
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"id"
]
}Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
reenviado | booleano | sí | Siempre true: recibir esta respuesta ya significa que Notta aceptó el reenvío. Un fallo llega como un error con su código de catálogo, nunca como false. |
correo_receptor | string | no | La dirección a la que se envió, cuando se pudo saber cuál fue. Ausente si no se indicó una en la llamada y Notta tampoco la informó. |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reenviado": {
"type": "boolean",
"description": "Siempre true: recibir esta respuesta ya significa que Notta aceptó el reenvío. Un fallo llega como un error con su código de catálogo, nunca como false."
},
"correo_receptor": {
"description": "La dirección a la que se envió, cuando se pudo saber cuál fue. Ausente si no se indicó una en la llamada y Notta tampoco la informó.",
"type": "string"
}
},
"required": [
"reenviado"
],
"additionalProperties": false
}Errores de esta tool
| Código | HTTP | Reintentable | Qué hacer |
|---|---|---|---|
connection_disabled | 403 | no | Reactívala en /connections o usa otra conexión del mismo sistema. |
connection_credential_required | 428 | no | Crea un enlace con conexiones.enlace.crear (modo reconectar si la conexión ya existe) y pide a la persona que entregue la credencial de nuevo. No reintentes con la credencial anterior. |
connection_busy | 409 | sí | Espera unos segundos y reintenta. El candado es por conexión y se suelta solo. |
upstream_error | 502 | sí | Reintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración. |
timeout | 504 | sí | Reintenta. Para sincronizaciones largas usa la vía asíncrona y consulta el estado del trabajo. |
Toda llamada puede devolver además los códigos transversales (validation_error, unauthorized, scope_not_granted, rate_limited, entre otros): el detalle vive en el catálogo de errores.