TF Fiscal
Documentación

E-mail de facturas

Enviar correo de la factura

Acepta el envío de un documento autorizado al cliente por correo; la entrega es asíncrona.

POST/openapi/v2/empresas/{empresaId}/emails
Requiere las cabeceras de firma token, timestamp y sign, vea Autenticación.

Envía un documento ya autorizado (NF-e, NFS-e, CT-e o DC-e) por correo, con el cuerpo de la plantilla y, si se pide, el PDF y el XML adjuntos. La llamada es asíncrona: el HTTP 200 devuelve el emailId y el estado de aceptación; el resultado llega por email.sent / email.failed o por la consulta. id es la clave de idempotencia; mientras un correo del mismo documento está en curso, otro envío responde 409. El documento solo se envía cuando usted llama a este endpoint: nada sale automáticamente en la autorización.

Parámetros de ruta

empresaId*
stringIdentificador de la empresa

* Campo obligatorio

Cuerpo de la petición

id*
stringIdentificador de la solicitud
tipoDocumento*
stringTipo de documento
documentoId*
stringIdentificador de la factura
templateId
stringIdentificador de la plantilla
enviarPdf*
boolAdjuntar PDF
enviarXml*
boolAdjuntar XML
destinatarios
arrayDestinatarios

* Campo obligatorio

200
Recibo de aceptación. Guarde el emailId para la consulta; siga el resultado por el webhook o por la consulta.
emailId
stringIdentificador del correo
id
stringIdentificador de la solicitud
status
stringEstado en la aceptación
tipoDocumento
stringTipo de documento
documentoId
stringIdentificador de la factura
templateId
stringPlantilla usada
destinatarios
arrayDestinatarios efectivos
anexos
arrayAdjuntos pedidos

El HTTP 200 es solo la aceptación: el correo se monta y se envía después, por una tarea de la plataforma. El remitente es la dirección de la plataforma (no puede usarse su propio dominio); el nombre mostrado es la razón social de la empresa y el responder-a es el correo registrado de la empresa. El resultado llega por email.sent / email.failed (suscripción explícita, vea Registrar webhook) o por la consulta.

Solo el cuerpo y el XML

NFS-e con plantilla elegida y destinatario informado; enviarPdf = false evita generar la DANFSe. El XML adjunto se llama NFSe-{chave}.xml.

json
{
"id": "mail-nfse-000123",
"tipoDocumento": "NFSe",
"documentoId": "PED-20260918-001",
"templateId": "2103150000000000002",
"enviarPdf": false,
"enviarXml": true,
"destinatarios": ["financeiro@cliente.com.br"]
}
id*
stringIdentificador de la solicitud
tipoDocumento*
stringTipo de documento
documentoId*
stringIdentificador de la factura
templateId
stringIdentificador de la plantilla
enviarPdf*
boolAdjuntar PDF
enviarXml*
boolAdjuntar XML
destinatarios
arrayDestinatarios

* Campo obligatorio

PDF y XML al correo de la factura

Sin destinatarios la plataforma usa el correo del cliente informado en la emisión; solo NF-e y NFS-e lo tienen, CT-e y DC-e exigen destinatarios. Sin templateId usa la plantilla predeterminada del tipo. Si el PDF o el XML aún no está disponible, el correo espera en Aguardando en lugar de salir incompleto.

json
{
"id": "email-pedido-8842-1",
"tipoDocumento": "NFe",
"documentoId": "pedido-8842",
"enviarPdf": true,
"enviarXml": true
}
id*
stringIdentificador de la solicitud
tipoDocumento*
stringTipo de documento
documentoId*
stringIdentificador de la factura
enviarPdf*
boolAdjuntar PDF
enviarXml*
boolAdjuntar XML

* Campo obligatorio

NFS-e de São Paulo a la espera de la clave

Una NFS-e del sistema municipal de São Paulo recibe la clave de 50 dígitos después, por el ambiente nacional. Mientras no llega, el envío se acepta como Aguardando con motivoEspera = chaveAcesso y se vuelve a comprobar cada 30 segundos, hasta 120 minutos; pasado ese plazo pasa a Falha y motivoFalha dice qué faltó. La respuesta de abajo es la de la aceptación.

json
{
"emailId": "2103160000000000002",
"id": "mail-sp-000045",
"status": "Aguardando",
"tipoDocumento": "NFSe",
"documentoId": "SP-20260928-045",
"templateId": "2103150000000000002",
"destinatarios": ["financeiro@cliente.com.br"],
"anexos": ["pdf", "xml"]
}
status*
stringEstado en la aceptación

* Campo obligatorio

Mismo documento en curso: 409

Mientras un correo del mismo documento (misma empresa, tipoDocumento y documentoId) no llega a Enviado o Falha, un nuevo envío con otro id se rechaza con HTTP 409 y 10021015; el mensaje trae el emailId y el estado del correo en curso. Espere el callback o consulte, y luego reenvíe con un id nuevo.

json
[
{
"codigo": "10021015",
"mensagem": "O e-mail anterior desta nota ainda não foi concluído: emailId=2103160000000000001 status=Enfileirado"
}
]

Reenvío idempotente

Repetir una llamada con el mismo id (en la misma empresa) devuelve el resultado original sin crear otro correo, aunque el cuerpo sea distinto; status refleja el estado actual. Para enviar de nuevo el mismo documento use un id nuevo tras el estado terminal.

json
{
"emailId": "2103160000000000001",
"id": "email-pedido-8842-1",
"status": "Enviado",
"tipoDocumento": "NFe",
"documentoId": "pedido-8842",
"templateId": "2103150000000000001",
"destinatarios": ["comprador@exemplo.com"],
"anexos": ["pdf", "xml"]
}
status*
stringEstado en la aceptación

* Campo obligatorio