发票邮件
发送发票邮件
受理把已授权的票以邮件发给买方;投递异步完成。
/openapi/v2/empresas/{empresaId}/emailstoken、timestamp、sign 三个签名头,参见认证与签名。把一张已授权的票(NF-e、NFS-e、CT-e 或 DC-e)以邮件发出,正文来自模板,按需附上 PDF 与 XML。本接口是异步的:HTTP 200 返回 emailId 与受理状态;结果经 email.sent / email.failed 或查询接口获知。id 是幂等键;同一张票上一封邮件在途时再发返回 409。只有调用本接口才会发信,授权时不会自动发。
路径参数
empresaId* | string | 主体标识 |
* 必填字段
请求体
id* | string | 请求标识 |
tipoDocumento* | string | 发票类型 |
documentoId* | string | 单据标识 |
templateId | string | 模板标识 |
enviarPdf* | bool | 是否附 PDF |
enviarXml* | bool | 是否附 XML |
destinatarios | array | 收件邮箱 |
* 必填字段
emailId 用于查询;结果按回调或查询为准。emailId | string | 邮件标识 |
id | string | 请求标识 |
status | string | 受理状态 |
tipoDocumento | string | 发票类型 |
documentoId | string | 单据标识 |
templateId | string | 实际使用的模板 |
destinatarios | array | 实际收件邮箱 |
anexos | array | 附件清单 |
HTTP 200 只是受理:邮件由平台任务随后组装并发出。发件人是平台地址(不能用你自己的域名);显示名为主体的公司名,回复地址为主体注册的邮箱。结果经 email.sent / email.failed(需显式订阅,见注册 Webhook)或查询接口获知。
只发正文与 XML
NFS-e 指定模板并指定收件人;enviarPdf 为 false 就不生成 DANFSe。附件 XML 文件名为 NFSe-{chave}.xml。
{"id": "mail-nfse-000123","tipoDocumento": "NFSe","documentoId": "PED-20260918-001","templateId": "2103150000000000002","enviarPdf": false,"enviarXml": true,"destinatarios": ["financeiro@cliente.com.br"]}
id* | string | 请求标识 |
tipoDocumento* | string | 发票类型 |
documentoId* | string | 单据标识 |
templateId | string | 模板标识 |
enviarPdf* | bool | 是否附 PDF |
enviarXml* | bool | 是否附 XML |
destinatarios | array | 收件邮箱 |
* 必填字段
PDF 加 XML 并取票上邮箱
不传 destinatarios 时平台用开票时给的买方邮箱;只有 NF-e 与 NFS-e 带它,CT-e 与 DC-e 必须传 destinatarios。不传 templateId 用该类型的默认模板。PDF 或 XML 尚未就绪时邮件停在 Aguardando,不会缺件发出。
{"id": "email-pedido-8842-1","tipoDocumento": "NFe","documentoId": "pedido-8842","enviarPdf": true,"enviarXml": true}
id* | string | 请求标识 |
tipoDocumento* | string | 发票类型 |
documentoId* | string | 单据标识 |
enviarPdf* | bool | 是否附 PDF |
enviarXml* | bool | 是否附 XML |
* 必填字段
圣保罗 NFS-e 等待密钥
圣保罗市政系统的 NFS-e 要稍后经全国环境才拿到 50 位密钥。密钥未到时发送以 Aguardando 受理,motivoEspera 为 chaveAcesso,每 30 秒重查一次,最长 120 分钟;超时转 Falha,motivoFalha 说明缺的是什么。下面是受理响应。
{"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* | string | 受理状态 |
* 必填字段
同票在途:409
同一张票(同主体、同 tipoDocumento、同 documentoId)上一封邮件未到 Enviado 或 Falha 之前,换 id 再发会被 HTTP 409 与 10021015 拒绝;消息带在途邮件的 emailId 与状态。等回调或查询到终态后,用新的 id 重发。
[{"codigo": "10021015","mensagem": "O e-mail anterior desta nota ainda não foi concluído: emailId=2103160000000000001 status=Enfileirado"}]
幂等重放
同主体内用同一 id 重复调用返回原结果,不会再建一封邮件,请求体不同也一样;status 是当前状态。要再发同一张票,请在终态之后用新的 id。
{"emailId": "2103160000000000001","id": "email-pedido-8842-1","status": "Enviado","tipoDocumento": "NFe","documentoId": "pedido-8842","templateId": "2103150000000000001","destinatarios": ["comprador@exemplo.com"],"anexos": ["pdf", "xml"]}
status* | string | 受理状态 |
* 必填字段
Aguardando ──► Enfileirado ──► Enviando ──┬─► Enviado└─► Falha
Aguardando 只在缺密钥、PDF 或 XML 时出现,不消耗重试次数。Enviando 出站失败会退回 Enfileirado 并按递增间隔重试,最多 5 次。Enviado 与 Falha 是终态,此后这张票才能再发。各状态与 motivoEspera 的含义见查询邮件。
tipoDocumento发票类型
| 取值 | 含义 |
|---|---|
| NFe | NF-e 商品发票 |
| NFSe | NFS-e 服务发票 |
| CTe | CT-e 运输发票 |
| DCe | DC-e 内容申报 |
status邮件状态
首次受理只会是 Aguardando 或 Enfileirado;其余出现在幂等重放里。
| 取值 | 含义 |
|---|---|
| Aguardando | 已受理,等票的数据到齐;motivoEspera 说明等什么 |
| Enfileirado | 待发送,数据已齐 |
| Enviando | 发送中,正在渲染与出站 |
| Enviado | 已交发信服务;终态 |
| Falha | 终态失败;motivoFalha 说明原因 |
anexos[]附件
文件名 {tipo}-{chave}.pdf / .xml,例如 NFSe-3550...077.xml。
| 取值 | 含义 |
|---|---|
| PDF 凭证:DANFE、DANFSe、DACTE 或 DACE | |
| xml | 授权 XML 原件 |
| 错误码 | HTTP | |
|---|---|---|
| 10001001 | 400 | 字段校验失败:id 或 documentoId 为空或超过 64、tipoDocumento 不在可选值内、缺 enviarPdf / enviarXml、收件人超过 5 个或邮箱格式不合法;每个字段一条。 |
| 10003000 | 404 | empresaId 不存在。 |
| 10021001 | 404 | 邮件模板不存在:templateId 不存在或不属于本集成商。 |
| 10021002 | 400 | 邮件模板已停用,或模板的发票类型与单据不符。 |
| 10021010 | 404 | 发票不存在或不属于本主体。核对 documentoId、tipoDocumento 与 empresaId。 |
| 10021011 | 400 | 发票尚未授权,不能发给买方;已取消或已被替代的票同样如此。等授权后再发。 |
| 10021012 | 400 | 该发票类型没有默认模板;请传 templateId,或把某份模板标为 padrao = true。 |
| 10021013 | 400 | 没有收件人:未传 destinatarios,票上也没有买方邮箱。CT-e 与 DC-e 必须传 destinatarios。 |
| 10021015 | 409 | 同一张发票上一封邮件尚未发送完成;消息带 emailId 与状态。等到 Enviado 或 Falha 后用新的 id 重发。 |
